Skip to main content
Visitor II
Oct 29, 2026 6:36 AM UTC
Question

STM32MP257DAI3 – LT8912B MIPI-DSI to HDMI Bridge Configuration

Hello STMicroelectronics Community,

I am working with an STM32MP257DAI3 processor running OpenSTLinux with Linux kernel 6.6.11.
I am trying to configure an LT8912B MIPI-DSI to HDMI bridge instead of the ADV7535.
and My openstlinux version  version openstlinux-6.6-yocto-scarthgap-mpu-v26.
I referred to the Linux Device Tree binding documentation:

"Documentation/devicetree/bindings/display/bridge/lontium,lt8912b.yaml"

I have configured the HDMI connector, MIPI-DSI interface, and LT8912B bridge in my device tree. However, after booting the board with the `st-image-weston` image, the '/sys/class/drm/' directory is empty.

    1. Device Tree Configuration

 HDMI Connector Node

hdmi: connector {
    compatible = "hdmi-connector";
    label = "hdmi";
    type = "a";

    port {
        hdmi_connector_in: endpoint {
            remote-endpoint = <&lt8912_out>;
        };
    };
};
  

MIPI-DSI Node

 
&dsi {
    vdd-supply = <&scmi_vddcore>;
    vdda18-supply = <&scmi_v1v8>;
    status = "okay";

    ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@0 {
            reg = <0>;

            dsi_in: endpoint {
                remote-endpoint = <&ltdc_ep0_out>;
            };
        };

        port@1 {
            reg = <1>;

            dsi_out1: endpoint {
                remote-endpoint = <&lt8912_in>;
            };
        };
    };
};
  

I2C3 Node and LT8912B Bridge

&i2c3 {
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&i2c3_pins_a>;
    pinctrl-1 = <&i2c3_sleep_pins_a>;

    i2c-scl-rising-time-ns = <57>;
    i2c-scl-falling-time-ns = <7>;
    clock-frequency = <400000>;

    status = "okay";

    /* Spare DMA channels for other usage */
    /delete-property/ dmas;
    /delete-property/ dma-names;

    lt8912: hdmi-bridge@48 {
        compatible = "lontium,lt8912b";
        reg = <0x48>;
        reset-gpios = <&gpiog 15 GPIO_ACTIVE_LOW>;
        status = "okay";

        ports {
            #address-cells = <1>;
            #size-cells = <0>;

            port@0 {
                reg = <0>;

                lt8912_in: endpoint {
                    remote-endpoint = <&dsi_out1>;
                    data-lanes = <1 2>;
                };
            };

            port@1 {
                reg = <1>;

                lt8912_out: endpoint {
                    remote-endpoint = <&hdmi_connector_in>;
                };
            };
        };
    };
};
  

The  property is intended to represent a two-lane MIPI-DSI connection. I would appreciate confirmation that the endpoint configuration is correct for the STM32MP257 DSI controller and the LT8912B bridge driver.

2. Current Issue

I am using the `st-image-weston` image. After the board boots, I execute:

root@stm32mp25-evalaa-11-22-33-44-56:~#ls -l /sys/class/drm/
  

However, the directory is empty, and I cannot find the expected DRM card or display connector entries.

 3. Assistance Required

Could you please help me identify the correct configuration and debugging procedure for this setup?

Specifically, I would like to know:

1. Is the above Device Tree configuration correct for connecting the STM32MP257 DSI output to the LT8912B bridge and then to an HDMI connector?
2. Does the OpenSTLinux kernel version 6.6.1 include support for the LT8912B bridge, or do I need to enable additional kernel configurations or integrate a driver?
3. Are any additional Device Tree properties, clocks, power supplies, reset controls, or endpoint definitions required?
4. What kernel configuration options and runtime checks should I verify to ensure that the LT8912B, DSI controller, and LTDC DRM pipeline are properly initialized?
5. What are the recommended debugging steps when `/sys/class/drm/` is empty after booting `st-image-weston`?

My objective is to establish a working STM32MP257DAI3 → MIPI-DSI → LT8912B → HDMI display pipeline under OpenSTLinux.

Any guidance, reference Device Tree examples, or recommended debugging steps would be greatly appreciated.

Thank you for your support.

Best regards

1 reply

Erwan SZYMANSKI
ST Technical Moderator
Oct 29, 2026 8:41 AM UTC

Hello ​@shashidharv ,
Can you please precise if you have some specific logs in your dmesg, like an error log in your LT8912 bridge probe process ?

If you did not modify the kernel configuration, CONFIG_DRM_LONTIUM_LT8912B should be declared as “module”. Do you see it when you do a “lsmod” command on your board ? 

Did you also modify your device tree in U-Boot ?

What is the ouput of “modetest -M stm” on your board ?

If you are not sure your bridge driver probes properly, you can add your own debug trace in the Linux kernel lontium-lt8912b.c to be sure that at least we enter in the probe function.

Are you sure about the reset-gpios you declared in your device tree for your bridge ?

Kind regards,
Erwan.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.