Enable support for a Fusion display

The AUO and Fusion displays share properties that prevent both of them from being enabled simultaneously in the ConnectCore 6UL SBC’s device tree:

  • The display property of the lcdif node needs to be set to one specific set of timings. This means either display’s timings can be set, but not both at the same time.

  • The touch controllers of both displays share the same I2C address (0x14), meaning both touch controllers can’t coexist in the same device tree.

Since the AUO display is enabled by default, you must make some changes to the device trees to enable the Fusion display.

Identify your display

Check the back of your 10.1" display to identify the model and determine if you must modify the device tree.

  • G101EVN01.0: this is the AUO display, so it should work with the default software.

  • CLAA101NC05: this is the Fusion display, meaning you will have to modify your device tree for it to work properly.

Modify your device tree(s)

Changing the display’s timings

The display timings are defined in the parent .dtsi file of the platform, not the final .dts file. In this case, modify the imx6ul-ccimx6ulsbc.dtsi file.

ConnectCore 6 Plus SBC

There are two Fusion displays available:

  • Fusion 10.1": for this display, modify only the display property.

    diff --git a/arch/arm/boot/dts/imx6ul-ccimx6ulsbc.dtsi b/arch/arm/boot/dts/imx6ul-ccimx6ulsbc.dtsi
    index 45a9c31..06ef95b 100644
    --- a/arch/arm/boot/dts/imx6ul-ccimx6ulsbc.dtsi
    +++ b/arch/arm/boot/dts/imx6ul-ccimx6ulsbc.dtsi
    @@ -237,7 +237,7 @@
    	&pinctrl_lcdif_clken
    	&pinctrl_lcdif_hvsync>;
    	lcd-supply = <&ldo4_ext>;       /* BU90T82 LVDS bridge power */
    -       display = <&g101evn010>;
    +       display = <&f10a0102>;
    	status = "disabled";
    
    	f07a0102: display@0 {
  • Fusion 7": modify the following properties:

    • Remove the pinctrl_lcdif_hvsync IOMUX since the 7" display doesn’t need VSYNC and HSYNC signals.

    • Remove the lcd-supply property because the LVDS bridge is not needed for this display.

    • Change the display property to point to the Fusion 7" display node.

      diff --git a/arch/arm/boot/dts/imx6ul-ccimx6ulsbc.dtsi b/arch/arm/boot/dts/imx6ul-ccimx6ulsbc.dtsi
      index 45a9c31..18f53fd 100644
      --- a/arch/arm/boot/dts/imx6ul-ccimx6ulsbc.dtsi
      +++ b/arch/arm/boot/dts/imx6ul-ccimx6ulsbc.dtsi
      @@ -234,10 +234,8 @@
      &lcdif {
      	pinctrl-names = "default";
      	pinctrl-0 = <&pinctrl_lcdif_dat0_17
      -	&pinctrl_lcdif_clken
      -	&pinctrl_lcdif_hvsync>;
      -	lcd-supply = <&ldo4_ext>; /* BU90T82 LVDS bridge power */
      -	display = <&g101evn010>;
      +	&pinctrl_lcdif_clken>;
      +	display = <&f07a0102>;
      	status = "disabled";
      
      	f07a0102: display@0 {

Modify the touch controller

The touch controllers are enabled in variant-specific .dts files, so you must first identify the device tree being used on your device to choose the correct .dts file. Once you have identified which file needs to be modified, apply the following changes.

ConnectCore 6 Plus SBC

diff --git a/arch/arm/boot/dts/imx6ul-ccimx6ulsbc-id135.dts b/arch/arm/boot/dts/imx6ul-ccimx6ulsbc-id135.dts
index 001ba03..f012773 100644
--- a/arch/arm/boot/dts/imx6ul-ccimx6ulsbc-id135.dts
+++ b/arch/arm/boot/dts/imx6ul-ccimx6ulsbc-id135.dts
@@ -84,9 +84,9 @@
// };

/* Uncomment to enable fusion touch */
-//&fusion_touch {
-//	status = "okay";
-//};
+&fusion_touch {
+	status = "okay";
+};

/*
 * Goodix touch
@@ -97,13 +97,13 @@
 * be duplicated for both addresses. This is why there are two
 * entries for the Goodix touch.
 */
-&goodix_touch1 {
-	status = "okay";
-};
+//&goodix_touch1 {
+//	status = "okay";
+//};

-&goodix_touch2 {
-	status = "okay";
-};
+//&goodix_touch2 {
+//	status = "okay";
+//};

/* Parallel LCD */
&lcdif {