aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx/files/arch/mips
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2009-07-18 00:40:23 +0000
committerFlorian Fainelli <florian@openwrt.org>2009-07-18 00:40:23 +0000
commitecad504c39ee2d914d65c84b5ca1e4f7dd3d1c1d (patch)
treef567ffa76a035e20fb80338c59a7b81f0a403185 /target/linux/brcm63xx/files/arch/mips
parentaf6076273a89480a3ae8b3893999c170c9a26889 (diff)
downloadupstream-ecad504c39ee2d914d65c84b5ca1e4f7dd3d1c1d.tar.gz
upstream-ecad504c39ee2d914d65c84b5ca1e4f7dd3d1c1d.tar.bz2
upstream-ecad504c39ee2d914d65c84b5ca1e4f7dd3d1c1d.zip
register GPIO-connected LEDs for known boards
SVN-Revision: 16887
Diffstat (limited to 'target/linux/brcm63xx/files/arch/mips')
-rw-r--r--target/linux/brcm63xx/files/arch/mips/bcm63xx/boards/board_bcm963xx.c241
1 files changed, 240 insertions, 1 deletions
diff --git a/target/linux/brcm63xx/files/arch/mips/bcm63xx/boards/board_bcm963xx.c b/target/linux/brcm63xx/files/arch/mips/bcm63xx/boards/board_bcm963xx.c
index e3ae72bff2..52d4c27a08 100644
--- a/target/linux/brcm63xx/files/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/target/linux/brcm63xx/files/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -4,6 +4,7 @@
* for more details.
*
* Copyright (C) 2008 Maxime Bizon <mbizon@freebox.fr>
+ * Copyright (C) 2009 Florian Fainelli <florian@openwrt.org>
*/
#include <linux/init.h>
@@ -54,6 +55,35 @@ static struct board_info __initdata board_96338gw = {
},
.has_ohci0 = 1,
+
+ .leds = {
+ {
+ .name = "adsl",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "ses",
+ .gpio = 5,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 0,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 1,
+ .active_low = 1,
+ }
+ },
};
static struct board_info __initdata board_96338w = {
@@ -64,7 +94,36 @@ static struct board_info __initdata board_96338w = {
.enet0 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
- }
+ },
+
+ .leds = {
+ {
+ .name = "adsl",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "ses",
+ .gpio = 5,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 0,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 1,
+ .active_low = 1,
+ },
+ },
};
#endif
@@ -93,6 +152,36 @@ static struct board_info __initdata board_96348r = {
.has_phy = 1,
.use_internal_phy = 1,
},
+
+ .leds = {
+ {
+ .name = "adsl-fail",
+ .gpio = 2,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 0,
+ .active_low = 1,
+ .default_trigger = "default-on",
+
+ },
+ {
+ .name = "stop",
+ .gpio = 1,
+ .active_low = 1,
+ },
+ },
};
static struct board_info __initdata board_96348gw_10 = {
@@ -123,6 +212,35 @@ static struct board_info __initdata board_96348gw_10 = {
.cs = 2,
.ext_irq = 2,
},
+
+ .leds = {
+ {
+ .name = "adsl-fail",
+ .gpio = 2,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 0,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 1,
+ .active_low = 1,
+ },
+ },
};
static struct board_info __initdata board_96348gw_11 = {
@@ -147,6 +265,35 @@ static struct board_info __initdata board_96348gw_11 = {
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,
+
+ .leds = {
+ {
+ .name = "adsl-fail",
+ .gpio = 2,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 0,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 1,
+ .active_low = 1,
+ },
+ },
};
static struct board_info __initdata board_96348gw = {
@@ -175,6 +322,35 @@ static struct board_info __initdata board_96348gw = {
.ext_irq = 2,
.cs = 2,
},
+
+ .leds = {
+ {
+ .name = "adsl-fail",
+ .gpio = 2,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 0,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 1,
+ .active_low = 1,
+ },
+ },
};
static struct board_info __initdata board_FAST2404 = {
@@ -270,6 +446,33 @@ static struct board_info __initdata board_96358vw = {
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,
+
+ .leds = {
+ {
+ .name = "adsl-fail",
+ .gpio = 15,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp",
+ .gpio = 22,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 23,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 4,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 5,
+ },
+ },
};
static struct board_info __initdata board_96358vw2 = {
@@ -294,6 +497,29 @@ static struct board_info __initdata board_96358vw2 = {
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,
+
+ .leds = {
+ {
+ .name = "adsl",
+ .gpio = 22,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 23,
+ },
+ {
+ .name = "power",
+ .gpio = 5,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ },
};
static struct board_info __initdata board_AGPFS0 = {
@@ -546,6 +772,14 @@ static struct resource gpiodev_resource = {
.start = 0xFFFFFFFF,
};
+static struct gpio_led_platform_data bcm63xx_led_data;
+
+static struct platform_device bcm63xx_gpio_leds = {
+ .name = "leds-gpio",
+ .id = 0,
+ .dev.platform_data = &bcm63xx_led_data,
+};
+
/*
* third stage init callback, register all board devices.
*/
@@ -606,6 +840,11 @@ int __init board_register_devices(void)
/* Register GPIODEV */
platform_device_register_simple("GPIODEV", 0, &gpiodev_resource, 1);
+ bcm63xx_led_data.num_leds = ARRAY_SIZE(board.leds);
+ bcm63xx_led_data.leds = board.leds;
+
+ platform_device_register(&bcm63xx_gpio_leds);
+
return 0;
}