Most LCD displays now have embedded touch screen controllers that can be interfaced through I2C or SPI buses. The ConnectCore 8M Mini BSP supports external Goodix capacitive touch controller for the AUO 10.1" LVDS LCD display.
On the ConnectCore 8M Mini Development Kit:
-
Goodix touch controller is connected via the I2C2 port in the LVDS interface at address 0x14. The interrupt line is routed to GPIO4_28 of the i.MX8M Mini CPU.
Kernel configuration
You can manage the Goodix touch controller support through the following kernel configuration option:
-
Goodix I2C touchscreen (
CONFIG_TOUCHSCREEN_GOODIX
)
This option is enabled as built-in on the default ConnectCore 8M Mini kernel configuration file.
Kernel driver
File | Description |
---|---|
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
&i2c2 {
[...]
/*
* 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: gt9271@14 {
compatible = "goodix,gt9271";
reg = <0x14>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_touch>;
/* LVDS interrupt */
interrupt-parent = <&gpio4>;
interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
irq-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
reload-fw-on-resume;
skip-firmware-request;
vin-supply = <®_5v_board>;
status = "disabled";
};
goodix_touch2: gt9271@5d {
compatible = "goodix,gt9271";
reg = <0x5d>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_touch>;
/* LVDS interrupt */
interrupt-parent = <&gpio4>;
interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
irq-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
reload-fw-on-resume;
skip-firmware-request;
vin-supply = <®_5v_board>;
status = "disabled";
};
[...]
};
The touch screen devices are linked to their corresponding LCD displays. Since these are optional peripherals, you must enable the corresponding device tree overlay. Check Device tree files and overlays for reference.