ramips: mt7620: Add support for the devolo WiFi Repeater ac (MT 2767, 2779)
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled

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@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16956
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Hugo Monteiro 2024-03-20 23:11:47 +00:00 committed by Hauke Mehrtens
parent 5a3b9d88f1
commit d89f5f3ab0
3 changed files with 213 additions and 0 deletions

View File

@ -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@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <10000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "u-boot-env";
reg = <0x30000 0x10000>;
read-only;
};
partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
read-only;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
eeprom_factory_0: eeprom@0 {
reg = <0x0 0x200>;
};
eeprom_factory_8000: eeprom@8000 {
reg = <0x8000 0x200>;
};
macaddr_factory_4: macaddr@4 {
compatible = "mac-base";
reg = <0x4 0x6>;
#nvmem-cell-cells = <1>;
};
};
};
partition@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@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@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";
};
};

View File

@ -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

View File

@ -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|\