status_led: Kconfig migration

Move all of the status LED feature to drivers/led/Kconfig.
The LED status definitions were moved from the board configuration
files to the defconfig files.

TBD: Move all of the definitions in the include/status_led.h to the
relevant board's defconfig files.

Tested boards: CL-SOM-AM57x, CM-T335

Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
diff --git a/arch/arm/cpu/arm920t/ep93xx/led.c b/arch/arm/cpu/arm920t/ep93xx/led.c
index ecceb98..402fa3a 100644
--- a/arch/arm/cpu/arm920t/ep93xx/led.c
+++ b/arch/arm/cpu/arm920t/ep93xx/led.c
@@ -9,16 +9,16 @@
 #include <config.h>
 #include <status_led.h>
 
-static uint8_t saved_state[2] = {STATUS_LED_OFF, STATUS_LED_OFF};
-static uint32_t gpio_pin[2] = {1 << STATUS_LED_GREEN,
-			       1 << STATUS_LED_RED};
+static uint8_t saved_state[2] = {CONFIG_LED_STATUS_OFF, CONFIG_LED_STATUS_OFF};
+static uint32_t gpio_pin[2] = {1 << CONFIG_LED_STATUS_GREEN,
+			       1 << CONFIG_LED_STATUS_RED};
 
 static inline void switch_LED_on(uint8_t led)
 {
 	register struct gpio_regs *gpio = (struct gpio_regs *)GPIO_BASE;
 
 	writel(readl(&gpio->pedr) | gpio_pin[led], &gpio->pedr);
-	saved_state[led] = STATUS_LED_ON;
+	saved_state[led] = CONFIG_LED_STATUS_ON;
 }
 
 static inline void switch_LED_off(uint8_t led)
@@ -26,27 +26,27 @@
 	register struct gpio_regs *gpio = (struct gpio_regs *)GPIO_BASE;
 
 	writel(readl(&gpio->pedr) & ~gpio_pin[led], &gpio->pedr);
-	saved_state[led] = STATUS_LED_OFF;
+	saved_state[led] = CONFIG_LED_STATUS_OFF;
 }
 
 void red_led_on(void)
 {
-	switch_LED_on(STATUS_LED_RED);
+	switch_LED_on(CONFIG_LED_STATUS_RED);
 }
 
 void red_led_off(void)
 {
-	switch_LED_off(STATUS_LED_RED);
+	switch_LED_off(CONFIG_LED_STATUS_RED);
 }
 
 void green_led_on(void)
 {
-	switch_LED_on(STATUS_LED_GREEN);
+	switch_LED_on(CONFIG_LED_STATUS_GREEN);
 }
 
 void green_led_off(void)
 {
-	switch_LED_off(STATUS_LED_GREEN);
+	switch_LED_off(CONFIG_LED_STATUS_GREEN);
 }
 
 void __led_init(led_id_t mask, int state)
@@ -56,13 +56,14 @@
 
 void __led_toggle(led_id_t mask)
 {
-	if (STATUS_LED_RED == mask) {
-		if (STATUS_LED_ON == saved_state[STATUS_LED_RED])
+	if (CONFIG_LED_STATUS_RED == mask) {
+		if (CONFIG_LED_STATUS_ON == saved_state[CONFIG_LED_STATUS_RED])
 			red_led_off();
 		else
 			red_led_on();
-	} else if (STATUS_LED_GREEN == mask) {
-		if (STATUS_LED_ON == saved_state[STATUS_LED_GREEN])
+	} else if (CONFIG_LED_STATUS_GREEN == mask) {
+		if (CONFIG_LED_STATUS_ON ==
+		    saved_state[CONFIG_LED_STATUS_GREEN])
 			green_led_off();
 		else
 			green_led_on();
@@ -71,13 +72,13 @@
 
 void __led_set(led_id_t mask, int state)
 {
-	if (STATUS_LED_RED == mask) {
-		if (STATUS_LED_ON == state)
+	if (CONFIG_LED_STATUS_RED == mask) {
+		if (CONFIG_LED_STATUS_ON == state)
 			red_led_on();
 		else
 			red_led_off();
-	} else if (STATUS_LED_GREEN == mask) {
-		if (STATUS_LED_ON == state)
+	} else if (CONFIG_LED_STATUS_GREEN == mask) {
+		if (CONFIG_LED_STATUS_ON == state)
 			green_led_on();
 		else
 			green_led_off();
diff --git a/arch/powerpc/include/asm/status_led.h b/arch/powerpc/include/asm/status_led.h
index 260a831..1ae1b17 100644
--- a/arch/powerpc/include/asm/status_led.h
+++ b/arch/powerpc/include/asm/status_led.h
@@ -8,7 +8,7 @@
 #define __ASM_STATUS_LED_H__
 
 /* if not overridden */
-#ifndef CONFIG_BOARD_SPECIFIC_LED
+#ifndef CONFIG_LED_STATUS_BOARD_SPECIFIC
 # if defined(CONFIG_8xx)
 #  include <mpc8xx.h>
 # elif defined(CONFIG_MPC8260)
@@ -34,12 +34,12 @@
 #endif
 
 #if (STATUS_LED_ACTIVE == 0)
-	if (state == STATUS_LED_ON)
+	if (state == CONFIG_LED_STATUS_ON)
 		immr->STATUS_LED_DAT &= ~mask;
 	else
 		immr->STATUS_LED_DAT |= mask;
 #else
-	if (state == STATUS_LED_ON)
+	if (state == CONFIG_LED_STATUS_ON)
 		immr->STATUS_LED_DAT |= mask;
 	else
 		immr->STATUS_LED_DAT &= ~mask;
@@ -59,12 +59,12 @@
 	volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
 
 #if (STATUS_LED_ACTIVE == 0)
-	if (state == STATUS_LED_ON)
+	if (state == CONFIG_LED_STATUS_ON)
 		immr->STATUS_LED_DAT &= ~mask;
 	else
 		immr->STATUS_LED_DAT |= mask;
 #else
-	if (state == STATUS_LED_ON)
+	if (state == CONFIG_LED_STATUS_ON)
 		immr->STATUS_LED_DAT |= mask;
 	else
 		immr->STATUS_LED_DAT &= ~mask;
diff --git a/arch/powerpc/lib/interrupts.c b/arch/powerpc/lib/interrupts.c
index f7cf915..5031357 100644
--- a/arch/powerpc/lib/interrupts.c
+++ b/arch/powerpc/lib/interrupts.c
@@ -11,7 +11,7 @@
 #include <common.h>
 #include <asm/processor.h>
 #include <watchdog.h>
-#ifdef CONFIG_STATUS_LED
+#ifdef CONFIG_LED_STATUS
 #include <status_led.h>
 #endif
 
@@ -112,9 +112,9 @@
 		WATCHDOG_RESET ();
 #endif    /* CONFIG_WATCHDOG || CONFIG_HW_WATCHDOG */
 
-#ifdef CONFIG_STATUS_LED
+#ifdef CONFIG_LED_STATUS
 	status_led_tick (timestamp);
-#endif /* CONFIG_STATUS_LED */
+#endif /* CONFIG_LED_STATUS */
 
 #ifdef CONFIG_SHOW_ACTIVITY
 	board_show_activity (timestamp);
diff --git a/board/BuS/eb_cpu5282/eb_cpu5282.c b/board/BuS/eb_cpu5282/eb_cpu5282.c
index 2164b52..b1740ee 100644
--- a/board/BuS/eb_cpu5282/eb_cpu5282.c
+++ b/board/BuS/eb_cpu5282/eb_cpu5282.c
@@ -174,7 +174,7 @@
 
 void __led_set(led_id_t mask, int state)
 {
-	if (state == STATUS_LED_ON)
+	if (state == CONFIG_LED_STATUS_ON)
 		MCFGPTA_GPTPORT |= (1 << 3);
 	else
 		MCFGPTA_GPTPORT &= ~(1 << 3);
diff --git a/board/bf533-stamp/bf533-stamp.c b/board/bf533-stamp/bf533-stamp.c
index eb000a6..185a651 100644
--- a/board/bf533-stamp/bf533-stamp.c
+++ b/board/bf533-stamp/bf533-stamp.c
@@ -50,8 +50,8 @@
 
 #ifdef CONFIG_SHOW_BOOT_PROGRESS
 
-#define STATUS_LED_OFF 0
-#define STATUS_LED_ON  1
+#define CONFIG_LED_STATUS_OFF 0
+#define CONFIG_LED_STATUS_ON  1
 
 static int gpio_setup;
 
@@ -76,24 +76,30 @@
 {
 	switch (status) {
 	case BOOTSTAGE_ID_CHECK_MAGIC:
-		stamp_led_set(STATUS_LED_OFF, STATUS_LED_OFF, STATUS_LED_ON);
+		stamp_led_set(CONFIG_LED_STATUS_OFF, CONFIG_LED_STATUS_OFF,
+			      CONFIG_LED_STATUS_ON);
 		break;
 	case BOOTSTAGE_ID_CHECK_HEADER:
-		stamp_led_set(STATUS_LED_OFF, STATUS_LED_ON, STATUS_LED_OFF);
+		stamp_led_set(CONFIG_LED_STATUS_OFF, CONFIG_LED_STATUS_ON,
+			      CONFIG_LED_STATUS_OFF);
 		break;
 	case BOOTSTAGE_ID_CHECK_CHECKSUM:
-		stamp_led_set(STATUS_LED_OFF, STATUS_LED_ON, STATUS_LED_ON);
+		stamp_led_set(CONFIG_LED_STATUS_OFF, CONFIG_LED_STATUS_ON,
+			      CONFIG_LED_STATUS_ON);
 		break;
 	case BOOTSTAGE_ID_CHECK_ARCH:
-		stamp_led_set(STATUS_LED_ON, STATUS_LED_OFF, STATUS_LED_OFF);
+		stamp_led_set(CONFIG_LED_STATUS_ON, CONFIG_LED_STATUS_OFF,
+			      CONFIG_LED_STATUS_OFF);
 		break;
 	case BOOTSTAGE_ID_CHECK_IMAGETYPE:
 	case BOOTSTAGE_ID_DECOMP_IMAGE:
-		stamp_led_set(STATUS_LED_ON, STATUS_LED_OFF, STATUS_LED_ON);
+		stamp_led_set(CONFIG_LED_STATUS_ON, CONFIG_LED_STATUS_OFF,
+			      CONFIG_LED_STATUS_ON);
 		break;
 	case BOOTSTAGE_ID_KERNEL_LOADED:
 	case BOOTSTAGE_ID_CHECK_BOOT_OS:
-		stamp_led_set(STATUS_LED_ON, STATUS_LED_ON, STATUS_LED_OFF);
+		stamp_led_set(CONFIG_LED_STATUS_ON, CONFIG_LED_STATUS_ON,
+			      CONFIG_LED_STATUS_OFF);
 		break;
 	case BOOTSTAGE_ID_BOOT_OS_RETURNED:
 	case BOOTSTAGE_ID_RD_MAGIC:
@@ -102,10 +108,12 @@
 	case BOOTSTAGE_ID_RAMDISK:
 	case BOOTSTAGE_ID_NO_RAMDISK:
 	case BOOTSTAGE_ID_RUN_OS:
-		stamp_led_set(STATUS_LED_OFF, STATUS_LED_OFF, STATUS_LED_OFF);
+		stamp_led_set(CONFIG_LED_STATUS_OFF, CONFIG_LED_STATUS_OFF,
+			      CONFIG_LED_STATUS_OFF);
 		break;
 	default:
-		stamp_led_set(STATUS_LED_ON, STATUS_LED_ON, STATUS_LED_ON);
+		stamp_led_set(CONFIG_LED_STATUS_ON, CONFIG_LED_STATUS_ON,
+			      CONFIG_LED_STATUS_ON);
 		break;
 	}
 }
diff --git a/board/compulab/cm_t335/cm_t335.c b/board/compulab/cm_t335/cm_t335.c
index 428aee6..c4506b9 100644
--- a/board/compulab/cm_t335/cm_t335.c
+++ b/board/compulab/cm_t335/cm_t335.c
@@ -31,8 +31,8 @@
 
 	gpmc_init();
 
-#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
-	status_led_set(STATUS_LED_BOOT, STATUS_LED_OFF);
+#if defined(CONFIG_LED_STATUS) && defined(CONFIG_LED_STATUS_BOOT_ENABLE)
+	status_led_set(CONFIG_LED_STATUS_BOOT, CONFIG_LED_STATUS_OFF);
 #endif
 	return 0;
 }
diff --git a/board/compulab/cm_t35/cm_t35.c b/board/compulab/cm_t35/cm_t35.c
index 484651b..ec21955 100644
--- a/board/compulab/cm_t35/cm_t35.c
+++ b/board/compulab/cm_t35/cm_t35.c
@@ -92,8 +92,8 @@
 	/* boot param addr */
 	gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
 
-#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
-	status_led_set(STATUS_LED_BOOT, STATUS_LED_ON);
+#if defined(CONFIG_LED_STATUS) && defined(CONFIG_LED_STATUS_BOOT_ENABLE)
+	status_led_set(CONFIG_LED_STATUS_BOOT, CONFIG_LED_STATUS_ON);
 #endif
 
 	return 0;
diff --git a/board/compulab/cm_t3517/cm_t3517.c b/board/compulab/cm_t3517/cm_t3517.c
index 8aae248..50312b1 100644
--- a/board/compulab/cm_t3517/cm_t3517.c
+++ b/board/compulab/cm_t3517/cm_t3517.c
@@ -89,8 +89,8 @@
 	/* boot param addr */
 	gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
 
-#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
-	status_led_set(STATUS_LED_BOOT, STATUS_LED_ON);
+#if defined(CONFIG_LED_STATUS) && defined(CONFIG_LED_STATUS_BOOT_ENABLE)
+	status_led_set(CONFIG_LED_STATUS_BOOT, CONFIG_LED_STATUS_ON);
 #endif
 
 	cm_t3517_musb_init();
diff --git a/board/corscience/tricorder/led.c b/board/corscience/tricorder/led.c
index 30f2f50..00ffc00 100644
--- a/board/corscience/tricorder/led.c
+++ b/board/corscience/tricorder/led.c
@@ -23,16 +23,16 @@
 void __led_toggle(led_id_t mask)
 {
 	int toggle_gpio = 0;
-#ifdef STATUS_LED_BIT
-	if (!toggle_gpio && STATUS_LED_BIT & mask)
+#ifdef CONFIG_LED_STATUS0
+	if (!toggle_gpio && CONFIG_LED_STATUS_BIT & mask)
 		toggle_gpio = TRICORDER_STATUS_LED_GREEN;
 #endif
-#ifdef STATUS_LED_BIT1
-	if (!toggle_gpio && STATUS_LED_BIT1 & mask)
+#ifdef CONFIG_LED_STATUS1
+	if (!toggle_gpio && CONFIG_LED_STATUS_BIT1 & mask)
 		toggle_gpio = TRICORDER_STATUS_LED_YELLOW;
 #endif
-#ifdef STATUS_LED_BIT2
-	if (!toggle_gpio && STATUS_LED_BIT2 & mask) {
+#ifdef CONFIG_LED_STATUS2
+	if (!toggle_gpio && CONFIG_LED_STATUS_BIT2 & mask) {
 		uint8_t val;
 		twl4030_i2c_read_u8(TWL4030_CHIP_LED, TWL4030_LED_LEDEN,
 				    &val);
@@ -51,23 +51,23 @@
 
 void __led_set(led_id_t mask, int state)
 {
-#ifdef STATUS_LED_BIT
-	if (STATUS_LED_BIT & mask) {
+#ifdef CONFIG_LED_STATUS0
+	if (CONFIG_LED_STATUS_BIT & mask) {
 		gpio_request(TRICORDER_STATUS_LED_GREEN, "");
 		gpio_direction_output(TRICORDER_STATUS_LED_GREEN, 0);
 		gpio_set_value(TRICORDER_STATUS_LED_GREEN, state);
 	}
 #endif
-#ifdef STATUS_LED_BIT1
-	if (STATUS_LED_BIT1 & mask) {
+#ifdef CONFIG_LED_STATUS1
+	if (CONFIG_LED_STATUS_BIT1 & mask) {
 		gpio_request(TRICORDER_STATUS_LED_YELLOW, "");
 		gpio_direction_output(TRICORDER_STATUS_LED_YELLOW, 0);
 		gpio_set_value(TRICORDER_STATUS_LED_YELLOW, state);
 	}
 #endif
-#ifdef STATUS_LED_BIT2
-	if (STATUS_LED_BIT2 & mask) {
-		if (STATUS_LED_OFF == state)
+#ifdef CONFIG_LED_STATUS2
+	if (CONFIG_LED_STATUS_BIT2 & mask) {
+		if (CONFIG_LED_STATUS_OFF == state)
 			twl4030_i2c_write_u8(TWL4030_CHIP_LED,
 					     TWL4030_LED_LEDEN, 0);
 		else
diff --git a/board/corscience/tricorder/tricorder.c b/board/corscience/tricorder/tricorder.c
index 0009452..e8260c6 100644
--- a/board/corscience/tricorder/tricorder.c
+++ b/board/corscience/tricorder/tricorder.c
@@ -120,9 +120,9 @@
 	print_hwversion(&eeprom);
 
 	twl4030_power_init();
-	status_led_set(0, STATUS_LED_ON);
-	status_led_set(1, STATUS_LED_ON);
-	status_led_set(2, STATUS_LED_ON);
+	status_led_set(0, CONFIG_LED_STATUS_ON);
+	status_led_set(1, CONFIG_LED_STATUS_ON);
+	status_led_set(2, CONFIG_LED_STATUS_ON);
 
 	omap_die_id_display();
 
diff --git a/board/isee/igep00x0/igep00x0.c b/board/isee/igep00x0/igep00x0.c
index 5a3498f..65cc7df 100644
--- a/board/isee/igep00x0/igep00x0.c
+++ b/board/isee/igep00x0/igep00x0.c
@@ -69,8 +69,8 @@
 	/* boot param addr */
 	gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
 
-#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
-	status_led_set(STATUS_LED_BOOT, STATUS_LED_ON);
+#if defined(CONFIG_LED_STATUS) && defined(CONFIG_LED_STATUS_BOOT_ENABLE)
+	status_led_set(CONFIG_LED_STATUS_BOOT, CONFIG_LED_STATUS_ON);
 #endif
 
 	return 0;
diff --git a/board/motionpro/motionpro.c b/board/motionpro/motionpro.c
index dc237c1..7fa81b8 100644
--- a/board/motionpro/motionpro.c
+++ b/board/motionpro/motionpro.c
@@ -15,9 +15,9 @@
 #include <miiphy.h>
 #include <libfdt.h>
 
-#if defined(CONFIG_STATUS_LED)
+#if defined(CONFIG_LED_STATUS)
 #include <status_led.h>
-#endif /* CONFIG_STATUS_LED */
+#endif /* CONFIG_LED_STATUS */
 
 /* Kollmorgen DPR initialization data */
 struct init_elem {
@@ -194,27 +194,46 @@
 #endif /* CONFIG_OF_BOARD_SETUP */
 
 
-#if defined(CONFIG_STATUS_LED)
-void __led_init(led_id_t regaddr, int state)
+#if defined(CONFIG_LED_STATUS)
+vu_long *regcode_to_regaddr(led_id_t regcode)
 {
-	*((vu_long *) regaddr) |= ENABLE_GPIO_OUT;
+	/* GPT Enable and Mode Select Register address */
+	vu_long *reg_translate[] = {
+					(vu_long *)MPC5XXX_GPT6_ENABLE,
+					(vu_long *)MPC5XXX_GPT7_ENABLE,
+				   };
 
-	if (state == STATUS_LED_ON)
+	if (ARRAY_SIZE(reg_translate) <= regcode)
+		return NULL;
+	return reg_translate[regcode];
+}
+
+void __led_init(led_id_t regcode, int state)
+{
+	vu_long *regaddr = regcode_to_regaddr(regcode);
+
+	*regaddr |= ENABLE_GPIO_OUT;
+
+	if (state == CONFIG_LED_STATUS_ON)
 		*((vu_long *) regaddr) |= LED_ON;
 	else
 		*((vu_long *) regaddr) &= ~LED_ON;
 }
 
-void __led_set(led_id_t regaddr, int state)
+void __led_set(led_id_t regcode, int state)
 {
-	if (state == STATUS_LED_ON)
-		*((vu_long *) regaddr) |= LED_ON;
+	vu_long *regaddr = regcode_to_regaddr(regcode);
+
+	if (state == CONFIG_LED_STATUS_ON)
+		*regaddr |= LED_ON;
 	else
-		*((vu_long *) regaddr) &= ~LED_ON;
+		*regaddr &= ~LED_ON;
 }
 
-void __led_toggle(led_id_t regaddr)
+void __led_toggle(led_id_t regcode)
 {
-	*((vu_long *) regaddr) ^= LED_ON;
+	vu_long *regaddr = regcode_to_regaddr(regcode);
+
+	*regaddr ^= LED_ON;
 }
-#endif /* CONFIG_STATUS_LED */
+#endif /* CONFIG_LED_STATUS */
diff --git a/board/olimex/mx23_olinuxino/mx23_olinuxino.c b/board/olimex/mx23_olinuxino/mx23_olinuxino.c
index 65cbbf1..f05fd0a 100644
--- a/board/olimex/mx23_olinuxino/mx23_olinuxino.c
+++ b/board/olimex/mx23_olinuxino/mx23_olinuxino.c
@@ -13,7 +13,7 @@
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/sys_proto.h>
-#ifdef CONFIG_STATUS_LED
+#ifdef CONFIG_LED_STATUS
 #include <status_led.h>
 #endif
 
@@ -72,8 +72,8 @@
 	/* Adress of boot parameters */
 	gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
 
-#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
-	status_led_set(STATUS_LED_BOOT, STATUS_LED_STATE);
+#if defined(CONFIG_LED_STATUS) && defined(CONFIG_LED_STATUS_BOOT_ENABLE)
+	status_led_set(CONFIG_LED_STATUS_BOOT, CONFIG_LED_STATUS_STATE);
 #endif
 
 	return 0;
diff --git a/board/samtec/vining_fpga/socfpga.c b/board/samtec/vining_fpga/socfpga.c
index f3a92b5..f888ecb 100644
--- a/board/samtec/vining_fpga/socfpga.c
+++ b/board/samtec/vining_fpga/socfpga.c
@@ -21,8 +21,8 @@
 	const unsigned int usb_nrst_gpio = 35;
 	int ret;
 
-	status_led_set(1, STATUS_LED_ON);
-	status_led_set(2, STATUS_LED_ON);
+	status_led_set(1, CONFIG_LED_STATUS_ON);
+	status_led_set(2, CONFIG_LED_STATUS_ON);
 
 	/* Address of boot parameters for ATAG (if ATAG is used) */
 	gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
diff --git a/board/ti/beagle/Makefile b/board/ti/beagle/Makefile
index 7a858be..41b552a 100644
--- a/board/ti/beagle/Makefile
+++ b/board/ti/beagle/Makefile
@@ -6,4 +6,4 @@
 #
 
 obj-y	:= beagle.o
-obj-$(CONFIG_STATUS_LED) += led.o
+obj-$(CONFIG_LED_STATUS) += led.o
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
index 23c7933..a6908d4 100644
--- a/board/ti/beagle/beagle.c
+++ b/board/ti/beagle/beagle.c
@@ -16,7 +16,7 @@
 #include <common.h>
 #include <dm.h>
 #include <ns16550.h>
-#ifdef CONFIG_STATUS_LED
+#ifdef CONFIG_LED_STATUS
 #include <status_led.h>
 #endif
 #include <twl4030.h>
@@ -96,8 +96,8 @@
 	/* boot param addr */
 	gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
 
-#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
-	status_led_set (STATUS_LED_BOOT, STATUS_LED_ON);
+#if defined(CONFIG_LED_STATUS) && defined(CONFIG_LED_STATUS_BOOT_ENABLE)
+	status_led_set(CONFIG_LED_STATUS_BOOT, CONFIG_LED_STATUS_ON);
 #endif
 
 	return 0;
diff --git a/board/ti/beagle/led.c b/board/ti/beagle/led.c
index a913a4c..30b8b93 100644
--- a/board/ti/beagle/led.c
+++ b/board/ti/beagle/led.c
@@ -15,26 +15,26 @@
 #define BEAGLE_LED_USR0	150
 #define BEAGLE_LED_USR1	149
 
-#ifdef STATUS_LED_GREEN
+#ifdef CONFIG_LED_STATUS_GREEN
 void green_led_off(void)
 {
-	__led_set (STATUS_LED_GREEN, 0);
+	__led_set(CONFIG_LED_STATUS_GREEN, 0);
 }
 
 void green_led_on(void)
 {
-	__led_set (STATUS_LED_GREEN, 1);
+	__led_set(CONFIG_LED_STATUS_GREEN, 1);
 }
 #endif
 
 static int get_led_gpio(led_id_t mask)
 {
-#ifdef STATUS_LED_BIT
-	if (STATUS_LED_BIT & mask)
+#ifdef CONFIG_LED_STATUS0
+	if (CONFIG_LED_STATUS_BIT & mask)
 		return BEAGLE_LED_USR0;
 #endif
-#ifdef STATUS_LED_BIT1
-	if (STATUS_LED_BIT1 & mask)
+#ifdef CONFIG_LED_STATUS1
+	if (CONFIG_LED_STATUS_BIT1 & mask)
 		return BEAGLE_LED_USR1;
 #endif
 
diff --git a/cmd/Makefile b/cmd/Makefile
index 34bc544..566fed9 100644
--- a/cmd/Makefile
+++ b/cmd/Makefile
@@ -78,7 +78,7 @@
 obj-$(CONFIG_CMD_JFFS2) += jffs2.o
 obj-$(CONFIG_CMD_CRAMFS) += cramfs.o
 obj-$(CONFIG_CMD_LDRINFO) += ldrinfo.o
-obj-$(CONFIG_CMD_LED) += led.o
+obj-$(CONFIG_LED_STATUS_CMD) += led.o
 obj-$(CONFIG_CMD_LICENSE) += license.o
 obj-y += load.o
 obj-$(CONFIG_LOGBUFFER) += log.o
diff --git a/cmd/ide.c b/cmd/ide.c
index c942744..0fd401b 100644
--- a/cmd/ide.c
+++ b/cmd/ide.c
@@ -25,7 +25,7 @@
 #include <ide.h>
 #include <ata.h>
 
-#ifdef CONFIG_STATUS_LED
+#ifdef CONFIG_LED_STATUS
 # include <status_led.h>
 #endif
 
diff --git a/cmd/led.c b/cmd/led.c
index b0f1a61..951a5e2 100644
--- a/cmd/led.c
+++ b/cmd/led.c
@@ -26,37 +26,38 @@
 typedef struct led_tbl_s led_tbl_t;
 
 static const led_tbl_t led_commands[] = {
-#ifdef CONFIG_BOARD_SPECIFIC_LED
-#ifdef STATUS_LED_BIT
-	{ "0", STATUS_LED_BIT, NULL, NULL, NULL },
+#ifdef CONFIG_LED_STATUS_BOARD_SPECIFIC
+#ifdef CONFIG_LED_STATUS0
+	{ "0", CONFIG_LED_STATUS_BIT, NULL, NULL, NULL },
 #endif
-#ifdef STATUS_LED_BIT1
-	{ "1", STATUS_LED_BIT1, NULL, NULL, NULL },
+#ifdef CONFIG_LED_STATUS1
+	{ "1", CONFIG_LED_STATUS_BIT1, NULL, NULL, NULL },
 #endif
-#ifdef STATUS_LED_BIT2
-	{ "2", STATUS_LED_BIT2, NULL, NULL, NULL },
+#ifdef CONFIG_LED_STATUS2
+	{ "2", CONFIG_LED_STATUS_BIT2, NULL, NULL, NULL },
 #endif
-#ifdef STATUS_LED_BIT3
-	{ "3", STATUS_LED_BIT3, NULL, NULL, NULL },
+#ifdef CONFIG_LED_STATUS3
+	{ "3", CONFIG_LED_STATUS_BIT3, NULL, NULL, NULL },
 #endif
-#ifdef STATUS_LED_BIT4
-	{ "4", STATUS_LED_BIT4, NULL, NULL, NULL },
+#ifdef CONFIG_LED_STATUS4
+	{ "4", CONFIG_LED_STATUS_BIT4, NULL, NULL, NULL },
 #endif
-#ifdef STATUS_LED_BIT5
-	{ "5", STATUS_LED_BIT5, NULL, NULL, NULL },
+#ifdef CONFIG_LED_STATUS5
+	{ "5", CONFIG_LED_STATUS_BIT5, NULL, NULL, NULL },
 #endif
 #endif
-#ifdef STATUS_LED_GREEN
-	{ "green", STATUS_LED_GREEN, green_led_off, green_led_on, NULL },
+#ifdef CONFIG_LED_STATUS_GREEN
+	{ "green", CONFIG_LED_STATUS_GREEN, green_led_off, green_led_on, NULL },
 #endif
-#ifdef STATUS_LED_YELLOW
-	{ "yellow", STATUS_LED_YELLOW, yellow_led_off, yellow_led_on, NULL },
+#ifdef CONFIG_LED_STATUS_YELLOW
+	{ "yellow", CONFIG_LED_STATUS_YELLOW, yellow_led_off, yellow_led_on,
+	  NULL },
 #endif
-#ifdef STATUS_LED_RED
-	{ "red", STATUS_LED_RED, red_led_off, red_led_on, NULL },
+#ifdef CONFIG_LED_STATUS_RED
+	{ "red", CONFIG_LED_STATUS_RED, red_led_off, red_led_on, NULL },
 #endif
-#ifdef STATUS_LED_BLUE
-	{ "blue", STATUS_LED_BLUE, blue_led_off, blue_led_on, NULL },
+#ifdef CONFIG_LED_STATUS_BLUE
+	{ "blue", CONFIG_LED_STATUS_BLUE, blue_led_off, blue_led_on, NULL },
 #endif
 	{ NULL, 0, NULL, NULL, NULL }
 };
@@ -110,14 +111,14 @@
 					led_commands[i].on();
 				else
 					__led_set(led_commands[i].mask,
-							  STATUS_LED_ON);
+							  CONFIG_LED_STATUS_ON);
 				break;
 			case LED_OFF:
 				if (led_commands[i].off)
 					led_commands[i].off();
 				else
 					__led_set(led_commands[i].mask,
-							  STATUS_LED_OFF);
+						  CONFIG_LED_STATUS_OFF);
 				break;
 			case LED_TOGGLE:
 				if (led_commands[i].toggle)
@@ -149,36 +150,36 @@
 U_BOOT_CMD(
 	led, 4, 1, do_led,
 	"["
-#ifdef CONFIG_BOARD_SPECIFIC_LED
-#ifdef STATUS_LED_BIT
+#ifdef CONFIG_LED_STATUS_BOARD_SPECIFIC
+#ifdef CONFIG_LED_STATUS0
 	"0|"
 #endif
-#ifdef STATUS_LED_BIT1
+#ifdef CONFIG_LED_STATUS1
 	"1|"
 #endif
-#ifdef STATUS_LED_BIT2
+#ifdef CONFIG_LED_STATUS2
 	"2|"
 #endif
-#ifdef STATUS_LED_BIT3
+#ifdef CONFIG_LED_STATUS3
 	"3|"
 #endif
-#ifdef STATUS_LED_BIT4
+#ifdef CONFIG_LED_STATUS4
 	"4|"
 #endif
-#ifdef STATUS_LED_BIT5
+#ifdef CONFIG_LED_STATUS5
 	"5|"
 #endif
 #endif
-#ifdef STATUS_LED_GREEN
+#ifdef CONFIG_LED_STATUS_GREEN
 	"green|"
 #endif
-#ifdef STATUS_LED_YELLOW
+#ifdef CONFIG_LED_STATUS_YELLOW
 	"yellow|"
 #endif
-#ifdef STATUS_LED_RED
+#ifdef CONFIG_LED_STATUS_RED
 	"red|"
 #endif
-#ifdef STATUS_LED_BLUE
+#ifdef CONFIG_LED_STATUS_BLUE
 	"blue|"
 #endif
 	"all] [on|off|toggle|blink] [blink-freq in ms]",
diff --git a/common/board_r.c b/common/board_r.c
index a373352..46a43b9 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -596,11 +596,11 @@
 }
 #endif
 
-#if defined(CONFIG_STATUS_LED)
+#if defined(CONFIG_LED_STATUS)
 static int initr_status_led(void)
 {
-#if defined(STATUS_LED_BOOT)
-	status_led_set(STATUS_LED_BOOT, STATUS_LED_BLINKING);
+#if defined(CONFIG_LED_STATUS_BOOT)
+	status_led_set(CONFIG_LED_STATUS_BOOT, CONFIG_LED_STATUS_BLINKING);
 #else
 	status_led_init();
 #endif
@@ -907,7 +907,7 @@
 #if defined(CONFIG_MICROBLAZE) || defined(CONFIG_AVR32) || defined(CONFIG_M68K)
 	timer_init,		/* initialize timer */
 #endif
-#if defined(CONFIG_STATUS_LED)
+#if defined(CONFIG_LED_STATUS)
 	initr_status_led,
 #endif
 	/* PPC has a udelay(20) here dating from 2002. Why? */
diff --git a/configs/TQM823L_defconfig b/configs/TQM823L_defconfig
index 7081ed6..8645193 100644
--- a/configs/TQM823L_defconfig
+++ b/configs/TQM823L_defconfig
@@ -10,5 +10,12 @@
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_EXT2=y
+CONFIG_LED_STATUS=y
+# CONFIG_LED_STATUS_BOARD_SPECIFIC is not set
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/TQM823M_defconfig b/configs/TQM823M_defconfig
index 496dc06..08bf149 100644
--- a/configs/TQM823M_defconfig
+++ b/configs/TQM823M_defconfig
@@ -10,5 +10,12 @@
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_EXT2=y
+CONFIG_LED_STATUS=y
+# CONFIG_LED_STATUS_BOARD_SPECIFIC is not set
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/TQM850L_defconfig b/configs/TQM850L_defconfig
index 0f711d1..1b87bcb 100644
--- a/configs/TQM850L_defconfig
+++ b/configs/TQM850L_defconfig
@@ -10,5 +10,12 @@
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_EXT2=y
+CONFIG_LED_STATUS=y
+# CONFIG_LED_STATUS_BOARD_SPECIFIC is not set
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/TQM850M_defconfig b/configs/TQM850M_defconfig
index 7a72ce9..15aa30b 100644
--- a/configs/TQM850M_defconfig
+++ b/configs/TQM850M_defconfig
@@ -10,5 +10,12 @@
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_EXT2=y
+CONFIG_LED_STATUS=y
+# CONFIG_LED_STATUS_BOARD_SPECIFIC is not set
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/TQM855L_defconfig b/configs/TQM855L_defconfig
index b034a04..aa8b4a0 100644
--- a/configs/TQM855L_defconfig
+++ b/configs/TQM855L_defconfig
@@ -10,5 +10,12 @@
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_EXT2=y
+CONFIG_LED_STATUS=y
+# CONFIG_LED_STATUS_BOARD_SPECIFIC is not set
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/TQM855M_defconfig b/configs/TQM855M_defconfig
index 05b4518..3a80d5a 100644
--- a/configs/TQM855M_defconfig
+++ b/configs/TQM855M_defconfig
@@ -10,5 +10,12 @@
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_EXT2=y
+CONFIG_LED_STATUS=y
+# CONFIG_LED_STATUS_BOARD_SPECIFIC is not set
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/TQM860L_defconfig b/configs/TQM860L_defconfig
index 5d8a088..8885164 100644
--- a/configs/TQM860L_defconfig
+++ b/configs/TQM860L_defconfig
@@ -10,5 +10,12 @@
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_EXT2=y
+CONFIG_LED_STATUS=y
+# CONFIG_LED_STATUS_BOARD_SPECIFIC is not set
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/TQM860M_defconfig b/configs/TQM860M_defconfig
index 023751d..00196f7 100644
--- a/configs/TQM860M_defconfig
+++ b/configs/TQM860M_defconfig
@@ -10,5 +10,12 @@
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_EXT2=y
+CONFIG_LED_STATUS=y
+# CONFIG_LED_STATUS_BOARD_SPECIFIC is not set
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/TQM862L_defconfig b/configs/TQM862L_defconfig
index 628d687..1fff2b4 100644
--- a/configs/TQM862L_defconfig
+++ b/configs/TQM862L_defconfig
@@ -10,5 +10,12 @@
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_EXT2=y
+CONFIG_LED_STATUS=y
+# CONFIG_LED_STATUS_BOARD_SPECIFIC is not set
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/TQM862M_defconfig b/configs/TQM862M_defconfig
index d1cf91c..afd6d6e 100644
--- a/configs/TQM862M_defconfig
+++ b/configs/TQM862M_defconfig
@@ -10,5 +10,12 @@
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_EXT2=y
+CONFIG_LED_STATUS=y
+# CONFIG_LED_STATUS_BOARD_SPECIFIC is not set
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/TQM866M_defconfig b/configs/TQM866M_defconfig
index e0cf770..cb2c869 100644
--- a/configs/TQM866M_defconfig
+++ b/configs/TQM866M_defconfig
@@ -10,5 +10,12 @@
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_EXT2=y
+CONFIG_LED_STATUS=y
+# CONFIG_LED_STATUS_BOARD_SPECIFIC is not set
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/TQM885D_defconfig b/configs/TQM885D_defconfig
index 889de7b..89bc242 100644
--- a/configs/TQM885D_defconfig
+++ b/configs/TQM885D_defconfig
@@ -13,5 +13,12 @@
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_EXT2=y
+CONFIG_LED_STATUS=y
+# CONFIG_LED_STATUS_BOARD_SPECIFIC is not set
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/cl-som-am57x_defconfig b/configs/cl-som-am57x_defconfig
index 5d3bc11..6711075 100644
--- a/configs/cl-som-am57x_defconfig
+++ b/configs/cl-som-am57x_defconfig
@@ -23,6 +23,11 @@
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS_GPIO=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=37
+CONFIG_LED_STATUS_STATE=2
 CONFIG_MMC_OMAP_HS=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_BAR=y
diff --git a/configs/cm_t335_defconfig b/configs/cm_t335_defconfig
index e2c8162..b21631c 100644
--- a/configs/cm_t335_defconfig
+++ b/configs/cm_t335_defconfig
@@ -35,6 +35,12 @@
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS_GPIO=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=64
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 CONFIG_MMC_OMAP_HS=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/cm_t3517_defconfig b/configs/cm_t3517_defconfig
index 115e451..1997e56 100644
--- a/configs/cm_t3517_defconfig
+++ b/configs/cm_t3517_defconfig
@@ -20,6 +20,13 @@
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS_GPIO=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=186
+CONFIG_LED_STATUS_STATE=2
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 CONFIG_MMC_OMAP_HS=y
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
diff --git a/configs/cm_t35_defconfig b/configs/cm_t35_defconfig
index 4d9b203..9d23243 100644
--- a/configs/cm_t35_defconfig
+++ b/configs/cm_t35_defconfig
@@ -22,6 +22,13 @@
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS_GPIO=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=186
+CONFIG_LED_STATUS_STATE=2
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 CONFIG_MMC_OMAP_HS=y
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
diff --git a/configs/eb_cpu5282_defconfig b/configs/eb_cpu5282_defconfig
index 03d8e43..d53c6e8 100644
--- a/configs/eb_cpu5282_defconfig
+++ b/configs/eb_cpu5282_defconfig
@@ -12,4 +12,10 @@
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=8
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
+CONFIG_LED_STATUS_CMD=y
 # CONFIG_CFB_CONSOLE is not set
diff --git a/configs/eb_cpu5282_internal_defconfig b/configs/eb_cpu5282_internal_defconfig
index 04d094a..1aed49a 100644
--- a/configs/eb_cpu5282_internal_defconfig
+++ b/configs/eb_cpu5282_internal_defconfig
@@ -11,4 +11,10 @@
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=8
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
+CONFIG_LED_STATUS_CMD=y
 # CONFIG_CFB_CONSOLE is not set
diff --git a/configs/edb9315a_defconfig b/configs/edb9315a_defconfig
index 9e8c6bb..86ae479 100644
--- a/configs/edb9315a_defconfig
+++ b/configs/edb9315a_defconfig
@@ -15,5 +15,17 @@
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_EXT4=y
 CONFIG_CMD_FAT=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=0
+CONFIG_LED_STATUS_STATE=2
+CONFIG_LED_STATUS1=y
+CONFIG_LED_STATUS_BIT1=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
+CONFIG_LED_STATUS_RED_ENABLE=y
+CONFIG_LED_STATUS_RED=1
+CONFIG_LED_STATUS_GREEN_ENABLE=y
+CONFIG_LED_STATUS_GREEN=0
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
diff --git a/configs/igep0020_defconfig b/configs/igep0020_defconfig
index 50bb4ac..5fc0340 100644
--- a/configs/igep0020_defconfig
+++ b/configs/igep0020_defconfig
@@ -34,6 +34,13 @@
 CONFIG_CMD_FS_GENERIC=y
 CONFIG_CMD_UBI=y
 CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS_GPIO=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=27
+CONFIG_LED_STATUS_STATE=2
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 CONFIG_MMC_OMAP_HS=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/igep0030_defconfig b/configs/igep0030_defconfig
index 42bd6fc..8acdccc 100644
--- a/configs/igep0030_defconfig
+++ b/configs/igep0030_defconfig
@@ -26,6 +26,13 @@
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_UBI=y
 CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS_GPIO=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=16
+CONFIG_LED_STATUS_STATE=2
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 CONFIG_MMC_OMAP_HS=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/motionpro_defconfig b/configs/motionpro_defconfig
index d5c9317..371ee2e 100644
--- a/configs/motionpro_defconfig
+++ b/configs/motionpro_defconfig
@@ -15,5 +15,15 @@
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_FAT=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=0
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_FREQ=10
+CONFIG_LED_STATUS1=y
+CONFIG_LED_STATUS_BIT1=1
+CONFIG_LED_STATUS_FREQ1=10
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx23_olinuxino_defconfig b/configs/mx23_olinuxino_defconfig
index f67bb78..00cff96 100644
--- a/configs/mx23_olinuxino_defconfig
+++ b/configs/mx23_olinuxino_defconfig
@@ -19,6 +19,14 @@
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS_GPIO=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=59
+CONFIG_LED_STATUS_STATE=2
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
+CONFIG_LED_STATUS_CMD=y
 CONFIG_MMC_MXS=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
diff --git a/configs/omap3_beagle_defconfig b/configs/omap3_beagle_defconfig
index 32626a2..1d32699 100644
--- a/configs/omap3_beagle_defconfig
+++ b/configs/omap3_beagle_defconfig
@@ -18,6 +18,18 @@
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_EXT4_WRITE=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=2
+CONFIG_LED_STATUS1=y
+CONFIG_LED_STATUS_BIT1=2
+CONFIG_LED_STATUS_STATE1=2
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=1
+CONFIG_LED_STATUS_GREEN_ENABLE=y
+CONFIG_LED_STATUS_GREEN=2
+CONFIG_LED_STATUS_CMD=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
diff --git a/configs/socfpga_vining_fpga_defconfig b/configs/socfpga_vining_fpga_defconfig
index 030223a..f9a7b50 100644
--- a/configs/socfpga_vining_fpga_defconfig
+++ b/configs/socfpga_vining_fpga_defconfig
@@ -47,6 +47,17 @@
 CONFIG_DFU_SF=y
 CONFIG_DM_GPIO=y
 CONFIG_DWAPB_GPIO=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS_GPIO=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=48
+CONFIG_LED_STATUS1=y
+CONFIG_LED_STATUS_BIT1=53
+CONFIG_LED_STATUS2=y
+CONFIG_LED_STATUS_BIT2=54
+CONFIG_LED_STATUS3=y
+CONFIG_LED_STATUS_BIT3=65
+CONFIG_LED_STATUS_CMD=y
 CONFIG_DM_MMC=y
 CONFIG_MMC_DW=y
 CONFIG_SPI_FLASH=y
diff --git a/configs/tqma6s_wru4_mmc_defconfig b/configs/tqma6s_wru4_mmc_defconfig
index 8649ee8..857150a 100644
--- a/configs/tqma6s_wru4_mmc_defconfig
+++ b/configs/tqma6s_wru4_mmc_defconfig
@@ -29,6 +29,26 @@
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=0
+CONFIG_LED_STATUS_STATE=2
+CONFIG_LED_STATUS1=y
+CONFIG_LED_STATUS_BIT1=1
+CONFIG_LED_STATUS_STATE1=2
+CONFIG_LED_STATUS2=y
+CONFIG_LED_STATUS_BIT2=2
+CONFIG_LED_STATUS_STATE2=2
+CONFIG_LED_STATUS3=y
+CONFIG_LED_STATUS_BIT3=3
+CONFIG_LED_STATUS_STATE3=2
+CONFIG_LED_STATUS4=y
+CONFIG_LED_STATUS_BIT4=4
+CONFIG_LED_STATUS_STATE4=2
+CONFIG_LED_STATUS5=y
+CONFIG_LED_STATUS_BIT5=5
+CONFIG_LED_STATUS_STATE5=2
+CONFIG_LED_STATUS_CMD=y
 CONFIG_PCA9551_LED=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
diff --git a/configs/tricorder_defconfig b/configs/tricorder_defconfig
index 12a6843..9a2e5c6 100644
--- a/configs/tricorder_defconfig
+++ b/configs/tricorder_defconfig
@@ -18,6 +18,17 @@
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_UBI=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=2
+CONFIG_LED_STATUS1=y
+CONFIG_LED_STATUS_BIT1=2
+CONFIG_LED_STATUS_STATE1=2
+CONFIG_LED_STATUS2=y
+CONFIG_LED_STATUS_BIT2=4
+CONFIG_LED_STATUS_STATE2=2
+CONFIG_LED_STATUS_CMD=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/tricorder_flash_defconfig b/configs/tricorder_flash_defconfig
index 32c2059..a477091 100644
--- a/configs/tricorder_flash_defconfig
+++ b/configs/tricorder_flash_defconfig
@@ -18,6 +18,17 @@
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_UBI=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=1
+CONFIG_LED_STATUS_STATE=2
+CONFIG_LED_STATUS1=y
+CONFIG_LED_STATUS_BIT1=2
+CONFIG_LED_STATUS_STATE1=2
+CONFIG_LED_STATUS2=y
+CONFIG_LED_STATUS_BIT2=4
+CONFIG_LED_STATUS_STATE2=2
+CONFIG_LED_STATUS_CMD=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/v38b_defconfig b/configs/v38b_defconfig
index fb198b6..e5dd07a 100644
--- a/configs/v38b_defconfig
+++ b/configs/v38b_defconfig
@@ -10,6 +10,12 @@
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_FAT=y
+CONFIG_LED_STATUS=y
+CONFIG_LED_STATUS0=y
+CONFIG_LED_STATUS_BIT=16
+CONFIG_LED_STATUS_STATE=1
+CONFIG_LED_STATUS_BOOT_ENABLE=y
+CONFIG_LED_STATUS_BOOT=0
 # CONFIG_PCI is not set
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index 9fbb5a7..e3151ea 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -18,7 +18,7 @@
 obj-$(CONFIG_CROS_EC_SPI) += cros_ec_spi.o
 endif
 obj-$(CONFIG_FSL_IIM) += fsl_iim.o
-obj-$(CONFIG_GPIO_LED) += gpio_led.o
+obj-$(CONFIG_LED_STATUS_GPIO) += gpio_led.o
 obj-$(CONFIG_I2C_EEPROM) += i2c_eeprom.o
 obj-$(CONFIG_FSL_MC9SDZ60) += mc9sdz60.o
 obj-$(CONFIG_MXC_OCOTP) += mxc_ocotp.o
@@ -34,7 +34,7 @@
 endif
 obj-$(CONFIG_SMSC_LPC47M) += smsc_lpc47m.o
 obj-$(CONFIG_SMSC_SIO1007) += smsc_sio1007.o
-obj-$(CONFIG_STATUS_LED) += status_led.o
+obj-$(CONFIG_LED_STATUS) += status_led.o
 obj-$(CONFIG_SANDBOX) += swap_case.o
 ifdef CONFIG_SPL_OF_PLATDATA
 ifdef CONFIG_SPL_BUILD
diff --git a/drivers/misc/gpio_led.c b/drivers/misc/gpio_led.c
index 164c30d..b913069 100644
--- a/drivers/misc/gpio_led.c
+++ b/drivers/misc/gpio_led.c
@@ -17,7 +17,7 @@
 
 static int gpio_led_gpio_value(led_id_t mask, int state)
 {
-	int i, gpio_value = (state == STATUS_LED_ON);
+	int i, gpio_value = (state == CONFIG_LED_STATUS_ON);
 
 	for (i = 0; i < ARRAY_SIZE(gpio_led_inv); i++) {
 		if (gpio_led_inv[i] == mask)
@@ -56,51 +56,51 @@
 
 /* 'generic' override of colored LED stubs, to use GPIO functions instead */
 
-#ifdef STATUS_LED_RED
+#ifdef CONFIG_LED_STATUS_RED
 void red_led_on(void)
 {
-	__led_set(STATUS_LED_RED, STATUS_LED_ON);
+	__led_set(CONFIG_LED_STATUS_RED, CONFIG_LED_STATUS_ON);
 }
 
 void red_led_off(void)
 {
-	__led_set(STATUS_LED_RED, STATUS_LED_OFF);
+	__led_set(CONFIG_LED_STATUS_RED, CONFIG_LED_STATUS_OFF);
 }
 #endif
 
-#ifdef STATUS_LED_GREEN
+#ifdef CONFIG_LED_STATUS_GREEN
 void green_led_on(void)
 {
-	__led_set(STATUS_LED_GREEN, STATUS_LED_ON);
+	__led_set(CONFIG_LED_STATUS_GREEN, CONFIG_LED_STATUS_ON);
 }
 
 void green_led_off(void)
 {
-	__led_set(STATUS_LED_GREEN, STATUS_LED_OFF);
+	__led_set(CONFIG_LED_STATUS_GREEN, CONFIG_LED_STATUS_OFF);
 }
 #endif
 
-#ifdef STATUS_LED_YELLOW
+#ifdef CONFIG_LED_STATUS_YELLOW
 void yellow_led_on(void)
 {
-	__led_set(STATUS_LED_YELLOW, STATUS_LED_ON);
+	__led_set(CONFIG_LED_STATUS_YELLOW, CONFIG_LED_STATUS_ON);
 }
 
 void yellow_led_off(void)
 {
-	__led_set(STATUS_LED_YELLOW, STATUS_LED_OFF);
+	__led_set(CONFIG_LED_STATUS_YELLOW, CONFIG_LED_STATUS_OFF);
 }
 #endif
 
-#ifdef STATUS_LED_BLUE
+#ifdef CONFIG_LED_STATUS_BLUE
 void blue_led_on(void)
 {
-	__led_set(STATUS_LED_BLUE, STATUS_LED_ON);
+	__led_set(CONFIG_LED_STATUS_BLUE, CONFIG_LED_STATUS_ON);
 }
 
 void blue_led_off(void)
 {
-	__led_set(STATUS_LED_BLUE, STATUS_LED_OFF);
+	__led_set(CONFIG_LED_STATUS_BLUE, CONFIG_LED_STATUS_OFF);
 }
 #endif
 
diff --git a/drivers/misc/pca9551_led.c b/drivers/misc/pca9551_led.c
index 4da0319..226a31a 100644
--- a/drivers/misc/pca9551_led.c
+++ b/drivers/misc/pca9551_led.c
@@ -124,7 +124,7 @@
 
 void __led_set(led_id_t mask, int state)
 {
-	if (state == STATUS_LED_OFF)
+	if (state == CONFIG_LED_STATUS_OFF)
 		pca9551_led_set_state(mask, PCA9551_LED_STATE_OFF);
 	else
 		pca9551_led_set_state(mask, PCA9551_LED_STATE_ON);
diff --git a/drivers/misc/status_led.c b/drivers/misc/status_led.c
index 31e8831..3773c85 100644
--- a/drivers/misc/status_led.c
+++ b/drivers/misc/status_led.c
@@ -27,45 +27,45 @@
 } led_dev_t;
 
 led_dev_t led_dev[] = {
-    {	STATUS_LED_BIT,
-	STATUS_LED_STATE,
-	STATUS_LED_PERIOD,
-	0,
-    },
-#if defined(STATUS_LED_BIT1)
-    {	STATUS_LED_BIT1,
-	STATUS_LED_STATE1,
-	STATUS_LED_PERIOD1,
-	0,
-    },
+	{	CONFIG_LED_STATUS_BIT,
+		CONFIG_LED_STATUS_STATE,
+		LED_STATUS_PERIOD,
+		0,
+	},
+#if defined(CONFIG_LED_STATUS1)
+	{	CONFIG_LED_STATUS_BIT1,
+		CONFIG_LED_STATUS_STATE1,
+		LED_STATUS_PERIOD1,
+		0,
+	},
 #endif
-#if defined(STATUS_LED_BIT2)
-    {	STATUS_LED_BIT2,
-	STATUS_LED_STATE2,
-	STATUS_LED_PERIOD2,
-	0,
-    },
+#if defined(CONFIG_LED_STATUS2)
+	{	CONFIG_LED_STATUS_BIT2,
+		CONFIG_LED_STATUS_STATE2,
+		LED_STATUS_PERIOD2,
+		0,
+	},
 #endif
-#if defined(STATUS_LED_BIT3)
-    {	STATUS_LED_BIT3,
-	STATUS_LED_STATE3,
-	STATUS_LED_PERIOD3,
-	0,
-    },
+#if defined(CONFIG_LED_STATUS3)
+	{	CONFIG_LED_STATUS_BIT3,
+		CONFIG_LED_STATUS_STATE3,
+		LED_STATUS_PERIOD3,
+		0,
+	},
 #endif
-#if defined(STATUS_LED_BIT4)
-    {	STATUS_LED_BIT4,
-	STATUS_LED_STATE4,
-	STATUS_LED_PERIOD4,
-	0,
-    },
+#if defined(CONFIG_LED_STATUS4)
+	{	CONFIG_LED_STATUS_BIT4,
+		CONFIG_LED_STATUS_STATE4,
+		LED_STATUS_PERIOD4,
+		0,
+	},
 #endif
-#if defined(STATUS_LED_BIT5)
-    {	STATUS_LED_BIT5,
-	STATUS_LED_STATE5,
-	STATUS_LED_PERIOD5,
-	0,
-    },
+#if defined(CONFIG_LED_STATUS5)
+	{	CONFIG_LED_STATUS_BIT5,
+		CONFIG_LED_STATUS_STATE5,
+		LED_STATUS_PERIOD5,
+		0,
+	},
 #endif
 };
 
@@ -93,7 +93,7 @@
 
 	for (i = 0, ld = led_dev; i < MAX_LED_DEV; i++, ld++) {
 
-		if (ld->state != STATUS_LED_BLINKING)
+		if (ld->state != CONFIG_LED_STATUS_BLINKING)
 			continue;
 
 		if (++ld->cnt >= ld->period) {
@@ -117,9 +117,9 @@
 	ld = &led_dev[led];
 
 	ld->state = state;
-	if (state == STATUS_LED_BLINKING) {
+	if (state == CONFIG_LED_STATUS_BLINKING) {
 		ld->cnt = 0;		/* always start with full period    */
-		state = STATUS_LED_ON;	/* always start with LED _ON_       */
+		state = CONFIG_LED_STATUS_ON;	/* always start with LED _ON_ */
 	}
 	__led_set (ld->mask, state);
 }
diff --git a/include/common.h b/include/common.h
index 695478c..2af555e 100644
--- a/include/common.h
+++ b/include/common.h
@@ -911,7 +911,7 @@
 
 int	pcmcia_init (void);
 
-#ifdef CONFIG_STATUS_LED
+#ifdef CONFIG_LED_STATUS
 # include <status_led.h>
 #endif
 
diff --git a/include/configs/PATI.h b/include/configs/PATI.h
index c8d0a58..9589c35 100644
--- a/include/configs/PATI.h
+++ b/include/configs/PATI.h
@@ -50,8 +50,6 @@
 
 #define CONFIG_WATCHDOG				/* turn on platform specific watchdog	*/
 
-/*#define CONFIG_STATUS_LED	1		*/ /* Enable status led */
-
 #define CONFIG_LOADS_ECHO	1		/* Echo on for serial download */
 
 /*
diff --git a/include/configs/TQM823L.h b/include/configs/TQM823L.h
index 2fd5fa3..41879f8 100644
--- a/include/configs/TQM823L.h
+++ b/include/configs/TQM823L.h
@@ -76,12 +76,6 @@
 
 #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/
 
-#if defined(CONFIG_LCD)
-# undef	 CONFIG_STATUS_LED		/* disturbs display		*/
-#else
-# define CONFIG_STATUS_LED	1	/* Status LED enabled		*/
-#endif	/* CONFIG_LCD */
-
 #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/
 
 /*
diff --git a/include/configs/TQM823M.h b/include/configs/TQM823M.h
index 11bba09..ad5c922 100644
--- a/include/configs/TQM823M.h
+++ b/include/configs/TQM823M.h
@@ -74,12 +74,6 @@
 
 #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/
 
-#ifdef CONFIG_LCD
-# undef	 CONFIG_STATUS_LED		/* disturbs display		*/
-#else
-# define CONFIG_STATUS_LED	1	/* Status LED enabled		*/
-#endif	/* CONFIG_LCD */
-
 #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/
 
 /*
diff --git a/include/configs/TQM850L.h b/include/configs/TQM850L.h
index 548f1bc..03c7cb9 100644
--- a/include/configs/TQM850L.h
+++ b/include/configs/TQM850L.h
@@ -69,8 +69,6 @@
 
 #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/
 
-#define	CONFIG_STATUS_LED	1	/* Status LED enabled		*/
-
 #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/
 
 /*
diff --git a/include/configs/TQM850M.h b/include/configs/TQM850M.h
index 582b934..3c716ce 100644
--- a/include/configs/TQM850M.h
+++ b/include/configs/TQM850M.h
@@ -69,8 +69,6 @@
 
 #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/
 
-#define	CONFIG_STATUS_LED	1	/* Status LED enabled		*/
-
 #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/
 
 /*
diff --git a/include/configs/TQM855L.h b/include/configs/TQM855L.h
index 814290f..c4c90aa 100644
--- a/include/configs/TQM855L.h
+++ b/include/configs/TQM855L.h
@@ -71,8 +71,6 @@
 
 #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/
 
-#define	CONFIG_STATUS_LED	1	/* Status LED enabled		*/
-
 #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/
 
 /*
diff --git a/include/configs/TQM855M.h b/include/configs/TQM855M.h
index 4a657ff..56e2a45 100644
--- a/include/configs/TQM855M.h
+++ b/include/configs/TQM855M.h
@@ -71,8 +71,6 @@
 
 #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/
 
-#define	CONFIG_STATUS_LED	1	/* Status LED enabled		*/
-
 #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/
 
 /* enable I2C and select the hardware/software driver */
diff --git a/include/configs/TQM860L.h b/include/configs/TQM860L.h
index bdfe509..1875609 100644
--- a/include/configs/TQM860L.h
+++ b/include/configs/TQM860L.h
@@ -71,8 +71,6 @@
 
 #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/
 
-#define	CONFIG_STATUS_LED	1	/* Status LED enabled		*/
-
 #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/
 
 /*
diff --git a/include/configs/TQM860M.h b/include/configs/TQM860M.h
index ce6b404..15df1da 100644
--- a/include/configs/TQM860M.h
+++ b/include/configs/TQM860M.h
@@ -71,8 +71,6 @@
 
 #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/
 
-#define	CONFIG_STATUS_LED	1	/* Status LED enabled		*/
-
 #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/
 
 /*
diff --git a/include/configs/TQM862L.h b/include/configs/TQM862L.h
index 66dbcb6..b3b0722 100644
--- a/include/configs/TQM862L.h
+++ b/include/configs/TQM862L.h
@@ -74,8 +74,6 @@
 
 #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/
 
-#define	CONFIG_STATUS_LED	1	/* Status LED enabled		*/
-
 #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/
 
 /*
diff --git a/include/configs/TQM862M.h b/include/configs/TQM862M.h
index 478f16b..45f10e5 100644
--- a/include/configs/TQM862M.h
+++ b/include/configs/TQM862M.h
@@ -74,8 +74,6 @@
 
 #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/
 
-#define	CONFIG_STATUS_LED	1	/* Status LED enabled		*/
-
 #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/
 
 /*
diff --git a/include/configs/TQM866M.h b/include/configs/TQM866M.h
index 5501622..8f3efec 100644
--- a/include/configs/TQM866M.h
+++ b/include/configs/TQM866M.h
@@ -85,8 +85,6 @@
 
 #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/
 
-#define CONFIG_STATUS_LED	1	/* Status LED enabled		*/
-
 #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/
 
 /* enable I2C and select the hardware/software driver */
diff --git a/include/configs/TQM885D.h b/include/configs/TQM885D.h
index b246926..d75b25d 100644
--- a/include/configs/TQM885D.h
+++ b/include/configs/TQM885D.h
@@ -79,8 +79,6 @@
 
 #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/
 
-#define CONFIG_STATUS_LED	1	/* Status LED enabled		*/
-
 #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/
 
 /* enable I2C and select the hardware/software driver */
diff --git a/include/configs/bf526-ezbrd.h b/include/configs/bf526-ezbrd.h
index d0a364c..7d75e73 100644
--- a/include/configs/bf526-ezbrd.h
+++ b/include/configs/bf526-ezbrd.h
@@ -138,22 +138,6 @@
 #define CONFIG_UART_CONSOLE	1
 
 /* define to enable run status via led */
-/* #define CONFIG_STATUS_LED */
-#ifdef CONFIG_STATUS_LED
-#define CONFIG_GPIO_LED
-#define CONFIG_BOARD_SPECIFIC_LED
-/* use LED0 to indicate booting/alive */
-#define STATUS_LED_BOOT 0
-#define STATUS_LED_BIT GPIO_PF8
-#define STATUS_LED_STATE STATUS_LED_ON
-#define STATUS_LED_PERIOD (CONFIG_SYS_HZ / 4)
-/* use LED1 to indicate crash */
-#define STATUS_LED_CRASH 1
-#define STATUS_LED_BIT1 GPIO_PG11
-#define STATUS_LED_STATE1 STATUS_LED_ON
-#define STATUS_LED_PERIOD1 (CONFIG_SYS_HZ / 2)
-/* #define STATUS_LED_BIT2 GPIO_PG12 */
-#endif
 
 /*
  * Pull in common ADI header for remaining command/environment setup
diff --git a/include/configs/bf533-stamp.h b/include/configs/bf533-stamp.h
index ec4d93c..afb3ef6 100644
--- a/include/configs/bf533-stamp.h
+++ b/include/configs/bf533-stamp.h
@@ -186,22 +186,6 @@
 /* #define CONFIG_SHOW_BOOT_PROGRESS */
 
 /* define to enable run status via led */
-/* #define CONFIG_STATUS_LED */
-#ifdef CONFIG_STATUS_LED
-#define CONFIG_GPIO_LED
-#define CONFIG_BOARD_SPECIFIC_LED
-/* use LED0 to indicate booting/alive */
-#define STATUS_LED_BOOT 0
-#define STATUS_LED_BIT GPIO_PF2
-#define STATUS_LED_STATE STATUS_LED_ON
-#define STATUS_LED_PERIOD (CONFIG_SYS_HZ / 4)
-/* use LED1 to indicate crash */
-#define STATUS_LED_CRASH 1
-#define STATUS_LED_BIT1 GPIO_PF3
-#define STATUS_LED_STATE1 STATUS_LED_ON
-#define STATUS_LED_PERIOD1 (CONFIG_SYS_HZ / 2)
-/* #define STATUS_LED_BIT2 GPIO_PF4 */
-#endif
 
 /* define to enable splash screen support */
 
diff --git a/include/configs/cl-som-am57x.h b/include/configs/cl-som-am57x.h
index 8297182..6692acc 100644
--- a/include/configs/cl-som-am57x.h
+++ b/include/configs/cl-som-am57x.h
@@ -28,17 +28,6 @@
 #define CONFIG_MISC_INIT_R
 #define CONFIG_REVISION_TAG
 
-/* Status LED */
-#define CONFIG_STATUS_LED		/* Status LED enabled */
-#define CONFIG_GPIO_LED
-#define CONFIG_BOARD_SPECIFIC_LED
-#define GREEN_LED_DEV			0
-					/* cl_som_am57x Green LED is GPIO2_5 */
-#define GREEN_LED_GPIO			37
-#define STATUS_LED_BIT			GREEN_LED_GPIO
-#define STATUS_LED_STATE		STATUS_LED_ON
-#define STATUS_LED_PERIOD		(CONFIG_SYS_HZ / 2)
-
 /* PMIC I2C bus number */
 #define CONFIG_SYS_SPD_BUS_NUM 3
 
diff --git a/include/configs/cm_t335.h b/include/configs/cm_t335.h
index e693a5f..8d5f26a 100644
--- a/include/configs/cm_t335.h
+++ b/include/configs/cm_t335.h
@@ -152,14 +152,7 @@
 #define GPIO_PIN(_bank, _pin)		((_bank << 5) + _pin)
 
 /* Status LED */
-#define CONFIG_STATUS_LED
-#define CONFIG_GPIO_LED
-#define CONFIG_BOARD_SPECIFIC_LED
-#define STATUS_LED_BIT			GPIO_PIN(2, 0)
 /* Status LED polarity is inversed, so init it in the "off" state */
-#define STATUS_LED_STATE		STATUS_LED_OFF
-#define STATUS_LED_PERIOD		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BOOT			0
 
 /* EEPROM */
 #define CONFIG_CMD_EEPROM
diff --git a/include/configs/cm_t35.h b/include/configs/cm_t35.h
index 0c72443..ab695cb 100644
--- a/include/configs/cm_t35.h
+++ b/include/configs/cm_t35.h
@@ -254,20 +254,12 @@
 					 GENERATED_GBL_DATA_SIZE)
 
 /* Status LED */
-#define CONFIG_STATUS_LED		/* Status LED enabled */
-#define CONFIG_BOARD_SPECIFIC_LED
-#define CONFIG_GPIO_LED
 #define GREEN_LED_GPIO			186 /* CM-T35 Green LED is GPIO186 */
-#define GREEN_LED_DEV			0
-#define STATUS_LED_BIT			GREEN_LED_GPIO
-#define STATUS_LED_STATE		STATUS_LED_ON
-#define STATUS_LED_PERIOD		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BOOT			GREEN_LED_DEV
 
 #define CONFIG_SPLASHIMAGE_GUARD
 
 /* GPIO banks */
-#ifdef CONFIG_STATUS_LED
+#ifdef CONFIG_LED_STATUS
 #define CONFIG_OMAP3_GPIO_6	/* GPIO186 is in GPIO bank 6  */
 #endif
 
diff --git a/include/configs/cm_t3517.h b/include/configs/cm_t3517.h
index 874a889..6ee61d5 100644
--- a/include/configs/cm_t3517.h
+++ b/include/configs/cm_t3517.h
@@ -257,18 +257,10 @@
 					 GENERATED_GBL_DATA_SIZE)
 
 /* Status LED */
-#define CONFIG_STATUS_LED		/* Status LED enabled */
-#define CONFIG_BOARD_SPECIFIC_LED
-#define CONFIG_GPIO_LED
 #define GREEN_LED_GPIO			186 /* CM-T3517 Green LED is GPIO186 */
-#define GREEN_LED_DEV			0
-#define STATUS_LED_BIT			GREEN_LED_GPIO
-#define STATUS_LED_STATE		STATUS_LED_ON
-#define STATUS_LED_PERIOD		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BOOT			GREEN_LED_DEV
 
 /* GPIO banks */
-#ifdef CONFIG_STATUS_LED
+#ifdef CONFIG_LED_STATUS
 #define CONFIG_OMAP3_GPIO_6	/* GPIO186 is in GPIO bank 6  */
 #endif
 
diff --git a/include/configs/eb_cpu5282.h b/include/configs/eb_cpu5282.h
index 4a868c5..dc08db6 100644
--- a/include/configs/eb_cpu5282.h
+++ b/include/configs/eb_cpu5282.h
@@ -35,13 +35,7 @@
 
 #define CONFIG_HW_WATCHDOG
 
-#define CONFIG_STATUS_LED
-#define CONFIG_BOARD_SPECIFIC_LED
 #define STATUS_LED_ACTIVE		0
-#define STATUS_LED_BIT			0x0008	/* Timer7 GPIO */
-#define STATUS_LED_BOOT			0
-#define STATUS_LED_PERIOD		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_STATE		STATUS_LED_OFF
 
 /*----------------------------------------------------------------------*
  * Configuration for environment					*
@@ -65,7 +59,6 @@
  */
 #define CONFIG_CMDLINE_EDITING
 #define CONFIG_CMD_DATE
-#define CONFIG_CMD_LED
 
 #define CONFIG_MCFTMR
 
diff --git a/include/configs/edb93xx.h b/include/configs/edb93xx.h
index 9080b9a..9cc62ed 100644
--- a/include/configs/edb93xx.h
+++ b/include/configs/edb93xx.h
@@ -102,20 +102,7 @@
 #define CONFIG_PL01x_PORTS	{(void *)CONFIG_SYS_SERIAL0}
 
 /* Status LED */
-#define CONFIG_STATUS_LED		1 /* Status LED enabled	*/
-#define CONFIG_BOARD_SPECIFIC_LED	1
-#define STATUS_LED_GREEN		0
-#define STATUS_LED_RED			1
-/* Green */
-#define STATUS_LED_BIT			STATUS_LED_GREEN
-#define STATUS_LED_STATE		STATUS_LED_ON
-#define STATUS_LED_PERIOD		(CONFIG_SYS_HZ / 2)
-/* Red */
-#define STATUS_LED_BIT1			STATUS_LED_RED
-#define STATUS_LED_STATE1		STATUS_LED_OFF
-#define STATUS_LED_PERIOD1		(CONFIG_SYS_HZ / 2)
 /* Optional value */
-#define STATUS_LED_BOOT			STATUS_LED_BIT
 
 /* Network hardware configuration */
 #define CONFIG_DRIVER_EP93XX_MAC
diff --git a/include/configs/motionpro.h b/include/configs/motionpro.h
index 917350f..9b8a7ea 100644
--- a/include/configs/motionpro.h
+++ b/include/configs/motionpro.h
@@ -283,24 +283,10 @@
 /*
  * Status LED configuration
  */
-#define CONFIG_STATUS_LED		/* Status LED enabled */
-#define CONFIG_BOARD_SPECIFIC_LED
 
 #define ENABLE_GPIO_OUT		0x00000024
 #define LED_ON			0x00000010
 
-#ifndef __ASSEMBLY__
-/*
- * In case of Motion-PRO, a LED is identified by its corresponding
- * GPT Enable and Mode Select Register.
- */
-typedef volatile unsigned long * led_id_t;
-
-extern void __led_init(led_id_t id, int state);
-extern void __led_toggle(led_id_t id);
-extern void __led_set(led_id_t id, int state);
-#endif /* __ASSEMBLY__ */
-
 /*
  * Temperature sensor
  */
diff --git a/include/configs/mx23_olinuxino.h b/include/configs/mx23_olinuxino.h
index 36ff7ce..d05b922 100644
--- a/include/configs/mx23_olinuxino.h
+++ b/include/configs/mx23_olinuxino.h
@@ -14,8 +14,6 @@
 #define CONFIG_SYS_NO_FLASH
 #define CONFIG_DOS_PARTITION
 
-#define CONFIG_CMD_LED
-
 /* Memory configuration */
 #define CONFIG_NR_DRAM_BANKS		1		/* 1 bank of DRAM */
 #define PHYS_SDRAM_1			0x40000000	/* Base address */
@@ -34,13 +32,6 @@
 #endif
 
 /* Status LED */
-#define CONFIG_STATUS_LED
-#define CONFIG_GPIO_LED
-#define CONFIG_BOARD_SPECIFIC_LED
-#define STATUS_LED_BOOT		0
-#define STATUS_LED_BIT		MX23_PAD_SSP1_DETECT__GPIO_2_1
-#define STATUS_LED_STATE	STATUS_LED_ON
-#define STATUS_LED_PERIOD	(CONFIG_SYS_HZ / 2)
 
 /* USB */
 #ifdef CONFIG_CMD_USB
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index 9850aa6..c69b325 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -35,16 +35,6 @@
 #define CONFIG_ENV_OVERWRITE
 
 /* Status LED */
-#define CONFIG_STATUS_LED		1
-#define CONFIG_BOARD_SPECIFIC_LED	1
-#define STATUS_LED_BIT			0x01
-#define STATUS_LED_STATE		STATUS_LED_ON
-#define STATUS_LED_PERIOD		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BIT1			0x02
-#define STATUS_LED_STATE1		STATUS_LED_ON
-#define STATUS_LED_PERIOD1		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BOOT			STATUS_LED_BIT
-#define STATUS_LED_GREEN		STATUS_LED_BIT1
 
 /* Enable Multi Bus support for I2C */
 #define CONFIG_I2C_MULTI_BUS		1
@@ -88,7 +78,6 @@
 					"4m(kernel),-(fs)"
 
 #define CONFIG_CMD_NAND		/* NAND support			*/
-#define CONFIG_CMD_LED		/* LED support			*/
 
 #define CONFIG_VIDEO_OMAP3	/* DSS Support			*/
 
diff --git a/include/configs/omap3_igep00x0.h b/include/configs/omap3_igep00x0.h
index e6d7db0..ac0df3e 100644
--- a/include/configs/omap3_igep00x0.h
+++ b/include/configs/omap3_igep00x0.h
@@ -30,19 +30,11 @@
 /* Status LED available for IGEP0020 and IGEP0030 but not IGEP0032 */
 #if (CONFIG_MACH_TYPE == MACH_TYPE_IGEP0020) || \
 		       (CONFIG_MACH_TYPE == MACH_TYPE_IGEP0030)
-#define CONFIG_STATUS_LED
-#define CONFIG_BOARD_SPECIFIC_LED
-#define CONFIG_GPIO_LED
 #if (CONFIG_MACH_TYPE == MACH_TYPE_IGEP0020)
 #define RED_LED_GPIO 27
 #elif (CONFIG_MACH_TYPE == MACH_TYPE_IGEP0030)
 #define RED_LED_GPIO 16
 #endif
-#define RED_LED_DEV			0
-#define STATUS_LED_BIT			RED_LED_GPIO
-#define STATUS_LED_STATE		STATUS_LED_ON
-#define STATUS_LED_PERIOD		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BOOT			RED_LED_DEV
 #endif
 
 /* GPIO banks */
diff --git a/include/configs/socfpga_vining_fpga.h b/include/configs/socfpga_vining_fpga.h
index 94d10a3..427d559 100644
--- a/include/configs/socfpga_vining_fpga.h
+++ b/include/configs/socfpga_vining_fpga.h
@@ -15,7 +15,6 @@
 #define CONFIG_HW_WATCHDOG
 
 #define CONFIG_CMD_EEPROM
-#define CONFIG_CMD_LED
 
 /* Memory configurations */
 #define PHYS_SDRAM_1_SIZE		0x40000000	/* 1GiB on VINING_FPGA */
@@ -43,21 +42,6 @@
  *   2 ... Bottom Green
  *   3 ... Bottom Red
  */
-#define CONFIG_STATUS_LED
-#define CONFIG_GPIO_LED
-#define CONFIG_BOARD_SPECIFIC_LED
-#define STATUS_LED_BIT		48
-#define STATUS_LED_STATE	STATUS_LED_OFF
-#define STATUS_LED_PERIOD	(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BIT1		53
-#define STATUS_LED_STATE1	STATUS_LED_OFF
-#define STATUS_LED_PERIOD1	(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BIT2		54
-#define STATUS_LED_STATE2	STATUS_LED_OFF
-#define STATUS_LED_PERIOD2	(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BIT3		65
-#define STATUS_LED_STATE3	STATUS_LED_OFF
-#define STATUS_LED_PERIOD3	(CONFIG_SYS_HZ / 2)
 
 /* Ethernet on SoC (EMAC) */
 #if defined(CONFIG_CMD_NET)
diff --git a/include/configs/stm32f429-discovery.h b/include/configs/stm32f429-discovery.h
index f05c1aa..6b35641 100644
--- a/include/configs/stm32f429-discovery.h
+++ b/include/configs/stm32f429-discovery.h
@@ -42,7 +42,6 @@
 #define CONFIG_ENV_SECT_SIZE		(128 << 10)
 #define CONFIG_ENV_SIZE			(8 << 10)
 
-#define CONFIG_BOARD_SPECIFIC_LED
 #define CONFIG_RED_LED			110
 #define CONFIG_GREEN_LED		109
 
diff --git a/include/configs/tqma6_wru4.h b/include/configs/tqma6_wru4.h
index 96f15cd..a378406 100644
--- a/include/configs/tqma6_wru4.h
+++ b/include/configs/tqma6_wru4.h
@@ -37,27 +37,6 @@
 #define CONFIG_CMD_DATE
 
 /* LED */
-#define CONFIG_CMD_LED
-#define CONFIG_STATUS_LED
-#define CONFIG_BOARD_SPECIFIC_LED
-#define STATUS_LED_BIT			0
-#define STATUS_LED_STATE		STATUS_LED_ON
-#define STATUS_LED_PERIOD		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BIT1			1
-#define STATUS_LED_STATE1		STATUS_LED_ON
-#define STATUS_LED_PERIOD1		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BIT2			2
-#define STATUS_LED_STATE2		STATUS_LED_ON
-#define STATUS_LED_PERIOD2		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BIT3			3
-#define STATUS_LED_STATE3		STATUS_LED_ON
-#define STATUS_LED_PERIOD3		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BIT4			4
-#define STATUS_LED_STATE4		STATUS_LED_ON
-#define STATUS_LED_PERIOD4		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BIT5			5
-#define STATUS_LED_STATE5		STATUS_LED_ON
-#define STATUS_LED_PERIOD5		(CONFIG_SYS_HZ / 2)
 
 /* Bootcounter */
 #define CONFIG_BOOTCOUNT_LIMIT
diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h
index a300f38..a961e5c 100644
--- a/include/configs/tricorder.h
+++ b/include/configs/tricorder.h
@@ -60,18 +60,6 @@
 #define CONFIG_OMAP3_GPIO_2		/* GPIO32..63 are in GPIO bank 2 */
 
 /* LED support */
-#define CONFIG_STATUS_LED
-#define CONFIG_BOARD_SPECIFIC_LED
-#define CONFIG_CMD_LED			/* LED command */
-#define STATUS_LED_BIT			(1 << 0)
-#define STATUS_LED_STATE		STATUS_LED_ON
-#define STATUS_LED_PERIOD		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BIT1			(1 << 1)
-#define STATUS_LED_STATE1		STATUS_LED_ON
-#define STATUS_LED_PERIOD1		(CONFIG_SYS_HZ / 2)
-#define STATUS_LED_BIT2			(1 << 2)
-#define STATUS_LED_STATE2		STATUS_LED_ON
-#define STATUS_LED_PERIOD2		(CONFIG_SYS_HZ / 2)
 
 /* NS16550 Configuration */
 #define CONFIG_SYS_NS16550_SERIAL
diff --git a/include/configs/v38b.h b/include/configs/v38b.h
index 229c242..7d01323 100644
--- a/include/configs/v38b.h
+++ b/include/configs/v38b.h
@@ -291,8 +291,6 @@
 /*
  * Status LED
  */
-#define  CONFIG_STATUS_LED		/* Status LED enabled */
-#define  CONFIG_BOARD_SPECIFIC_LED	/* version has board specific leds */
 
 #define CONFIG_SYS_LED_BASE	MPC5XXX_GPT7_ENABLE	/* Timer 7 GPIO */
 #ifndef __ASSEMBLY__
diff --git a/include/status_led.h b/include/status_led.h
index 396ea88..f838f36 100644
--- a/include/status_led.h
+++ b/include/status_led.h
@@ -17,11 +17,24 @@
 #ifndef _STATUS_LED_H_
 #define	_STATUS_LED_H_
 
-#ifdef CONFIG_STATUS_LED
+#ifdef CONFIG_LED_STATUS
 
-#define STATUS_LED_OFF		0
-#define STATUS_LED_BLINKING	1
-#define STATUS_LED_ON		2
+#define LED_STATUS_PERIOD	(CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ)
+#ifdef CONFIG_LED_STATUS1
+#define LED_STATUS_PERIOD1	(CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ1)
+#endif /* CONFIG_LED_STATUS1 */
+#ifdef CONFIG_LED_STATUS2
+#define LED_STATUS_PERIOD2	(CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ2)
+#endif /* CONFIG_LED_STATUS2 */
+#ifdef CONFIG_LED_STATUS3
+#define LED_STATUS_PERIOD3	(CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ3)
+#endif /* CONFIG_LED_STATUS3 */
+#ifdef CONFIG_LED_STATUS4
+#define LED_STATUS_PERIOD4	(CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ4)
+#endif /* CONFIG_LED_STATUS4 */
+#ifdef CONFIG_LED_STATUS5
+#define LED_STATUS_PERIOD5	(CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ5)
+#endif /* CONFIG_LED_STATUS5 */
 
 void status_led_init(void);
 void status_led_tick (unsigned long timestamp);
@@ -34,14 +47,8 @@
 # define STATUS_LED_ODR		im_cpm.cp_pbodr
 # define STATUS_LED_DAT		im_cpm.cp_pbdat
 
-# define STATUS_LED_BIT		0x00000001
-# define STATUS_LED_PERIOD	(CONFIG_SYS_HZ / 2)
-# define STATUS_LED_STATE	STATUS_LED_BLINKING
-
 # define STATUS_LED_ACTIVE	1		/* LED on for bit == 1	*/
 
-# define STATUS_LED_BOOT	0		/* LED 0 used for boot status */
-
 /*****  MVS v1  **********************************************************/
 #elif (defined(CONFIG_MVS) && CONFIG_MVS < 2)
 # define STATUS_LED_PAR		im_ioport.iop_pdpar
@@ -49,17 +56,10 @@
 # undef  STATUS_LED_ODR
 # define STATUS_LED_DAT		im_ioport.iop_pddat
 
-# define STATUS_LED_BIT		0x00000001
-# define STATUS_LED_PERIOD	(CONFIG_SYS_HZ / 2)
-# define STATUS_LED_STATE	STATUS_LED_BLINKING
-
 # define STATUS_LED_ACTIVE	1		/* LED on for bit == 1	*/
 
-# define STATUS_LED_BOOT	0		/* LED 0 used for boot status */
-
 /*****  Someone else defines these  *************************************/
 #elif defined(STATUS_LED_PAR)
-
   /*
    * ADVICE: Define in your board configuration file rather than
    * filling this file up with lots of custom board stuff.
@@ -67,26 +67,9 @@
 
 #elif defined(CONFIG_V38B)
 
-# define STATUS_LED_BIT		0x0010			/* Timer7 GPIO */
-# define STATUS_LED_PERIOD	(CONFIG_SYS_HZ / 2)
-# define STATUS_LED_STATE	STATUS_LED_BLINKING
-
 # define STATUS_LED_ACTIVE	0		/* LED on for bit == 0 */
-# define STATUS_LED_BOOT	0		/* LED 0 used for boot status */
-
-#elif defined(CONFIG_MOTIONPRO)
-
-#define STATUS_LED_BIT		((vu_long *) MPC5XXX_GPT6_ENABLE)
-#define STATUS_LED_PERIOD	(CONFIG_SYS_HZ / 10)
-#define STATUS_LED_STATE	STATUS_LED_BLINKING
 
-#define STATUS_LED_BIT1		((vu_long *) MPC5XXX_GPT7_ENABLE)
-#define STATUS_LED_PERIOD1	(CONFIG_SYS_HZ / 10)
-#define STATUS_LED_STATE1	STATUS_LED_OFF
-
-#define STATUS_LED_BOOT		0	/* LED 0 used for boot status */
-
-#elif defined(CONFIG_BOARD_SPECIFIC_LED)
+#elif defined(CONFIG_LED_STATUS_BOARD_SPECIFIC)
 /* led_id_t is unsigned long mask */
 typedef unsigned long led_id_t;
 
@@ -99,11 +82,11 @@
 #endif
 /************************************************************************/
 
-#ifndef CONFIG_BOARD_SPECIFIC_LED
+#ifndef CONFIG_LED_STATUS_BOARD_SPECIFIC
 # include <asm/status_led.h>
 #endif
 
-#endif	/* CONFIG_STATUS_LED	*/
+#endif	/* CONFIG_LED_STATUS	*/
 
 /*
  * Coloured LEDs API
diff --git a/net/bootp.c b/net/bootp.c
index 42e14ed..be8f710 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -15,7 +15,7 @@
 #include <net/tftp.h>
 #include "bootp.h"
 #include "nfs.h"
-#ifdef CONFIG_STATUS_LED
+#ifdef CONFIG_LED_STATUS
 #include <status_led.h>
 #endif
 #ifdef CONFIG_BOOTP_RANDOM_DELAY
@@ -359,8 +359,8 @@
 	/*
 	 *	Got a good BOOTP reply.	 Copy the data into our variables.
 	 */
-#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
-	status_led_set(STATUS_LED_BOOT, STATUS_LED_OFF);
+#if defined(CONFIG_LED_STATUS) && defined(CONFIG_LED_STATUS_BOOT_ENABLE)
+	status_led_set(CONFIG_LED_STATUS_BOOT, CONFIG_LED_STATUS_OFF);
 #endif
 
 	store_net_params(bp);		/* Store net parameters from reply */
diff --git a/net/net.c b/net/net.c
index 671d45d..6e67877 100644
--- a/net/net.c
+++ b/net/net.c
@@ -88,7 +88,7 @@
 #include <errno.h>
 #include <net.h>
 #include <net/tftp.h>
-#if defined(CONFIG_STATUS_LED)
+#if defined(CONFIG_LED_STATUS)
 #include <miiphy.h>
 #include <status_led.h>
 #endif
@@ -518,15 +518,15 @@
 
 #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
 #if	defined(CONFIG_SYS_FAULT_ECHO_LINK_DOWN)	&& \
-	defined(CONFIG_STATUS_LED)			&& \
-	defined(STATUS_LED_RED)
+	defined(CONFIG_LED_STATUS)			&& \
+	defined(CONFIG_LED_STATUS_RED)
 	/*
 	 * Echo the inverted link state to the fault LED.
 	 */
 	if (miiphy_link(eth_get_dev()->name, CONFIG_SYS_FAULT_MII_ADDR))
-		status_led_set(STATUS_LED_RED, STATUS_LED_OFF);
+		status_led_set(CONFIG_LED_STATUS_RED, CONFIG_LED_STATUS_OFF);
 	else
-		status_led_set(STATUS_LED_RED, STATUS_LED_ON);
+		status_led_set(CONFIG_LED_STATUS_RED, CONFIG_LED_STATUS_ON);
 #endif /* CONFIG_SYS_FAULT_ECHO_LINK_DOWN, ... */
 #endif /* CONFIG_MII, ... */
 #ifdef CONFIG_USB_KEYBOARD
@@ -583,16 +583,18 @@
 
 #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
 #if	defined(CONFIG_SYS_FAULT_ECHO_LINK_DOWN)	&& \
-	defined(CONFIG_STATUS_LED)			&& \
-	defined(STATUS_LED_RED)
+	defined(CONFIG_LED_STATUS)			&& \
+	defined(CONFIG_LED_STATUS_RED)
 			/*
 			 * Echo the inverted link state to the fault LED.
 			 */
 			if (miiphy_link(eth_get_dev()->name,
 					CONFIG_SYS_FAULT_MII_ADDR))
-				status_led_set(STATUS_LED_RED, STATUS_LED_OFF);
+				status_led_set(CONFIG_LED_STATUS_RED,
+					       CONFIG_LED_STATUS_OFF);
 			else
-				status_led_set(STATUS_LED_RED, STATUS_LED_ON);
+				status_led_set(CONFIG_LED_STATUS_RED,
+					       CONFIG_LED_STATUS_ON);
 #endif /* CONFIG_SYS_FAULT_ECHO_LINK_DOWN, ... */
 #endif /* CONFIG_MII, ... */
 			debug_cond(DEBUG_INT_STATE, "--- net_loop timeout\n");
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 95013b3..fb9fb34 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -332,7 +332,6 @@
 CONFIG_BOARD_RESET
 CONFIG_BOARD_REVISION_TAG
 CONFIG_BOARD_SIZE_LIMIT
-CONFIG_BOARD_SPECIFIC_LED
 CONFIG_BOARD_TAURUS
 CONFIG_BOARD_TYPES
 CONFIG_BOOGER
@@ -536,7 +535,6 @@
 CONFIG_CMD_JFFS2
 CONFIG_CMD_KGDB
 CONFIG_CMD_LDRINFO
-CONFIG_CMD_LED
 CONFIG_CMD_LOADY
 CONFIG_CMD_LZMADEC
 CONFIG_CMD_MAX6957
@@ -1318,7 +1316,6 @@
 CONFIG_GPCS_PHY_ADDR
 CONFIG_GPIO
 CONFIG_GPIO_ENABLE_SPI_FLASH
-CONFIG_GPIO_LED
 CONFIG_GPIO_LED_INVERTED_TABLE
 CONFIG_GPIO_LED_STUBS
 CONFIG_GREEN_LED
@@ -3096,7 +3093,6 @@
 CONFIG_STANDALONE_LOAD_ADDR
 CONFIG_STATIC_BOARD_REV
 CONFIG_STATIC_RELA
-CONFIG_STATUS_LED
 CONFIG_STD_DEVICES_SETTINGS
 CONFIG_STK52XX
 CONFIG_STK52XX_REV100