[openwrt/openwrt] ramips: add support for TP-Link RE200 v3

LEDE Commits lede-commits at lists.infradead.org
Mon Aug 3 17:34:45 EDT 2020


adrian pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/009e62c92c35142c5be3b375d6c393e63d2d27eb

commit 009e62c92c35142c5be3b375d6c393e63d2d27eb
Author: Richard Fröhning <misanthropos at gmx.de>
AuthorDate: Sun Aug 2 16:22:50 2020 +0200

    ramips: add support for TP-Link RE200 v3
    
    TP-Link RE200 v3 is a wireless range extender with Ethernet and 2.4G and 5G
    WiFi with internal antennas. It's based on MediaTek MT7628AN+MT7610EN like the v2.
    
    Specifications
    --------------
    
    - MediaTek MT7628AN (580 Mhz)
    - 64 MB of RAM
    - 8 MB of FLASH
    - 2T2R 2.4 GHz and 1T1R 5 GHz
    - 1x 10/100 Mbps Ethernet
    - 8x LED (GPIO-controlled), 2x button
    
    Unverified:
    - UART header on PCB (57600 8n1)
    
    There are 2.4G and 5G LEDs in red and green which are controlled
    separately.
    
    MAC addresses
    -------------
    
    MAC address assignment has been done according to the RE200 v2.
    
    The label MAC address matches the OpenWrt ethernet address.
    
    Installation
    ------------
    
    Web Interface
    -------------
    
    It is possible to upgrade to OpenWrt via the web interface. Simply flash
    the -factory.bin from OEM. In contrast to a stock firmware, this will not
    overwrite U-Boot.
    
    Recovery
    --------
    
    Unfortunately, this devices does not offer a recovery mode or a tftp
    installation method. If the web interface upgrade fails, you have to open
    your device and attach serial console.
    
    The device has not been opened for adding support. However, it is expected
    that the behavior is similar to the RE200 v2. Instructions for serial console
    and recovery may be checked out in commit 6d6f36ae787c ("ramips: add support
    for TP-Link RE200 v2") or on the device's Wiki page.
    
    Signed-off-by: Richard Fröhning <misanthropos at gmx.de>
    [adjust commit title/message, sort support list]
    Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
---
 .../linux/ramips/dts/mt7628an_tplink_re200-v3.dts  | 70 ++++++++++++++++++++++
 target/linux/ramips/image/mt76x8.mk                | 10 ++++
 .../ramips/mt76x8/base-files/etc/board.d/01_leds   |  1 +
 .../mt76x8/base-files/etc/board.d/02_network       |  1 +
 tools/firmware-utils/src/tplink-safeloader.c       | 44 ++++++++++++++
 5 files changed, 126 insertions(+)

diff --git a/target/linux/ramips/dts/mt7628an_tplink_re200-v3.dts b/target/linux/ramips/dts/mt7628an_tplink_re200-v3.dts
new file mode 100644
index 0000000000..21d256498e
--- /dev/null
+++ b/target/linux/ramips/dts/mt7628an_tplink_re200-v3.dts
@@ -0,0 +1,70 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "mt7628an_tplink_re200.dtsi"
+
+/ {
+	compatible = "tplink,re200-v3", "mediatek,mt7628an-soc";
+	model = "TP-Link RE200 v3";
+
+	aliases {
+		led-boot = &led_power;
+		led-failsafe = &led_power;
+		led-running = &led_power;
+		led-upgrade = &led_power;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		wps {
+			label = "re200-v3:green:wps";
+			gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+		};
+
+		wifi {
+			label = "re200-v3:green:wifi";
+			gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+		};
+
+		lan {
+			label = "re200-v3:green:lan";
+			gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+		};
+
+		led_power: power {
+			label = "re200-v3:green:power";
+			gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+		};
+
+		wifi2g_green {
+			label = "re200-v3:green:wifi2g";
+			gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0tpt";
+		};
+
+		wifi5g_green {
+			label = "re200-v3:green:wifi5g";
+			gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy1tpt";
+		};
+
+		wifi2g_red {
+			label = "re200-v3:red:wifi2g";
+			gpios = <&gpio 43 GPIO_ACTIVE_LOW>;
+		};
+
+		wifi5g_red {
+			label = "re200-v3:red:wifi5g";
+			gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&state_default {
+	gpio {
+		groups = "p4led_an", "p3led_an", "p2led_an", "p1led_an",
+				"p0led_an", "wled_an", "i2c", "wdt", "refclk";
+		function = "gpio";
+	};
+};
diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk
index 9ec469d32d..d170eaa065 100644
--- a/target/linux/ramips/image/mt76x8.mk
+++ b/target/linux/ramips/image/mt76x8.mk
@@ -404,6 +404,16 @@ define Device/tplink_re200-v2
 endef
 TARGET_DEVICES += tplink_re200-v2
 
+define Device/tplink_re200-v3
+  $(Device/tplink-safeloader)
+  IMAGE_SIZE := 7808k
+  DEVICE_MODEL := RE200
+  DEVICE_VARIANT := v3
+  DEVICE_PACKAGES := kmod-mt76x0e
+  TPLINK_BOARD_ID := RE200-V3
+endef
+TARGET_DEVICES += tplink_re200-v3
+
 define Device/tplink_re220-v2
   $(Device/tplink-safeloader)
   IMAGE_SIZE := 7808k
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
index 1e478df4ef..94c5cb5d49 100755
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
@@ -69,6 +69,7 @@ tplink,archer-c50-v4)
 	ucidef_set_led_wlan "wlan5g" "wlan5g" "$boardname:green:wlan5g" "phy1tpt"
 	;;
 tplink,re200-v2|\
+tplink,re200-v3|\
 tplink,re220-v2|\
 tplink,tl-mr3020-v3|\
 tplink,tl-wa801nd-v5)
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
index cf7e88ebf1..83437ea364 100755
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
@@ -19,6 +19,7 @@ ramips_setup_interfaces()
 	ravpower,rp-wd009|\
 	tama,w06|\
 	tplink,re200-v2|\
+	tplink,re200-v3|\
 	tplink,re220-v2|\
 	tplink,re305-v1|\
 	tplink,tl-mr3020-v3|\
diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c
index 3f83f19d2d..a5f3ced16d 100644
--- a/tools/firmware-utils/src/tplink-safeloader.c
+++ b/tools/firmware-utils/src/tplink-safeloader.c
@@ -1562,6 +1562,50 @@ static struct device_info boards[] = {
 		.last_sysupgrade_partition = "file-system"
 	},
 
+  /** Firmware layout for the RE200 v3 */
+	{
+		.id     = "RE200-V3",
+		.vendor = "",
+		.support_list =
+			"SupportList:\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:00000000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:41520000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:41550000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:42520000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:43410000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:45470000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:45530000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:45550000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:49440000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:4A500000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:4B520000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:52550000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:54570000}\n"
+			"{product_name:RE200,product_ver:3.0.0,special_id:55530000}\n",
+		.support_trail = '\x00',
+		.soft_ver = NULL,
+
+		.partitions = {
+			{"fs-uboot", 0x00000, 0x20000},
+			{"firmware", 0x20000, 0x7a0000},
+			{"partition-table", 0x7c0000, 0x02000},
+			{"default-mac", 0x7c2000, 0x00020},
+			{"pin", 0x7c2100, 0x00020},
+			{"product-info", 0x7c3100, 0x01000},
+			{"soft-version", 0x7c4200, 0x01000},
+			{"support-list", 0x7c5200, 0x01000},
+			{"profile", 0x7c6200, 0x08000},
+			{"config-info", 0x7ce200, 0x00400},
+			{"user-config", 0x7d0000, 0x10000},
+			{"default-config", 0x7e0000, 0x10000},
+			{"radio", 0x7f0000, 0x10000},
+			{NULL, 0, 0}
+		},
+
+		.first_sysupgrade_partition = "os-image",
+		.last_sysupgrade_partition = "file-system"
+	},
+
 	/** Firmware layout for the RE220 v2 */
 	{
 		.id     = "RE220-V2",



More information about the lede-commits mailing list