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@yahoo.com>
This commit is contained in:
Mieczyslaw Nalewaj 2024-04-12 16:44:23 +02:00 committed by Hauke Mehrtens
parent ada3c41acd
commit c08f8a4a49
4 changed files with 172 additions and 1 deletions

View File

@ -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";
};

View 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

View 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"
;;

View 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)