Hello everyone,
I am running on a i.MX93 EVK with an LVDS connected touchscreen (typical demo setup).
Weston is operational however we cannot get the Touchscreen to operate despite loading the exc3000 module.
We get the following errors:
Sep 14 11:27:57 imx93evk-e3ng-123456789 kernel: input: EETI EXC80H60 Touch Screen as /devices/platform/soc@0/44000000.bus/44340000.i2c/i2c-0/0-002a/input/input2
Sep 14 11:27:58 imx93evk-e3ng-123456789 kernel: exc3000 0-002a: Retry 1 get EETI EXC3000 model: -151
Sep 14 11:27:58 imx93evk-e3ng-123456789 kernel: exc3000 0-002a: Retry 2 get EETI EXC3000 model: -151
Sep 14 11:27:58 imx93evk-e3ng-123456789 kernel: exc3000 0-002a: Retry 3 get EETI EXC3000 model: -151
evtest also shows that only the pwrkey interface is detected.
We are obviously missing a configuration, however we do not understand which one. Could someone shed a light on how to achieve this?
Solved! Go to Solution.
Problem solved.
The i2c, rst and gnd pins are swapped in the connector!
I have version B2 which already removed R131 however R181 is still there.
Are you sure this is the necessary rework to make this work?
Hello,
Could you share the kernel version that you are using for your test?
Also, which device tree are you using?
Saludos,
Aldo.
Hi @AldoG
Response of uname -a:
Linux 6.1.22+g66e442bc7fdc #1 SMP PREEMPT Mon Jun 12 12:31:27 UTC 2023 aarch64 GNU/Linux
I built the imx-image-multimedia literally following the Getting Started Steps. No modification beyond choosing the following device tree: imx93-11x11-evk-boe-wxga-lvds-panel.dtb
Here is the output of ls /proc-device-tree
'#address-cells' compatible interrupt-parent regulator-adc-vref regulator-vdd sound-wm8962
'#size-cells' cpus lvds_backlight regulator-audio-pwr regulator-vdd-12v sound-xcvr
aliases display-subsystem lvds_panel regulator-avdd regulator-vddo thermal-zones
bt_sco_codec ethosu memory regulator-can2-stby reserved-memory timer
chosen firmware model regulator-dvdd serial-number usdhc3_pwrseq
clock-ext1 imx93-cm33 name regulator-dvdd_sel soc@0
clock-osc-24m imx93-lpm pmu regulator-usdhc2 sound-bt-sco
clock-osc-32k interrupt-controller@48000000 psci regulator-vaa_sel sound-micfil
root@imx93evk-123456789:/proc/device-tree
Also, lsmod shows this module which if I am not mistaken it is the right one
exc3000 16384 0
Seems to me the touch panel is not loaded in the device tree however I would have expected this to be already there.
Hello,
Sorry for the delayed response, seems that you're using the correct device tree, and also from the information you have kindly provided the driver for touch seems to be loaded correctly.
The touch only support low level trigger method, the original use gpio expander which do not meet this requirement. Hardware team suggest this rework: remove R131 and short R181, directlly connect to the SoC local gpio which support low level trigger. Do you have this hardware rework done on your EVK?
Saludos,
Aldo.
Hi @AldoG
I have version B2 which already removed R131 however R181 is still there.
Are you sure this is the necessary rework to make this work?
In the notes they write: Install R181, DNP R131 to support CTP interrupt multi-touch
Hello,
Thank you for sharing the information, indeed B2 version of the EVK already have this change, so there is no need of the HW change. Also, please note that touch screen is indeed enabled in device tree:
https://github.com/nxp-imx/linux-imx/blob/lf-6.1.y/arch/arm64/boot/dts/freescale/imx93-11x11-evk-boe...
&lpi2c1 {
exc80h60: touch@2a {
compatible = "eeti,exc80h60";
reg = <0x2a>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ctp_int>;
/*
* Need to do hardware rework here:
* remove R131, short R181
*/
interrupt-parent = <&gpio2>;
interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
reset-gpios = <&pcal6524 17 GPIO_ACTIVE_HIGH>;
status = "okay";
};
};
Could you check if the device is found in the I2C port with the following command:
$ i2cdetect -y 0
Saludos,
Aldo.
Hi
Sorry, if I look at the device tree, it is indicating that the device is in 1 at address 0x2a. This is not shown in my setup. If I flip the cables SDA, SCL it also does not appear.
Why did you suggest i2cdetect -y 0?
Hi @AldoG
Sorry for the delay. I was travelling.
Here is the output:. Do you know the address of the touch controller?
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- 1a -- -- -- -- --
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- 4a -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- 6a -- -- -- -- --
70: -- -- -- -- -- -- -- --
HI @AldoG
More output
root@imx93evk:~# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- UU -- -- UU -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- UU -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@imx93ev:~# i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: UU UU 52 UU -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- 71 -- 73 -- -- -- --
i2cdump didnt really help.