一、硬件连接
I2C总线:I2C-SDA和i2C-SCL
中断信号:touch-gpio
复位信号:reset-gpio
电源信号:power-gpio
二、驱动调试
2.1 确认从设备地址
在给TP供电正常后,检测其I2C设备从地址,或者通过datasheet查阅,方法如下:
i2cdetect -y 5
“--
”表示没有这个地址对应的 I2C
设备;
“UU
”表示这个地址的 I2C
设备已经有驱动在使用占用它了,那这个I2C
设备肯定是存在的;
其他数值表示该地址对应的 I2C
设备是存在的,并且还没有驱动程序跟它匹配。
如上图,5d
就表示当前触摸屏的I2C
地址。
2.2 dts配置
i2c node下:
compatible = "gsl-tp";
reg = <0x40>;
interrupt-parent = <&tlmm>;
interrupts = <70 0x2008>;
touch-gpio = <&tlmm 71 0x0>;
irq-gpio = <&tlmm 72 0x2002>;
gsl,panel-coords = <0 0 1080 1920>;
gsl,display-coords = <0 0 1080 1920>;
...
2.3 驱动代码
drivers/input/touchscreen/
2.4 代码流程
probe--->注册input_dev--->初始化work--->初始化中断
tp中断触发--->触发interrupt--->调用worker--->中断input子系统上报
input_mt_sync是多点上报
三、tp事件验证
getevent /dev/input/event0
or
hexdump /dev/input/event0