android平台按键驱动[基于x210开发板]

按键驱动源码在kernel/arch/arm/mach-s5pv210/button-smdkv210.c中,源码很简单,
在s3c_button_probe函数中设置相关按键的寄存器,再开启定时器定时扫描。在定时器中断
函数s3cbutton_timer_handler中判断相应IO口的电平,达到监控按键的作用。
值得注意的是,当我们需要修改按键的功能时,需要和android层的按键匹配起来,具体通过
数组s3c_Keycode的定义以及按键配置表实现,驱动中定义如下:
static int s3c_Keycode[MAX_BUTTON_CNT] = {KEY_POWER, KEY_BACK, KEY_VOLUMEUP, KEY_VOLUMEDOWN};
这里表示定义四个按键,分别为POWER,返回,音量加,音量减。具体和device/samsung/smdkv210/s3c-button.kl中的定义对应,s3c-button.kl
内容如下:
key 116    ENDCALL           WAKE_DROPPED
key 103    DPAD_UP           WAKE_DROPPED
key 108    DPAD_DOWN         WAKE_DROPPED
key 105    DPAD_LEFT         WAKE_DROPPED
key 106    DPAD_RIGHT        WAKE_DROPPED
key 114    VOLUME_DOWN     WAKE
key 115    VOLUME_UP     WAKE
key 139    MENU              WAKE_DROPPED
key 158   BACK              WAKE_DROPPED
注意,这里s3c-button.kl的内容需和out/target/product/smdkv210/system/usr/keylayout/qwerty.kl的值对应起来。

你可能感兴趣的:(android,timer,UP,button,平台,menu)