diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2011-12-31 15:02:46 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2011-12-31 15:02:46 +0000 |
commit | 5c067db8a7e21d9414692f49f2478bf9dce1de8c (patch) | |
tree | 3b6d5a800e444b0f10fcca228e3e9ef2e687db24 /target | |
parent | fff02e6ea8cfd10d4d572a431f507785730cb461 (diff) | |
download | upstream-5c067db8a7e21d9414692f49f2478bf9dce1de8c.tar.gz upstream-5c067db8a7e21d9414692f49f2478bf9dce1de8c.tar.bz2 upstream-5c067db8a7e21d9414692f49f2478bf9dce1de8c.zip |
ar71xx: define LAN/WAN LEDs for the TL-WR741N/ND boards
SVN-Revision: 29631
Diffstat (limited to 'target')
3 files changed, 103 insertions, 6 deletions
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/leds b/target/linux/ar71xx/base-files/etc/uci-defaults/leds index 88538f84f2..0fdab7b2a4 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/leds +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/leds @@ -60,6 +60,25 @@ EOF COMMIT_SYSTEM=1 } +set_led_switch() { + local cfg="led_$1" + local name=$2 + local sysfs=$3 + local trigger=$4 + local port_mask=$5 + + uci -q get system.$cfg && return 0 + + uci batch <<EOF +set system.$cfg='led' +set system.$cfg.name='$name' +set system.$cfg.sysfs='$sysfs' +set system.$cfg.trigger='$trigger' +set system.$cfg.port_mask='$port_mask' +EOF + COMMIT_SYSTEM=1 +} + set_led_default() { local cfg="led_$1" local name=$2 @@ -116,7 +135,22 @@ tl-mr3420 ) set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1" ;; -tl-wr741nd-v4 | \ +tl-wr741nd) + set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1" + set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x02" + set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x04" + set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x08" + set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x10" + ;; + +tl-wr741nd-v4) + set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1" + set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04" + set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08" + set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x10" + set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02" + ;; + tl-wr941nd) set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" ;; diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd-v4.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd-v4.c index 47fbf85e75..8af72320cb 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd-v4.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd-v4.c @@ -24,6 +24,12 @@ #define TL_WR741NDV4_GPIO_LED_WLAN 0 #define TL_WR741NDV4_GPIO_LED_QSS 1 +#define TL_WR741NDV4_GPIO_LED_WAN 13 +#define TL_WR741NDV4_GPIO_LED_LAN1 14 +#define TL_WR741NDV4_GPIO_LED_LAN2 15 +#define TL_WR741NDV4_GPIO_LED_LAN3 16 +#define TL_WR741NDV4_GPIO_LED_LAN4 17 + #define TL_WR741NDV4_GPIO_LED_SYSTEM 27 #define TL_WR741NDV4_KEYS_POLL_INTERVAL 20 /* msecs */ @@ -40,14 +46,34 @@ static struct flash_platform_data tl_wr741ndv4_flash_data = { static struct gpio_led tl_wr741ndv4_leds_gpio[] __initdata = { { - .name = "tp-link:green:system", - .gpio = TL_WR741NDV4_GPIO_LED_SYSTEM, + .name = "tp-link:green:lan1", + .gpio = TL_WR741NDV4_GPIO_LED_LAN1, + .active_low = 0, + }, { + .name = "tp-link:green:lan2", + .gpio = TL_WR741NDV4_GPIO_LED_LAN2, + .active_low = 0, + }, { + .name = "tp-link:green:lan3", + .gpio = TL_WR741NDV4_GPIO_LED_LAN3, + .active_low = 0, + }, { + .name = "tp-link:green:lan4", + .gpio = TL_WR741NDV4_GPIO_LED_LAN4, .active_low = 1, }, { .name = "tp-link:green:qss", .gpio = TL_WR741NDV4_GPIO_LED_QSS, .active_low = 0, }, { + .name = "tp-link:green:system", + .gpio = TL_WR741NDV4_GPIO_LED_SYSTEM, + .active_low = 1, + }, { + .name = "tp-link:green:wan", + .gpio = TL_WR741NDV4_GPIO_LED_WAN, + .active_low = 0, + }, { .name = "tp-link:green:wlan", .gpio = TL_WR741NDV4_GPIO_LED_WLAN, .active_low = 0, @@ -93,6 +119,12 @@ static void __init tl_wr741ndv4_setup(void) tl_wr741ndv4_gmac_setup(); + ar71xx_gpio_function_disable(AR933X_GPIO_FUNC_ETH_SWITCH_LED0_EN | + AR933X_GPIO_FUNC_ETH_SWITCH_LED1_EN | + AR933X_GPIO_FUNC_ETH_SWITCH_LED2_EN | + AR933X_GPIO_FUNC_ETH_SWITCH_LED3_EN | + AR933X_GPIO_FUNC_ETH_SWITCH_LED4_EN); + ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wr741ndv4_leds_gpio), tl_wr741ndv4_leds_gpio); diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c index b29c7aa9d4..f877e98822 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c @@ -19,6 +19,11 @@ #define TL_WR741ND_GPIO_LED_QSS 0 #define TL_WR741ND_GPIO_LED_SYSTEM 1 +#define TL_WR741ND_GPIO_LED_LAN1 13 +#define TL_WR741ND_GPIO_LED_LAN2 14 +#define TL_WR741ND_GPIO_LED_LAN3 15 +#define TL_WR741ND_GPIO_LED_LAN4 16 +#define TL_WR741ND_GPIO_LED_WAN 17 #define TL_WR741ND_GPIO_BTN_RESET 11 #define TL_WR741ND_GPIO_BTN_QSS 12 @@ -37,14 +42,34 @@ static struct flash_platform_data tl_wr741nd_flash_data = { static struct gpio_led tl_wr741nd_leds_gpio[] __initdata = { { - .name = "tp-link:green:system", - .gpio = TL_WR741ND_GPIO_LED_SYSTEM, + .name = "tp-link:green:lan1", + .gpio = TL_WR741ND_GPIO_LED_LAN1, + .active_low = 1, + }, { + .name = "tp-link:green:lan2", + .gpio = TL_WR741ND_GPIO_LED_LAN2, + .active_low = 1, + }, { + .name = "tp-link:green:lan3", + .gpio = TL_WR741ND_GPIO_LED_LAN3, + .active_low = 1, + }, { + .name = "tp-link:green:lan4", + .gpio = TL_WR741ND_GPIO_LED_LAN4, .active_low = 1, }, { .name = "tp-link:green:qss", .gpio = TL_WR741ND_GPIO_LED_QSS, .active_low = 1, - } + }, { + .name = "tp-link:green:system", + .gpio = TL_WR741ND_GPIO_LED_SYSTEM, + .active_low = 1, + }, { + .name = "tp-link:green:wan", + .gpio = TL_WR741ND_GPIO_LED_WAN, + .active_low = 1, + }, }; static struct gpio_keys_button tl_wr741nd_gpio_keys[] __initdata = { @@ -72,6 +97,12 @@ static void __init tl_wr741nd_setup(void) ar71xx_add_device_m25p80(&tl_wr741nd_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(tl_wr741nd_leds_gpio), tl_wr741nd_leds_gpio); |