iMX7 Keypad - Kernel Freeze

I’m using the iMX7D on a custom board. Attached is my device tree imx7-colibri-sumatra.dts.

The the rest of the tree compiles and runs on the iMX7D as expected. Once I add the &kpp node the kernel freezes with the following output

[1.376636] input: 30320000.kpp as /devices/platform/soc/30000000.aips-bus/30320000.kpp/input/input0

Any and all help is appreciated.



Can you provide the full kernel log?

Note that the imx_keypad.c driver does not make use of “keypad,num-rows”, “keypad,num-columns”.


Kernel output attached. I am using kernel toradex_imx_4.1.15_1.0.0_ga. [kerneloutput][1]
Also using the standard colibri_imx7_defconfig.
The reason I used “keypad,num-rows”, “keypad,num-columns” was matrix-keymap.c uses these properties, <-is this correct?

Apologizes for the previous answer. I have tried changing the rows and cols in the kernel to 3 and 3. With no change.

As @max.tx correctly stated, there is no property keypad,num-rows or keypad,num-columns being used by the imx keypad driver. I was able to reproduce the issue here as well. The rows and columns are currently hardcoded to 8 which is perhaps the reason for the kernel freeze. Alternatively, you can try to implement the reading of the concerned property from device tree which would be the correct approach.

@max.tx, are there any ideas that come to mind to fix this issue? I tried @sanchayan.tx ideas of changing the hard code 8 to 3 plus have implemented the reading in of the properties to the driver with no success.

I looked into it a bit and the reason for the freeze is not outright obvious and traceable. In the meanwhile the generic keypad driver using gpios here might also be worth visiting. The corresponding device tree binding documentation is here.