aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2015-05-08 12:24:11 +0000
committerFelix Fietkau <nbd@openwrt.org>2015-05-08 12:24:11 +0000
commit55185d06aa0bffda7919541851ce4de42ca3296d (patch)
tree514224095e17a0e1392e8f43a64bb4cb012f430c /target/linux
parent7918d6240cce94e78efa63471b9584584c4fd6e1 (diff)
downloadupstream-55185d06aa0bffda7919541851ce4de42ca3296d.tar.gz
upstream-55185d06aa0bffda7919541851ce4de42ca3296d.tar.bz2
upstream-55185d06aa0bffda7919541851ce4de42ca3296d.zip
ar71xx: add support for green LAN LEDS for wnr2000-v4
Signed-off-by: Michael J. Bazzinotti <mbazzinotti@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45637 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2000-v4.c48
1 files changed, 40 insertions, 8 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2000-v4.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2000-v4.c
index 6718b16043..80044f45c0 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2000-v4.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2000-v4.c
@@ -33,10 +33,14 @@
#define WNR2000V4_GPIO_LED_WAN_GREEN 17
#define WNR2000V4_GPIO_LED_WPS 2
#define WNR2000V4_GPIO_LED_WLAN 12
-#define WNR2000V4_GPIO_LED_LAN1 18
-#define WNR2000V4_GPIO_LED_LAN2 19
-#define WNR2000V4_GPIO_LED_LAN3 20
-#define WNR2000V4_GPIO_LED_LAN4 21
+#define WNR2000V4_GPIO_LED_LAN1_GREEN 13
+#define WNR2000V4_GPIO_LED_LAN2_GREEN 14
+#define WNR2000V4_GPIO_LED_LAN3_GREEN 15
+#define WNR2000V4_GPIO_LED_LAN4_GREEN 16
+#define WNR2000V4_GPIO_LED_LAN1_AMBER 18
+#define WNR2000V4_GPIO_LED_LAN2_AMBER 19
+#define WNR2000V4_GPIO_LED_LAN3_AMBER 20
+#define WNR2000V4_GPIO_LED_LAN4_AMBER 21
#define STATUS_LED_GPIO 1
#define WNR2000V4_GPIO_LED_PWR_GREEN 0
@@ -76,21 +80,39 @@ static struct gpio_led wnr2000v4_leds_gpio[] __initdata = {
.gpio = WNR2000V4_GPIO_LED_WLAN,
.active_low = 1,
},
+ /* LAN LEDS */
+ {
+ .name = "netgear:green:lan1",
+ .gpio = WNR2000V4_GPIO_LED_LAN1_GREEN,
+ .active_low = 1,
+ }, {
+ .name = "netgear:green:lan2",
+ .gpio = WNR2000V4_GPIO_LED_LAN2_GREEN,
+ .active_low = 1,
+ }, {
+ .name = "netgear:green:lan3",
+ .gpio = WNR2000V4_GPIO_LED_LAN3_GREEN,
+ .active_low = 1,
+ }, {
+ .name = "netgear:green:lan4",
+ .gpio = WNR2000V4_GPIO_LED_LAN4_GREEN,
+ .active_low = 1,
+ },
{
.name = "netgear:amber:lan1",
- .gpio = WNR2000V4_GPIO_LED_LAN1,
+ .gpio = WNR2000V4_GPIO_LED_LAN1_AMBER,
.active_low = 1,
}, {
.name = "netgear:amber:lan2",
- .gpio = WNR2000V4_GPIO_LED_LAN2,
+ .gpio = WNR2000V4_GPIO_LED_LAN2_AMBER,
.active_low = 1,
}, {
.name = "netgear:amber:lan3",
- .gpio = WNR2000V4_GPIO_LED_LAN3,
+ .gpio = WNR2000V4_GPIO_LED_LAN3_AMBER,
.active_low = 1,
}, {
.name = "netgear:amber:lan4",
- .gpio = WNR2000V4_GPIO_LED_LAN4,
+ .gpio = WNR2000V4_GPIO_LED_LAN4_AMBER,
.active_low = 1,
}
};
@@ -155,8 +177,18 @@ static void __init wnr_common_setup(void)
static void __init wnr2000v4_setup(void)
{
+ int i;
+
wnr_common_setup();
+ /* Ensure no LED has an internal MUX signal, otherwise
+ control of LED could be lost... This is especially important
+ for most green LEDS (Eth,WAN).. who arrive in this function with
+ MUX signals set. */
+ for (i = 0; i < ARRAY_SIZE(wnr2000v4_leds_gpio); i++)
+ ath79_gpio_output_select(wnr2000v4_leds_gpio[i].gpio,
+ AR934X_GPIO_OUT_GPIO);
+
ath79_register_leds_gpio(-1, ARRAY_SIZE(wnr2000v4_leds_gpio),
wnr2000v4_leds_gpio);