AnsweredAssumed Answered

Polytouch touchscreen driver issue: no irq domain found

Question asked by David W. on Apr 10, 2015


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-cells = <2>;


                #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:

Original Attachment has been moved to:

Original Attachment has been moved to: