[ARM] Kirkwood: SheevaPlug LED support
authorNicolas Pitre <nico@cam.org>
Tue, 3 Mar 2009 06:16:07 +0000 (01:16 -0500)
committerNicolas Pitre <nico@cam.org>
Mon, 16 Mar 2009 02:09:09 +0000 (22:09 -0400)
Signed-off-by: Nicolas Pitre <nico@marvell.com>
arch/arm/mach-kirkwood/sheevaplug-setup.c

index c1cb9f4..831e4a5 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/mtd/partitions.h>
 #include <linux/mv643xx_eth.h>
 #include <linux/gpio.h>
+#include <linux/leds.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <mach/kirkwood.h>
@@ -73,8 +74,31 @@ static struct mvsdio_platform_data sheevaplug_mvsdio_data = {
        // unfortunately the CD signal has not been connected */
 };
 
+static struct gpio_led sheevaplug_led_pins[] = {
+       {
+               .name                   = "plug:green:health",
+               .default_trigger        = "default-on",
+               .gpio                   = 49,
+               .active_low             = 1,
+       },
+};
+
+static struct gpio_led_platform_data sheevaplug_led_data = {
+       .leds           = sheevaplug_led_pins,
+       .num_leds       = ARRAY_SIZE(sheevaplug_led_pins),
+};
+
+static struct platform_device sheevaplug_leds = {
+       .name   = "leds-gpio",
+       .id     = -1,
+       .dev    = {
+               .platform_data  = &sheevaplug_led_data,
+       }
+};
+
 static unsigned int sheevaplug_mpp_config[] __initdata = {
        MPP29_GPIO,     /* USB Power Enable */
+       MPP49_GPIO,     /* LED */
        0
 };
 
@@ -97,6 +121,7 @@ static void __init sheevaplug_init(void)
        kirkwood_sdio_init(&sheevaplug_mvsdio_data);
 
        platform_device_register(&sheevaplug_nand_flash);
+       platform_device_register(&sheevaplug_leds);
 }
 
 MACHINE_START(SHEEVAPLUG, "Marvell SheevaPlug Reference Board")