1. 程式人生 > >基於imx6的gt911觸控式螢幕驅動移植

基於imx6的gt911觸控式螢幕驅動移植

參考: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平臺測試通過。