基于imx6的gt911触摸屏驱动移植

时间:2024-05-18 15:30:56

参考:https://blog.****.net/zhuyuming/article/details/52652525?locationNum=3

    其实在Linux内核官网(https://www.kernel.org/)上下载适合自己的Linux内核源码中已经有goodix的驱动(drivers\input\touchscreen\goodix.c),代码中of_device_id显示支持的触摸芯片,看来应该是支持gt911的。

 基于imx6的gt911触摸屏驱动移植

一、将该文件添加到内核 drivers\input\touchscreen\ 文件夹下,修改Makefile和Kconfig文件:

在Makefile上添加:

基于imx6的gt911触摸屏驱动移植

在kconfig上添加:

基于imx6的gt911触摸屏驱动移植

注意:过滤touch down情况下的无效中断。

    GT911在touch down的时候会出现无效中断(也许是goodix用来上报其他信息用),如果不过滤这种类型中断,在touch down的时候会交替上报DOWN/UP事件,在UI上表现出来的想象将是点触有效滑动无效。除此之外,在上报UP事件部分加上条件判断,即本次中断的touch_num==0&&上次中断touch_num!=0。

代码修改主要如下(添加两行代码):

基于imx6的gt911触摸屏驱动移植

二、添加设备节点,设置对应 I2C总线接口和中断引脚

基于imx6的gt911触摸屏驱动移植

三、重新编译,将goodix.c文件编译进内核

四、确保硬件连接正常,开机后应该就可以在/dev/input/下发现设备节点

基于imx6的gt911触摸屏驱动移植

使用evtest工具测试,一般就可以实现触摸了:  evtest  /dev/input/event0 


附参考源码下载:https://download.****.net/download/hsl416604093/10397503

在imx6q平台测试通过。