Если использовать kpp то надо искать специальные пины и я сомневаюсь что они свободны или вообще выведены. Вам в обшем случае надо:
1) включить драйвер в конфиге (по умолчанию он не включен скорей всего)
make linux-menuconfig
Device Drivers --->
Input device support --->
[*] Keyboards --->
<*> IMX keypad support
2) ОписАть матрицу в DT. На референсах imx6qdl kpp не используется - можно взять за пример у imx6sl
пины
матрица
но я не уверен что там все что надо прописано в DT для imx6qdl
Можно сделать проще
1) включить общий драйвер на GPIO - с ним можно использовать любые свободные пины а не специальные как для kpp
make linux-menuconfig
Device Drivers --->
Input device support --->
[*] Keyboards --->
<*> GPIO driven matrix keypad support
2) ОписАть матрицу в DT для GPIO
Например 4х4 вместо CSI (в данном случае описания для CSI нужно убирать из DT)
#include <dt-bindings/input/input.h>
/ {
aliases {
mxcfb0 = &mxcfb1;
mxcfb1 = &mxcfb2;
};
matrix_keypad: matrix-keypad@0 {
compatible = "gpio-matrix-keypad";
gpio-activelow;
linux,wakeup;
debounce-delay-ms = <50>;
col-scan-delay-us = <10>;
linux,no-autorepeat;
col-gpios = <
&gpio5 18 0
&gpio6 1 0
&gpio6 3 0
&gpio6 5 0
>;
row-gpios = <
&gpio5 31 0
&gpio6 0 0
&gpio6 2 0
&gpio6 4 0
>;
linux,keymap = <
/* MATRIX_KEY(row, col, code) */
MATRIX_KEY(0, 0, KEY_0)
MATRIX_KEY(0, 1, KEY_1)
MATRIX_KEY(0, 2, KEY_2)
MATRIX_KEY(0, 3, KEY_3)
MATRIX_KEY(1, 0, KEY_4)
MATRIX_KEY(1, 1, KEY_5)
MATRIX_KEY(1, 2, KEY_6)
MATRIX_KEY(1, 3, KEY_7)
MATRIX_KEY(2, 0, KEY_8)
MATRIX_KEY(2, 1, KEY_9)
MATRIX_KEY(2, 2, KEY_COMMA)
MATRIX_KEY(2, 3, KEY_ESC)
MATRIX_KEY(3, 0, KEY_E) MATRIX_KEY(3, 1, KEY_UP)
MATRIX_KEY(3, 2, KEY_ENTER)
MATRIX_KEY(3, 3, KEY_DOWN)
>;
};
.....
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog>;
hog {
pinctrl_hog: hoggrp {
fsl,pins = <
/* GPIO matrix keypad */
MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31 0x80000000
MX6QDL_PAD_CSI0_DAT14__GPIO6_IO00 0x80000000
MX6QDL_PAD_CSI0_DAT15__GPIO6_IO01 0x80000000
MX6QDL_PAD_CSI0_DAT16__GPIO6_IO02 0x80000000
MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03 0x80000000
MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04 0x80000000
MX6QDL_PAD_CSI0_DAT19__GPIO6_IO05 0x80000000
MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x80000000