AnsweredAssumed Answered

imx6ulevk- touch screen driver for edt-ft5x06 - sending garbage data, not recognized by x11

Question asked by Muhammad Nadeem on Mar 7, 2016
Latest reply on Mar 10, 2016 by Muhammad Nadeem

Hi All,

we are using imx6ulevk evaluation kit and the build tool we are using is yocto. We have created a small interface board to connect a 7" LCD instead of the 4.3" available with the kit. touch controller used on touch screen is ft-5x06. display is working fine but the touch is not. Here is what was done so fa

- edt-ft-5x06 is enabled from the kernel config

- imx6ul-14x14-evk.dts is modified to include touch controller

      polytouch: edt-ft5x06@38 {

       compatible = "edt,edt-ft5x06";

       reg = <0x38>;

       pinctrl-names = "default";

       pinctrl-0 = <&tx28_edt_ft5x06_pins>;

       interrupt-parent = <&gpio1>;

       interrupts = <2 2>;

       reset-gpios = <&gpio1 4 1>;             

   };

- pins are configured accordingly and so is the i2c2

     tx28_edt_ft5x06_pins: ft5x06grp {
        fsl,pins = <
         MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0xb0  /* INT */
         MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0xb0  /* RESET */
   >;

  };

- since edt-ft-5x06 driver in 3.14.38 version of the kernel does not support device tree. I used the driver from 3.18.27 version of Linux which does supports device tree

After compiling and running evtest, shows the following

Available devices:

/dev/input/event0:      20cc000.snvs-pwrkey

/dev/input/event1:      EP0790M09

/dev/input/event2:      FreescaleAccelerometer

/dev/input/event3:      mag3110

/dev/input/event4:      Logitech USB Optical Mouse

Select the device event number [0-4]:

evtest after selecting 1 continuously sends data in the following format

 

 

Event: time 1457360914.424370, -------------- SYN_REPORT ------------

Event: time 1457360914.444068, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1

Event: time 1457360914.444068, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 79

Event: time 1457360914.444068, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 105

Event: time 1457360914.444068, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0

Event: time 1457360914.444068, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 95

Event: time 1457360914.444068, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 32

Event: time 1457360914.444068, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 2

Event: time 1457360914.444068, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 10460

Event: time 1457360914.444068, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 57

Event: time 1457360914.444068, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 260

Event: time 1457360914.444068, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 3

Event: time 1457360914.444068, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1

Event: time 1457360914.444068, type 3 (EV_ABS), code 0 (ABS_X), value 79

Event: time 1457360914.444068, type 3 (EV_ABS), code 1 (ABS_Y), value 105

Event: time 1457360914.444068, -------------- SYN_REPORT ------------

Event: time 1457360914.461301, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1

Event: time 1457360914.461301, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 802

Event: time 1457360914.461301, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 104

Event: time 1457360914.461301, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0

Event: time 1457360914.461301, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), val

Event: time 1457360914.461301, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 31

Event: time 1457360914.461301, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 2

Event: time 1457360914.461301, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 11

Event: time 1457360914.461301, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 140

Event: time 1457360914.461301, type 3 (EV_ABS), code 0 (ABS_X), value 802

Event: time 1457360914.461301, type 3 (EV_ABS), code 1 (ABS_Y), value 104

Event: time 1457360914.461301, -------------- SYN_REPORT ------------

Event: time 1457360914.479409, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1

Event: time 1457360914.479409, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 707

Event: time 1457360914.479409, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 145

Event: time 1457360914.479409, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0

Event: time 1457360914.479409, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 707

Event: time 1457360914.479409, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 25

Event: time 1457360914.479409, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 4

Event: time 1457360914.479409, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 10461

Event: time 1457360914.479409, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 707

Event: time 1457360914.479409, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 378

Event: time 1457360914.479409, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 2

Event: time 1457360914.479409, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1

Event: time 1457360914.479409, type 3 (EV_ABS), code 0 (ABS_X), value 707

Event: time 1457360914.479409, type 3 (EV_ABS), code 1 (ABS_Y), value 145

Event: time 1457360914.479409, -------------- SYN_REPORT ------------

On the hardware side I can scope the interrupt  which is generated continuously and I can also scope i2c2 clock and data pins which seems to be running OK

 

also X11 does not seems to recognize this control as a touch screen even though the data is garbage.

So finally my questions are

1. Why I am getting garbage data continuously, shouldn't I get the data only when the screen is touched?

2. Why x11 does not recognize it as a touch screen?

 

Any help would be much appreciated

 

Thanks

 

M. Nadeem

Outcomes