The LVDS Display Bridge (LDB) connects the Image Processing Unit (IPU) to an external LVDS display interface.

The ConnectCore 6 Plus SBC contains two LVDS display connectors.

Kernel configuration

You can manage the LDB driver support through the kernel configuration option:

  • MXC LDB (CONFIG_FB_MXC_LDB)

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

Platform driver mapping

The LDB driver for the {cpu-family} is located at:

File Description

drivers/video/fbdev/mxc/ldb.c

LDB display driver

Device tree bindings and customization

The {cpu-family} LDB interface device tree binding is documented at Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt.

The LDB interface is defined in the {cpu-family} CPU and ConnectCore 6 Plus SBC device tree files.

IOMUX configuration

The LVDS interfaces use dedicated pins. No IOMUX configuration is necessary.

LVDS channels

ConnectCore 6 Plus SBC device tree
&ldb {
	lvds-channel@0 {
		fsl,data-mapping = "spwg";
		fsl,data-width = <18>;
		crtc = "ipu2-di0";
		primary;

		display-timings {
			native-mode = <&g101evn010_1>;

			/* Fusion 10" F10A-0102 */
			hsd101pfw2_1: timing@0 {
				clock-frequency = <45000000>;
				hactive = <1024>;
				vactive = <600>;
				hfront-porch = <0>;
				hback-porch = <0>;
				hsync-len = <176>;
				vback-porch = <0>;
				vfront-porch = <0>;
				vsync-len = <25>;
			};

			/* AUO G101EVN01.0 */
			g101evn010_1: timing@1 {
				clock-frequency = <68930000>;
				hactive = <1280>;
				vactive = <800>;
				hfront-porch = <120>;
				hback-porch = <0>;
				hsync-len = <8>;
				vback-porch = <10>;
				vfront-porch = <0>;
				vsync-len = <6>;
				hsync-active = <1>;
				vsync-active = <1>;
				de-active = <1>;
				pixelclk-active = <0>;
			};
		};
	};
	lvds-channel@1 {
		fsl,data-mapping = "spwg";
		fsl,data-width = <18>;
		crtc = "ipu2-di1";

		display-timings {
			native-mode = <&g101evn010_2>;

			/* Fusion 10" F10A-0102 */
			hsd101pfw2_2: timing@0 {
				clock-frequency = <45000000>;
				hactive = <1024>;
				vactive = <600>;
				hfront-porch = <0>;
				hback-porch = <0>;
				hsync-len = <176>;
				vback-porch = <0>;
				vfront-porch = <2>;
				vsync-len = <23>;
			};

			/* AUO G101EVN01.0 */
			g101evn010_2: timing@1 {
				clock-frequency = <68930000>;
				hactive = <1280>;
				vactive = <800>;
				hfront-porch = <120>;
				hback-porch = <0>;
				hsync-len = <8>;
				vback-porch = <10>;
				vfront-porch = <0>;
				vsync-len = <6>;
				hsync-active = <1>;
				vsync-active = <1>;
				de-active = <1>;
				pixelclk-active = <0>;
			};
		};
	};
};

On the ConnectCore 6 Plus SBC device tree, two LVDS displays are declared inside each lvds-channel node:

  • Fusion 10" LVDS (hsd101pfw2)

  • AUO 10" LVDS (g101evn010)

The property native-mode inside display-timings selects which of the defined displays on the device tree is enabled. On the ConnectCore 6 Plus SBC, the default selected display is the AUO 10". To switch to the Fusion display, see Enable Fusion 10" display.

LVDS as primary display

The default ConnectCore 6 Plus SBC device tree establishes the HDMI video interface as primary display (on frame buffer 0). This configuration can be overridden through the video kernel command line argument passed by the bootloader.

For example, to enable the LVDS on frame buffer 0, append the following to U-Boot environment variable extra_bootargs:

=> setenv extra_bootargs $extra_bootargs video=mxcfb0:dev=ldb,if=RGB666 video=mxcfb1:dev=hdmi,1920x1080M@60
=> saveenv

Enable Fusion 10" display

The ConnectCore 6 Plus SBC selects the AUO 10" LCD display by default. To enable the Fusion 10" display, make the following changes to your final platform DTS file (file imx6qp-ccimx6qpsbc.dts is used as example):

  • Make the Fusion 10" the default display.

  • Enable the Fusion touch controller and disable the Goodix.

diff --git a/arch/arm/boot/dts/imx6qp-ccimx6qpsbc.dts b/arch/arm/boot/dts/imx6qp-ccimx6qpsbc.dts
index 2ccaa5792c18..dd7751f18ef3 100644
--- a/arch/arm/boot/dts/imx6qp-ccimx6qpsbc.dts
+++ b/arch/arm/boot/dts/imx6qp-ccimx6qpsbc.dts
@@ -81,12 +81,12 @@
        };

        /* Uncomment to enable the fusion touch, used with hsd101pfw2 */
-       //fusion@14 {
-       //      status = "okay";
-       //};
+       fusion@14 {
+               status = "okay";
+       };

        goodix_touch: gt911@14 {
-               status = "okay";
+               // status = "okay";
        };

        /* MIPI-CSI2 camera */
@@ -118,6 +118,11 @@

        lvds-channel@0 {
                status = "okay";
+
+               /* Set display to Fusion 10" */
+               display-timings {
+                       native-mode = <&hsd101pfw2_1>;
+               };
        };
        lvds-channel@1 {
                status = "okay";