i.MX6Q + Linux V5.10 + LVDS splitted display on odd and even channels

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

i.MX6Q + Linux V5.10 + LVDS splitted display on odd and even channels

829 Views
jeanlucchaillat
Contributor II

Dear i.MX6Q specialists,

I have a board fitted with a SOM i.MX6Q which is very close to the imx6q-sabresd board. I'm trying to move from Linux 3.14 to Linux 5.10. 
I got the L5.10.72 repo from https://github.com/Freescale/linux-fslc

I cannot manage with L5.10 to have my display working properly as it is with L3.14, the display is an AUO 19'' with 1280x1024 and 2 LVDS channels.
One channel for odd lines and an other channel for even lines.
In the devicetree of L3.14 it was possible to add the property "split-mode" in the ldb (LVDS Display Brige) section. 
With Linux V5.10 the graphic architecture changed quite a lot and the "split-mode" property no longer exist in the ldb section.
There is the property "fsl,dual-channel" which dupplicate LVDS0 on LVDS1 channel, it is not what I want.

My devicetree for L5.10 is:
........
panel: panel-lvds {
  compatible = "auo,g190ean01", "panel-lvds";
  display-timings {
    timing01: AUO-G190ETN01 {
    clock-frequency = <108000000>;
    hactive = <1280>;
    vactive = <1024>;
    hback-porch = <203>;
    hfront-porch = <203>;
    vback-porch = <41>;
    vfront-porch = <41>;
    hsync-len = <2>;
    vsync-len = <2>;
    };
  };

  ports {
    #address-cells = <1>;
    #size-cells = <0>;
    port@0 {
      dual-lvds-odd-pixels;
        reg = <0>;
        panel_lvds0_in: endpoint {
          remote-endpoint = <&lvds0_out>;
        };
    };
    port@1 {
      dual-lvds-even-pixels;
      reg = <1>;
      panel_lvds1_in: endpoint {
        remote-endpoint = <&lvds1_out>;
      };
    };
  };
};

....

&ldb {
  /* fsl,dual-channel; */
  compatible = "fsl,imx6q-ldb";
  status = "okay";
  lvds-channel@0 {
    fsl,data-mapping = "spwg";
    fsl,data-width = <24>;
    status = "okay";
    port@0 {
      reg = <0>;
      lvds0_mux_0: endpoint {
        remote-endpoint = <&ipu1_di0_lvds0>;
      };
    };
    port@1 {
      reg = <1>;
      lvds0_mux_1: endpoint {
        remote-endpoint = <&ipu1_di1_lvds0>;
      };
    };

    port@4 {
      reg = <4>;
      lvds0_out: endpoint {
        remote-endpoint = <&panel_lvds0_in>;
      };
    };
  };

  lvds-channel@1 {
    fsl,data-mapping = "spwg";
    fsl,data-width = <24>;
    status = "okay";
    port@0 {
      reg = <0>;
      lvds1_mux_0: endpoint {
        remote-endpoint = <&ipu1_di0_lvds1>;
      };
    };
    port@1 {
      reg = <1>;
      lvds1_mux_1: endpoint {
        remote-endpoint = <&ipu1_di1_lvds1>;
      };
    };
    port@4 {
      reg = <4>;
      lvds1_out: endpoint {
        remote-endpoint = <&panel_lvds1_in>;
      };
    };
  };
};
..........
As you can see above I tried the property dual-lvds-even-pixels and dual-lvds-odd-pixels in port 1 and 2 of the panel, but nothing is changed.
When I look carefully to the display I see:
- display even line are always black,
- display odd line are receiving all the picture line which looks horizontally delated.

It looks like LVDS1 is not sending video signals that is to say ipu1_di0_lvds1 and ipu1_di1_lvds1 don't get any image.
I googled quite a lot for days and I didn't see any case of a 2 channels display running with L5.10 and iMX6Q.

Your advices will be deeply appreciated.

Jean-Luc Chaillat

Tags (3)
0 Kudos
Reply
1 Reply

807 Views
jimmychan
NXP TechSupport
NXP TechSupport

I found the "split-mode" still support in the driver.

https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/video/fbdev/mxc/ldb.c?h=lf-5.10.y

 

For the Linux Yocto BSP, please follow the Yocto Project User's Guide to build the BSP. The document can be downloaded from here.

https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applicat...

0 Kudos
Reply