本文档以检测按键电平状态为例 硬件连接(KEY0与GPIO3B6引脚相连) 驱动分为三类: 1 自己编写input输入子系统按键驱动 2 使用内核按键中断驱动 /kernel/drivers/input/keyboard/gpio_keys.c 3 使用内核按键轮休驱动 /kernel/drivers/input/keyboard/gpio_keys_polled.c 内核按键中断驱动 根据设备树绑定文档编写设备树/kernel/Documentation/devicetree/bindings/input/gpio-keys.txt &pinctrl { key { key_gpio: key-gpio { rockchip,pins = <3 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>; }; }; }; keys { compatible = "gpio-keys"; #address-cells = <1>; #size-cells = <0>; autorepeat; //表示按键支持连按。 key0 { label = "gpio key"; linux,code = <KEY_ENTER>; //表示回车按键,宏定义/kernel/include/uapi/linux/input-event-codes.h gpios = <&gpio3 RK_PB6 GPIO_