aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2012-01-31 18:37:24 +0000
committerGabor Juhos <juhosg@openwrt.org>2012-01-31 18:37:24 +0000
commitdd47afc197394f9ce1ebe106092c3ac999e9d8bf (patch)
tree7cbf8d94df23cd18ef0e4e65f9ce8ee06f64c7ca
parent8200f0c61a12d3319e89da80f87f770170588111 (diff)
downloadupstream-dd47afc197394f9ce1ebe106092c3ac999e9d8bf.tar.gz
upstream-dd47afc197394f9ce1ebe106092c3ac999e9d8bf.tar.bz2
upstream-dd47afc197394f9ce1ebe106092c3ac999e9d8bf.zip
ar71xx: fix ethernet LEDs on the DIR-600-A1 board
SVN-Revision: 29975
-rwxr-xr-xtarget/linux/ar71xx/base-files/etc/uci-defaults/leds1
-rw-r--r--target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/mach-dir-600-a1.c35
-rw-r--r--target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-dir-600-a1.c37
3 files changed, 73 insertions, 0 deletions
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/leds b/target/linux/ar71xx/base-files/etc/uci-defaults/leds
index 5b5aea35a4..05c2f27b55 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/leds
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/leds
@@ -118,6 +118,7 @@ rb750)
set_led_switch "port5" "port5" "rb750:green:port5" "switch0" "0x02"
;;
+dir-600-a1|\
dir-615-e4)
set_led_netdev "wan" "WAN" "d-link:green:wan" "eth1"
set_led_switch "lan1" "LAN1" "d-link:green:lan1" "switch0" "0x02"
diff --git a/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/mach-dir-600-a1.c b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/mach-dir-600-a1.c
index e0da86752d..211985ed04 100644
--- a/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/mach-dir-600-a1.c
+++ b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/mach-dir-600-a1.c
@@ -24,6 +24,12 @@
#define DIR_600_A1_GPIO_LED_WPS 0
#define DIR_600_A1_GPIO_LED_POWER_AMBER 1
#define DIR_600_A1_GPIO_LED_POWER_GREEN 6
+#define DIR_600_A1_GPIO_LED_LAN1 13
+#define DIR_600_A1_GPIO_LED_LAN2 14
+#define DIR_600_A1_GPIO_LED_LAN3 15
+#define DIR_600_A1_GPIO_LED_LAN4 16
+#define DIR_600_A1_GPIO_LED_WAN_AMBER 7
+#define DIR_600_A1_GPIO_LED_WAN_GREEN 17
#define DIR_600_A1_GPIO_BTN_RESET 8
#define DIR_600_A1_GPIO_BTN_WPS 12
@@ -86,6 +92,29 @@ static struct gpio_led dir_600_a1_leds_gpio[] __initdata = {
.name = "d-link:amber:power",
.gpio = DIR_600_A1_GPIO_LED_POWER_AMBER,
}, {
+ .name = "d-link:amber:wan",
+ .gpio = DIR_600_A1_GPIO_LED_WAN_AMBER,
+ }, {
+ .name = "d-link:green:wan",
+ .gpio = DIR_600_A1_GPIO_LED_WAN_GREEN,
+ .active_low = 1,
+ }, {
+ .name = "d-link:green:lan1",
+ .gpio = DIR_600_A1_GPIO_LED_LAN1,
+ .active_low = 1,
+ }, {
+ .name = "d-link:green:lan2",
+ .gpio = DIR_600_A1_GPIO_LED_LAN2,
+ .active_low = 1,
+ }, {
+ .name = "d-link:green:lan3",
+ .gpio = DIR_600_A1_GPIO_LED_LAN3,
+ .active_low = 1,
+ }, {
+ .name = "d-link:green:lan4",
+ .gpio = DIR_600_A1_GPIO_LED_LAN4,
+ .active_low = 1,
+ }, {
.name = "d-link:blue:wps",
.gpio = DIR_600_A1_GPIO_LED_WPS,
.active_low = 1,
@@ -126,6 +155,12 @@ static void __init dir_600_a1_setup(void)
ar71xx_add_device_m25p80(&dir_600_a1_flash_data);
+ ar71xx_gpio_function_disable(AR724X_GPIO_FUNC_ETH_SWITCH_LED0_EN |
+ AR724X_GPIO_FUNC_ETH_SWITCH_LED1_EN |
+ AR724X_GPIO_FUNC_ETH_SWITCH_LED2_EN |
+ AR724X_GPIO_FUNC_ETH_SWITCH_LED3_EN |
+ AR724X_GPIO_FUNC_ETH_SWITCH_LED4_EN);
+
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(dir_600_a1_leds_gpio),
dir_600_a1_leds_gpio);
diff --git a/target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-dir-600-a1.c b/target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-dir-600-a1.c
index 9eca411a61..6c50832029 100644
--- a/target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-dir-600-a1.c
+++ b/target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-dir-600-a1.c
@@ -12,7 +12,9 @@
#include <linux/mtd/partitions.h>
#include <asm/mach-ath79/ath79.h>
+#include <asm/mach-ath79/ar71xx_regs.h>
+#include "common.h"
#include "dev-ap9x-pci.h"
#include "dev-eth.h"
#include "dev-gpio-buttons.h"
@@ -24,6 +26,12 @@
#define DIR_600_A1_GPIO_LED_WPS 0
#define DIR_600_A1_GPIO_LED_POWER_AMBER 1
#define DIR_600_A1_GPIO_LED_POWER_GREEN 6
+#define DIR_600_A1_GPIO_LED_LAN1 13
+#define DIR_600_A1_GPIO_LED_LAN2 14
+#define DIR_600_A1_GPIO_LED_LAN3 15
+#define DIR_600_A1_GPIO_LED_LAN4 16
+#define DIR_600_A1_GPIO_LED_WAN_AMBER 7
+#define DIR_600_A1_GPIO_LED_WAN_GREEN 17
#define DIR_600_A1_GPIO_BTN_RESET 8
#define DIR_600_A1_GPIO_BTN_WPS 12
@@ -82,6 +90,29 @@ static struct gpio_led dir_600_a1_leds_gpio[] __initdata = {
.name = "d-link:amber:power",
.gpio = DIR_600_A1_GPIO_LED_POWER_AMBER,
}, {
+ .name = "d-link:amber:wan",
+ .gpio = DIR_600_A1_GPIO_LED_WAN_AMBER,
+ }, {
+ .name = "d-link:green:wan",
+ .gpio = DIR_600_A1_GPIO_LED_WAN_GREEN,
+ .active_low = 1,
+ }, {
+ .name = "d-link:green:lan1",
+ .gpio = DIR_600_A1_GPIO_LED_LAN1,
+ .active_low = 1,
+ }, {
+ .name = "d-link:green:lan2",
+ .gpio = DIR_600_A1_GPIO_LED_LAN2,
+ .active_low = 1,
+ }, {
+ .name = "d-link:green:lan3",
+ .gpio = DIR_600_A1_GPIO_LED_LAN3,
+ .active_low = 1,
+ }, {
+ .name = "d-link:green:lan4",
+ .gpio = DIR_600_A1_GPIO_LED_LAN4,
+ .active_low = 1,
+ }, {
.name = "d-link:blue:wps",
.gpio = DIR_600_A1_GPIO_LED_WPS,
.active_low = 1,
@@ -122,6 +153,12 @@ static void __init dir_600_a1_setup(void)
ath79_register_m25p80(&dir_600_a1_flash_data);
+ ath79_gpio_function_disable(AR724X_GPIO_FUNC_ETH_SWITCH_LED0_EN |
+ AR724X_GPIO_FUNC_ETH_SWITCH_LED1_EN |
+ AR724X_GPIO_FUNC_ETH_SWITCH_LED2_EN |
+ AR724X_GPIO_FUNC_ETH_SWITCH_LED3_EN |
+ AR724X_GPIO_FUNC_ETH_SWITCH_LED4_EN);
+
ath79_register_leds_gpio(-1, ARRAY_SIZE(dir_600_a1_leds_gpio),
dir_600_a1_leds_gpio);