matrix_keypad 矩阵按键驱动分析
//主要函数调用过程
matrix_keypad_probe
matrix_keypad_parse_dt //根据设备树构造 pdata
pdata->num_row_gpios...“col-gpios”);
of_get_property(np, “linux,no-autorepeat”, NULL)
of_get_property(np, “linux,wakeup”, NULL...row_gpios[i]);
request_any_context_irq
input_register_device
//具体分析
//矩阵按键驱动源码在”drivers/input/keyboard...(np, “linux,wakeup”, NULL))
pdata->wakeup = true;
if (of_get_property(np, “gpio-activelow”, NULL))
pdata..., 设1就是不重复,设0重复
};
Linux中输入设备的事件类型有:
EV_SYN 0x00 同步事件
EV_KEY 0x01 按键事件,如KEY_VOLUMEDOWN
EV_REL 0x02 相对坐标