触觉智能分享,瑞芯微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即可触发,如下所示:
当成功返回键值即可测试成功。