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

drivers/gpu/drm/bridge/sn65dsi83/sn65dsi83_drv.c

SN65DSI83 MIPI-to-LVDS core driver

drivers/gpu/drm/bridge/sn65dsi83/sn65dsi83_brg.c

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

ConnectCore 8M Nano Development Kit device tree
&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.

ConnectCore 8M Nano Development Kit device tree
	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.

See also