MTK6577+Android之按键(key)修改
1.?????產品按鍵布局和定義
圖1
圖1括號里面的是android系統采用的鍵值,注意了,這可不是linux系統里用到的scan code。
?
2.?????按鍵硬件設計
MTK6577的Keypad分為兩部分:
(1)??Keypad接口,包括8*8按鍵和一個專用的power按鍵。
(2)??Key檢測塊(key detection block),提供按鍵按下、按鍵釋放和抖動(de-bounce)機制。
?
按鍵和對應的行與列關系如下:
| ? | KCOL0(GPIO103/EINT30) | KCOL1(GPIO108/EINT31) | KCOL2 |
| KROW0(GPIO98/EINT6) | F6(136,右邊側按鍵) | ? | ? |
| KROW1(GPIO97/EINT7) | F7(137,左邊側按鍵) | ? | ? |
| KROW2(GPIO95/EINT8) | ? | F10(140,右邊按鍵) | ? |
| KROW3(GPIO99/EINT9) | ? | F9(139,中間按鍵) | ? |
| KROW7(GPIO107/EINT13) | ? | F8(138,左邊按鍵) | ? |
?
這是我們實際產品的按鍵定義,在這里,我重新定義,如下所示:
| ? | HW keycode | Linux keycode | Android code |
| 右邊側按鍵 | 9 | 115---KEY_VOLUMEUP | 24 |
| 左邊側按鍵 | 0 | 114---KEY_VOLUMEDOWN | 25 |
| 左邊按鍵 | 64 | 105--- KEY_LEFT | 21 |
| 中間按鍵 | 28 | 28--- KEY_ENTER | 66 |
| 右邊按鍵 | 19 | 106--- KEY_RIGHT | 22 |
?
3.?????按鍵傳遞鍵值的流程
?
圖2
?
4.?????修改及編譯
?
MTK6577提供\mediatek\source\dct\DrvGen.exe來配置GPIO設置、中斷設置、ADC設置、KEYPAD設置和PMIC設置,打開的文件對應\mediatek\custom\hsimobile77_ics2\kernel\dct\dct\ codegen.dws:
?
?
4.1? DrvGen.exe的使用
圖3
圖3是在ubuntu系統安裝了Wine之后,用Wine打開的。
?
(1)??打開DrvGen.exe
(2)??選擇Open打開codegen.dws
(3)??如果要修改就選擇Edit,修改完成之后可選擇Gen Code來產生代碼,更新的代碼位于\mediatek\custom\hsimobile77_ics2\kernel\dct\dct目錄下。也可以采用./mk drvgen命令來生成新的對應的代碼。
?
(4)??然后選擇Save,再Exit。
?
4.2? GPIO設置
根據上面表格,需要設置按鍵對應GPIO引腳的模式,如下圖:
圖4
紅色矩形框是我新修改的,之前是NC狀態,要配置為對應的模式,GPIO修改后對應的頭文件是\mediatek\custom\hsimobile77_ics2\kernel\dct\dct\ cust_gpio_boot.h和cust_gpio_usage.h。
?
4.3? KEYPAD設置
結合上面的表格,知道哪個功能按鍵對應在哪一行和哪一列,配置如下:
圖5
對應的頭文件為\mediatek\custom\hsimobile77_ics2\kernel\dct\dct\ cust_kpd.h。
?
4.4? 設置后生成新的代碼
(1)??./mkdrvgren或是點擊圖3的Gen code
(2)??./mk rk
(3)??./mkbootimage
更新新的boot.img
?
?
參考:
MTK Android 之MT6577驅動筆記
http://blog.csdn.net/cbk861110/article/details/9385439
?
MTK Android Driver:adda new key
http://blog.csdn.net/cbk861110/article/details/19043607
?
android系統移植之按鍵驅動篇
http://blog.csdn.net/armeasy/article/details/6713642
?
android定制化軟件修改或添加按鍵驅動的核心操作步驟講解??
http://linsheng1990526.blog.163.com/blog/static/2038241502012320111925656/
總結
以上是生活随笔為你收集整理的MTK6577+Android之按键(key)修改的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS-part12.3-ES6- 箭头函
- 下一篇: MTK6577+Android之Came