[source] ar71xx: add support for TP-Link WBS210/510

LEDE Commits lede-commits at lists.infradead.org
Thu Jan 5 10:38:29 PST 2017


neoraider pushed a commit to source.git, branch master:
https://git.lede-project.org/1fef80f29cf6bdfcb6cdbd913b9147797b8bc218

commit 1fef80f29cf6bdfcb6cdbd913b9147797b8bc218
Author: Matthias Schiffer <mschiffer at universe-factory.net>
AuthorDate: Thu Jan 5 16:01:17 2017 +0100

    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 at universe-factory.net>
---
 target/linux/ar71xx/base-files/etc/board.d/01_leds |  4 +-
 .../linux/ar71xx/base-files/etc/board.d/02_network |  4 +-
 .../ar71xx/base-files/etc/board.d/03_gpio_switches |  4 +-
 target/linux/ar71xx/base-files/lib/ar71xx.sh       |  8 +++
 .../ar71xx/base-files/lib/upgrade/platform.sh      |  4 +-
 .../ar71xx/files/arch/mips/ath79/mach-cpe510.c     | 59 ++++++++++++++++++++--
 .../linux/ar71xx/files/arch/mips/ath79/machtypes.h |  2 +
 target/linux/ar71xx/image/tp-link.mk               | 18 ++++++-
 8 files changed, 95 insertions(+), 8 deletions(-)

diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds
index c6dcf36..5a2bf0c 100755
--- a/target/linux/ar71xx/base-files/etc/board.d/01_leds
+++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds
@@ -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"
diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network
index 8acd214..66274db 100755
--- a/target/linux/ar71xx/base-files/etc/board.d/02_network
+++ b/target/linux/ar71xx/base-files/etc/board.d/02_network
@@ -212,7 +212,9 @@ ar71xx_setup_interfaces()
 		ucidef_set_interface_lan "eth0" "dhcp"
 		;;
 	cpe210|\
-	cpe510)
+	cpe510|\
+	wbs210|\
+	wbs510)
 		ucidef_add_switch "switch0" \
 			"0 at eth0" "5:lan" "4:wan"
 		;;
diff --git a/target/linux/ar71xx/base-files/etc/board.d/03_gpio_switches b/target/linux/ar71xx/base-files/etc/board.d/03_gpio_switches
index 5b95f15..da963bf 100755
--- a/target/linux/ar71xx/base-files/etc/board.d/03_gpio_switches
+++ b/target/linux/ar71xx/base-files/etc/board.d/03_gpio_switches
@@ -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|\
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 3241100..1b30f4d 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -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"
 		;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 570aa68..6341a31 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -453,7 +453,9 @@ platform_check_image() {
 		;;
 	cpe210|\
 	cpe510|\
-	eap120)
+	eap120|\
+	wbs210|\
+	wbs510)
 		tplink_pharos_check_image "$1" && return 0
 		return 1
 		;;
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c
index 74daf43..d2dbed1 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c
@@ -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);
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
index d18a71c..9402185 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
+++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
@@ -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 */
diff --git a/target/linux/ar71xx/image/tp-link.mk b/target/linux/ar71xx/image/tp-link.mk
index c6c9b50..480d9ad 100644
--- a/target/linux/ar71xx/image/tp-link.mk
+++ b/target/linux/ar71xx/image/tp-link.mk
@@ -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



More information about the lede-commits mailing list