本文主要是介绍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轴的分辨率,也能实现正常使用,但是卡顿十分明显,而且不能实现多点触发。主要是没考到要自己添加唤醒程序,以为官方驱动里面已经有了,所以在这里浪费了一些时间。
这篇关于goodix,gt928触屏驱动移植,飞凌OKMX6Q/DL-C板子由板级文件到设备树移植的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!