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?

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:
-
Bridges Must Be Declared: Since kernel 5.x, the DRM subsystem expects proper bridge and display chain node definitions (device tree overlays overview).
-
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.
-
Verify Node Status: Both the controller (&lcdif or &mxsfb) and bridge (&your_bridge) nodes should be set to status = "okay";
(device tree overlays overview).
-
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)
- 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 
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>;
};
};
};
};