LVDS Display Configuration (timing+clock)

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

LVDS Display Configuration (timing+clock)

3,291 Views
cristiansicilia
Contributor III

I have an IMX6 board with an LVDS display attached (split-mode).

I configured the mxcfb in this way:

     mxcfb1: fb@0 {
         compatible = "fsl,mxc_sdc_fb";
         disp_dev = "ldb";
         interface_pix_fmt = "RGB24";
         mode_str ="LVDS-WUXGA";
         default_bpp = <32>;
         int_clk = <0>;
         late_init = <0>;
         status = "disabled";

And the timing in this way:

    lvds-channel@0 {
         reg = <0>;
         fsl,data-mapping = "spwg"; /* "jeida"; */
         fsl,data-width = <24>;
         crtc = "ipu2-di1";
         primary;
         status = "okay";
 
         display-timings {

....

 

   timing_wuxga: LVDS-WUXGA {
                clock-frequency = <149992500>;
                hactive = <1920>;
                hback-porch = <20>;
                hfront-porch = <100>;
                hsync-len = <18>;
                hsync-active = <0>;
                vactive = <1200>;
                vback-porch = <4>;
                vfront-porch = <6>;
                vsync-len = <2>;
                vsync-active = <0>;
                de-active = <1>;
                pixelclk-active = <0>;

 };

Now, if I start the kernel with parameter in uboot like:

video=mxcfb0:dev=ldb,1920x1200M@60,if=RGB24,bpp=32 ..

The image start with an high clock (like ~190MHz), this because it use the VESA CVT formula.

It obviously is out of clock, with bad timing etc.., but with the fbset command:

/usr/sbin/fbset  -g 1920 1200 1920 1200 32  -vsync 0 -t 6667 20 100 4 6 18 2

I get a perfect image.

Point: until the device is not started, and the fbset executed I get a bad image, but after executing this command everything is configured correctly.

If i remove the uboot param:

video=mxcfb0:dev=ldb,1920x1200M@60,if=RGB24,bpp=32 ..

The default parameter is taken from device tree, I get the correct fbset configuration:

mode "1920x1200-60"
    # D: 149.993 MHz, H: 72.883 kHz, V: 60.134 Hz
    geometry 1920 1200 1920 2400 32
    timings 6667 20 100 4 6 18 2
    rgba 8/16,8/8,8/0,8/24
endmode                                                                                                                                     

But the image is not good (see attached image).

Executing fbset command in this case doesn't change anything, the image is bad.

I think that is a clock problem or something like this, the timing correct.

Question: What the VESA CVT formula change other than timing and resolution? How I can set it in devicetree or in uboot? There is some clock change that I can made?

bad-image.jpg

Labels (3)
0 Kudos
2 Replies

3,078 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hi Cristian

    One LVDS Channel can only support Max 1366x768(760) resolution.

    Dual LVDS channle support max 1920x1080.

So LVDS doesn't support 1920x1200 resolution.

Hope above information is helpful to you.

Have great day!

B.R,

Weidong

0 Kudos

3,078 Views
cristiansicilia
Contributor III

Thank's for reply weidong.sun‌ ,

as I said I configured it in split-mode, so I'm using two LVDS channels with one display.

Anyway if I start it with u-boot parameter 

  video=mxcfb0:dev=ldb,1920x1200M@60,if=RGB24,bpp=32

it start calculating timing with VESA CVT formula, and I get a bad timing and bad clock, but configuring it with fbset after start-up it work good.

So the Display working perfectly, but I need to start it with a VESA CVT mode, and then changing it after startup.

But seems very nasty, I would start it with the right configuration from boot.

But using the parameter in the DTS, all timing is correct (see fbset output), but the image is bad (see image in the post).

There is something in the VESA calculation that will fix something.. but what?

What I miss to configure in my dts?

Clock base? ...?

0 Kudos