AnsweredAssumed Answered

Problems Bringing up the FT5x06 touch controller

Question asked by hrushinale on Jul 20, 2016
Latest reply on Dec 10, 2017 by nandish gurulingappa

Hello all,

I am trying to bring up the touch for New haven display which is using FT5406 touch controller . For that purpose I used the drivers given in the Boundary device kernel f5x06_ts.c.Please see the attached driver file.The slave address given for this controller is 0x70.My device tree Node is as follow:

 

&i2c3 {

    clock-frequency = <100000>;

    pinctrl-names = "default";

    pinctrl-0 = <&pinctrl_i2c3>;

    status = "okay";

   

    polytouch: edt-ft5x06@70 {

        //compatible = "edt,edt-ft5406","edt,edt-ft5x06";

        compatible = "ft5x06,ft5x06-touch";

        //compatible = "ft5x06-ts","ft5x06,ft5x06-touch";

        reg = <0x70>;

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_edt_ft5x06>;

        interrupt-parent = <&gpio4>;

        interrupts = <17 2 IRQ_TYPE_EDGE_FALLING>;

        //reset-gpios = <&gpio7 12 1>;

        wake-gpios = <&gpio3 21 0>;

        linux,wakeup;

    };

 

};

 

        pinctrl_edt_ft5x06:edt-ft5x06grp {

            fsl,pins = <

                MX6QDL_PAD_EIM_D21__GPIO3_IO21         0x1b0b0   // For Touchscreen Wake up

                MX6QDL_PAD_DI0_PIN4__GPIO4_IO20       0x1b0b0  //For Touch Interrupt

            >;

        };

 

After that when I am booting kernel sometimes I am fetting kernel panic

[<802b00a4>] (gpiod_to_irq) from [<8042c0d4>] (ts_probe+0x16c/0x390)

[<8042c0d4>] (ts_probe) from [<8033568c>] (driver_probe_device+0x110/0x24c)

[<8033568c>] (driver_probe_device) from [<80335898>] (__driver_attach+0x8c/0x90)

[<80335898>] (__driver_attach) from [<80333be4>] (bus_for_each_dev+0x6c/0xa0)

[<80333be4>] (bus_for_each_dev) from [<80334e44>] (bus_add_driver+0x148/0x1f0)

[<80334e44>] (bus_add_driver) from [<80335e94>] (driver_register+0x78/0xf8)

[<80335e94>] (driver_register) from [<804377f8>] (i2c_register_driver+0x30/0xb8)

[<804377f8>] (i2c_register_driver) from [<80d466ac>] (ts_init+0x14/0x40)

[<80d466ac>] (ts_init) from [<8000897c>] (do_one_initcall+0xf8/0x154)

[<8000897c>] (do_one_initcall) from [<80d16c54>] (kernel_init_freeable+0x138/0x1d8)

[<80d16c54>] (kernel_init_freeable) from [<806d54bc>] (kernel_init+0x8/0xe8)

[<806d54bc>] (kernel_init) from [<8000e5f8>] (ret_from_fork+0x14/0x3c)

Code: 15d3004c e12fff1e e2503000 0a00000e (e5930000)

---[ end trace a2c9ca4310e0cf39 ]---

Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

 

and some times I am getting :

Ft5x06:Could not detect touch screen -1

If any one has brought up this controller before then please help me.

Outcomes