From 5f939ba69cfb57681ed829b92de94f14cf354acc Mon Sep 17 00:00:00 2001 From: Dilan Lee Date: Wed, 27 Jul 2011 18:21:55 +0800 Subject: 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 Reviewed-on: http://gerrit.chromium.org/gerrit/4194 Reviewed-by: Doug Anderson Tested-by: Doug Anderson --- common/fdt_decode.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'common') 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, -- cgit v1.2.3