触觉智能分享,瑞芯微RK安卓Android主板GPIO按键配置方法,方便大家更好利用空闲IO!由触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566四核处理器,树莓派卡片电脑设计,支持安卓Android、开源鸿蒙OpenHarmony、Linux多系统,适合嵌入式开发入门学习。
设备树修改
-
空闲IO选择
由下图可得当前IO是主板上一个没有用到的IO,对应的GPIO为:GPIO4_A4。
-
设备树配置
在Purple Pi OH官方代码中,设备树:ido-pi-oh3566-core.dtsi
文件默认加了GPIO_KEY配置,所以我们默认不需要移植驱动,用官方提供的代码上添加自己的IO即可,配置代码如下:
gpio_keys: gpio_keys {
status = "okay";
compatible = "gpio-keys";
autorepeat;
pinctrl-names = "default";
pinctrl-0 = <&leds_keys_gpio>;
+ key_sw1 {
+ debounce-interval = <100>;
+ gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_LOW>;
+ label = "GPIO Key sw1";
+ linux,code = <KEY_F1>;//键值
+ // wakeup-source;
+ gpio-key,wakeup;
+ };
}
&pinctrl {
+ gpio-keys {
+ leds_keys_gpio: leds_keys-gpio {
+ rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;//默认上拉
+ };
};
};
键值对应的文件位于以下目录,可按需求修改:
include/dt-bindings/input/rk-input.h
-
修改完成后,进入内核目录单独编译内核
# ./mk_kernel.sh ido-pi-oh3566-v1.img -j4
编译成功后,会在当前目录下生成boot.img文件,最后进行内核烧录测试即可。
测试验证
通过调试串口或者ADB进入系统,执行getevent -l
命令测试GPIO按键,命令如下:
130|console:/ # getevent -l
add device 1: /dev/input/event3
name: "gpio_keys"
add device 2: /dev/input/event1
name: "rk805 pwrkey"
add device 3: /dev/input/event2
name: "adc-keys"
add device 4: /dev/input/event0
name: "fdd70030.pwm"
add device 5: /dev/input/event4
name: "rk-headset"
执行后,将GPIO4_A4对应的引脚短接到GND即可触发,如下所示:
当成功返回键值即可测试成功。