This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM625: AM625 LVDS and DPI – Dual Display Mirror (Parallel Usage)

Part Number: AM625

Hi,

I am working on a  am625 sk EVM board (SDK 09.02.01.09) with a working LVDS display configuration. The LVDS panel is fully functional using the following device tree setup

panel_lvds: panel-lvds {
    compatible = "panel-lvds";
    label = "LVDS";
    width-mm = <130>;
    height-mm = <117>;
    data-mapping = "vesa-24";
    panel-timing {
        clock-frequency = <27380000>;
        hactive = <1024>;
        vactive = <768>;
        hback-porch = <35>;
        hfront-porch = <70>;
        vback-porch = <16>;
        vfront-porch = <16>;
        hsync-len = <4>;
        vsync-len = <5>;
    };

    port@0 {
        lcd_in0: endpoint {
            remote-endpoint = <&oldi_out0>;
        };
    };
};

&dss {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&main_oldi0_pins_default>;
};

&dss_ports {
    status = "okay";
    #address-cells = <1>;
    #size-cells = <0>;

    port@0 {
        reg = <0>;
        oldi_out0: endpoint {
            remote-endpoint = <&lcd_in0>;
        };
    };
};

Requirement:

I need to mirror the LVDS output to a 16-bit parallel RGB (DPI) interface to feed an ADV7393 video encoder for S-video/analog output.

Screenshot from 2026-01-21 15-50-25.pngSpecifically:

  • 16-bit RGB from VOUT0_DATA0-15

  • HSYNC, VSYNC, pixel clock signals

  • Both LVDS and DPI outputs active simultaneously

Can you provide a reference device tree or settings to enable DPI output on VOUT0_DATA0-15 with HSYNC/VSYNC/CLK?

 

Thanks,

Aswin Balaji

  • Hey Aswin,
    In your setup, are you using both the video pipelines to drive one LVDS output, or using only one of the video pipelines. If you are using both the pipelines, it will not be possible to drive the DPI output unless the timing parameters requested for both LVDS and DPI are exactly the same (I am guessing the 2 set of parameters are different in your case as they would be in general).

  • And, are the device tree you shared is for U-Boot or Linux kernel?

  • Hi Divyansh,

    I am currently using only a single DSS video pipeline to drive the LVDS output (OLDI0); I am not using both pipelines simultaneously.

    The device tree snippet I shared is from the Linux kernel (SDK 09.02.01.09), not from U-Boot.

    For my use case, I can ensure that the DPI output uses same timing parameters as the LVDS panel. The ADV7393 can accept the same pixel clock and sync timings, so LVDS and DPI would be driven with identical display timings. Additionally, my requirement is to have the same framebuffer used for both the LVDS and DPI outputs.

    What I am mainly looking to understand is the correct way to model the DPI output (panel-dpi / encoder node) and the corresponding DSS port connections in the device tree to support this setup.

    Thanks,

    Aswin Balaji

  • Hi Aswin,
    We do not have any references with ADV chips, but you may checkout the usage of sii902x HDMi bridge in https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi?h=ti-linux-6.1.y and replace it with your encoder driver and DT nodes.

    Both OLDI and DPI video ports are driven by separate PLLs, and hence it is recommended that you use separate pipelines for each being driven by separate video ports. Recommended approach would be for your userspace app to copy the framebuffer which the second pipeline can fetch from.