The Texas Instruments SN65DSI83 MIPI-to-LVDS bridge converts the i.MX8M Nano MIPI DSI signal to one suitable for LVDS displays.
To use this bridge, set the S1.4 micro-switch to ON.
Kernel configuration
You can manage the SN65DSI83 support through the following kernel configuration option:
-
TI SN65DSI83 MIPI DSI to LVDS bridge (
CONFIG_DRM_I2C_SN65DSI83
)
This option is enabled as built-in on the default ConnectCore 8M Nano kernel configuration file.
Kernel driver
The driver for the SN65DSI83 bridge is located at:
File | Description |
---|---|
SN65DSI83 MIPI-to-LVDS core driver |
|
SN65DSI83 MIPI-to-LVDS bridge driver |
Device tree bindings and customization
The SN65DSI83 bridge is defined in the ConnectCore 8M Nano Development Kit device tree file. Two LCD displays are defined within it:
-
AUO 10.1" (G101EVN01.0)
-
Fusion 10.1" (F10A-0102)
Definition of the LVDS bridge and LCD displays
&i2c3 {
clock-frequency = <100000>;
pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c3>;
pinctrl-1 = <&pinctrl_i2c3_gpio>;
scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "okay";
dsi_lvds_bridge: sn65dsi84@2c {
compatible = "ti,sn65dsi83";
enable-gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lvds>;
reg = <0x2c>;
/* MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
MIPI_DSI_MODE_NO_EOT_PACKET */
digi,mipi-mode-flags = <0x203>;
status = "disabled";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
bridge_in_dsi: endpoint {
remote-endpoint = <&mipi_dsi_out>;
data-lanes = <1 2 3 4>;
};
};
port@2 {
reg = <2>;
brg_out_panel: endpoint {
remote-endpoint = <&panel_in_brg>;
};
};
};
};
[...]
};
[...]
&mipi_dsi {
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
[...]
port@2 {
mipi_dsi_out: endpoint {
attach-bridge;
remote-endpoint = <&bridge_in_dsi>;
};
};
};
IOMUX configuration
The following IOMUX entry configures the associated enable and interrupt GPIO pins.
pinctrl_lvds: lvdsgrp {
fsl,pins = <
/* SN65DSI83 enable */
MX8MN_IOMUXC_NAND_ALE_GPIO3_IO0 0x19
/* SN65DSI83 interrupt */
MX8MN_IOMUXC_NAND_DATA00_GPIO3_IO6 0x19
>;
};
Configure LVDS as default bridge
The Linux DRM subsystem only allows one MIPI bridge to be used at a time. By default, the LVDS bridge is disabled and the HDMI one is enabled. To use the LVDS interface instead of the HDMI one on the ConnectCore 8M Nano Development Kit:
-
Disable the LT8912 MIPI-to-HDMI bridge in the device tree
-
Enable the SN65DSI83 MIPI-to-LVDS bridge in the device tree
Digi provides pre-compiled device tree overlays that do exactly this, so that you can test the LVDS interface without needing to recompile a device tree. To apply one of these overlays, run the following command in U-Boot:
-
To enable the LVDS with the AUO 10" LCD display:
=> setenv overlays _ov_board_lvds_ccimx8m-dvk.dtbo
-
To enable the LVDS with the Fusion 10" LCD display:
=> setenv overlays _ov_board_hsd101pfw2-lvds_ccimx8m-dvk.dtbo
See Device tree files and overlays for more information.