Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f9f451d9cac24b9bd49947d1c6971f3d689381fa
Commit:     f9f451d9cac24b9bd49947d1c6971f3d689381fa
Parent:     e3986f6380558b84fef1e7ce7a29fed5bb090721
Author:     David Brownell <[EMAIL PROTECTED]>
AuthorDate: Sun Jul 8 11:49:53 2007 +0100
Committer:  Richard Purdie <[EMAIL PROTECTED]>
CommitDate: Mon Jul 16 01:15:51 2007 +0100

    leds: leds-gpio for ngw100
    
    Add GPIO leds to the NGW100 platform and its defconfig.
    Access through /sys/class/leds/{a,b,sys}/* files; one
    defaults to a heartbeat.
    
    Signed-off-by: David Brownell <[EMAIL PROTECTED]>
    Signed-off-by: Richard Purdie <[EMAIL PROTECTED]>
---
 arch/avr32/boards/atngw100/setup.c    |   31 +++++++++++++++++++++++++++++++
 arch/avr32/configs/atngw100_defconfig |   16 +++++++++++++++-
 2 files changed, 46 insertions(+), 1 deletions(-)

diff --git a/arch/avr32/boards/atngw100/setup.c 
b/arch/avr32/boards/atngw100/setup.c
index 6c4dc0a..2edcecd 100644
--- a/arch/avr32/boards/atngw100/setup.c
+++ b/arch/avr32/boards/atngw100/setup.c
@@ -13,6 +13,7 @@
 #include <linux/linkage.h>
 #include <linux/platform_device.h>
 #include <linux/types.h>
+#include <linux/leds.h>
 #include <linux/spi/spi.h>
 
 #include <asm/io.h>
@@ -21,6 +22,7 @@
 #include <asm/arch/at32ap7000.h>
 #include <asm/arch/board.h>
 #include <asm/arch/init.h>
+#include <asm/arch/portmux.h>
 
 /* Initialized by bootloader-specific startup code. */
 struct tag *bootloader_tags __initdata;
@@ -100,8 +102,31 @@ void __init setup_board(void)
        at32_setup_serial_console(0);
 }
 
+static const struct gpio_led ngw_leds[] = {
+       { .name = "sys", .gpio = GPIO_PIN_PA(16), .active_low = 1,
+               .default_trigger = "heartbeat",
+       },
+       { .name = "a", .gpio = GPIO_PIN_PA(19), .active_low = 1, },
+       { .name = "b", .gpio = GPIO_PIN_PE(19), .active_low = 1, },
+};
+
+static const struct gpio_led_platform_data ngw_led_data = {
+       .num_leds =     ARRAY_SIZE(ngw_leds),
+       .leds =         (void *) ngw_leds,
+};
+
+static struct platform_device ngw_gpio_leds = {
+       .name =         "leds-gpio",
+       .id =           -1,
+       .dev = {
+               .platform_data = (void *) &ngw_led_data,
+       }
+};
+
 static int __init atngw100_init(void)
 {
+       unsigned        i;
+
        /*
         * ATNGW100 uses 16-bit SDRAM interface, so we don't need to
         * reserve any pins for it.
@@ -116,6 +141,12 @@ static int __init atngw100_init(void)
 
        at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
 
+       for (i = 0; i < ARRAY_SIZE(ngw_leds); i++) {
+               at32_select_gpio(ngw_leds[i].gpio,
+                               AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
+       }
+       platform_device_register(&ngw_gpio_leds);
+
        return 0;
 }
 postcore_initcall(atngw100_init);
diff --git a/arch/avr32/configs/atngw100_defconfig 
b/arch/avr32/configs/atngw100_defconfig
index 49493ad..b799a68 100644
--- a/arch/avr32/configs/atngw100_defconfig
+++ b/arch/avr32/configs/atngw100_defconfig
@@ -712,7 +712,21 @@ CONFIG_SPI_ATMEL=y
 #
 # LED devices
 #
-# CONFIG_NEW_LEDS is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_GPIO=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+
 
 #
 # LED drivers
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to