基于全志T133-s3(Tina Linux)移植5寸RGB触摸屏驱动(FT5316)
1.硬件电路
1.1.开发板硬件电路

1.2.触摸屏接口定义

1.3.触摸屏转接板
这里需要一个转接板,不然没办法使用,板子是6pin的触摸接口,显示屏的是10pin的接口。
 
2.触摸驱动(focaltech_touch)
2.1代码准备
首先,我们需要获得驱动程序,一般可以找厂家获得,也可以在 Github Gitee 上找到。

然后将驱动文件复制进 lichee/linux-5.4/drivers/input/touchscreen 文件夹内,其实就是内核目录下的路径。 
2.2.修改脚本
1)编辑 lichee/linux-5.4/drivers/input/touchescreen/Kconfig ,增加引索
 2)在 lichee/linux-5.4/drivers/input/touchescreen/Makefile 里增加编译文件夹

2.3.添加驱动
配置完成,就可以在 make kernel_menuconfig 里找到这个选项了,将其编译到内核。
Device Drivers --> Input device support --> Touchscreens

2.4.设备树适配
1)内核设备树路径如下:
Tina-Linux/device/config/chips/t113/configs/mq_r/board.dts
2)由于我们开发板用的是twi2(i2c_2),所以我们需要配置一下对应的设备树,从设备地址是0x38,具体请参考芯片手册。
&twi2 {
clock-frequency = <400000>;
pinctrl-0 = <&twi2_pins_a>;
pinctrl-1 = <&twi2_pins_b>;
pinctrl-names = "default", "sleep";
dmas = <&dma 45>, <&dma 45>;
dma-names = "tx", "rx";
status = "okay";
ctp@38 {
compatible = "focaltech,fts";
reg = <0x38>;
status = "okay";
interrupt-parent = <&pio>;
interrupts = <PB 3 IRQ_TYPE_LEVEL_LOW>;
focaltech,reset-gpio = <&pio PB 2 GPIO_ACTIVE_HIGH>;
focaltech,irq-gpio = <&pio PB 3 IRQ_TYPE_LEVEL_LOW>;
focaltech,max-touch-number = <2>;
focaltech,display-coords = <0 0 800 480>;
focaltech,reg_vdd = <®_pio3_3>;
focaltech,reg_avdd = <®_pio3_3>;
};
};
- 这里设备树一定要配置好,不然prob的时候,是没办法匹配的,也就不会有设备节点,设备节点是event1
3.触摸屏测试
1)这里测试使用了LVGL的测试程序,也可以使用tslib去进行测试,这里就不过多讲,大家可以自己尝试一下。
链接: link (https://live.csdn.net/v/249946?spm=1001.2014.3001.5501)
|