基於imx6的gt911觸控式螢幕驅動移植
阿新 • • 發佈:2019-01-22
參考:https://blog.csdn.net/zhuyuming/article/details/52652525?locationNum=3
實驗平臺:TQ_iMX6Q
其實在Linux核心官網(https://www.kernel.org/)上下載適合自己的Linux核心原始碼中已經有goodix的驅動(drivers\input\touchscreen\goodix.c),程式碼中of_device_id顯示支援的觸控晶片,看來應該是支援gt911的。
一、將該檔案新增到核心 drivers\input\touchscreen\ 資料夾下,修改Makefile和Kconfig檔案:
在Makefile上新增:
在kconfig上新增:
注意:過濾touch down情況下的無效中斷。
GT911在touch down的時候會出現無效中斷(也許是goodix用來上報其他資訊用),如果不過濾這種型別中斷,在touch down的時候會交替上報DOWN/UP事件,在UI上表現出來的想象將是點觸有效滑動無效。除此之外,在上報UP事件部分加上條件判斷,即本次中斷的touch_num==0&&上次中斷touch_num!=0。
程式碼修改主要如下(新增兩行程式碼):
二、新增裝置節點,設定對應 I2C匯流排介面和中斷引腳
三、重新編譯,將goodix.c檔案編譯進核心
四、確保硬體連線正常,開機後應該就可以在/dev/input/下發現裝置節點
使用evtest工具測試,一般就可以實現觸摸了: evtest /dev/input/event0
在imx6q平臺測試通過。