Most LCD displays now have embedded touch screen controllers that can be interfaced through I2C or SPI buses. The ConnectCore 6UL SBC Pro supports external Goodix capacitive touch controller for the AUO 10.1" LVDS LCD display, connected through port I2C1. It also supports touch controller for Fusion 7" and Fusion 10.1" LVDS LCD displays, but not by default. See Enable Fusion display for details.

Kernel configuration

You can manage the touch screen driver support through the kernel configuration:

  • Goodix I2C touchscreen (CONFIG_TOUCHSCREEN_GOODIX)

This kernel configuration option is enabled as built-in on the default ConnectCore 6UL kernel configuration file.

Kernel driver

The driver for the touch screen interface is located at:

File Description

drivers/input/touchscreen/goodix.c

Goodix Touchscreen driver

Device tree bindings and customization

The Goodix touch screen device tree binding is documented at Documentation/devicetree/bindings/input/touchscreen/goodix.yaml

Definition of the Goodix touch screen controller

ConnectCore 6UL SBC Pro device tree
&i2c1 {
	[...]

	/*
	 * An inconsistent reset sequence makes
	 * the Goodix display's touch controller respond on one of two I2C
	 * addresses: 0x14 and 0x5D. To make sure the touchscreen
	 * works every time, the touch controller's description must
	 * be duplicated for both addresses.
	 */
	goodix_touch: gt911@14 {
		compatible = "goodix,gt9271";
		reg = <0x14>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_goodix_touch>;
		interrupt-parent = <&gpio5>;
		interrupts = <2 IRQ_TYPE_EDGE_RISING>;
		irq-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&mca_ioexp_gpio 29 GPIO_ACTIVE_HIGH>;
		skip-firmware-request;
		reload-fw-on-resume;
		status = "disabled";
	};

	goodix_touch2: gt911@5d {
		compatible = "goodix,gt9271";
		reg = <0x5d>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_goodix_touch>;
		interrupt-parent = <&gpio5>;
		interrupts = <2 IRQ_TYPE_EDGE_RISING>;
		irq-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
		skip-firmware-request;
		reload-fw-on-resume;
		status = "disabled";
	};

	[...]
};