MTK 平台CTP bring up
记录MTK平台 CTP bring up的过程
一、TP的基础原理
二、bring up步骤
1.找到代码目录;
2.需要修改的地方一般为makefile,dts以及config
遇到的问题:
记录MTK平台 CTP bring up的过程
本次 TP bring up的平台是基于MT6761的8766工程,TP的ic为BOE的FT3427,和 国显的GT9293。
一、TP的基础原理
1.现在主流的屏幕技术都为电容屏,所谓的CTP;CTP从制造工艺也分为几个版本;
其的硬件部分分为三部分;触摸屏,控制IC,链接线;
其余的基础支持就不多阐述了,可以自行百度;
二、bring up步骤
1.找到代码目录;
找对应厂商提供的驱动代码,移植到对应目录下:
MTK的TP代码一般在:
/kernel/driver/input/touchscreen/mediatek/
2.需要修改的地方一般为makefile,dts以及config
DTS更改,根据是I2C 还是 是SPI总线添加对应设备(一般为i2c设备):
&i2c0 {
goodix_touch@5d {
status = "okay";
compatible = "mediatek,goodix_touch";
reg = <0x5d>;
};
ft_cap_touch@38 {
status = "okay";
compatible = "mediatek,ft_cap_touch";
reg = <0x38>;
};
};
转换坐标
CTP的坐标范围是2880*2880,而lcd是240*240,这就需要将CTP的原始坐标转换为LCD的坐标,转换很简单,因为CTP和lcd的原点都一样,都是在左上角,
转换算法: new = old * 240 / 2880; 这样,坐标转换就OK了
遇到的问题:
1.情况一:中断信号正常,需要确认i2c通信是否正常。目前基本没有i2c通信失败的,问题基本在数据处理并进行上报部分,一般起一个单线程,需要具体分析线程回调函数中的代码部分。
2.情况二:没有中断信号,需要确认中断和复位的gpio号在probe中是否获取到;确认gpio是否和硬件原理图中的gpio号一致;确认6个引脚的默认电压是否正常,触摸后电压高低变化是否满足要求,(排除是否硬件问题。ctp初始化时都会做复位操作,通过交替拉高拉低复位脚和中断脚,这部分需要同fea确认代码的流程是否满足datasheet中ic复位要求,如拉引脚的顺序和必须的延迟时间。分析代码中的中断打开关闭逻辑是否存在问题,中断中是否有调用会睡眠的函数);
3.情况三:i2c通信正常,中断正常,触摸无数据,则需要fea配合针对本项目调试tp固件,未经过调试的固件很可能产生此现象。
4.ctp的bug涉及三个层面:驱动代码部分、固件部分和硬件模组部分。三个层面分工:固件部分需要依靠fae现场支持进行调试、驱动部分需要我们定位解决、模组问题需要模组厂分析。
一些具体要求:
1、tp上报数据频率修改,getevent测试报点率,在90HZ~100HZ左右较好,一般客户要求不低80HZ
2、tp触摸到第一个点上报时间,tp ic业界较好的可以达到20ms,一般要优化到30ms内,否则会响应不及时,玩游戏等感觉有滞后感。
3、测试固件升级时间,时间过长的需要进行优化,如果用户在升级过程中关机或者异常掉电,会导致固件升级概率失败,产生ic异常和tp失效,可能无法恢复。因此升级时间越短风险越小。
4、对供应商提供的驱动代码进行优化,提升性能。如频繁的log打印,延时操作的缩减等。
5、如果支持手势唤醒功能,手机灭屏时系统会依次调度各个器件模块的suspend函数,进行休眠相关的设置,最新的android架构上,由于tp被调度的时间点比较靠后,调度后需要做一些ic相关的休眠设置和必须的延时,
因此测试反馈的手势唤醒概率失效问题,需要确认是否灭屏后立即操作引起的,驱动进行澄清。
6、用户某些界面边缘位置点击不响应问题,可先用对比机对比,是否应用设置了边缘防误触功能,确定是否非问题。
7、固定位置点击不上报数据或者跳点,通过工模ito测试检测是否通道微短、微断、变型原因引起的单体模组问题。
8、log中打印坐标点信息和固件版本信息,确认用户反馈的问题是不是已经解决但是没有升级最新版本的重复性问题。对于有确定时间点的触摸不响应或无触摸跳点,可通过坐标点信息监测是否底层tp数据正常。
9、tp跳点与触摸不报点类问题,此类问题从log中无法看出异常,可能与用户操作手法、系统卡顿等因素有关,遇到反馈此类问题时需要打开设置-开发人员选项-显示触摸操作开关,录制复现视频。通过界面显示的跟踪点可以确认是否有触摸操作。
对于一些点击和滑动操作tp有上报数据但是屏幕没有响应的,可以打开显示指针位置开关和显示界面布局开关,显示具体的应用图标的有效区范围和具体的点击坐标点位置,判断点击滑动是否点击到了有效区范围外了