Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Attempting to get 10 inch LCD touch to work #1157

Open
atlaste opened this issue Dec 28, 2024 · 2 comments
Open

Attempting to get 10 inch LCD touch to work #1157

atlaste opened this issue Dec 28, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@atlaste
Copy link

atlaste commented Dec 28, 2024

What happened?

Trying to get the official 10" LCD from Orange PI to work

Kernel version

5.10.0-1012-rockchip

SBC model

Orange PI 5 MAX

What operating system are you seeing this problem on?

Ubuntu 22.04 LTS (Jammy Jellyfish)

What this is about

First off, I'd like to thank Riek for his work. I'm also leaving this for reference, so other people can benefit from this. My goal here is to have the OPI 5 running in Kiosk mode.

Current status:

Display, X11, kiosk mode work.
Goodix touch panel does not work.

What I did:

I've gathered information from various places here, so I though it would be helpful to make some remarks on how to do this.

For the wiring, check out the manual from the OPI website. Don't look at the silkscreen, because apparently you need to put pin 40 in the connector at the spot of pin 1. Well whatever...

Next, DO NOT grab the latest kernel. It just doesn't work with the LCD panels. You need the older kernel version. You can spend days troubleshooting this, like I did.

Next, you need to add some overlays to get this working. Edit /etc/defaults/u-boot with your favorite editor and add:

U_BOOT_FDT="/usr/lib/firmware/5.10.0-1012-rockchip/device-tree/rockchip/rk3588-orangepi-5-max.dtb"
U_BOOT_FDT_OVERLAYS="orangepi-5-max-disable-leds.dtbo orangepi-5-max-lcd.dtbo rk3588-i2c7-m3.dtbo"
U_BOOT_FDT_OVERLAYS_DIR="/usr/lib/firmware/5.10.0-1012-rockchip/device-tree/rockchip/overlay"

Obviously, not everyone needs the '-max' but something else- go to the overlay folder and check it out.

The disable-leds is obviously for disabling the annoying LED. The I2C7 was my attempt to enable the I2C port for the touch panel; apparently this is a Goodix GT9271 IC, which runs through I2C. From the MAX datasheet (OPI website) I found the schematic from the board, and from that you can gather the I2C port. Pin 23/24 sais I2C7_SCL_M0 / I2C7_SCA_M0 -- which implies I2C port 7.

Reboot and see your LCD panel come to live. Great! But we're obviously not there yet.

That being done, you can go ahead and install X and setup a kiosk. Like: https://blog.r0b.io/post/minimal-rpi-kiosk/ . Other than that, put a line in /etc/X11/Xwrapper.config: allowed_users=anybody and run startx.

At this point, you have a kiosk running with Chromium.

Touch screen

The touch screen is apparently a Goodix GT9271 touch screen. So from what I gathered, there's a linux driver named "gt9xx" which contains the relevant code. In /usr/lib/modules/5.10.0-1012-rockchip I found that modules.builtin contains kernel/drivers/input/touchscreen/gt9xx/goodix_gt9xx.ko... but unfortunately its not picked up by the kernel for some reason.

If anyone knows the answer, please let me know.

@atlaste atlaste added the bug Something isn't working label Dec 28, 2024
@atlaste
Copy link
Author

atlaste commented Dec 28, 2024

Just some minor progress...

  1. Apparently the rk3588-i2c7-m3.dtbo overlay is not needed. It doesn't seem to do much harm tho.

  2. /sys/firmware/devicetree/base/i2c@fec90000/touchscreen@14 has a compatible file with the string "goodix,gt9271". Just to be sure, let's see if it's also found as an i2c device? The name is apparently "touchscreen".

i2cdetect -a 7 -> 0x14 is found, which is correct.

  1. /proc/bus/input/devices does not list the touch screen. Nor does dmesg.

Just to check if there is no physical issue I booted in the official ubuntu from OrangePi and found:

I: Bus=0018 Vendor=0416 Product=2437 Version=1020
N: Name="Goodix Capacitive TouchScreen"
P: Phys=input/ts
S: Sysfs=/devices/platform/fec90000.i2c/i2c-7/7-0014/input/input2
U: Uniq=
H: Handlers=kbd event2 dmcfreq
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 2000000000000001 f800000000000000
B: ABS=265800000000003

and in dmesg:

[    6.248343] Goodix-TS 7-0014: supply AVDD28 not found, using dummy regulator
[    6.248386] Goodix-TS 7-0014: supply VDDIO not found, using dummy regulator
[    6.345810] Goodix-TS 7-0014: ID 9271, version: 1020
[    6.457773] Goodix-TS 7-0014: Direct firmware load for goodix_9271_cfg.bin failed with error -2
[    6.475272] input: Goodix Capacitive TouchScreen as /devices/platform/fec90000.i2c/i2c-7/7-0014/input/input2

So... Goodix-TS is a separate driver ("Goodix"), which isn't compiled in the kernel. GT9xx is a different driver, which is available in the linux distro. So I suppose I need to build a kernel module.

@disruptivepatternmaterial

Just trying to learn here...so I am using 6.11.0-1006-rockchip and there is no ......device-tree/rockchip/overlay/rock-5b-radxa-display-8hd.dtbo guessing from your bug here, and the lack of this file in the 6.11 here, I am guessing that I need to go back a release to find these files to make the display work ... even to get as far as you have? Or is there a way to generate these files for the newer kernel?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants