概述
触摸I2C接口在开发板上带着,并没有配备触摸模块,为了解放它所占用的接口和IO所以要关闭它。
操作过程
关闭这个接口所占用的资源,我们先查看原理图,查看它所占用的接口都有什么。然后是设备树;再然后是内核与驱动。
原理图
在下图中我们可以看到触摸接口占用了四个IO,一个IO用作复位,一个IO用作中断信号,外加I2C1接口。由此我们需要在设备树中关它其相应的设备树节点。
![](https://img-blog.csdnimg.cn/direct/5ad8ba3d3bd14ad9925e02bb28dd22f0.png)
设备树
查看设备树文件会发现,在主设备树中只有一个I2C1使能,却没有触摸接口的驱动和节点。如下图:
看来还是需要再搜索一下,发现了,在qy-pro-rk3566-single-lcd-gpio.dtsi(原pro-rk3566-single-lcd-gpio.dtsi)中存在触摸的子节点配置,其内容如下:
这里建立了两个子节点,接口都一样,但这里并没有驱动信息。所以就这两个节点进行查询看一下它们在哪里被引用了。
通过查询可以看室他们都被引用到显示模块的子设备树去了,原始节点已经看过了,我们直接看引用节点。如下图,我们可以在这里看到它的驱动及总线地址。它的驱动是"goodix,gt9xx",这个在后面我们关闭驱动是很有用的。
应该还记得在显示模块关闭的时候,qy-pro-rk3566-single-lcd-gpio.dtsi等显示模块,已经被注释掉了,所以在主函数中只要关闭I2C1即可了。如下图一般
驱动模块
设备树节点去除完毕,接下来关闭驱动"goodix,gt9xx"。
首先,通过指令“.build.sh kernel-config”打开内核配置界面。使用查询功能查询 gt9xx 。可以看触摸模块开着呢。
顺着路径找过去把它关掉就好了,我这不需要任何触控驱动,所以把全部的触控驱动都关闭了,如下图。然后保存退出即可。接下来编译烧写。
结果
关闭成功,启动正常!