Gt9xx 1085x600 [patched] May 2026
To configure a Goodix GT9xx series touchscreen (such as GT911 or GT927) for a 1085x600 resolution, you must provide a specific configuration profile to the controller's memory upon initialization. This is typically handled through a kernel driver (e.g., goodix.c or gt9xx.c) or via a device tree entry. Core Configuration Parameters
The resolution is set by writing specific values to the Configuration Information registers (starting at 0x8047). For a 1085x600 display, the hex values for these registers are: X Resolution (1085): 0x3D (Low Byte) and 0x04 (High Byte) Y Resolution (600): 0x58 (Low Byte) and 0x02 (High Byte) Implementation Methods
You can apply these settings in several ways depending on your environment:
Device Tree (Linux/Android):If your system uses a Device Tree (DTS), update the touchscreen-size-x and touchscreen-size-y properties under the goodix or gt9xx node:
&i2c1 touchscreen@5d compatible = "goodix,gt9xx"; reg = <0x5d>; touchscreen-size-x = <1085>; touchscreen-size-y = <600>; // ... other properties ; ; Use code with caution. Copied to clipboard gt9xx 1085x600
Firmware Header (GoodixFW.h):In standalone drivers, you may need to edit a hardcoded configuration array. The resolution is usually located at Index 1 of the config data.
Checksum Requirement:The GT9xx series requires a checksum at the end of the configuration packet. If the checksum is incorrect, the chip will ignore the entire configuration and default to a factory setting (often 1024x600). The checksum is calculated as (~(sum of all previous bytes) + 1). Key Hardware Pins
To ensure the controller accepts the configuration, verify the following physical connections:
INT Pin: Must be set to floating or handled correctly by the host during reset. To configure a Goodix GT9xx series touchscreen (such
RESET Pin: Must be pulled low for at least 100µs to ensure a reliable reset before sending new config data.
Are you working on an embedded Linux system like a Raspberry Pi, or a custom Android build?
Linux: Adding GT9xx touchscreen drivers to AM335x SDK - TI E2E
Here’s a useful technical breakdown of the GT9XX family (often GT911, GT9147, GT9271, GT9286) driving a 1085×600 touchscreen — an unusual but real resolution found in some industrial displays, automotive head units, and custom panels. Problem : Touchscreen Not Detected
Problem: Touchscreen Not Detected
- Solution:
- Check kernel logs:
dmesg | grep -i touch
- Ensure the correct module is loaded (
goodix_ts).
- Update the kernel to a newer version (GT9xx may not be supported in older kernels).
- Verify I²C connections on hardware (e.g., Raspberry Pi GPIO setup).
3. Calibration (if needed)
Most GT9xx auto-calibrate, but if touch is offset:
# Using xinput (X11)
xinput set-prop "Goodix Capacitive Touch" "Coordinate Transformation Matrix" \
0.989 0 0.0055 0 1 0 0 0 1
Calculate:
scale_x = 1024 / 1085 if mismatch between reported and actual.
1. The Controller: Goodix GT9XX Series
The "GT9XX" designation refers to a family of capacitive touch screen controllers (TSCs) manufactured by Goodix Technology, a leading supplier of touch solutions based in China.
- The Chipset Family: The series typically includes popular models like the GT911, GT9271, GT928, and GT915L. While they differ slightly in features (such as the number of touch points supported or power consumption), they share a common architecture.
- Technology: These are Capacitive Touch controllers (Projected Capacitive Touch - PCAP). They rely on the electrical properties of the human body to detect touch.
- Interface: They almost universally communicate with the host processor (CPU) via the I2C protocol (Inter-Integrated Circuit).
- Popularity: These chips are ubiquitous in the maker community and industrial sector because they are cheap, readily available, and have open-source driver support (making them popular for Arduino, ESP32, and Raspberry Pi projects).
3.3 Android Integration
For Android-based car head units or POS systems with 1085x600:
- The GT9XX driver is part of the Android Common Kernel.
- You must modify the
input calibration file or use the wm8960 or ts_srv HAL modules to handle the non-standard resolution.