外部键盘-通用输入(GPI)事件

时间:2018-12-18 14:11:25

标签: yocto device-tree keypad

我正在将外部键盘(带有TCA8418芯片)连接到定制板(通过i2c),并且正在运行linux yocto 4.9.11。

在设备树中,我们使用MATRIX_KEY定义密钥,并且效果很好!问题是,除了我们的MATRIX键外,我们还有6个单输入键(这些键没有矩阵)。允许将这些拉高的键用作通用输入(GPI)事件。 (文档8.3.1.2)

我的问题是,如果MATRIX_KEY是定义ROW / COL键的宏,那么定义GPI事件键的宏是什么?我包括了我的设备树,您可以看到我尝试将其附加到的0x04伪行不起作用。

键盘示意图:https://www.dropbox.com/s/jg1z76kipx5pxgz/Schematic_KEYPAD.pdf?dl=0 TCA8418文档:https://www.dropbox.com/s/30xzugrq12fb329/tca8418.pdf?dl=0

设备树:

keypad: tca8418@34 {
compatible = "ti,tca8418";
reg = <0x34>;
debounce-delay-ms = <4>;
interrupt-parent = <&gpio5>;
interrupts = <13 IRQ_TYPE_EDGE_RISING>;
keypad,num-columns = <10>;
keypad,num-rows = <5>;
linux,no-autorepeat;

linux,keymap = <
MATRIX_KEY(0x00, 0x02, KEY_NUMERIC_1) /*ROW0, COLUMN2*/
MATRIX_KEY(0x00, 0x01, KEY_NUMERIC_2) /*ROW0, COLUMN1*/
MATRIX_KEY(0x00, 0x00, KEY_NUMERIC_3) /*ROW0, COLUMN0*/

MATRIX_KEY(0x01, 0x02, KEY_NUMERIC_4)  /*ROW1, COLUMN2*/
MATRIX_KEY(0x01, 0x01, KEY_NUMERIC_5)  /*ROW1, COLUMN1*/
MATRIX_KEY(0x01, 0x00, KEY_NUMERIC_6) /*ROW1, COLUMN0*/

MATRIX_KEY(0x02, 0x02, KEY_NUMERIC_7)  /*ROW2, COLUMN2*/
MATRIX_KEY(0x02, 0x01, KEY_NUMERIC_8)  /*ROW2, COLUMN1*/
MATRIX_KEY(0x02, 0x00, KEY_NUMERIC_9)  /*ROW2, COLUMN0*/

MATRIX_KEY(0x03, 0x02, KEY_NUMERIC_STAR)  /*ROW3, COLUMN2*/
MATRIX_KEY(0x03, 0x01, KEY_NUMERIC_0)  /*ROW3, COLUMN1*/
MATRIX_KEY(0x03, 0x00, KEY_ENTER)       /*ROW3, COLUMN0*/ 

MATRIX_KEY(0x04, 0x04, KEY_F1) /*ROW4, COLUMN4*/
MATRIX_KEY(0x04, 0x05, KEY_F2) /*ROW4, COLUMN5*/
MATRIX_KEY(0x04, 0x06, KEY_F3) /*ROW4, COLUMN6*/
MATRIX_KEY(0x04, 0x07, KEY_F4) /*ROW4, COLUMN7*/
MATRIX_KEY(0x04, 0x08, KEY_F5) /*ROW4, COLUMN8*/
MATRIX_KEY(0x04, 0x09, KEY_F6) /*ROW4, COLUMN9*/
>;
};

谢谢 Zev。

0 个答案:

没有答案