How to configure independent LVDS displays?  I have dual mode working

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

How to configure independent LVDS displays?  I have dual mode working

Jump to solution
1,375 Views
mstevens
Contributor II

About 6 months ago, I successfully brought up two Industrial 800x480 LVDS displays running in dual mode (my patch to the dts file is attached).

 

What changes do I need to make to make the displays independent? 

Simply changing the mode is not enough.  My displays show that I have something clocked wrong (they do the funky wave of black).

My timing is correct for both of them for dual.  In looking at ldb.c I see that dual mode runs with a different divider than other modes.  (in certain modes it is divide by 3.5).

 

First what the correct mode so I can have two independent display?  I think split.

Second do I double or halve the clock?  I've tried both for split mode, no joy

 

Is there another setting I need to change? 

 

I've tried making fb2 and fb3 matching fb1.

mxcfb1: fb@0 {
compatible = "fsl,mxc_sdc_fb";
disp_dev = "ldb";
mode_str ="LDB-XGA";
interface_pix_fmt = "RGB24";
default_bpp = <24>;
int_clk = <0>;
late_init = <0>;
status = "disabled";
};

Any help would be appreciated.  I've struggled with this for a while.  

Original Attachment has been moved to: 0004-Display.patch.zip

0 Kudos
1 Solution
1,047 Views
mstevens
Contributor II

The answer is separate-mode was all I was missing (thank Igor)

Also note that my second display ended up on fb2.  

ldb {
status = "okay";
separate-mode;  //MSS: THIS IS THE KEY!
lvds-channel@0 {
fsl,data-mapping = "jeida";
fsl,data-width = <24>;
primary;  //MSS: Make sure you have this
status = "okay";

display-timings {
native-mode = <&timing0>;
timing0: hsd100pxn1 {
clock-frequency = <33260000>;
hfront-porch = <40>;
hactive = <800>;
hback-porch = <88>;
hsync-len = <128>;

vactive = <480>;
vfront-porch = <10>;
vback-porch = <33>;
vsync-len = <2>;
};
};
};

lvds-channel@1 {
fsl,data-mapping = "jeida";
fsl,data-width = <24>;
status = "okay";
crtc = "ipu1-di1"; //MSS Make sure you have this

display-timings {
native-mode = <&timing1>;
timing1: hsd100pxn1 {
clock-frequency = <33260000>;
hfront-porch = <40>;
hactive = <800>;
hback-porch = <88>;
hsync-len = <128>;

vactive = <480>;
vfront-porch = <10>;
vback-porch = <33>;
vsync-len = <2>;
};
};
};
};

View solution in original post

0 Kudos
3 Replies
1,048 Views
mstevens
Contributor II

The answer is separate-mode was all I was missing (thank Igor)

Also note that my second display ended up on fb2.  

ldb {
status = "okay";
separate-mode;  //MSS: THIS IS THE KEY!
lvds-channel@0 {
fsl,data-mapping = "jeida";
fsl,data-width = <24>;
primary;  //MSS: Make sure you have this
status = "okay";

display-timings {
native-mode = <&timing0>;
timing0: hsd100pxn1 {
clock-frequency = <33260000>;
hfront-porch = <40>;
hactive = <800>;
hback-porch = <88>;
hsync-len = <128>;

vactive = <480>;
vfront-porch = <10>;
vback-porch = <33>;
vsync-len = <2>;
};
};
};

lvds-channel@1 {
fsl,data-mapping = "jeida";
fsl,data-width = <24>;
status = "okay";
crtc = "ipu1-di1"; //MSS Make sure you have this

display-timings {
native-mode = <&timing1>;
timing1: hsd100pxn1 {
clock-frequency = <33260000>;
hfront-porch = <40>;
hactive = <800>;
hback-porch = <88>;
hsync-len = <128>;

vactive = <480>;
vfront-porch = <10>;
vback-porch = <33>;
vsync-len = <2>;
};
};
};
};

0 Kudos
1,047 Views
igorpadykov
NXP Employee
NXP Employee

Hi Michael

split mode is used for one display with high resolution,

for two independent displays separate mode should be used.

Please refer to Table 39-5. Channel Mapping i.MX6DQ Reference Manual

http://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf

and attached Release Notes from older kernel Table 6. Kernel Boot Parameters

"ldb" parameter, it provides some better description.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

1,047 Views
mstevens
Contributor II

Igor,

I did not get the release notes.  The Channel Mapping is extremely low level and I hope the driver will handle it.  

0 Kudos