Hello,
I'm trying to use a LCD display witch touchscreen using EDT Polytouch FocalTech FT5x06 driver. The system is using 3.13 kernel from Timesys with device tree, running on dual-core Vybrid MVF61NN151CMK50 processor.
The polytouch driver should use i2c bus for communication and gpio pin for interrupts. I can see the touch chip on i2c address 0x38. However, when I write config for the driver in the device tree, I get the following error on boot:
i2c i2c-0: IMX I2C adapter registered
irq: no irq domain found for /soc/aips-bus@40000000/gpio-controller@4004b000 !
i2c-0 is the bus touchscreen chip is on, 4004b000 is the address of gpio3, where the interrupt pin is.
the .dts file:
/* I2C-2 (400E_6000): Touch screen */
&i2c2 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
status = "okay";
polytouch: edt-ft5x06@38 {
compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
reg = <0x38>;
pinctrl-names = "default";
pinctrl-0 = <&edt_ft5x06_pins>;
interrupt-parent = <&gpio3>; // PTE22 - pin 127 ~ gpio3, pin 31
interrupts = <31 0>;
wake-gpios = <&gpio4 14 0>; // PTE5 - port3,pin14 ~ gpio4, 14
};
};
...
edt_ft5x06_pins: ft5x06grp {
fsl,pins = <
VF610_PAD_PTE22__GPIO_127 0x621 // IRQ
VF610_PAD_PTE5__GPIO_110 0x2192 // Wake
>;
};
and the definition of gpio3 in .dtsi file (almost default vf610.dtsi file provided by Freescale)
/* This is a GPIO controller device */
gpio3: gpio-controller@4004b000 {
compatible = "fsl,vf610-gpio";
#address-cells = <2>;
/* PORT C mux control: addr size, GPIO control: addr size */
reg = <0x4004b000 0x1000 0x400ff080 0x40>;
interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
gpio-ranges = <&iomuxc 0 64 32>;
};
The touch screen driver is then able to load by modprobe edt-ft5x06 (dmesg: i2c-core: driver [edt_ft5x06] registered),
but it doesn't work and provided calibrate touchscreen init script returns "Finding touchscreen using legacy method:[FAIL]"
Is there something to be added for the gpio to function as an interrupt controller? Or where the problem might be?
(Attached files are: board .dts file, SoC .dtsi file and kernel .config)
Original Attachment has been moved to: dts-3.13.zip
Original Attachment has been moved to: vf610.dtsi.zip
Original Attachment has been moved to: .config.zip