iMX8QM 4 Independent LVDS Channels

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

iMX8QM 4 Independent LVDS Channels

Jump to solution
335 Views
jsmith8831
Contributor III

Hello,

According to the i.MX8QM datasheet, there is support for up to 4 independent displays:

Supports single UltraHD 4Kp60 display or up to 4 independent FullHD 1080p60
displays

However, I have been unsuccessful so far in getting four independent 4-lane LVDS channels.  The code snippet below is my attempt to get ldb1 to support two independent 10.1" LVDS displays.  If I comment out lvds-channel@0 I can get one display to work.  If I comment out lvds-channel@1 I can get the other display to work.  However with both uncommented neither work.

I have reviewed imx8qm-mek-jdi-wuxga-lvds1-panel.dtsi, but this does not offer any additional insight.  How can I achieve 4 independent LVDS channels?

/ {
        panel0: panel0 {
		status = "okay";
		compatible = "panel-lvds";
		data-mapping = "vesa-24";
		width-mm = <217>;
		height-mm = <136>;

		panel-timing {
			clock-frequency = <72000000>;
			hactive = <1280>;
			vactive = <800>;
			hback-porch = <48>;
			hfront-porch = <80>;
			vback-porch = <15>;
			vfront-porch = <2>;
			hsync-len = <32>;
			vsync-len = <6>;
		};

		port {
			panel0_input: endpoint {
				remote-endpoint = <&lvds0_out>;
			};
		};
	};

	panel1: panel1 {
		status = "okay";
		compatible = "panel-lvds";
		data-mapping = "vesa-24";
		width-mm = <217>;
		height-mm = <136>;

		panel-timing {
			clock-frequency = <72000000>;
			hactive = <1280>;
			vactive = <800>;
			hback-porch = <48>;
			hfront-porch = <80>;
			vback-porch = <15>;
			vfront-porch = <2>;
			hsync-len = <32>;
			vsync-len = <6>;
		};

		port {
			panel1_input: endpoint {
				remote-endpoint = <&lvds1_out>;
			};
		};
	};
};

&ldb1_phy {
	status = "okay";
};

&ldb1 {
	status = "okay";

	lvds-channel@0 {
		reg = <0>;
		fsl,data-mapping = "jeida";
		fsl,data-width = <24>;
		status = "okay";
		primary;

		port@1 {
			reg = <1>;

			lvds0_out: endpoint {
				remote-endpoint = <&panel0_input>;
			};
		};
	};

	lvds-channel@1 {
		reg = <1>;
		fsl,data-mapping = "jeida";
		fsl,data-width = <24>;
		status = "okay";

		port@1 {
			reg = <1>;

			lvds1_out: endpoint {
				remote-endpoint = <&panel1_input>;
			};
		};
	};
};

 

Tags (2)
0 Kudos
1 Solution
314 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @jsmith8831 

Please refer the knowledge base. The two panel from same LDB phy can only be mirror mode. The datasheet doesn't specify the mode of 4 independent LVDS panel, 4 split mode or two mirror mode.

View solution in original post

0 Kudos
4 Replies
320 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @jsmith8831 

It is not possible to support two different display sizes or timings from the same LDB node, both channels have to be the same size and timing in order to allow us to drive two displays from a single LDB.

Please refer this knowledge base:

https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/IMX8QM-LVDS-mirror-dual-mode-reference-p...

Zhiming_Liu_0-1708570914483.png

 

Best Regards

Zhiming

0 Kudos
316 Views
jsmith8831
Contributor III

Hi @Zhiming_Liu,

In the code snippet of the device tree I provided I am using the exact same display timings and sizes.  As long as I do this will the panels in fact be independent, or will they be mirrored?  In the link you provided it implies that they are mirrored (i.e. panel 1 and 2 are the same, and 3 and 4 are the same).  However, this conflicts with the iMX8QM datasheet that states you may have 4 independent panels.

up to 4 independent FullHD 1080p60 displays

0 Kudos
315 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @jsmith8831 

Please refer the knowledge base. The two panel from same LDB phy can only be mirror mode. The datasheet doesn't specify the mode of 4 independent LVDS panel, 4 split mode or two mirror mode.

0 Kudos
165 Views
jsmith8831
Contributor III

Hi @Zhiming_Liu, thank you for the explanation.  Is it possible to use all four LVDS channels to drive 2x independent 1080p displays, and then use 2x of the MIPI-DSI channels to drive an additional 2x independent 1080p displays at the same time?

0 Kudos