Skip to main content
Visitor II
October 4, 2024
Solved

probe of gpio-keys failed (PA12)

  • October 4, 2024
  • 2 replies
  • 1635 views

Hello

I currently run on hardware STM32MP135f-DK and am preparing for running a custom HW.

When assigning PA12 as a gpio-key in the devicetree,I get this error on boot:


[ 3.544391] genirq: Flags mismatch irq 45. 00000083 (my-input) vs. 00002088 (0-0021)
[ 3.551110] gpio-keys gpio-keys: Unable to claim irq 45; error -16
[ 3.557446] gpio-keys: probe of gpio-keys failed with error -16

The result is that nothing from that gpio-keys-node is initialized (if I run gpioinfo)

 

PA12 is also referenced by ETH2 by default, and all references to eth2 are removed from my devicetree

 

This is how I add the new gpio to the devicetree, basically the same as the default user-pa13, but with 12 instead of 13.

gpio-keys {
compatible = "gpio-keys";

my-input {
label = "my-input";
linux,code = <BTN_2>;
gpios = <&gpioa 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
};

};

I cannot find anything else pointing at PA12 in the devicetree.

Other pins that I define as gpio-keys work.

 

Does anyone know what is interfering or where to start looking?

 

    This topic has been closed for replies.
    Best answer by PatrickF

    Hi,

    I think the PA12 is maybe already defined elsewhere.

    Various command who could help.

    gpioinfo
    
    cat /sys/kernel/debug/gpio
    
    cat /sys/kernel/debug/pinctrl/soc*:pinctrl*/pinconf-pins
    

     

    Maybe there is link with the HW limitation which does not allow more than one same 'N' for GPIO interrupt on PxN (x ={A...Z}, and N = {0 to 15} )

    PatrickF_0-1728058693454.png

     

    Regards.

    2 replies

    PatrickFAnswer
    Technical Moderator
    October 4, 2024

    Hi,

    I think the PA12 is maybe already defined elsewhere.

    Various command who could help.

    gpioinfo
    
    cat /sys/kernel/debug/gpio
    
    cat /sys/kernel/debug/pinctrl/soc*:pinctrl*/pinconf-pins
    

     

    Maybe there is link with the HW limitation which does not allow more than one same 'N' for GPIO interrupt on PxN (x ={A...Z}, and N = {0 to 15} )

    PatrickF_0-1728058693454.png

     

    Regards.

    MakandraAuthor
    Visitor II
    October 8, 2024

    gpioinfo: "line 12: "PA12" input"

    line 11: "PA11" input active-low bias=pull-up consumer="pa11"
    line 12: "PA12" input
    line 13: "PA13" input active-low bias=pull-up consumer="User-PA13"

     

    cat /sys/kernel/debug/gpio

    gpio-11 (PA11 |pa11 ) in hi IRQ ACTIVE LOW
    gpio-12 (PA12 )
    gpio-13 (PA13 |User-PA13 ) in hi IRQ ACTIVE LOW

     

    cat /sys/kernel/debug/pinctrl/soc*:pinctrl*/pinconf-pins

    pin 11 (PA11): input - high - pull up
    pin 12 (PA12): input - high - pull up
    pin 13 (PA13): input - high - pull up

     

    I have decompiled the devicetree and tried to look for it, but I cannot find anything about either PA12 or "00002088 (0-0021)"

     

    It seems that it is the hardware limitation that causes it.
    Various other pins, A11, A13, B6 and B3 in a gpio-keys-node properly initializes.

    I added A12, B12, E12 and H12, (none of which are used according to gpioinfo) into separate gpio-keys-nodes and none of which succeeded to initialize

    [ 3.310474] genirq: Flags mismatch irq 45. 00000083 (h12) vs. 00002088 (0-0021)
    [ 3.316560] gpio-keys gpio-keys-h12: Unable to claim irq 45; error -16
    [ 3.323233] gpio-keys: probe of gpio-keys-h12 failed with error -16
    [ 3.329587] genirq: Flags mismatch irq 45. 00000083 (a12) vs. 00002088 (0-0021)
    [ 3.336765] gpio-keys gpio-keys-a12: Unable to claim irq 45; error -16
    [ 3.343154] gpio-keys: probe of gpio-keys-a12 failed with error -16
    [ 3.349581] genirq: Flags mismatch irq 45. 00000083 (b12) vs. 00002088 (0-0021)
    [ 3.356786] gpio-keys gpio-keys-b12: Unable to claim irq 45; error -16
    [ 3.363296] gpio-keys: probe of gpio-keys-b12 failed with error -16
    [ 3.369618] genirq: Flags mismatch irq 45. 00000083 (e12) vs. 00002088 (0-0021)
    [ 3.376825] gpio-keys gpio-keys-e12: Unable to claim irq 45; error -16
    [ 3.383333] gpio-keys: probe of gpio-keys-e12 failed with error -16

     

    I have not yet managed to find out which pin is interfering.