The LVDS Display Bridge (LDB) connects the Display Processing Unit (DPU) to an external LVDS display interface.
On the ConnectCore 8X SBC Pro:
-
There are two LVDS display connectors.
Kernel configuration
You can manage the LDB support through the following kernel configuration option:
-
Support for MX8QM LDB (
CONFIG_DRM_IMX8QM_LDB
) -
Support for MX8QXP LDB (
CONFIG_DRM_IMX8QXP_LDB
) -
Support for MX8MP LDB (
CONFIG_DRM_IMX8MP_LDB
)
These options are enabled as built-in on the default ConnectCore 8X kernel configuration file.
Kernel driver
The driver for the LDB interface is located at:
File | Description |
---|---|
i.MX8QM LDB driver |
|
i.MX8QXP LDB driver |
|
i.MX8MP LDB driver |
Device tree bindings and customization
The {cpu-family} LDB interface is documented at Documentation/devicetree/bindings/display/imx/ldb.txt
.
The LDB interface is defined in the {cpu-family} CPU and ConnectCore 8X SBC Pro device tree files.
Example: LVDS display bridge 1 (LDB1) on ConnectCore 8X SBC Pro
Definition of the LDB1
ldb1: ldb@562210e0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx8qxp-ldb";
clocks = <&clk IMX8QXP_MIPI0_LVDS_PIXEL_CLK>,
<&clk IMX8QXP_MIPI0_LVDS_BYPASS_CLK>;
clock-names = "pixel", "bypass";
power-domains = <&pd_mipi_dsi0>;
gpr = <&lvds_region1>;
status = "disabled";
lvds-channel@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
phys = <&ldb1_phy>;
phy-names = "ldb_phy";
status = "disabled";
port@0 {
reg = <0>;
ldb1_ch0: endpoint {
remote-endpoint = <&dpu_disp0_lvds0_ch0>;
};
};
};
lvds-channel@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
phys = <&ldb1_phy>;
phy-names = "ldb_phy";
status = "disabled";
port@0 {
reg = <0>;
ldb1_ch1: endpoint {
remote-endpoint = <&dpu_disp0_lvds0_ch1>;
};
};
};
};
IOMUX configuration
The LVDS interfaces use dedicated pins. No IOMUX configuration is necessary. There is an IOMUX entry for associated GPIO pins.
pinctrl_lvds0: lvds0grp {
fsl,pins = <
/* LVDS0 touch interrupt */
SC_P_QSPI0B_DATA2_LSIO_GPIO3_IO20 0x06000020
/* LVDS0 PWM backlight */
SC_P_MIPI_DSI0_GPIO0_00_MIPI_DSI0_PWM0_OUT 0x00000020
>;
};
LVDS Panel: AUO 10" LCD display
lvds0_panel: lvds0_panel@0 {
compatible = "panel-lvds";
backlight = <&lvds_backlight0>;
power-supply = <®_5v_display>;
width-mm = <216>;
height-mm = <135>;
data-mapping = "jeida-18";
status = "disabled";
port {
panel_lvds0_in: endpoint {
remote-endpoint = <&lvds0_out>;
};
};
panel-timing {
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>;
};
};
LVDS channels
&ldb1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lvds0>;
status = "okay";
lvds0: lvds-channel@0 {
fsl,data-mapping = "jeida";
fsl,data-width = <24>;
digi,bits-per-pixel = <16>;
status = "okay";
port@1 {
reg = <1>;
lvds0_out: endpoint {
remote-endpoint = <&panel_lvds0_in>;
};
};
};
};
&ldb2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lvds1>;
status = "disabled";
lvds1: lvds-channel@0 {
fsl,data-mapping = "jeida";
fsl,data-width = <24>;
digi,bits-per-pixel = <16>;
status = "disabled";
port@1 {
reg = <1>;
lvds1_out: endpoint {
remote-endpoint = <&panel_lvds1_in>;
};
};
};
};
Enable LVDS1
The default ConnectCore 8X SBC Pro device tree only enables the LVDS0 display. Digi provides a pre-compiled device tree overlay to enable support of the LVDS1 display as extended desktop of LVDS0. To enable the LVDS1 overlay, run the following command in U-Boot:
=> setenv overlays _ov_board_lvds1_ccimx8x-sbc-pro.dtbo
Enable support for Fusion 10" display
The default ConnectCore 8X SBC Pro device tree enables support for the AUO 10" LCD display. Digi provides a pre-compiled device tree overlay to support Fusion 10" (F10A-0102) LCD display on the LVDS0 connector. To enable the overlay with the Fusion 10" LCD display, run the following command in U-Boot:
=> setenv overlays _ov_board_hsd101pfw2-lvds_ccimx8x-sbc-pro.dtbo
See Device tree files and overlays for more information.