From c08f8a4a4913d80ed3fb261dadc711e94b8428dd Mon Sep 17 00:00:00 2001 From: Mieczyslaw Nalewaj Date: Fri, 12 Apr 2024 16:44:23 +0200 Subject: [PATCH] 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 --- .../ramips/dts/mt7620a_tplink_ec220-g5-v2.dts | 144 ++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 16 ++ .../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(-) create mode 100644 target/linux/ramips/dts/mt7620a_tplink_ec220-g5-v2.dts 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 + +#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 = ; + gpios = <&gpio2 2 GPIO_ACTIVE_LOW>; + }; + + led-1 { + function = LED_FUNCTION_WAN; + color = ; + gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; + }; + + led-2 { + function = LED_FUNCTION_WAN; + color = ; + gpios = <&gpio2 13 GPIO_ACTIVE_LOW>; + }; + + led-3 { + function = LED_FUNCTION_LAN; + color = ; + gpios = <&gpio0 1 GPIO_ACTIVE_LOW>; + }; + + led-4 { + function = LED_FUNCTION_WLAN_2GHZ; + color = ; + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + led-5 { + function = LED_FUNCTION_WLAN_5GHZ; + color = ; + gpios = <&gpio0 9 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy1tpt"; + }; + + led-6 { + function = LED_FUNCTION_WPS; + color = ; + gpios = <&gpio2 15 GPIO_ACTIVE_LOW>; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + rfkill { + label = "rfkill"; + gpios = <&gpio2 3 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + 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"; + }; +}; + +ðernet { + 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"; +}; 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@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) -- 2.30.2