LVDS data format

I have an LVDS display connected to an Ixora board with an Apalis module. The display is 800x480 @ 24-bits, and from the datasheet I can tell is expects LVDS data in the SPWG format.

Now I do get a legible image on the display, but it looks “washed out”/extremely low contract, i.e. anything that should be black looks gray. I also see colors that look like the RGB components overflowed (banding, instead of a smooth color gradient). See the pictures below for examples (the photo of the text may seem like it’s just a bad picture, but that is really what it looks like).

Could these effects be caused by an incorrect colour mapping? The LVDS section of the Apalis iMX6 datasheet mentions an LDB Control Register and the bit_mapping_ch and data_width_ch fields where you can select the JEIDA or SPWG color mappings. How can I check which mapping is used?

In u-boot, my vidargs are set to:

vidargs=video=mxcfb0:dev=ldb,800x480M@60,if=RGB24 fbmem=32M

uname -a says:

Linux apalis-imx6 4.1.41-2.7.3+g82f0f4f #2 SMP Fri Jul 28 12:39:57 CEST 2017 armv7l GNU/Linux

Any suggestions are appreciated.



Have a look here.

With the 4.1 kernel its the same as with the 3.14. kernel. You have to setup the color mapping and color depth in the device tree with the properties fsl,data-mapping and fsl,data-width.


Ah, right, I completely misread that. I thought that with kernel 4.1.x everything was back to the way it was with 3.10.17 i.e. the whole configuration could once more be done through the command line.

Thanks, I will give this a try!

Just for the record: This was indeed the solution. I changed the bit-depth in the devicetree, and now the display works fine.