[openwrt/openwrt] ramips: mt7620: Add support for the devolo WiFi Repeater ac (MT 2767, 2779)

LEDE Commits lede-commits at lists.infradead.org
Tue Apr 22 13:08:34 PDT 2025


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

commit d89f5f3ab0ea6bb68f850d8e0ec2052a00c325ce
Author: Hugo Monteiro <monteiro.hugo at gmail.com>
AuthorDate: Wed Mar 20 23:11:47 2024 +0000

    ramips: mt7620: Add support for the devolo WiFi Repeater ac (MT 2767, 2779)
    
    Specification:
        - MT7620A 580 MHz MIPS24KEc
        - 64MB RAM
        - 8MB SPI NOR
        - MediaTek MT7612E 5.0GHz 802.11a/n/ac
        - MediaTek MT7620 2.4GHz 802.11b/g/n
        - 5 LEDs (white)
        - 1 button
        - 1 Gbit port Realtek RTL8211E GbE Phy
    
    Serial Interface:
        - 3 Pins GND, RX, TX
        - Settings: 57600, 8N1
    
    Based on support from edimax_ew-7476rpc/edimax_ew-747x
    and netgear_ex3700/netgear_ex3x00_ex61xx
    
    Notes:
     - ATM there is no known way to revert to stock firmware
    
    Flash instruction:
    The only known way to flash OpenWrt image is to use tftp in U-Boot, with the
    aid of a serial adapter for U-Boot console access:
    
    1. Open the device and connect to the serial port. The device is very similar
       to Edimax 7476RPC. See https://openwrt.org/toh/edimax/ew-7476rpc. No VCC!
    2. Configure PC with static IP 192.168.1.2/24 and tftp server and
       connect PC to device using an ethernet cable.
    3. Power on the device and, on the serial console, as soon as U-Boot starts
       loading, press "2" to interrupt loading.
    4. Enter device ip address 192.168.1.1, PC ip address 192.168.1.2
       and the firmware filename placed on the TFTP server.
    5. Device will download file from server, write it to flash and reboot.
    
    Signed-off-by: Hugo Monteiro <monteiro.hugo at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16956
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ramips/dts/mt7620a_devolo_rac.dts     | 203 +++++++++++++++++++++
 target/linux/ramips/image/mt7620.mk                |   9 +
 .../mt7620/base-files/etc/board.d/02_network       |   1 +
 3 files changed, 213 insertions(+)

diff --git a/target/linux/ramips/dts/mt7620a_devolo_rac.dts b/target/linux/ramips/dts/mt7620a_devolo_rac.dts
new file mode 100644
index 0000000000..9276ba612e
--- /dev/null
+++ b/target/linux/ramips/dts/mt7620a_devolo_rac.dts
@@ -0,0 +1,203 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7620a.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+	compatible = "devolo,rac", "ralink,mt7620a-soc";
+	model = "devolo WiFi Repeater ac";
+
+	aliases {
+		led-boot = &led_power;
+		led-failsafe = &led_power;
+		led-running = &led_power;
+		led-upgrade = &led_power;
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset_wps {
+			label = "reset_wps";
+			gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+
+		switch_high {
+			label = "switch high";
+			gpios = <&gpio2 22 GPIO_ACTIVE_LOW>;
+			linux,code = <BTN_0>;
+			linux,input-type = <EV_SW>;
+		};
+
+		switch_off {
+			label = "switch off";
+			gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
+			linux,code = <BTN_1>;
+			linux,input-type = <EV_SW>;
+		};
+	};
+
+	leds {
+
+		compatible = "gpio-leds";
+
+		led_power: power {
+			function = LED_FUNCTION_POWER;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
+		};
+
+		led2 {
+			function = LED_FUNCTION_WLAN_5GHZ;
+			color = <LED_COLOR_ID_WHITE>;
+			function-enumerator = <0>;
+			gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0radio";
+		};
+
+		led3 {
+			function = LED_FUNCTION_WLAN_5GHZ;
+			color = <LED_COLOR_ID_WHITE>;
+			function-enumerator = <1>;
+			gpios = <&gpio2 29 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0radio";
+		};
+
+		led4 {
+			function = LED_FUNCTION_WLAN_2GHZ;
+			color = <LED_COLOR_ID_WHITE>;
+			function-enumerator = <0>;
+			gpios = <&gpio2 30 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy1radio";
+		};
+
+		led5 {
+			function = LED_FUNCTION_WLAN_2GHZ;
+			color = <LED_COLOR_ID_WHITE>;
+			function-enumerator = <1>;
+			gpios = <&gpio2 31 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy1radio";
+		};
+	};
+};
+
+&gpio2 {
+	status = "okay";
+};
+
+&spi0 {
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <10000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x0 0x30000>;
+				read-only;
+			};
+
+			partition at 30000 {
+				label = "u-boot-env";
+				reg = <0x30000 0x10000>;
+				read-only;
+			};
+
+			partition at 40000 {
+				label = "factory";
+				reg = <0x40000 0x10000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					eeprom_factory_0: eeprom at 0 {
+						reg = <0x0 0x200>;
+					};
+
+					eeprom_factory_8000: eeprom at 8000 {
+						reg = <0x8000 0x200>;
+					};
+
+					macaddr_factory_4: macaddr at 4 {
+						compatible = "mac-base";
+						reg = <0x4 0x6>;
+						#nvmem-cell-cells = <1>;
+					};
+				};
+			};
+
+			partition at 50000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x50000 0x7b0000>;
+			};
+		};
+	};
+};
+
+&state_default {
+	gpio {
+		groups = "i2c", "uartf", "nd_sd", "rgmii2";
+		function = "gpio";
+	};
+};
+
+&pinctrl {
+	phy_reset_pins: phy-reset {
+		gpio {
+			groups = "spi refclk";
+			function = "gpio";
+		};
+	};
+};
+
+&ethernet {
+	pinctrl-names = "default";
+	pinctrl-0 = <&rgmii1_pins>,<&mdio_pins>;
+
+	nvmem-cells = <&macaddr_factory_4 0>;
+	nvmem-cell-names = "mac-address";
+
+	port at 5 {
+		status = "okay";
+		mediatek,fixed-link = <1000 1 1 1>;
+		phy-mode = "rgmii";
+	};
+};
+
+&gsw {
+	mediatek,ephy-base = /bits/ 8 <8>;
+};
+
+&wmac {
+	nvmem-cells = <&eeprom_factory_0>;
+	nvmem-cell-names = "eeprom";
+};
+
+&pcie {
+	status = "okay";
+};
+
+&pcie0 {
+	wifi at 0,0 {
+		compatible = "mediatek,mt76";
+		reg = <0x0000 0 0 0 0>;
+		ieee80211-freq-limit = <5000000 6000000>;
+		nvmem-cells = <&eeprom_factory_8000>, <&macaddr_factory_4 2>;
+		nvmem-cell-names = "eeprom", "mac-address";
+	};
+};
diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk
index a21473311e..79d73cde59 100644
--- a/target/linux/ramips/image/mt7620.mk
+++ b/target/linux/ramips/image/mt7620.mk
@@ -207,6 +207,15 @@ define Device/comfast_cf-wr800n
 endef
 TARGET_DEVICES += comfast_cf-wr800n
 
+define Device/devolo_rac
+  SOC := mt7620a
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := devolo
+  DEVICE_MODEL := WiFi Repeater ac
+  DEVICE_PACKAGES := kmod-mt76x2 kmod-phy-realtek
+endef
+TARGET_DEVICES += devolo_rac
+
 define Device/dlink_dch-m225
   $(Device/seama)
   SOC := mt7620a
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 57db30b923..9f436a2e8f 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
@@ -43,6 +43,7 @@ ramips_setup_interfaces()
 	alfa-network,tube-e4g|\
 	ampedwireless,b1200ex|\
 	buffalo,wmr-300|\
+	devolo,rac|\
 	dlink,dch-m225|\
 	edimax,ew-7476rpc|\
 	edimax,ew-7478ac|\




More information about the lede-commits mailing list