[openwrt/openwrt] ramips: add support for TP-Link EC220-G5 v2

LEDE Commits lede-commits at lists.infradead.org
Sat Apr 13 08:42:37 PDT 2024


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/c08f8a4a4913d80ed3fb261dadc711e94b8428dd

commit c08f8a4a4913d80ed3fb261dadc711e94b8428dd
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Fri Apr 12 16:44:23 2024 +0200

    ramips: add support for TP-Link EC220-G5 v2
    
    TP-Link EC220-G5 v2 is a dual band router with 4 GbE ports
    Advertised as AC1200 for its 867Mbps (2x2) 5GHz band
    and 300 Mbps (2x2) 2.4GHz band.
    
    Specs:
    - SoC: MediaTek MT7620A
    - Ethernet: 4x GbE ports (Realtek RTL8367S)
    - Wireless 2.4GHz: MediaTek MT7620A
    - Wireless 5GHz: MediaTek MT7612E
    - RAM: 64MiB
    - ROM: 8MiB (W25Q64BV)
    - 2 Buttons (WPS and reset)
    - 7 LEDs
    
    Flash instructions via serial console:
    1. Rename the factory.bin to to test.bin
    2. start a TFTP server from IP address 192.168.0.225 and serve the image named test.bin
    3. connect your device to the LAN port
    4. power up the router and press 4 on the console to stop the boot process.
    5. enter the following commands on the router console
            tftp 0x80060000 test.bin
            erase tplink 0x20000 0x7a0000
            cp.b 0x80060000 0x20000 0x7a0000
            reset
    
    Flash instructions via TFTP:
    1. Update orginal firmware of the router to the latest one.
    2. Rename openwrt-ramips-mt7620-tplink_ec220-g5-v2-squashfs-tftp-recovery.bin to tp_recovery.bin
    3. Change computer IP to 192.168.0.66
    4. Run TFTP serwer
    5. Start the router with the reset button pressed, the file will be automatically downloaded and after a while the router will restart.
    6. After updating, set your computer's IP to DHCP
    
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
---
 .../ramips/dts/mt7620a_tplink_ec220-g5-v2.dts      | 144 +++++++++++++++++++++
 target/linux/ramips/image/mt7620.mk                |  16 +++
 .../ramips/mt7620/base-files/etc/board.d/01_leds   |   4 +
 .../mt7620/base-files/etc/board.d/02_network       |   9 +-
 4 files changed, 172 insertions(+), 1 deletion(-)

diff --git a/target/linux/ramips/dts/mt7620a_tplink_ec220-g5-v2.dts b/target/linux/ramips/dts/mt7620a_tplink_ec220-g5-v2.dts
new file mode 100644
index 0000000000..6ac1a9c5d5
--- /dev/null
+++ b/target/linux/ramips/dts/mt7620a_tplink_ec220-g5-v2.dts
@@ -0,0 +1,144 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include <dt-bindings/leds/common.h>
+
+#include "mt7620a_tplink_8m.dtsi"
+
+/ {
+	compatible = "tplink,ec220-g5-v2", "ralink,mt7620a-soc";
+	model = "TP-Link EC220-G5 v2";
+
+	aliases {
+		led-boot = &led_power;
+		led-failsafe = &led_power;
+		led-running = &led_power;
+		led-upgrade = &led_power;
+		label-mac-device = ðernet;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_power: led-0 {
+			function = LED_FUNCTION_POWER;
+			color = <LED_COLOR_ID_GREEN>;
+			gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
+		};
+
+		led-1 {
+			function = LED_FUNCTION_WAN;
+			color = <LED_COLOR_ID_ORANGE>;
+			gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
+		};
+
+		led-2 {
+			function = LED_FUNCTION_WAN;
+			color = <LED_COLOR_ID_GREEN>;
+			gpios = <&gpio2 13 GPIO_ACTIVE_LOW>;
+		};
+
+		led-3 {
+			function = LED_FUNCTION_LAN;
+			color = <LED_COLOR_ID_GREEN>;
+			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+		};
+
+		led-4 {
+			function = LED_FUNCTION_WLAN_2GHZ;
+			color = <LED_COLOR_ID_GREEN>;
+			gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0tpt";
+		};
+
+		led-5 {
+			function = LED_FUNCTION_WLAN_5GHZ;
+			color = <LED_COLOR_ID_GREEN>;
+			gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy1tpt";
+		};
+
+		led-6 {
+			function = LED_FUNCTION_WPS;
+			color = <LED_COLOR_ID_GREEN>;
+			gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+
+		rfkill {
+			label = "rfkill";
+			gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RFKILL>;
+		};
+	};
+
+	rtl8367s {
+		compatible = "realtek,rtl8367b";
+		cpu_port = <7>;
+		realtek,extif2 = <1 0 1 1 1 1 1 1 2>;
+		mii-bus = <&mdio0>;
+		phy-id = <29>;
+	};
+};
+
+&spi0 {
+	flash at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+	};
+};
+
+&state_default {
+	gpio {
+		groups = "i2c", "uartf", "ephy", "rgmii2";
+		function = "gpio";
+	};
+};
+
+&ethernet {
+	pinctrl-names = "default";
+	pinctrl-0 = <&rgmii1_pins &mdio_pins>;
+
+	port at 5 {
+		status = "okay";
+		mediatek,fixed-link = <1000 1 1 1>;
+		phy-mode = "rgmii";
+	};
+
+	mdio0: mdio-bus {
+		status = "okay";
+		reset-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
+		reset-delay-us = <10000>;
+	};
+};
+
+&ehci {
+	status = "disabled";
+};
+
+&ohci {
+	status = "disabled";
+};
+
+&wmac {
+	pinctrl-names = "default", "pa_gpio";
+	pinctrl-0 = <&pa_pins>;
+	pinctrl-1 = <&pa_gpio_pins>;
+
+	nvmem-cells = <&eeprom_radio_0>, <&macaddr_rom_f100 0>;
+	nvmem-cell-names = "eeprom", "mac-address";
+};
+
+
+&wifi {
+	nvmem-cells = <&eeprom_radio_8000>, <&macaddr_rom_f100 2>;
+	nvmem-cell-names = "eeprom", "mac-address";
+};
diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk
index b35359aefe..f7238c2b1f 100644
--- a/target/linux/ramips/image/mt7620.mk
+++ b/target/linux/ramips/image/mt7620.mk
@@ -1273,6 +1273,22 @@ define Device/tplink_archer-mr200
 endef
 TARGET_DEVICES += tplink_archer-mr200
 
+define Device/tplink_ec220-g5-v2
+  $(Device/tplink-v2)
+  SOC := mt7620a
+  IMAGE_SIZE := 7808k
+  TPLINK_FLASHLAYOUT := 8Mmtk
+  TPLINK_HWID := 0x02015a15
+  TPLINK_HWREV := 0x55000600
+  TPLINK_HWREVADD := 0x03000000
+  IMAGES += tftp-recovery.bin
+  IMAGE/tftp-recovery.bin := pad-extra 128k | $$(IMAGE/factory.bin)
+  DEVICE_MODEL := EC220-G5
+  DEVICE_VARIANT := v2
+  DEVICE_PACKAGES := kmod-mt76x2 kmod-switch-rtl8367b
+endef
+TARGET_DEVICES += tplink_ec220-g5-v2
+
 define Device/tplink_re200-v1
   $(Device/tplink-v1)
   SOC := mt7620a
diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds
index a56ae8f0bf..261e54f5e1 100644
--- a/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds
@@ -242,6 +242,10 @@ tplink,archer-mr200)
 	ucidef_set_led_netdev "lan" "lan" "white:lan" "eth0.1"
 	ucidef_set_led_netdev "wan" "wan" "white:wan" "usb0"
 	;;
+tplink,ec220-g5-v2)
+	ucidef_set_led_switch "lan" "lan" "green:lan" "switch1" "0x17"
+	ucidef_set_led_switch "wan" "wan" "orange:wan" "switch1" "0x08"
+	;;
 tplink,re200-v1)
 	ucidef_set_led_netdev "lan" "lan" "green:lan" "eth0"
 	;;
diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
index 8cc6091e23..63f7e41ac2 100644
--- a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
@@ -247,6 +247,12 @@ ramips_setup_interfaces()
 			"0:lan" "1:lan" "2:lan" "3:lan" "6t at eth0"
 		ucidef_set_interface_wan "usb0"
 		;;
+	tplink,ec220-g5-v2)
+		ucidef_add_switch "switch0"
+		ucidef_add_switch_attr "switch0" "enable" "0"
+		ucidef_add_switch "switch1" \
+			"0:lan:3" "1:lan:2" "2:lan:1" "4:lan:4" "3:wan" "7 at eth0"
+		;;
 	wavlink,wl-wn535k1)
 		ucidef_add_switch "switch0" \
 			"2:lan:2" "5:lan:1" "4:wan" "6 at eth0"
@@ -416,7 +422,8 @@ ramips_setup_macs()
 	tplink,archer-c20i|\
 	tplink,archer-c5-v4|\
 	tplink,archer-c50-v1|\
-	tplink,archer-mr200)
+	tplink,archer-mr200|\
+	tplink,ec220-g5-v2)
 		wan_mac=$(macaddr_add "$(mtd_get_mac_binary rom 0xf100)" 1)
 		;;
 	wavlink,wl-wn535k1)




More information about the lede-commits mailing list