AnsweredAssumed Answered

LCD colors look wrong. Android 4.3 with18-bit Parallel RGB on IMX6S.

Question asked by Luke Marvin on Jul 18, 2014
Latest reply on May 13, 2015 by Dang Nguyen Quoc

Photo 2014-07-14, 3 58 19 PM.jpg

 

I'm trying to get a HX8369A based lcd to display 18-bit parallel RGB. I've got it working but the colors look terrible. A lot of pixels just go to green like the color data is incorrect. I've tried a variety of timings but it doesn't help.


Does this seem like a timing issue? Is the software giving bad color data? Could my LCD be expecting color data in a slightly different format?

 

I'm using an IMX6S based RIoTboard which only has DISP_DAT0 - DISP0_DAT17 accessible on the header so I can't use 24 bits. Kernel 3.0.35, Android 4.3.

 

Boot Arguments:

setenv bootargs console=ttymxc1,115200 init=/init video=mxcfb0:dev=lcd,CLAA-WVGA@60,bpp=18,if=RGB666 video=mxcfb1:off fbmem=10M vmalloc=400M androidboot.console=ttymxc1 androidboot.hardware=freescale

 

Timing in mxc_lcdif.c:

static struct fb_videomode lcdif_modedb[] = {
  {
     "CLAA-WVGA", 60, 480, 800, KHZ2PICOS(25000), 5, 5, 2, 2, 5, 2,
     FB_SYNC_CLK_LAT_FALL,
     FB_VMODE_NONINTERLACED,
     0,
  },
//...
}

 

FB configuration in board-mx6solo_RIoTboard.c:

static struct fsl_mxc_lcd_platform_data lcdif_data = {
  .ipu_id = 0,
  .disp_id = 0,
  .default_ifmt = IPU_PIX_FMT_RGB666,
};

//...

static struct ipuv3_fb_platform_data RIoTboard_fb_data[] = {
  {
  .disp_dev = "lcd",
  .interface_pix_fmt = IPU_PIX_FMT_RGB666,
  .mode_str = "CLAA-WVGA",
  .default_bpp = 18,
  .int_clk = false,
  },
//...
}

 

Pin Muxing in board-mx6solo_RIoTboard.h:

/* DISPLAY */
  MX6DL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK,
  MX6DL_PAD_DI0_PIN15__IPU1_DI0_PIN15, /* DE */
  MX6DL_PAD_DI0_PIN2__IPU1_DI0_PIN2, /* HSync */
  MX6DL_PAD_DI0_PIN3__IPU1_DI0_PIN3, /* VSync */
  //MX6DL_PAD_DI0_PIN4__IPU1_DI0_PIN4, /* Contrast not connected*/
  MX6DL_PAD_DISP0_DAT0__IPU1_DISP0_DAT_0,
  MX6DL_PAD_DISP0_DAT1__IPU1_DISP0_DAT_1,
  MX6DL_PAD_DISP0_DAT2__IPU1_DISP0_DAT_2,
  MX6DL_PAD_DISP0_DAT3__IPU1_DISP0_DAT_3,
  MX6DL_PAD_DISP0_DAT4__IPU1_DISP0_DAT_4,
  MX6DL_PAD_DISP0_DAT5__IPU1_DISP0_DAT_5,
  MX6DL_PAD_DISP0_DAT6__IPU1_DISP0_DAT_6,
  MX6DL_PAD_DISP0_DAT7__IPU1_DISP0_DAT_7,
  MX6DL_PAD_DISP0_DAT8__IPU1_DISP0_DAT_8,
  MX6DL_PAD_DISP0_DAT9__IPU1_DISP0_DAT_9,
  MX6DL_PAD_DISP0_DAT10__IPU1_DISP0_DAT_10,
  MX6DL_PAD_DISP0_DAT11__IPU1_DISP0_DAT_11,
  MX6DL_PAD_DISP0_DAT12__IPU1_DISP0_DAT_12,
  MX6DL_PAD_DISP0_DAT13__IPU1_DISP0_DAT_13,
  MX6DL_PAD_DISP0_DAT14__IPU1_DISP0_DAT_14,
  MX6DL_PAD_DISP0_DAT15__IPU1_DISP0_DAT_15,
  MX6DL_PAD_DISP0_DAT16__IPU1_DISP0_DAT_16,
  MX6DL_PAD_DISP0_DAT17__IPU1_DISP0_DAT_17,

 

Does 18-bit color just look this bad?

Outcomes