sh: rsk7203: leds-gpio support for RSK+ LEDs.
authorPaul Mundt <lethal@linux-sh.org>
Tue, 21 Oct 2008 05:27:51 +0000 (14:27 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Tue, 21 Oct 2008 05:27:51 +0000 (14:27 +0900)
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/boards/board-rsk7203.c

index c8114cd..58266f0 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/mtd/map.h>
 #include <linux/smc911x.h>
 #include <linux/gpio.h>
+#include <linux/leds.h>
 #include <asm/machvec.h>
 #include <asm/io.h>
 #include <cpu/sh7203.h>
@@ -116,10 +117,46 @@ static void __init set_mtd_partitions(void)
        }
 }
 
+static struct gpio_led rsk7203_gpio_leds[] = {
+       {
+               .name                   = "green",
+               .gpio                   = GPIO_PE10,
+               .active_low             = 1,
+       }, {
+               .name                   = "orange",
+               .default_trigger        = "nand-disk",
+               .gpio                   = GPIO_PE12,
+               .active_low             = 1,
+       }, {
+               .name                   = "red:timer",
+               .default_trigger        = "timer",
+               .gpio                   = GPIO_PC14,
+               .active_low             = 1,
+       }, {
+               .name                   = "red:heartbeat",
+               .default_trigger        = "heartbeat",
+               .gpio                   = GPIO_PE11,
+               .active_low             = 1,
+       },
+};
+
+static struct gpio_led_platform_data rsk7203_gpio_leds_info = {
+       .leds           = rsk7203_gpio_leds,
+       .num_leds       = ARRAY_SIZE(rsk7203_gpio_leds),
+};
+
+static struct platform_device led_device = {
+       .name           = "leds-gpio",
+       .id             = -1,
+       .dev            = {
+               .platform_data  = &rsk7203_gpio_leds_info,
+       },
+};
 
 static struct platform_device *rsk7203_devices[] __initdata = {
        &smc911x_device,
        &flash_device,
+       &led_device,
 };
 
 static int __init rsk7203_devices_setup(void)
@@ -128,11 +165,6 @@ static int __init rsk7203_devices_setup(void)
        gpio_request(GPIO_FN_TXD0, NULL);
        gpio_request(GPIO_FN_RXD0, NULL);
 
-       /* Lit LED0 */
-       gpio_request(GPIO_PE10, NULL);
-       gpio_direction_output(GPIO_PE10, 0);
-       gpio_export(GPIO_PE10, 0);
-
        set_mtd_partitions();
        return platform_add_devices(rsk7203_devices,
                                    ARRAY_SIZE(rsk7203_devices));