Touch screen

The i.MX6 CPU does not have a dedicated touch screen interface. Most LCD displays now have embedded touch screen controllers that can be interfaced through I2C or SPI buses.

The ConnectCore 6 SBC supports external capacitive touch controller for the Goodix 10.1" LVDS LCD display, connected through port I2C3. It also supports touch controller for Fusion 7" and Fusion 10.1" LVDS LCD displays, but not by default. See Enable support for a Fusion display for details.

The ConnectCore 6 SBC LVDS interface connects an external touch controller to the I2C3 bus. Digi Embedded Yocto supports Touch Revolution's Fusion 10.1" LVDS LCD display that can be ordered from Digi's sales representatives. Support for other displays and touch controllers will need BSP customizations.

Kernel configuration

You can manage the Fusion touch driver support through the kernel configuration option:

These options are enabled as built-in on the default ConnectCore 6 SBC kernel configuration file.

Platform driver mapping

The Fusion touch screen driver is located at:

File Description
/drivers/input/touchscreen/goodix.c Goodix touch screen driver
drivers/input/touchscreen/fusion.c

Fusion touch screen driver

Device tree bindings and customization

Both the Goodix and Fusion touch screen interfaces are connected to ConnectCore 6 SBC via port I2C3 at address 0x10.The interrupt line is routed:

Definition of the Goodix touch screen controller

ConnectCore 6 SBC
&i2c3 {
      
    [...]
  
    goodix_touch: gt911@14 {
        compatible = "goodix,gt9271";
        reg = <0x14>;
        /* Interrupt for LVDS0 */
        interrupt-parent = <&gpio7>;
        interrupts = <11 IRQ_TYPE_EDGE_RISING>;
        irq-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>;
        /* Interrupt for LVDS1 */
        //interrupt-parent = <&gpio3>;
        //interrupts = <23 IRQ_TYPE_EDGE_RISING>;
        //irq-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
        skip-firmware-request;
        status = "disabled";
    };
  
    [...]
};

Definition of the Fusion touch screen controller

ConnectCore 6 SBC
&i2c3 {
     
    [...]
 
    fusion@10 {
        compatible = "touchrev,fusion-touch";
        reg = <0x10>;
        /* Interrupt for LVDS0 */
        interrupt-parent = <&gpio7>;
        interrupts = <11 1>;
        /* Interrupt for LVDS1 */
        //interrupt-parent = <&gpio3>;
        //interrupts = <23 1>;
        status = "okay";
    };
 
    [...]
};