summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorBernhard Nortmann <bernhard.nortmann@web.de>2015-08-21 15:13:21 +0200
committerTom Rini <trini@konsulko.com>2015-10-24 13:50:02 -0400
commit13cfbe51357bf3275b14046e0031ea2b7fdaf8ce (patch)
tree6b2432f23b0ad1f8941b56157a3d9a6d693f9542 /common
parentd375ebbcb655ce8f9012cf93db347d3ced66eaac (diff)
downloadtalos-obmc-uboot-13cfbe51357bf3275b14046e0031ea2b7fdaf8ce.tar.gz
talos-obmc-uboot-13cfbe51357bf3275b14046e0031ea2b7fdaf8ce.zip
allow LED initialization without STATUS_LED_BOOT
For current U-Boot to initialize status LEDs via status_led_init(), it is required to have both CONFIG_STATUS_LED and STATUS_LED_BOOT defined. This may be a particular concern with GPIO LEDs, where __led_init() is required to correctly set up the GPIO (gpio_request and gpio_direction_output). Without STATUS_LED_BOOT the initialization isn't called, which could leave the user with a non-functional "led" command - due to the fact that the LED routines in gpio_led.c use gpio_set_value() just fine, but the GPIO never got set up properly in the first place. I think having CONFIG_STATUS_LED is sufficient to justify a corresponding call to status_led_init(), even with no STATUS_LED_BOOT defined. To do so, common/board_r.c needs call that routine, so it now is exposed via status_led.h. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de> [trini: Add dummy __led_init to pca9551_led.c] Signed-off-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'common')
-rw-r--r--common/board_r.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/common/board_r.c b/common/board_r.c
index a4facf8845..a412bb7554 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -544,11 +544,14 @@ static int initr_kgdb(void)
}
#endif
-#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
+#if defined(CONFIG_STATUS_LED)
static int initr_status_led(void)
{
+#if defined(STATUS_LED_BOOT)
status_led_set(STATUS_LED_BOOT, STATUS_LED_BLINKING);
-
+#else
+ status_led_init();
+#endif
return 0;
}
#endif
@@ -835,7 +838,7 @@ init_fnc_t init_sequence_r[] = {
|| defined(CONFIG_M68K)
timer_init, /* initialize timer */
#endif
-#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
+#if defined(CONFIG_STATUS_LED)
initr_status_led,
#endif
/* PPC has a udelay(20) here dating from 2002. Why? */
OpenPOWER on IntegriCloud