本文主要是介绍mt6762添加gpio按键方法与问题调试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
mt6762添加gpio按键方法与问题调试
1 配置dts文件.定义gpio87为拍照键,对于keycode = 212.
gpio_keys:gpio_keys {
compatible = "gpio-keys";
input-name = "gpio-keys";
autorepeat;
key_camera {
label = "Camera Key";
linux,code = <212>;
gpios = <&pio 87 0x01>;
gpio-key,wakeup;
};
}
2设备驱动在kernel-4.9/drivers/input/keyboard/gpio_keys.c中初始化.
如果该gpio在别的设备被定义为其它其它GPIO口或中断口,会导致初始化报错,如在其它设备被定义为中断口,则打印kmsg log会出现下面初始化错误提示:
<3>[ 2.507707] .(2)[1:swapper/0]gpio-keys gpio_keys: Unable to claim irq 105; error -16
<4>[ 2.508721] .(2)[1:swapper/0]gpio-keys: probe of gpio_keys failed with error -16
初始化成功后,应该为:
[ 2.625807] .(1)[1:swapper/0]input: gpio_keys as /devices/platform/gpio_keys/input/input2
3 可以在framework抓取底层上报的按键信息.
在文件
alps/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
设置DEBUG_INPUT = true;打印按键信息.
在下面方法里可以添加打印log.
/** {@inheritDoc} */
@Override
public long interceptKeyBeforeDispatching(WindowState win, KeyEvent event, int policyFlags) {
...
...
}
这篇关于mt6762添加gpio按键方法与问题调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!