版本信息:
Linux:3.10
Android: 4.4
http://blog.csdn.net/u013686019/article/details/53677531
一、唤醒源
设备休眠后,通过触发唤醒源使设备恢复正常工作模式。设备唤醒源有多种,对于Android设备常见的就有PowerKey、来电唤醒、Alarm唤醒等。
唤醒源的实现处于内核空间,本文重点讨论下PowerKey作为唤醒源的具体实现。
二、PowerKey唤醒源
PowerKey唤醒设备的原理,本质其实就是中断。
三、PowerKey对应的Pin Configuration
PowerKey连接到CPU的一个输入(Input)引脚(Pin)上,该Pin运行在中断模式上。一旦
PowerKey按下,引发Pin中断;而该中断具有唤醒CPU的功能,于是设备得以唤醒。
三、PowerKey对应的Pin Configuration
和PowerKey相连的Pin的具体配置位于板级dts文件中,比如
如下
配置:
arch/arm/boot/dts/xxxxx.dts
power-key {
/** 是CPU的哪个Pin */
gpios = <&gpio0 GPIO_A5 GPIO_ACTIVE_LOW>;
/** Key code */
linux,code = <116>;
/** 起个名字 */
label = "power";
/** 该Pin具有wakeup的功能 */
gpio-key,wakeup;
};
着重说下
linux,code = <116>,116怎么来的?
对于键盘,每一个按键都有唯一的编码,在Linux中,编码值位于:
input.h (kernel\inc