ar71xx: add support for TP-Link WBS210/510

The devices are mostly identical to the CPE210/510, but use external
antennas.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
master
Matthias Schiffer 8 years ago
parent 2ee3e8dd42
commit 1fef80f29c
No known key found for this signature in database
GPG Key ID: 16EF3F64CB201D9C
  1. 4
      target/linux/ar71xx/base-files/etc/board.d/01_leds
  2. 4
      target/linux/ar71xx/base-files/etc/board.d/02_network
  3. 4
      target/linux/ar71xx/base-files/etc/board.d/03_gpio_switches
  4. 8
      target/linux/ar71xx/base-files/lib/ar71xx.sh
  5. 4
      target/linux/ar71xx/base-files/lib/upgrade/platform.sh
  6. 59
      target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c
  7. 2
      target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
  8. 18
      target/linux/ar71xx/image/tp-link.mk

@ -152,7 +152,9 @@ cf-e530n)
ucidef_set_led_netdev "wan" "WAN" "$board:blue:wan" "eth1"
;;
cpe210|\
cpe510)
cpe510|\
wbs210|\
wbs510)
ucidef_set_led_switch "lan0" "LAN0" "tp-link:green:lan0" "switch0" "0x20"
ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10"
ucidef_set_rssimon "wlan0" "200000" "1"

@ -212,7 +212,9 @@ ar71xx_setup_interfaces()
ucidef_set_interface_lan "eth0" "dhcp"
;;
cpe210|\
cpe510)
cpe510|\
wbs210|\
wbs510)
ucidef_add_switch "switch0" \
"0@eth0" "5:lan" "4:wan"
;;

@ -18,7 +18,9 @@ nanostation-m-xw)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "2"
;;
cpe210|\
cpe510)
cpe510|\
wbs210|\
wbs510)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "20"
;;
rb-912uag-2hpnd|\

@ -510,6 +510,14 @@ ar71xx_board_detect() {
*CPE870)
name="cpe870"
;;
*WBS210)
name="wbs210"
tplink_pharos_board_detect
;;
*WBS510)
name="wbs510"
tplink_pharos_board_detect
;;
*CR3000)
name="cr3000"
;;

@ -453,7 +453,9 @@ platform_check_image() {
;;
cpe210|\
cpe510|\
eap120)
eap120|\
wbs210|\
wbs510)
tplink_pharos_check_image "$1" && return 0
return 1
;;

@ -30,6 +30,9 @@
#define CPE510_GPIO_LED_L3 15
#define CPE510_GPIO_LED_L4 16
/* All LEDs/button except for link4 are the same for CPE and WBS series */
#define WBS510_GPIO_LED_L4 2
#define CPE510_GPIO_EXTERNAL_LNA0 18
#define CPE510_GPIO_EXTERNAL_LNA1 19
@ -67,6 +70,34 @@ static struct gpio_led cpe510_leds_gpio[] __initdata = {
},
};
static struct gpio_led wbs510_leds_gpio[] __initdata = {
{
.name = "tp-link:green:lan0",
.gpio = CPE510_GPIO_LED_LAN0,
.active_low = 1,
}, {
.name = "tp-link:green:lan1",
.gpio = CPE510_GPIO_LED_LAN1,
.active_low = 1,
}, {
.name = "tp-link:green:link1",
.gpio = CPE510_GPIO_LED_L1,
.active_low = 1,
}, {
.name = "tp-link:green:link2",
.gpio = CPE510_GPIO_LED_L2,
.active_low = 1,
}, {
.name = "tp-link:green:link3",
.gpio = CPE510_GPIO_LED_L3,
.active_low = 1,
}, {
.name = "tp-link:green:link4",
.gpio = WBS510_GPIO_LED_L4,
.active_low = 1,
},
};
static struct gpio_keys_button cpe510_gpio_keys[] __initdata = {
{
.desc = "Reset button",
@ -85,9 +116,6 @@ static void __init cpe_setup(u8 *mac)
ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE,
AR934X_GPIO_FUNC_CLK_OBS4_EN);
ath79_register_leds_gpio(-1, ARRAY_SIZE(cpe510_leds_gpio),
cpe510_leds_gpio);
ath79_register_gpio_keys_polled(1, CPE510_KEYS_POLL_INTERVAL,
ARRAY_SIZE(cpe510_gpio_keys),
cpe510_gpio_keys);
@ -109,6 +137,9 @@ static void __init cpe210_setup(void)
u8 *mac = (u8 *) KSEG1ADDR(0x1f830008);
u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
ath79_register_leds_gpio(-1, ARRAY_SIZE(cpe510_leds_gpio),
cpe510_leds_gpio);
cpe_setup(mac);
ath79_register_wmac(ee, mac);
@ -119,6 +150,22 @@ static void __init cpe510_setup(void)
u8 *mac = (u8 *) KSEG1ADDR(0x1f830008);
u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
ath79_register_leds_gpio(-1, ARRAY_SIZE(cpe510_leds_gpio),
cpe510_leds_gpio);
cpe_setup(mac);
ath79_register_wmac(ee, mac);
}
static void __init wbs_setup(void)
{
u8 *mac = (u8 *) KSEG1ADDR(0x1f830008);
u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
ath79_register_leds_gpio(-1, ARRAY_SIZE(wbs510_leds_gpio),
wbs510_leds_gpio);
cpe_setup(mac);
ath79_register_wmac(ee, mac);
@ -129,3 +176,9 @@ MIPS_MACHINE(ATH79_MACH_CPE210, "CPE210", "TP-LINK CPE210/220",
MIPS_MACHINE(ATH79_MACH_CPE510, "CPE510", "TP-LINK CPE510/520",
cpe510_setup);
MIPS_MACHINE(ATH79_MACH_WBS210, "WBS210", "TP-LINK WBS210",
wbs_setup);
MIPS_MACHINE(ATH79_MACH_WBS510, "WBS510", "TP-LINK WBS510",
wbs_setup);

@ -251,6 +251,8 @@ enum ath79_mach_type {
ATH79_MACH_UBNT_UNIFI_OUTDOOR, /* Ubiquiti UnifiAP Outdoor */
ATH79_MACH_UBNT_UNIFI_OUTDOOR_PLUS, /* Ubiquiti UnifiAP Outdoor+ */
ATH79_MACH_UBNT_XM, /* Ubiquiti Networks XM board rev 1.0 */
ATH79_MACH_WBS210, /* TP-LINK WBS210 */
ATH79_MACH_WBS510, /* TP-LINK WBS510 */
ATH79_MACH_WEIO, /* WeIO board */
ATH79_MACH_WHR_G301N, /* Buffalo WHR-G301N */
ATH79_MACH_WHR_HP_G300N, /* Buffalo WHR-HP-G300N */

@ -117,7 +117,23 @@ $(Device/cpe510-520)
BOARDNAME := CPE210
TPLINK_BOARD_NAME := CPE210
endef
TARGET_DEVICES += cpe210-220 cpe510-520
define Device/wbs210
$(Device/cpe510-520)
DEVICE_TITLE := TP-LINK WBS210
DEVICE_PACKAGES := rssileds
BOARDNAME := WBS210
TPLINK_BOARD_NAME := WBS210
endef
define Device/wbs510
$(Device/cpe510-520)
DEVICE_TITLE := TP-LINK WBS510
DEVICE_PACKAGES := rssileds
BOARDNAME := WBS510
TPLINK_BOARD_NAME := WBS510
endef
TARGET_DEVICES += cpe210-220 cpe510-520 wbs210 wbs510
define Device/re450
DEVICE_TITLE := TP-LINK RE450

Loading…
Cancel
Save