framework层
上层控制文件:/home/vce/sc20/sc20/t9802-android-system/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
安卓上层会采用读取键值的方式及进行底层与上层的隔离。
那么对应的键值会在那里定义呐!其间调用了KeyEvent方法
其方法的定义文件路径在:
/home/vce/sc20/sc20/t9802-android-system/frameworks/base/core/java/android/view/KeyEvent.java
底层上报的键值定义
kernel层:
/home/vce/sc20/sc20/t9802-android-system/kernel/include/uapi/linux/input.h
home/vce/sc20/sc20/t9802-android-system/device/qcom/msm8909/gpio-keys.kl
设备树定义:
/home/vce/sc20/sc20/t9802-android-system/kernel/arch/arm/boot/dts/qcom/msm8909-mtp.dtsi
下面看一下数据是如何上报的。
定位文件:
/home/vce/sc20/sc20/t9802-android-system/kernel/drivers/input/keyboard/gpio_keys.c
gpio类型
gpiochipN:gpio控制器
gpioN:GPIO引脚
linux2.6以上的内核使用系统中的GPIOLIB模块在用户空间提供sysfs接口,实现应用层对GPIO的独立控制。
ls gpiochip911
/****************************************************************************************************************************************************************************************************************************************/