ramips: add support for TP-Link EC220-G5 v2
authorMieczyslaw Nalewaj <namiltd@yahoo.com>
Fri, 12 Apr 2024 14:44:23 +0000 (16:44 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 13 Apr 2024 15:40:51 +0000 (17:40 +0200)
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@yahoo.com>
target/linux/ramips/dts/mt7620a_tplink_ec220-g5-v2.dts [new file with mode: 0644]
target/linux/ramips/image/mt7620.mk
target/linux/ramips/mt7620/base-files/etc/board.d/01_leds
target/linux/ramips/mt7620/base-files/etc/board.d/02_network

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 (file)
index 0000000..6ac1a9c
--- /dev/null
@@ -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 = &ethernet;
+       };
+
+       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@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@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";
+};
index b35359aefee7ea8a3ee2438719603fc13a2f936a..f7238c2b1f1c263843542a9bc96a6a4653405926 100644 (file)
@@ -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
index a56ae8f0bf09a2d4658e2d64ad8b3812e2de3a2f..261e54f5e195898608cfd38a8d6df0a452a77b6f 100644 (file)
@@ -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"
        ;;
index 8cc6091e235ac66148cfb6af1d6031b5dba3cf04..63f7e41ac2e33fd2f5fdb8f5e2e2c4e4164cccd8 100644 (file)
@@ -247,6 +247,12 @@ ramips_setup_interfaces()
                        "0:lan" "1:lan" "2:lan" "3:lan" "6t@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@eth0"
+               ;;
        wavlink,wl-wn535k1)
                ucidef_add_switch "switch0" \
                        "2:lan:2" "5:lan:1" "4:wan" "6@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)