SAMA5D4-EK LCDC: Adding a delay after enabling the LCD solves lots of start-up timing issues
This commit is contained in:
parent
58ab6ec03f
commit
253110bbf1
@ -1,7 +1,7 @@
|
||||
/****************************************************************************
|
||||
* arch/arm/src/sama5/sam_lcd.c
|
||||
*
|
||||
* Copyright (C) 2013 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2013-2014 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* References:
|
||||
@ -2973,6 +2973,18 @@ int up_fbinitialize(void)
|
||||
sam_show_hcr();
|
||||
#endif
|
||||
|
||||
#if defined(BOARD_LCDC_ENABLE_DELAY) && BOARD_LCDC_ENABLE_DELAY > 0
|
||||
/* Delay a bit after enabling the LDC. I presume that a delay of a few
|
||||
* frame times allows some unstable clocking to synchronize before we
|
||||
* tart thrashing the framebuffer? But I am not sure why this is
|
||||
* necessary and, in fact, is certainly not necessary in most LCDC
|
||||
* configurations. Perhaps this delay would not be necessary if timings
|
||||
* were more precise?
|
||||
*/
|
||||
|
||||
usleep(BOARD_LCDC_ENABLE_DELAY);
|
||||
#endif
|
||||
|
||||
/* Enable the backlight.
|
||||
*
|
||||
* REVISIT: Backlight level could be dynamically adjustable
|
||||
|
@ -203,6 +203,17 @@
|
||||
#define BOARD_LCDC_PIXELCLOCK \
|
||||
(BOARD_LCDC_HSPERIOD * BOARD_LCDC_VSPERIOD * BOARD_LCDC_FRAMERATE)
|
||||
|
||||
/* This specifies a delay after enabling the LCDC. This was found
|
||||
* experimentally and is very much a kludge. I presume that a delay of a
|
||||
* couple of frame times allows some unstable clocking to synchronize before
|
||||
* we start thrashing the framebuffer? But I am not sure why this is
|
||||
* necessary and, in fact, is certainly not necessary in other LCDC
|
||||
* configurations. Perhaps the delay would not be necessary if timings were
|
||||
* more precise?
|
||||
*/
|
||||
|
||||
#define BOARD_LCDC_ENABLE_DELAY (50*1000)
|
||||
|
||||
/* Backlight prescaler value and PWM output polarity */
|
||||
|
||||
#define BOARD_LCDC_PWMPS LCDC_LCDCFG6_PWMPS_DIV1
|
||||
|
Loading…
x
Reference in New Issue
Block a user