Rockchip的按键驱动位于 kernel/drivers/input/keyboard/rk_keys.c
默认支持的keys在dts中定义:
其中power key作为普通gpio,具有唤醒功能。而其他按键比如,volume up/down 可以通过adc精确读取到gpio的电压值,原理图如下:
和一般的按键一样,驱动是通过内核input子系统来将keys注册供用户空间使用
static int keys_probe(struct platform_device *pdev)
{
input = devm_input_allocate_device(dev);
input->name = "rk29-keypad"; /* pdev->name; */
input->phys = "gpio-keys/input0";
input->dev.parent