遥控器的驱动全志已经做好,默认是支持NEC协议,所以,调试的IR必须是支持NEC协议
1) ko:修改IR对应的地址码,记住地址码要反过来,如果给出的是0055,那么
lichee/linux-3.4/drivers/input/keyboard/ir-keymap.h中是0x5500
#define IR_CHECK_ADDR_CODE
#define IR_ADDR_CODE (0x5500)
编译生成ko文件。
在硬件平台中的路径是:/system/vendor/modules
2) 映射:getevent,查看是否有配置正确,如果正确,有event 键值的打印。
将键值映射在源码android/device/softwinner/sugar-ref001/sun7i-ir.kl中。
注意:若键值是1,不能写成01,否则识别不了,源码键值为16进制。
在平台中调试,使用vi编辑器,路径:/system/usr/keylayout/ sun7i-ir.kl
key 1 VOLUME_UP WAKE
key 2 VOLUME_DOWN WAKE
#key 3 POWER WAKE
key 4 MENU WAKE_DROPPED
key 5 HOME WAKE
key 6 DPAD_UP WAKE_DROPPED
key 7 DPAD_LEFT WAKE_DROPPED
key 8 DPAD_CENTER WAKE_DROPPED
key 9 DPAD_RIGHT WAKE_DROPPED
key 16 DPAD_DOWN WAKE_DROPPED
key 17 BACK WAKE_DROPPED
扩展:
android 按键映射*.kl文件中的WAKE和WAKE_DROPPED的定义
android系统中,获取到键盘的键值后,会搜索/system/usr/keylayout/*.kl这个文件
key 115 VOLUME_UP WAKE_DROPPED
key 114 VOLUME_DOWN WAKE_DROPPED
key 102 HOME WAKE
如果驱动code与其中的键值相对应,android就会响应对应的按键信息。
WAKE: 当设备睡眠时按下此键,设备将被唤醒,按键事件将会被发送到应用程序。
WAKE_DROPPED: 当设备睡眠时按下此键,设备将被唤醒,而按键事件不会被发送到应用程序。
该文件是重新建立按键扫描码与系统中定义的按键名称的映射关系,按键扫描码可以通过在串口中输入getevent,然后点击按键时看打印出来的键值来确定。
注意:扫描码不能重复,否则此文件将失效。