summaryrefslogtreecommitdiff
path: root/common/fdt_decode.c
diff options
context:
space:
mode:
authorDilan Lee <dilee@nvidia.com>2011-07-27 18:21:55 +0800
committerSimon Glass <sjg@chromium.org>2011-08-29 10:59:17 -0700
commit5f939ba69cfb57681ed829b92de94f14cf354acc (patch)
tree4085de3a582c8ccaa0ca356b696c87a7844e178f /common/fdt_decode.c
parentfd00e682c0ccd38ced77a91af4442d38d8cb2e09 (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/fdt_decode.c')
-rw-r--r--common/fdt_decode.c17
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,