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 |
---|---|
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
&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";