diff options
author | Dilan Lee <dilee@nvidia.com> | 2011-07-27 18:21:55 +0800 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2011-08-29 10:59:17 -0700 |
commit | 5f939ba69cfb57681ed829b92de94f14cf354acc (patch) | |
tree | 4085de3a582c8ccaa0ca356b696c87a7844e178f /common | |
parent | fd00e682c0ccd38ced77a91af4442d38d8cb2e09 (diff) |
CHROMIUM: ARM: tegra2: Change panel power on sequence to meet timing
LCD panels require delays in the power-on sequence. This adds those with
a facility for the ftd to specify them.
This introduces significant boot delays - around 120ms at minimum. We will
address these with further work.
BUG=chrome-os-partner:4854
TEST=Probe these power signals on Aebl with a scope.
Boot on Seaboard
Change-Id: Ie12abd52b66db5966de985a102aaadaea7f3d970
Signed-off-by: Dilan Lee <dilee@nvidia.com>
Reviewed-on: http://gerrit.chromium.org/gerrit/4194
Reviewed-by: Doug Anderson <dianders@chromium.org>
Tested-by: Doug Anderson <dianders@chromium.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/fdt_decode.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/common/fdt_decode.c b/common/fdt_decode.c index 01431e8ef09..960a2e83c5f 100644 --- a/common/fdt_decode.c +++ b/common/fdt_decode.c @@ -400,6 +400,7 @@ static int decode_gpios(const void *blob, int node, const char *property, return len; } +#if 0 /** * Decode a list of GPIOs from an FDT. This creates a list of GPIOs with the * last one being GPIO_NONE. @@ -424,6 +425,7 @@ static int decode_gpio_list(const void *blob, int node, const char *property, gpio[err].gpio = FDT_GPIO_NONE; return 0; } +#endif /** * Decode a single GPIOs from an FDT. @@ -515,8 +517,19 @@ int fdt_decode_lcd(const void *blob, struct fdt_lcd *config) !config->pwfm || !config->disp) return -FDT_ERR_MISSING; config->frame_buffer = get_addr(blob, node, "frame-buffer"); - return decode_gpio_list(blob, node, "gpios", config->gpios, - FDT_LCD_GPIOS); + + err |= decode_gpio(blob, node, "backlight-enable", + &config->backlight_en); + err |= decode_gpio(blob, node, "lvds-shutdown", + &config->lvds_shutdown); + err |= decode_gpio(blob, node, "backlight-vdd", + &config->backlight_vdd); + err |= decode_gpio(blob, node, "panel-vdd", &config->panel_vdd); + if (err) + return -FDT_ERR_MISSING; + + return get_int_array(blob, node, "panel-timings", + config->panel_timings, FDT_LCD_TIMINGS); } int fdt_decode_usb(const void *blob, int node, unsigned osc_frequency_mhz, |