Dear all, could someone help me with Goodix I2C touchscreen connection?
I use linux-mainline-5.14
Enabled goodix module in the kernel.
Disabled i2s in /boot/env.txt
overlays=uart3 pwm_f i2c3 watchdog
Modified build/linux-mainline-5.14/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi
&i2c_AO {
status = "okay";
pinctrl-0 = <&i2c_ao_sck_pins>, <&i2c_ao_sda_pins>;
pinctrl-names = "default";
khadas_mcu: system-controller@18 {
compatible = "khadas,mcu";
reg = <0x18>;
#cooling-cells = <2>;
};
// skipped
goodix@14 {
compatible = "goodix,gt9110";
reg = <0x14>;
interrupt-parent = <&gpio>;
// interrupts = <&gpio GPIOH_4 IRQ_TYPE_LEVEL_LOW>;
irq-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_HIGH>; // GPIOH_4 = TP_INT = 431
reset-gpios = <&gpio GPIOZ_15 GPIO_ACTIVE_HIGH>; // GPIOZ_15 = TP_RST = 426
};
goodix@5d {
compatible = "goodix,gt9110";
reg = <0x5d>;
interrupt-parent = <&gpio>;
// interrupts = <&gpio GPIOH_4 IRQ_TYPE_LEVEL_LOW>;
irq-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_HIGH>; // GPIOH_4 = TP_INT
reset-gpios = <&gpio GPIOZ_15 GPIO_ACTIVE_HIGH>; // GPIOZ_15 = TP_RST
};
};
On VIM3 boot stage I got the following:
[ 1.266302] Goodix-TS 4-0014: supply AVDD28 not found, using dummy regulator
[ 1.271824] Goodix-TS 4-0014: supply VDDIO not found, using dummy regulator
[ 1.377840] Goodix-TS 4-0014: i2c test failed attempt 1: -6
[ 1.405826] Goodix-TS 4-0014: i2c test failed attempt 2: -6
[ 1.433644] Goodix-TS 4-0014: I2C communication failure: -6
[ 1.434221] Goodix-TS 4-005d: supply AVDD28 not found, using dummy regulator
[ 1.440644] Goodix-TS 4-005d: supply VDDIO not found, using dummy regulator
[ 1.547851] Goodix-TS 4-005d: ID 9110, version: 1050
[ 1.547931] Goodix-TS 4-005d: Direct firmware load for goodix_9110_cfg.bin failed with error -2
Please find an attached diagram from logic analyzer for VIM3.
goodix driver tried to drop RST line twice and reported error.
Also, I’ve attached the diagram from Arduino ESP32, that works well.
Arduino dropped RST and got an INT.
That how it should work.
In my opinion in my setup VIM3 does not process TouchPanel interrupt properly.
Could someone explain the proper DTS way for GPIOH_4 as an interrupt?
Honestly speaking I do not understand how to use
interrupt-parent
interrupts
irq-gpios
Thank you in advance.