I am trying to get a 24bit LVDS Display working, but am having problems....
I am running Linux 4.1.15 configured for Android (imx_v7_android_defconfig) on an IMX6DL. We have all 5 LVDS Data Pairs connected (DATA[0:3] + CLK). When I first configured the board, I accidentally configured the display for 18 bit using:
bootargs - video=mxcfb0:dev=ldb,bpp=32
devicetree - compatible = "fsl,mxc_sdc_fb";
disp_dev = "ldb";
interface_pix_fmt = "RGB666";
default_bpp = <32>;
This works fine, but results in dim colors and color banding. Looking at the LVDS data, there is no data on LVDS0_DATA3, but looking at the image on the LCD, it appears as though the color bits are shifted down where what should be on R7 is on R5, R6 is on R4, etc.. Same with Blue and Green. An image of this is attached as RGB555_ColorBar.
When I noticed the error of being in 18bit mode, I made a change to the device tree to change the line Interface_pix_fmt to read "RGB24". I am not sure if other changes should have been made to put the LDB port in 24bit color mode, but this one change has resulted in a scrambling of the color and still no data on LVDS0_DATA3. (See image RGB24_ColorBar).
Both attached images are of the same graphic, but it shows the effect of the change to RGB24.
Can someone please help me to understand what I am missing to make this display function as 24bit RGB over LDB. Please let me know if more data is needed...