The Lontium LT8912 MIPI-to-HDMI bridge converts the i.MX8M Nano MIPI DSI signal to one suitable for HDMI displays.
To use this bridge, set the S1.4 micro-switch to OFF
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 8M Nano kernel configuration file.
Kernel driver
The driver for the LT8912 bridge is located at:
File | Description |
---|---|
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 8M Nano Development Kit device tree file.
Definition of the LT8912
&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";
[...]
lt_bridge: lt8912@48 {
compatible = "lontium,lt8912";
reg = <0x48>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lt8912>, <&pinctrl_lt8912_hpd>;
reset-gpios = <&gpio3 7 GPIO_ACTIVE_LOW>;
hpd-gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
digi,dsi-lanes = <4>;
vdd1-supply = <®_5v_board>;
no-edid;
status = "okay";
port {
lt8912_1_in: endpoint {
/* add lanes */
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>;
};
};
};
};
[...]
&mipi_dsi {
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
port@1 {
mipi_dsi_hdmi_out: endpoint {
remote-endpoint = <<8912_1_in>;
attach-bridge;
};
};
[...]
};
IOMUX configuration
The following IOMUX entry configures the associated reset and hotplug-detection GPIO pins.
pinctrl_lt8912: lt8912grp {
fsl,pins = <
/* Reset */
MX8MN_IOMUXC_NAND_DATA01_GPIO3_IO7 0x19
/* Interrupt */
MX8MN_IOMUXC_NAND_DATA03_GPIO3_IO9 0x19
>;
};