ar71xx: define LAN/WAN LEDs for the TL-WR741N/ND boards

SVN-Revision: 29631
This commit is contained in:
Gabor Juhos 2011-12-31 15:02:46 +00:00
parent fff02e6ea8
commit 5c067db8a7
3 changed files with 103 additions and 6 deletions

View file

@ -60,6 +60,25 @@ EOF
COMMIT_SYSTEM=1 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() { set_led_default() {
local cfg="led_$1" local cfg="led_$1"
local name=$2 local name=$2
@ -116,7 +135,22 @@ tl-mr3420 )
set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1" 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) tl-wr941nd)
set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
;; ;;

View file

@ -24,6 +24,12 @@
#define TL_WR741NDV4_GPIO_LED_WLAN 0 #define TL_WR741NDV4_GPIO_LED_WLAN 0
#define TL_WR741NDV4_GPIO_LED_QSS 1 #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_GPIO_LED_SYSTEM 27
#define TL_WR741NDV4_KEYS_POLL_INTERVAL 20 /* msecs */ #define TL_WR741NDV4_KEYS_POLL_INTERVAL 20 /* msecs */
@ -40,13 +46,33 @@ static struct flash_platform_data tl_wr741ndv4_flash_data = {
static struct gpio_led tl_wr741ndv4_leds_gpio[] __initdata = { static struct gpio_led tl_wr741ndv4_leds_gpio[] __initdata = {
{ {
.name = "tp-link:green:system", .name = "tp-link:green:lan1",
.gpio = TL_WR741NDV4_GPIO_LED_SYSTEM, .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, .active_low = 1,
}, { }, {
.name = "tp-link:green:qss", .name = "tp-link:green:qss",
.gpio = TL_WR741NDV4_GPIO_LED_QSS, .gpio = TL_WR741NDV4_GPIO_LED_QSS,
.active_low = 0, .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", .name = "tp-link:green:wlan",
.gpio = TL_WR741NDV4_GPIO_LED_WLAN, .gpio = TL_WR741NDV4_GPIO_LED_WLAN,
@ -93,6 +119,12 @@ static void __init tl_wr741ndv4_setup(void)
tl_wr741ndv4_gmac_setup(); 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), ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wr741ndv4_leds_gpio),
tl_wr741ndv4_leds_gpio); tl_wr741ndv4_leds_gpio);

View file

@ -19,6 +19,11 @@
#define TL_WR741ND_GPIO_LED_QSS 0 #define TL_WR741ND_GPIO_LED_QSS 0
#define TL_WR741ND_GPIO_LED_SYSTEM 1 #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_RESET 11
#define TL_WR741ND_GPIO_BTN_QSS 12 #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 = { static struct gpio_led tl_wr741nd_leds_gpio[] __initdata = {
{ {
.name = "tp-link:green:system", .name = "tp-link:green:lan1",
.gpio = TL_WR741ND_GPIO_LED_SYSTEM, .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, .active_low = 1,
}, { }, {
.name = "tp-link:green:qss", .name = "tp-link:green:qss",
.gpio = TL_WR741ND_GPIO_LED_QSS, .gpio = TL_WR741ND_GPIO_LED_QSS,
.active_low = 1, .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 = { 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_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), ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wr741nd_leds_gpio),
tl_wr741nd_leds_gpio); tl_wr741nd_leds_gpio);