MTK添加按键流程

2020-07-23 17:09:19 浏览数 (1)

首先查看原理图用的是gpio还是矩阵按键。

1. 矩阵按键

1.1 kernel更改

① 先查看原理图,看下按键位置对应的位置,并查看其对应的矩阵管脚。

② 更改input_event_codes.h,增加新增按键键值。(找不到路径就搜索)

③ 配置dws矩阵管脚,并在keypad对应位置指定按键。(新增的按键,需要先在Yusu.cmp增加按键并增加与input_event_codes.h相同的键值)

④ 查看按键按下时是否有键值上报(键值与input_event_codes.h定义相同)

adb shell getevent

1.1 adb查看时间

查看指定事件上报:getevent /dev/input/event1

1.2 指定事件

看到上报键值,说明添加成功。

1.2 framework更改

① 先搜索keycodes.h文件

1.3 搜索keycodes路径

找到路径 frameworks/native/include/android/keycodes.h

1.4 keycodes.h

在末尾添加需要的按键,注意看NOTE:

NOTE: If you add a new keycode here you must also add it to several other files.

Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list.

② 在KeyEvent.java添加

1.5 KeyEvent.java

并按提示在相应文件添加按键定义。

最后需要在Generic.kl添加PTT键值。

③ 测试logcat 查看应用层接收到的键值

adb shell

logcat | grep WindowManager

1.6 上报事件

显示接收到的按键 scancode 249 //kernel 键值

keycode 289//应用层键值

添加成功。

2. GPIO按键添加

与keypad按键不同的是:GPIO按键需要自写驱动,keypad用的系统自带keypad驱动。

① 添加键值与keypad流程一致。

② 在keypad驱动probe中,写上GPIO键值中断上报即可。

应该也可以使用系统自带的gpio-keys.c驱动,需要配置dws,dts文件。

2020-06-23

0 人点赞