Lcdif error loading mxsfb - -ENODEV: Cannot connect bridge

Hi, when loading mxsfb driver i get the following error

mxsfb 30730000.lcdif: error -ENODEV: Cannot connect bridge

tdx-info:

> Software summary
> ------------------------------------------------------------
> Bootloader:               U-Boot
> Kernel version:           6.6.80-7.2.0-devel-00046-g805baf7c7080 #1 SMP PREEMPT Thu Feb 27 12:10:54 UTC 2025
> Kernel command line:      ro rootwait console=tty1 console=ttymxc0,115200 root=PARTUUID=3661f878-02
> Distro name:              NAME="TDX Wayland with XWayland Upstream"
> Distro version:           VERSION_ID=7.2.0-devel-20250306120904-build.0
> Distro variant:           -
> Hostname:                 -
> ------------------------------------------------------------
> 
> Hardware info
> ------------------------------------------------------------
> HW model:                 Toradex Colibri iMX7D 1GB (eMMC) on Colibri Evaluation Board V3
> Toradex version:          0039 V1.1B
> Serial number:            12828752
> Processor arch:           armv7l
> ------------------------------------------------------------

device tree overlay for display:
dtbo.txt (2.7 KB)

It wants to attach to a bridge, maybe mipi-dsi? But i am using the RGB to LVDS chip and had it working when using “manual build” of kernel 5.4.

I found something similar mentioned in patches for kernel 6.8 and a few posts here but could not use the suggested solutions in the dtbo.

Any suggestions what i am doing wrong?

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello! Thank you for providing the details of your setup and the error log.

The error message:

mxsfb 30730000.lcdif: error -ENODEV: Cannot connect bridge

typically indicates that the MXSFB LCD interface (mxsfb) driver cannot find or attach a display bridge in the device tree. This is a common requirement with newer kernels, where the display controller expects a bridge (e.g., for LVDS, HDMI, or MIPI-DSI) to be properly described in the device tree.

Key points for display device tree overlays with kernel 6.x:

  1. Bridges Must Be Declared: Since kernel 5.x, the DRM subsystem expects proper bridge and display chain node definitions (device tree overlays overview).

  2. Check Connections: If you’re using an RGB-to-LVDS chip, ensure that both the mxsfb node and the bridge node (e.g., a TI SN65DSI83 or similar) are present and connected via device tree graph endpoints.

  3. Verify Node Status: Both the controller (&lcdif or &mxsfb) and bridge (&your_bridge) nodes should be set to status = "okay"; (device tree overlays overview).

  4. Endpoints and Ports: Newer kernels require ports and endpoints to explicitly connect the controller to the bridge, and then to the panel. Example:

&lcdif {
    status = "okay";
    /* ... */
    ports {
        port@0 {
            endpoint {
                remote-endpoint = <&bridge_in>;
            };
        };
    };
};

&your_bridge {
    status = "okay";
    /* ... */
    ports {
        port@0 {
            reg = <0>;
            bridge_in: endpoint {
                remote-endpoint = <&lcdif_out>;
            };
        };
        port@1 {
            reg = <1>;
            bridge_out: endpoint {
                remote-endpoint = <&panel_in>;
            };
        };
    };
};

&panel {
    /* ... */
    panel_in: endpoint {
        remote-endpoint = <&bridge_out>;
    };
};

(device tree overlays overview)

  1. Compatibility Strings: Ensure that your overlay matches the correct compatible string for the board and SoC you are using (device tree overlay compatible).

Steps to resolve:

  • Check that your DT overlay describes the display connection chain using the port and endpoint nodes.
  • Ensure all involved device tree nodes are marked as "okay".
  • Make sure that panel and any bridge chips are present in the overlay’s configuration, and that remote-endpoint references connect logically.

For a refresher, please see:

If you can paste the relevant portions of your device tree overlay (especially how you hook up mxsfb, the bridge, and the panel), I can give you more concrete suggestions.

Best regards,
Toradex AI Assistant.

The AI made me look at the imx7d-colibri-eval-v3.dts again.
The lesson is to never write more than absolutely necessary, and in &xxx :slight_smile:

change 1: only the difference in a &panel_dpi node

&panel_dpi {
                status = "okay";
                compatible = "netron-dy,e231732";
};

change 2: skip the port part, as it is allready correct in the dts

&lcdif {
        status = "okay";

        display = <&display0>;

        display0: lcd-display {
            bits-per-pixel = <24>;
            bus-width = <18>;

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

                // Standard VGA timing
                timing_1024_600: 1024x600 {
                    clock-frequency = <51450000>;
                    hactive = <1024>;
                    vactive = <600>;
                    hback-porch = <156>;
                    hfront-porch = <156>;
                    vback-porch = <16>;
                    vfront-porch = <16>;
                    hsync-len = <8>;
                    vsync-len = <6>;

                    de-active = <1>;
                    hsync-active = <0>;
                    vsync-active = <0>;
                    pixelclk-active = <0>;
                };
            };
        };
};