ramips: add support for WeVO AIR DUO
WeVO AIR DUO is a 1-bay NAS & 802.11ac (Wi-Fi 5) router, based on
MediaTek MT7620A.
Specifications:
* SoC: MT7620A
* RAM: 64 MiB
* Flash: SPI NOR 16 MiB
* USB & SATA bridge controller: JMicron JMS567
  * SATA 6Gb/s: 2.5" drive slot
  * USB 3.0: Micro-B
  * USB 2.0: connected to SoC
* Wi-Fi:
  * 2.4 GHz: SoC built-in
  * 5 GHz: MT7612EN
* Ethernet: 5x 1GbE
  * Switch: MT7530WU
* UART: 4-pin 1.27 mm pitch through-hole (57600 baud)
  * Pinout: (3V3)|(RXD) (TXD) (GND)
Notes:
* The drive is accessible through the external USB port only when the
  router is turned off.
Installation via web interface:
1.  Flash **initramfs** image through the stock web interface.
    The image filename should have ".upload" extension.
2.  Boot into OpenWrt and perform sysupgrade with sysupgrade image.
Revert to stock firmware:
1.  Perform sysupgrade with stock image.
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
			
			
This commit is contained in:
		
				
					committed by
					
						
						Christian Lamparter
					
				
			
			
				
	
			
			
			
						parent
						
							7ea9936f7f
						
					
				
				
					commit
					482a7e23a4
				
			
							
								
								
									
										202
									
								
								target/linux/ramips/dts/mt7620a_wevo_air-duo.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										202
									
								
								target/linux/ramips/dts/mt7620a_wevo_air-duo.dts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,202 @@
 | 
			
		||||
// 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 = "wevo,air-duo", "ralink,mt7620a-soc";
 | 
			
		||||
	model = "WeVO AIR DUO";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		led-boot = &led_status;
 | 
			
		||||
		led-failsafe = &led_status;
 | 
			
		||||
		led-running = &led_status;
 | 
			
		||||
		led-upgrade = &led_status;
 | 
			
		||||
		label-mac-device = ðernet;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		led_status: led-0 {
 | 
			
		||||
			label = "blue:status";
 | 
			
		||||
			color = <LED_COLOR_ID_BLUE>;
 | 
			
		||||
			function = LED_FUNCTION_STATUS;
 | 
			
		||||
			gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		led-1 {
 | 
			
		||||
			color = <LED_COLOR_ID_BLUE>;
 | 
			
		||||
			function = LED_FUNCTION_WPS;
 | 
			
		||||
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
 | 
			
		||||
		wps {
 | 
			
		||||
			label = "wps";
 | 
			
		||||
			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			linux,code = <KEY_WPS_BUTTON>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		reset {
 | 
			
		||||
			label = "reset";
 | 
			
		||||
			gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			linux,code = <KEY_RESTART>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gpio1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	flash@0 {
 | 
			
		||||
		compatible = "jedec,spi-nor";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
		spi-max-frequency = <50000000>;
 | 
			
		||||
 | 
			
		||||
		partitions {
 | 
			
		||||
			compatible = "fixed-partitions";
 | 
			
		||||
			#address-cells = <1>;
 | 
			
		||||
			#size-cells = <1>;
 | 
			
		||||
 | 
			
		||||
			partition@0 {
 | 
			
		||||
				label = "u-boot";
 | 
			
		||||
				reg = <0x0 0x30000>;
 | 
			
		||||
				read-only;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@30000 {
 | 
			
		||||
				label = "config";
 | 
			
		||||
				reg = <0x30000 0x10000>;
 | 
			
		||||
				read-only;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			factory: partition@40000 {
 | 
			
		||||
				label = "factory";
 | 
			
		||||
				reg = <0x40000 0x10000>;
 | 
			
		||||
				read-only;
 | 
			
		||||
 | 
			
		||||
				compatible = "nvmem-cells";
 | 
			
		||||
				#address-cells = <1>;
 | 
			
		||||
				#size-cells = <1>;
 | 
			
		||||
 | 
			
		||||
				macaddr_factory_4: macaddr@4 {
 | 
			
		||||
					reg = <0x4 0x6>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@50000 {
 | 
			
		||||
				compatible = "denx,uimage";
 | 
			
		||||
				label = "firmware";
 | 
			
		||||
				reg = <0x50000 0xeb0000>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@f00000 {
 | 
			
		||||
				label = "db";
 | 
			
		||||
				reg = <0xf00000 0x100000>;
 | 
			
		||||
				read-only;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&state_default {
 | 
			
		||||
	gpio {
 | 
			
		||||
		groups = "i2c", "uartf", "spi refclk";
 | 
			
		||||
		function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ðernet {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&rgmii1_pins &mdio_pins>;
 | 
			
		||||
	nvmem-cells = <&macaddr_factory_4>;
 | 
			
		||||
	nvmem-cell-names = "mac-address";
 | 
			
		||||
 | 
			
		||||
	port@5 {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
		mediatek,fixed-link = <1000 1 1 1>;
 | 
			
		||||
		phy-mode = "rgmii";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	mdio-bus {
 | 
			
		||||
		status = "okay";
 | 
			
		||||
 | 
			
		||||
		ethernet-phy@0 {
 | 
			
		||||
			reg = <0>;
 | 
			
		||||
			phy-mode = "rgmii";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		ethernet-phy@1 {
 | 
			
		||||
			reg = <1>;
 | 
			
		||||
			phy-mode = "rgmii";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		ethernet-phy@2 {
 | 
			
		||||
			reg = <2>;
 | 
			
		||||
			phy-mode = "rgmii";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		ethernet-phy@3 {
 | 
			
		||||
			reg = <3>;
 | 
			
		||||
			phy-mode = "rgmii";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		ethernet-phy@4 {
 | 
			
		||||
			reg = <4>;
 | 
			
		||||
			phy-mode = "rgmii";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		ethernet-phy@1f {
 | 
			
		||||
			reg = <0x1f>;
 | 
			
		||||
			phy-mode = "rgmii";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&gsw {
 | 
			
		||||
	mediatek,ephy-base = /bits/ 8 <12>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ehci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&ohci {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	wifi@0,0 {
 | 
			
		||||
		compatible = "mediatek,mt76";
 | 
			
		||||
		reg = <0x0000 0 0 0 0>;
 | 
			
		||||
		mediatek,mtd-eeprom = <&factory 0x8000>;
 | 
			
		||||
		ieee80211-freq-limit = <5000000 6000000>;
 | 
			
		||||
 | 
			
		||||
		led {
 | 
			
		||||
			led-sources = <2>;
 | 
			
		||||
			led-active-low;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&wmac {
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
	pinctrl-0 = <&wled_pins>;
 | 
			
		||||
 | 
			
		||||
	ralink,mtd-eeprom = <&factory 0x0>;
 | 
			
		||||
};
 | 
			
		||||
@@ -1160,6 +1160,17 @@ define Device/wavlink_wl-wn579x3
 | 
			
		||||
endef
 | 
			
		||||
TARGET_DEVICES += wavlink_wl-wn579x3
 | 
			
		||||
 | 
			
		||||
define Device/wevo_air-duo
 | 
			
		||||
  SOC := mt7620a
 | 
			
		||||
  IMAGE_SIZE := 15040k
 | 
			
		||||
  UIMAGE_NAME := AIR DUO(0.0.0)
 | 
			
		||||
  KERNEL_INITRAMFS_SUFFIX := .upload
 | 
			
		||||
  DEVICE_VENDOR := WeVO
 | 
			
		||||
  DEVICE_MODEL := AIR DUO
 | 
			
		||||
  DEVICE_PACKAGES := kmod-mt76x2 kmod-usb2 kmod-usb-ohci kmod-usb-storage-uas
 | 
			
		||||
endef
 | 
			
		||||
TARGET_DEVICES += wevo_air-duo
 | 
			
		||||
 | 
			
		||||
define Device/wrtnode_wrtnode
 | 
			
		||||
  SOC := mt7620n
 | 
			
		||||
  IMAGE_SIZE := 16064k
 | 
			
		||||
 
 | 
			
		||||
@@ -186,7 +186,8 @@ ramips_setup_interfaces()
 | 
			
		||||
		;;
 | 
			
		||||
	linksys,e1700|\
 | 
			
		||||
	netis,wf2770|\
 | 
			
		||||
	ralink,mt7620a-mt7530-evb)
 | 
			
		||||
	ralink,mt7620a-mt7530-evb|\
 | 
			
		||||
	wevo,air-duo)
 | 
			
		||||
		ucidef_add_switch "switch0"
 | 
			
		||||
		ucidef_add_switch_attr "switch0" "enable" "false"
 | 
			
		||||
		ucidef_add_switch "switch1" \
 | 
			
		||||
@@ -350,6 +351,7 @@ ramips_setup_macs()
 | 
			
		||||
	lenovo,newifi-y1s|\
 | 
			
		||||
	ohyeah,oy-0001|\
 | 
			
		||||
	wavlink,wl-wn530hg4|\
 | 
			
		||||
	wevo,air-duo|\
 | 
			
		||||
	youku,yk-l1|\
 | 
			
		||||
	youku,yk-l1c)
 | 
			
		||||
		wan_mac=$(mtd_get_mac_binary factory 0x2e)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user