Hyperpixel 4.0 digitiser not working

Hi.

I got Hyperpixel 4 to work in Volumio 2.673 on a Raspberry PI 2 Model B. The screen works perfectly (very nice!), but I cannot make the touch capability work (no /dev/input/touchscreen node).

In dmseg, I can see that the goodix driver is not being loaded at boot:

[   10.926918] i2c /dev entries driver
[   11.011425] systemd-udevd[176]: starting version 215
[   11.539022] gpio-10 (i2c@0): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[   11.539134] gpio-11 (i2c@0): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[   11.541982] i2c-gpio i2c@0: using lines 10 (SDA) and 11 (SCL)
[   11.674806] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[   11.677763] bcm2835_vc_sm_cma_probe: Videocore shared memory driver

In /var/log/boot.log, the screen is correctly initiated:

[ OK ] Started HyperPixel 4.0" LCD Display Initialization.

The i2cdetect shows:

volumio@volumio:~$ sudo i2cdetect -y 3
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- 5d -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Then, tt is in present in /sys/bus/i2c/devices/i2c-3

volumio@volumio:/sys/bus/i2c/devices/i2c-3$ ls -latr
total 0
drwxr-xr-x 4 root root    0 Dec 15 14:44 ..
-rw-r--r-- 1 root root 4096 Dec 15 14:44 uevent
lrwxrwxrwx 1 root root    0 Dec 15 14:44 subsystem -> ../../../../bus/i2c
-r--r--r-- 1 root root 4096 Dec 15 14:44 name
drwxr-xr-x 3 root root    0 Dec 15 14:44 i2c-dev
drwxr-xr-x 4 root root    0 Dec 15 14:44 .
drwxr-xr-x 2 root root    0 Dec 15 14:51 power
lrwxrwxrwx 1 root root    0 Dec 15 14:51 of_node -> ../../../../firmware/devicetree/base/i2c@0
--w------- 1 root root 4096 Dec 15 14:51 new_device
lrwxrwxrwx 1 root root    0 Dec 15 14:51 device -> ../../i2c@0
--w------- 1 root root 4096 Dec 15 14:51 delete_device
volumio@volumio:/sys/bus/i2c/devices/i2c-3$ cat name
i2c@0
volumio@volumio:/sys/bus/i2c/devices/i2c-3$ cat uevent
OF_NAME=i2c
OF_FULLNAME=/i2c@0
OF_COMPATIBLE_0=i2c-gpio
OF_COMPATIBLE_N=1
volumio@volumio:/sys/bus/i2c/devices/i2c-3$

But /proc/bus/input/devices is empty.

If I do a sudo modprobe goodix, it is loaded with no error, but still the digitiser do not work.

This is the goodix module info:

volumio@volumio:/sys/bus/i2c/devices/i2c-3$ sudo modinfo goodix
filename:       /lib/modules/4.19.79-v7+/kernel/drivers/input/touchscreen/goodix.ko
license:        GPL v2
description:    Goodix touchscreen driver
author:         Bastien Nocera <hadess@hadess.net>
author:         Benjamin Tissoires <benjamin.tissoires@gmail.com>
srcversion:     BA08C10B4BAF0E8784AAD02
alias:          i2c:GDIX1001:00
alias:          of:N*T*Cgoodix,gt967C*
alias:          of:N*T*Cgoodix,gt967
alias:          of:N*T*Cgoodix,gt928C*
alias:          of:N*T*Cgoodix,gt928
alias:          of:N*T*Cgoodix,gt9271C*
alias:          of:N*T*Cgoodix,gt9271
alias:          of:N*T*Cgoodix,gt927C*
alias:          of:N*T*Cgoodix,gt927
alias:          of:N*T*Cgoodix,gt912C*
alias:          of:N*T*Cgoodix,gt912
alias:          of:N*T*Cgoodix,gt9110C*
alias:          of:N*T*Cgoodix,gt9110
alias:          of:N*T*Cgoodix,gt911C*
alias:          of:N*T*Cgoodix,gt911
alias:          of:N*T*Cgoodix,gt1151C*
alias:          of:N*T*Cgoodix,gt1151
depends:
intree:         Y
name:           goodix
vermagic:       4.19.79-v7+ SMP mod_unload modversions ARMv7 p2v8
volumio@volumio:/sys/bus/i2c/devices/i2c-3$

It’s almost, almost done.

What could be missing?

I would love to use this touchscreen.

Thanks!

Hi.

No help?

I have compared the results with a Raspbian Buster installation, where the touchscreen works properly under /dev/input/event0

I have noticed in Volumio that only below /sys/bus/i2c/devices/ there is a i2c-3 folder, but no 3-005d, like in Raspbian.

In Volumio:

volumio@volumio:~$ udevadm info /sys/bus/i2c/devices/i2c-3                      P: /devices/platform/i2c@0/i2c-3
E: DEVPATH=/devices/platform/i2c@0/i2c-3
E: OF_COMPATIBLE_0=i2c-gpio
E: OF_COMPATIBLE_N=1
E: OF_FULLNAME=/i2c@0
E: OF_NAME=i2c
E: SUBSYSTEM=i2c

but in Raspbian:

pi@raspberrypi:~ $ udevadm info /sys/bus/i2c/devices/i2c-3
P: /devices/platform/i2c@0/i2c-3
L: 0
E: DEVPATH=/devices/platform/i2c@0/i2c-3
E: OF_NAME=i2c
E: OF_FULLNAME=/i2c@0
E: OF_COMPATIBLE_0=i2c-gpio
E: OF_COMPATIBLE_N=1
E: SUBSYSTEM=i2c

pi@raspberrypi:~ $ udevadm info /sys/bus/i2c/devices/3-005d
P: /devices/platform/i2c@0/i2c-3/3-005d
L: 0
E: DEVPATH=/devices/platform/i2c@0/i2c-3/3-005d
E: DRIVER=Goodix-TS
E: OF_NAME=ft6236
E: OF_FULLNAME=/i2c@0/ft6236@5d
E: OF_COMPATIBLE_0=goodix,gt911
E: OF_COMPATIBLE_N=1
E: MODALIAS=of:Nft6236T<NULL>Cgoodix,gt911
E: SUBSYSTEM=i2c

If I execute in volumio:

volumio@volumio:~$ udevadm trigger --dry-run --verbose --type=devices --subsystem-match=i2c
/sys/devices/platform/i2c@0/i2c-3

but in Raspbian, there is an additional line:

pi@raspberrypi:~ $ udevadm trigger --dry-run --verbose --type=devices --subsystem-match=i2c
/sys/devices/platform/i2c@0/i2c-3
/sys/devices/platform/i2c@0/i2c-3/3-005d

It is like the goodix module driver is not loaded because it is not needed and if it is forced to be loaded, it is not attached to the device as expected.

Is it possible to solve it?

BTW, systemctl -f does not give any useful information.

Thanks!