Hello Support,
I am experiencing an issue with the driver of an ILI2510 capacitive touchscreen.
My system is composed of:
- Toradex Verdin iMX8MP 2GB
- Mallow carrier board
- Torizon OS 7.5.0
I created my custom image using Torizon Core Builder. This is the information about my system:
Software summary
------------------------------------------------------------
Bootloader: U-Boot
Kernel version: 6.6.119-7.5.0-ge5c5595adb06 #1-Torizon SMP PREEMPT Mon Jan 5 09:23:13 UTC 2026
Kernel command line: root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/d9bdcf90247716f28a3faff414dffc034d8acc0b71267451550da27e2cb52374/0
Distro name: NAME="Torizon OS"
Distro version: VERSION_ID=7.5.0-build.30
Distro variant: VARIANT="Docker"
Hostname: verdin-imx8mp-15603402
------------------------------------------------------------
Hardware info
------------------------------------------------------------
HW model: Toradex Verdin iMX8M Plus WB on Mallow Board
Toradex version: 0064 V1.1A
Serial number: 15603402
Processor arch: aarch64
------------------------------------------------------------
This is the Device Tree Overlay (DTS) that I used to enable the ILI2510 touchscreen driver:
/* Verdin I2C channel 1 */
&i2c2 {
status = "okay";
ilitek@41 {
compatible = "ilitek,ili251x";
reg = <0x41>;
interrupt-parent = <&gpio4>;
interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2s_2_d_in_gpio>,
<&pinctrl_i2s_2_sync_gpio>;
};
};
&iomuxc {
/* Reset pin */
pinctrl_i2s_2_d_in_gpio: gpio4io30grp {
fsl,pins =
<MX8MP_IOMUXC_SAI3_RXD__GPIO4_IO30 0x184>; /* SODIMM 48 */
};
/* Interrupt pin */
pinctrl_i2s_2_sync_gpio: gpio4io31grp {
fsl,pins =
<MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31 0x1c4>; /* SODIMM 44 */
};
pinctrl_i2s_2_d_out_dsi_1_bkl_en: i2s2doutdsi1bklengrp {
fsl,pins =
<MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01 0x184>; /* SODIMM 46 */
};
};
The touchscreen is detected correctly. In fact, when I run i2cdetect -y 1 i get the following result:
torizon@verdin-imx8mp-15603402:~$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
However, when I perform a test (evtest) of the capacitive touchscreen of the LVDS display, I get the following result:
torizon@verdin-imx8mp-15603402:~$ evtest
No device specified, trying to scan all of /dev/input/event*
Not running as root, no devices may be available.
Available devices:
/dev/input/event0: 30370000.snvs:snvs-powerkey
/dev/input/event1: gpio-keys
/dev/input/event2: ILI210x Touchscreen
i select 2 and then i have this result:
Event: time 1775814097.970408, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 472 Event: time 1775814097.970408, type 3 (EV_ABS), code 0 (ABS_X), value 514 Event: time 1775814097.970408, type 3 (EV_ABS), code 1 (ABS_Y), value 472 Event: time 1775814097.970408, -------------- SYN_REPORT ------------ Event: time 1775814097.986023, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 483 Event: time 1775814097.986023, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 464 Event: time 1775814097.986023, type 3 (EV_ABS), code 0 (ABS_X), value 483 Event: time 1775814097.986023, type 3 (EV_ABS), code 1 (ABS_Y), value 464 Event: time 1775814097.986023, -------------- SYN_REPORT ------------ Event: time 1775814098.002340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 466 Event: time 1775814098.002340, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 462 Event: time 1775814098.002340, type 3 (EV_ABS), code 0 (ABS_X), value 466 Event: time 1775814098.002340, type 3 (EV_ABS), code 1 (ABS_Y), value 462 Event: time 1775814098.002340, -------------- SYN_REPORT ------------ Event: time 1775814098.019591, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 431 Event: time 1775814098.019591, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 461 Event: time 1775814098.019591, type 3 (EV_ABS), code 0 (ABS_X), value 431 Event: time 1775814098.019591, type 3 (EV_ABS), code 1 (ABS_Y), value 461 Event: time 1775814098.019591, -------------- SYN_REPORT ------------ [ 1028.774720] i2c i2c-1: <i2c_imx_read> read timedout [ 1028.779625] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -110 [ 1028.786003] ili210x_i2c 1-0041: Unable to get touch data: -110 [ 1028.792330] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1028.798536] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1028.830983] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1028.837193] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1028.908087] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1028.914300] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1028.984325] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1028.990520] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.060530] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.066737] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.138445] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.144655] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.210043] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.216255] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.286706] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.292903] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.362638] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.368856] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.439148] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.445358] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.515384] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.521580] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.591590] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.597800] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.667798] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.673993] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.744031] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.750242] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.819661] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.825877] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.896506] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.902704] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1029.972712] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1029.978925] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1030.048947] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6 [ 1030.055172] ili210x_i2c 1-0041: Unable to get touch data: -6 [ 1030.125155] ili210x_i2c 1-0041: ili251x_read_reg_common failed: -6
How can i resolve this usuee?
