goodix,gt928触屏驱动移植,飞凌OKMX6Q/DL-C板子由板级文件到设备树移植

使用的是飞凌OKMX6Q/DL-C板子,和它对应的goodix,gt928模块。由3.0.35的板级文件移植到飞思卡尔官方IMX6Q的4.1.15内核的设备树使用,设备树关于显示部分也是参考天嵌E9_V3的板子的imx6qdl-sabresd.dtsi的设备树。

飞凌OKMX6Q/DL-C板子 触屏的IIC线与LVDS在一起的,如下如是飞凌板子的触屏的原理图:


下图是飞思卡尔官方的触屏原理图:


因为官方没有复位脚,而飞凌板子有复位脚,查看飞凌提供的屏板子触屏接口的原理图与实物对比:

 

这上面也显示有四个引脚,因此需要配置这四个引脚,参考天嵌E9_V3板子的设备树,设置如下

好了,用的是飞思卡尔官网的的内核里面的goodix.c驱动,编译后运行,IIC挂载成功,但是触屏没有任何反应,打开设备文件点击触屏也没有任何打印信息。但也的确实触屏已经挂载成功,

后来发现是因为官方板子没有唤醒脚,驱动里面也没有复位功能,但是,飞凌的有唤醒脚,在对板子IRQ的引脚拉低一小段时间后触屏就能正常使用,因此对比飞凌的触屏驱动与飞思卡尔的驱动,添加了唤醒的程序;


然后触屏就能够在内核启动后正常工作了,但是内核在启动过程中的打印信息灭有改变。点击触屏也有打印信息了。


然而通过触屏程序验证时,X,Y轴和屏幕的分辨大小是反着的,因此又来改驱动。在这两个地方反一下就可以了,但是通过坐标打印出来的位置XY轴的最大值依然是反着的,但已经能够像正常触屏一样使用了。


总结:也有通过下图计算的方法换算XY轴的分辨率,也能实现正常使用,但是卡顿十分明显,而且不能实现多点触发。主要是没考到要自己添加唤醒程序,以为官方驱动里面已经有了,所以在这里浪费了一些时间。



猜你喜欢

转载自blog.csdn.net/qq_41133610/article/details/80387814
今日推荐