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
Solved! Go to Solution.
Hi All,
We have found the problem. LCD and the touch screen power supply is provided through a MOSFET switch and some how the input to the switch is 3.3 volts but the output is 2.6V, which is barely enough to drive the touch screen controller (according to the data sheet it should be between 2.8 to 3.3 volts). The MOSFET switch has a 0Omhs bypass resistor which is not populated on the board so we soldered the 0Ohm resistor and everything works fine there on
Thanks
M. Nadeem
Hi Muhammad
if you are seeing on scope the interrupt which is generated continuously then reason
in touch controller: it may be improperly initialized or powered, also may be recommended to
check interrupt line voltage level if it is compatible with i.MX6 side.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi All,
We have found the problem. LCD and the touch screen power supply is provided through a MOSFET switch and some how the input to the switch is 3.3 volts but the output is 2.6V, which is barely enough to drive the touch screen controller (according to the data sheet it should be between 2.8 to 3.3 volts). The MOSFET switch has a 0Omhs bypass resistor which is not populated on the board so we soldered the 0Ohm resistor and everything works fine there on
Thanks
M. Nadeem