The Lontium LT8912 MIPI-to-HDMI bridge converts the i.MX93 MIPI DSI signal to one suitable for HDMI displays.

To use this bridge, ensure jumper J28 is open (default configuration). Closing the jumper routes the MIPI DSI video signals to the J29 display connector.

Kernel configuration

You can manage the LT8912 support through the following kernel configuration option:

  • Lontium LT8912 MIPI-DSI to LVDS and HDMI/MHL bridge (CONFIG_DRM_LONTIUM_LT8912)

This option is enabled as built-in on the default ConnectCore 93 kernel configuration file.

Kernel driver

The driver for the LT8912 bridge is located at:

File Description

drivers/gpu/drm/bridge/lt8912.c

LT8912 MIPI-to-HDMI bridge driver

Device tree bindings and customization

The LT8912 bridge is documented at Documentation/devicetree/bindings/display/bridge/lontium,lt8912.txt. The LT8912 bridge is defined in the ConnectCore 93 Development Kit device tree file.

Definition of the LT8912

ConnectCore 93 Development Kit device tree
&lpi2c4 {
	#address-cells = <1>;
	#size-cells = <0>;
	clock-frequency = <400000>;
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&pinctrl_lpi2c4>;
	pinctrl-1 = <&pinctrl_lpi2c4>;
	status = "okay";

	[...]

	lt_bridge: lt8912@48 {
		compatible = "lontium,lt8912";
		reg = <0x48>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_lt8912>;
		reset-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
		hpd-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
		digi,dsi-lanes = <4>;
		vdd1-supply = <&reg_5v_board>;
		no-edid;
		status = "okay";

		port {
			lt8912_1_in: endpoint {
				remote-endpoint = <&mipi_dsi_hdmi_out>;
			};
		};

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

			/* High Definition */
			timing0: timing0 {
				clock-frequency = <74250000>;
				hactive = <1280>;
				vactive = <720>;
				hfront-porch = <110>;
				hsync-len = <40>;
				hback-porch = <220>;
				vfront-porch = <5>;
				vsync-len = <5>;
				vback-porch = <20>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <0>;
				pixelclk-active = <0>;
			};

			/* Full HD */
			timing1: timing1 {
				clock-frequency = <148500000>;
				hactive = <1920>;
				vactive = <1080>;
				hfront-porch = <88>;
				hsync-len = <44>;
				hback-porch = <148>;
				vfront-porch = <36>;
				vsync-len = <5>;
				vback-porch = <4>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <0>;
				pixelclk-active = <0>;
			};
		};
	};
};
[...]

&dsi {
	status = "okay";

	ports {
		port@1 {
			reg = <1>;

			mipi_dsi_hdmi_out: endpoint {
				remote-endpoint = <&lt8912_1_in>;
			};
		};
	};
};

IOMUX configuration

The following IOMUX entry configures the associated reset and hotplug-detection GPIO pins.

ConnectCore 93 Development Kit device tree
	pinctrl_lt8912: lt8912grp {
		fsl,pins = <
			/* Reset */
			MX93_PAD_I2C2_SDA__GPIO1_IO03	0x31e
			/* Interrupt */
			MX93_PAD_CCM_CLKO2__GPIO3_IO27	0x31e
		>;
	};