AnsweredAssumed Answered

LVDS dual channel display on IMX6Q

Question asked by gregoryciapa on May 17, 2018
Latest reply on May 22, 2018 by gregoryciapa

Hi,

 

I have a custom carrier board, based on IMX6Q plus a SOM and an LVDS dual channel 19'' SXGA display connected on it.

I use kernel 3.14.52.

 

Backlight, colors and vertical resolution are ok and i am able to display an image on the linux framebuffer with the fbv tool.

 

However the image is always not properly rendered horizontally. The screen format is 1280 x 1024 but if i want to display an image 1280 x 1024 only half of the image is visible horizontally. To illustrate this, here is a screenshot (made with fgrab) showing a 1280 x 1024 image in the background and, in the foreground the complete image forced to fit the screen with fbv -f option :

The background image is horizontally half of the superposed foreground image.

 

Actually, everything that is displayed is horizontally stretched : tux logo at boot, or boot messages from the framebuffer console, or any images, a 128 x 128 image for example will be shown as a rectangle, not a square.

 

I guess my device tree file is not 100% correct :

 

&ldb {
   lvds-channel@0 {
      crtc = "ipu1-di0";
   };

   lvds-channel@1 {   
      crtc = "ipu1-di1";
   };
};

 

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

 

&mxcfb2 {
status = "disabled";
};

&mxcfb3 {
status = "disabled";
};

&mxcfb4 {
status = "disabled";
};

 

&ldb {
status = "okay";
dual-mode;

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

 

         display-timings {
            timing01: AUO-G190ETN01 {
            clock-frequency = <54000000>;
            hactive = <640>;
            vactive = <1024>;
            hback-porch = <200>;
            hfront-porch = <3>;
            vback-porch = <39>;
            vfront-porch = <1>;
             hsync-len = <1>;
            vsync-len = <2>;

          };
      };
   };

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

 

         display-timings {
            timing02: AUO-G190ETN01 {
            clock-frequency = <54000000>;
            hactive = <640>;
            vactive = <1024>;
            hback-porch = <200>;
            hfront-porch = <3>;
            vback-porch = <39>;
            vfront-porch = <1>;
             hsync-len = <1>;
            vsync-len = <2>;

          };
      };
   };

};

 

I cannot find any example of an LVDS dual channel device tree, what am i doing wrong ? 

Here is attached the specification of the LVDS display, not all parameters are explicitly written but i have based my device tree on the typical values.

I have tried different combinations of these parameters but it does not fix this.

 

I would really appreciate any help or hints as i am not an expert in this field.

 

Thanks a lot.

Outcomes