RK3399-11.0 Recovery UI 红外遥控无法操作 ,通常手机是使用音量+ 音量- 和电源来操作的,但是box产品只能用红外遥控操作,这个问题折腾了好长时间,先是排查红外驱动,看看recovery起来时驱动有没有加载,后来又一直在Recovery代码里面加打印,搞了半天,毫无进展。偶然对比RK3399-8.1看了一下,红外遥控可以正常操作,recovery界面下getevent 红外Linux映射码都是正常收到的,再来看看RK3399-11.0 recovery模式下getebent 发现一直不停在打印一个gpio-key
rk3399_Android11
$ getevent
add device 1: /dev/input/event2
name: "gpio-keys"
add device 2: /dev/input/event1
name: "adc_keys"
add device 3: /dev/input/event3
name: "rk-headset"
add device 4: /dev/input/event0
name: "ff420030.pwm"
add device 5: /dev/input/event4
name: "PixArt Dell MS116 USB Optical Mouse"
/dev/input/event2: 0001 00f9 00000002
/dev/input/event2: 0000 0000 00000001
/dev/input/event2: 0001 00f9 00000002
/dev/input/event2: 0000 0000 00000001
/dev/input/event2: 0001 00f9 00000002
/dev/input/event2: 0000 0000 00000001
/dev/input/event2: 0001 00f9 00000002
/dev/input/event2: 0000 0000 00000001
f9转换为10进制是249
搜索kernel里面的按键定义
input-event-codes.h:340:#define KEY_WOL 249 /* wol key */
搜索dts里面配置KEY_WOL 的地方
wol {
debounce-interval = <1000>;
gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>;
label = "GPIO Key WOL";
linux,code = <KEY_WOL>;
wakeup-source;
};
原来是这个wol key 配置的低有效,而这个IO口在recovery模式下一直是低,所以会一直触发,尝试把这个wol屏蔽掉,重新编译kernel烧录后,进入recovery模式,getevent查看,这个gpio-key不再一直触发了,此时按红外遥控就出现了外红遥控的event打印,Recovery UI也可以正常操作了