1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 高通Android msm8953 驱动开发(二)--TP调试

高通Android msm8953 驱动开发(二)--TP调试

时间:2018-08-07 22:25:53

相关推荐

高通Android msm8953 驱动开发(二)--TP调试

本篇记录Andoird9 高通msm8953 汇顶gt9xx系列TP调试过程,主要涉及到以下几个知识点:

①.TP通讯的基本原理

②.TP参数的配置;

③.不同TP的兼容;

④.TP与LCD原点不一致的解决-翻转TP

一.TP通讯的基本原理

主板与TP是通过I2C协议通讯,当触摸屏被触碰,TP产生中断信号,主板驱动程序检测到相应的IO脚信号变化获取到中断事件,

再去读取tp的寄存器,获取报点,并且上报坐标给system.

二.TP参数的配置

tp参数主要涉及到几个方面,如下:

gt9xxx TP配置

三.不同TP的兼容

根据上边第二步“二.TP参数的配置”,可知道TP兼容与如下几个方面相关:

1. IC芯片地址:不同芯片地址区分不同TP

2.product-id 与sensor id:此处仅以汇顶系列为例子,其它厂商TP不一定有这个。相同id说明其IC相同,仅需根据其sensor id不同下发固件适配不同的触摸面板。

我这目前有两个TP,都是gt9xx系列,前一款product-id=911,sensor id = 0

当前dts配置为goodix,product-id = "911";

要调试的这款,上电,触摸无效,查看日志如下:

触摸 Product ID 不匹配

从日志知道驱动读取到TP product id 为9271,而dts配置的是911,因此不匹配,程序退出结束。

思考:

对应都是gt9xx系列的TP,其驱动程序是可以共用的,因此只要在配置兼容即可。有如下两个思路:

①.在dts里参照 goodix@5d创建节点,除节点名称不同,product-id值不同,对应sensor id固件不同外,其余不做修改,应能达到兼容。

②.去除驱动程序对product-id匹配限制:对应gt9xx系列的这两款TP而言,如若其sensor id不同,可根据其sensor id区分达到兼容

方案①此处未做验证,选择了方案②。

去除驱动程序对product-id匹配限制:

修改kernel\msm-4.9\drivers\input\touchscreen\gt9xx\gt9xx.c 函数goodix_ts_probe(),去除限制,如下:

去除对product-id匹配限制:

编译烧录,上电,其日志如下,读出了其sensor id是2,

读取sensor id

这样,我们在dtsi里给其配置goodix,cfg-data2固件即可,如下:

配置对应sensor id的固件

再次编译烧录,上电,触摸正常。

四.TP与LCD原点不一致的解决-翻转TP

额额额~~

还有点小问题,由于结构原因,LCD显示方向驱动配置翻转了180,因此TP原点与LCD不一致,需要修改TP原点。

怎么翻转TP原点呢?其实就是镜像X Y方向坐标。

实现如下:

原点翻转180

原点翻转180

现在剩下的就是就是根据不同sensor id 配置是否翻转原点,驱动读取TP sensor id 并选择相应组的固件,

是在gtp_init_panel()函数,在此增加判断逻辑即可。如下:

根据sensor id兼容不同TP

验证:同一8953主板,同一固件,不同的的TP,其触摸正常,原点与LCD一致,调试成功!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。