参考: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的。
一、将该文件添加到内核 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
附参考源码下载:https://download.****.net/download/hsl416604093/10397503
在imx6q平台测试通过。