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
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.