首先需要查看,在硬件中ft5406触摸IC连接到哪个i2c总线上,由于我连接的是i2c2的,因此在设备树上要在i2c2节点里面,写上ft5406设备
&i2c2 {
status = "okay";
pinctrl-0 = <&i2c2m1_xfer>;
ft5x06@38 {
status = "okay";
compatible = "edt,edt-ft5406";
reg = <0x38>;
touch-gpio = <&gpio2 RK_PC2 IRQ_TYPE_EDGE_RISING>;
interrupt-parent = <&gpio2>;
interrupts = <RK_PC2 IRQ_TYPE_LEVEL_LOW>;
reset-gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_LOW>;
touchscreen-size-x = <800>;
touchscreen-size-y = <1024>;
touch_type = <1>;
};
}:
然后需要在内核菜单中勾选ft5406的驱动选项
然后保存退出,驱动就可以正常使用
总结:主要一个是需要将中断的IO写正确,并且初始化正确,之前出现一个问题,IO没有正确初始化,导致无法触摸,其他的只要设备地址正确,触摸范围正确,基本就不会有问题。