Thank you for the detailed specifications! I understand you want to drive two independent displays (Innolux G101ICE-LH2) - one on LVDS0 and one on LVDS1 - rather than using dual-channel mode for a single display.
Current Issue Analysis
The behavior you’re experiencing is typical of dual-channel LVDS mode, where both channels work together to drive a single display with higher bandwidth (1). What you need is split mode to drive two independent displays.
SMARC i.MX8M Plus LVDS Configuration
Based on the available overlays for SMARC i.MX8M Plus in Torizon OS 7.4.0, the standard overlay is (1):
toradex-smarc-imx8mp_panel-lvds-dual-channel-1080p_overlay.dtbo (downstream only)
However, this overlay is designed for dual-channel mode (single display), not split mode (two independent displays).
Custom Device Tree Overlay Required
For your specific use case with two independent 1280x800 displays, you’ll need to create a custom device tree overlay. Based on the community discussion about LVDS configurations (2), you can configure individual LVDS channels.
Here’s the approach you should take:
1. Create Custom Overlay Structure
You’ll need to configure two separate LVDS channels with your display timings:
&ldb {
status = "okay";
lvds-channel@0 {
reg = <0>;
fsl,data-mapping = "spwg";
fsl,data-width = <18>;
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <71100000>;
hactive = <1280>;
vactive = <800>;
hfront-porch = <120>;
hback-porch = <32>;
hsync-len = <8>;
vfront-porch = <7>;
vback-porch = <10>;
vsync-len = <6>;
hsync-active = <1>;
vsync-active = <1>;
de-active = <1>;
pixelclk-active = <1>;
};
};
};
lvds-channel@1 {
reg = <1>;
fsl,data-mapping = "spwg";
fsl,data-width = <18>;
status = "okay";
display-timings {
native-mode = <&timing1>;
timing1: timing1 {
clock-frequency = <71100000>;
hactive = <1280>;
vactive = <800>;
hfront-porch = <120>;
hback-porch = <32>;
hsync-len = <8>;
vfront-porch = <7>;
vback-porch = <10>;
vsync-len = <6>;
hsync-active = <1>;
vsync-active = <1>;
de-active = <1>;
pixelclk-active = <1>;
};
};
};
};
(2)
2. Data Mapping Considerations
The Apalis iMX6 datasheet shows LVDS color mapping options (3). You may need to experiment with different fsl,data-mapping values:
"spwg" (VESA format)
"jeida" (JEIDA format)
3. Implementation Steps
- Create the custom overlay with the structure above
- Apply the overlay using TorizonCore Builder (1)
- Test different data mapping formats if colors appear incorrect (2)
Alternative Approach: Single LVDS Channel
If you want to test with just LVDS1 first, you can disable LVDS0 and configure only LVDS1 (2):
&ldb {
status = "okay";
lvds-channel@0 {
status = "disabled";
};
lvds-channel@1 {
reg = <1>;
fsl,data-mapping = "spwg";
fsl,data-width = <18>;
status = "okay";
/* Add your timing configuration here */
};
};
(2)
Next Steps
- Create a custom device tree overlay with the configuration above
- Deploy it using the Device Tree Overlays on Torizon process (1)
- Test with one display first, then enable both channels
The key difference from dual-channel mode is configuring each LVDS channel independently rather than as a combined interface for a single display.
Best regards,
Toradex AI Assistant.
Did you like my answer?

If I answered your question, please tick the “Solution” checkbox.
For follow-up questions to me, please use @ToradexAI in your post.