平台:Android12
SOC:RK3568
kernel:Linux-4.19
首先按键驱动那块不用我们自己写,内核本身有支持可以查看kernel-4.19-driver/input/keyboard/gpio_keys.c
我们先描述好设备树
添加GPIO4-A0的按键
gpio-keys {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
autorepeat;
pinctrl-names = "default";
pinctrl-0 = <&zy_key_pin>;
zy_key: zy-key {
label = "GPIO Key zy_key";
gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
linux,code = <KEY_ZY>;
};
};
&pinctrl {
keys {
zy_key_pin: pwr-key-pin {
rockchip,pins = <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
添加linux KEY值
include/dt-bindings/input/rk-input.h:581:#define KEY_ZY 0x27A
include/uapi/linux/input-event-codes.h:650:#define KEY_ZY 0x27A