snvs:snvs-powerkey: interrupt not available.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

snvs:snvs-powerkey: interrupt not available.

1,126 Views
kamlesh_gurudas
Contributor I

Generally flag mismatch is for  driver A vs Driver B. Could you give some pointers to solve. We are using imx6ul board

Erorr:

[ 7.315153] input: 20cc000.snvs:snvs-powerkey as /devices/soc0/soc/2000000.aips-bus/20cc000.snvs/20cc000.snvs:snvs-powerkey/input/input0
[ 7.332058] genirq: Flags mismatch irq 32. 00000004 (20cc000.snvs:snvs-powerkey) vs. 00000004 (20cc000.snvs:snvs-powerkey)
[ 7.343879] snvs_pwrkey 20cc000.snvs:snvs-powerkey: interrupt not available.
[ 7.366705] snvs_pwrkey: probe of 20cc000.snvs:snvs-powerkey failed with error -16
[ 7.394971] snvs_rtc 20cc000.snvs:snvs-rtc-lp: registered as rtc0

DTS

snvs: snvs@020cc000 {
compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
reg = <0x020cc000 0x4000>;

snvs_rtc: snvs-rtc-lp {
compatible = "fsl,sec-v4.0-mon-rtc-lp";
regmap = <&snvs>;
offset = <0x34>;
interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
};

snvs_poweroff: snvs-poweroff {
compatible = "syscon-poweroff";
regmap = <&snvs>;
offset = <0x38>;
value = <0x61>;
mask = <0x61>;
status = "disabled";
};

snvs_pwrkey: snvs-powerkey {
compatible = "fsl,sec-v4.0-pwrkey";
regmap = <&snvs>;
interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
linux,keycode = <KEY_POWER>;
wakeup-source;
};
};

Labels (2)
0 Kudos
2 Replies

1,072 Views
igorpadykov
NXP Employee
NXP Employee

Hi Kamlesh

one can look at dts example from nxp source.codeaurora.org/external/imx/linux-imx  repository

imx6ul.dtsi\dts\boot\arm\arch - linux-imx - i.MX Linux kernel 

imx6ul-14x14-evk.dtsi\dts\boot\arm\arch - linux-imx - i.MX Linux kernel 

 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,072 Views
kamlesh_gurudas
Contributor I

Thanks for the reply.

There was bug in the source code of the driver. request_irq was being called twice.

Removing that solved the issue, as the mainline linux has only one call to request_irq

0 Kudos