一、TP 相关概念
- 基本报点原理:当屏幕感应到手指的接触或者靠近,会产生一个外部中断给 CPU,在中断中,一般中断下半部,通过I2C总线,从TP的IC中读取相关的信息,经过一定的数据处理,上报X,Y坐标值。
- 涉及机制:
(1) input 机制:
linux输入子系统从上到下由三层实现,分别为:事件处理层、核心层和设备驱动层。
设备驱动层:主要实现对硬件设备的读写访问,中断设置,并把硬件产生的事件转换为核心层定义的规范提交给事件处理层。
核心层:为设备驱动层提供了规范和接口。只关心如何驱动硬件并获得硬件数据(例如按下的按键数据),然后调用核心层提供的接口,核心层会自动把数据提交给事件处理层。
事件处理层:则是用户编程的接口(设备节点),并处理驱动层提交的数据处理。
(2)中断,定时器
上半部。下半部(上半部登记中断,下半部中断处理,且不在中断服务上下文中执行)
RTC(系统关闭后仍可计时),系统定时器(内核定时机制,注册中断处理程序,周期性触发中断,响应中断处理程序)
(3)I2C
双向串行,一条数据线 SDA,一条时钟线 SCL。
(S3706 通过I2C与处理器通信,所以只要调通I2C,TP调试工作基本就完成;I2C是不用时拉高,传输数据时才会有拉低的信号。如果log 显示 I2C忙,那就有可能I2C没有拉高)
二、TP 驱动开发/移植流程
新屏驱动移植及 bring up (synaptics 为例)
- 将厂商驱动代码(synaptics dsx文件夹)移植到 kernel/msm-4.9/drivers/input/touchscreen 目录下,将 syna