How to change LDDS configuration on LinuxV2.8

We are working on our carrier board, which implements an 800x400 TFT display, recently installed Linux V2.8 on these modules.
When turning on the display for the first time it only showed black lines on a white background, so I decided to change the display configuration through the command prompt with the following line:

setenv vidargs ‘mxc_lcd.only_cea=1 video=mxcfb0:dev=lcd,800x480@60,if=RGB666
video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=32M’

with this modification I can see the image but it comes out in pink tone, I attach an image.

I think this is caused by the configuration of LDDS, this error also happened in WEC7 and it was solved by setting LDDS = 24.

I was searching and I can not find how to change this value on Linux.
Can it be done from the console?

I guess you may try with if=RGB24 instead of if=RGB666 as outlined in the following article on our developer website however in theory the default Colibri pin muxing does not allow for more than 18-bit displays unless of course your custom carrier board uses those address pins 19 to 24 aka SODIMM pins 136, 138, 140, 142, 144 and 146 as the higher display data signals in which case the device tree also would need changing analogous to the Apalis iMX6 one which does use such configuration.

change the configuration from if = RGB666 to if = RGB24, but the result is similar, even sharpness in the image is lost.

About what you are saying, our carrier board does use the SODIMM pins 136, 138, 140, 142, 144 and 146 for data lines 19-24.
What would be the modification to the “device tree” to work with 24 signals?

alt text

The additional pins for the 24-bit display are ADDR19:24, which are available as part of the pingroup pinctrl_weim_gpio_2 (see imx6qdl-colibri.dtsi). In the imx6dl-colibri-eval-v3.dts device tree, this pingroup is currently assigned to the iomuxc, remove it from there.

Then a new pinctrl node is required to mux the pads as display outputs. The complete change looks something like this (see also Device Tree Customization):

diff --git a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
index 6889d3f316e2..6fb22f9f9dbc 100644
--- a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
+++ b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
@@ -195,7 +195,7 @@
         * so they are ready for export to user space
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_weim_gpio_1 &pinctrl_weim_gpio_2
+       pinctrl-0 = <&pinctrl_weim_gpio_1
                     &pinctrl_weim_gpio_3 &pinctrl_weim_gpio_4
                     &pinctrl_weim_gpio_5 &pinctrl_weim_gpio_6
@@ -218,9 +218,26 @@
+       ipu1 {
+               /* ADDRESS[19:24] used as display */
+               pinctrl_ipu1_lcd2: ipu1grp-lcd {
+                       fsl,pins = <
+                               MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23   0xa1
+                               MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22   0xa1
+                               MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21   0xa1
+                               MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20   0xa1
+                               MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19   0xa1
+                               MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18   0xa1
+                       >;
+               };
+       };
 &lcd {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ipu1_lcd &pinctrl_ipu1_lcd2>;
        status = "okay";