[PATCH 2/2] ramips: add support for Wavlink WS-WN572HP3 4G

Arınç ÜNAL arinc.unal at arinc9.com
Tue Nov 29 15:45:12 PST 2022


On 30.11.2022 01:12, Jan-Niklas Burfeind wrote:
> Wavlink WS-WN572HP3 4G is an 802.11ac
> dual-band outdoor router with LTE support.
> 
> Specifications;
> * Soc: MT7621DAT
> * RAM: 128MiB
> * Flash: NOR 16MiB GD-25Q128ESIG3
> * Wi-Fi:
>    * MT7613BEN: 5GHz
>    * MT7603EN: 2.4GHz
> * Ethernet: 2x 1GbE
> * USB: None - only used internally
> * LTE Modem: Quectel EC200T-EU
> * UART: 115200 baud
> * LEDs:
>    * 7 blue at the front
>      * 1 Power
>      * 2 LAN / WAN
>      * 1 Status
>      * 3 RSSI (annotated 4G)
>    * 1 green at the bottom (4G LED)
> * Buttons: 1 reset button
> 
> Installation:
> * press and hold the reset button while powering on the device
> * keep it pressed for ten seconds
> * connect to 192.168.10.1 via webbrowser (chromium/chrome works, at
>    least Firefox 106.0.3 does not)
> * upload the sysupgrade image, confirm the checksum, wait 2 minutes
>    until the device reboots
> 
> Revert to stock firmware:
> * same as installation but use the recovery image for WL-WN572HP3
> 
> Signed-off-by: Jan-Niklas Burfeind <git at aiyionpri.me>
> ---
>   .../dts/mt7621_wavlink_ws-wn572hp3-4g.dts     | 186 ++++++++++++++++++
>   target/linux/ramips/image/mt7621.mk           |  17 ++
>   2 files changed, 203 insertions(+)
>   create mode 100644 target/linux/ramips/dts/mt7621_wavlink_ws-wn572hp3-4g.dts
> 
> diff --git a/target/linux/ramips/dts/mt7621_wavlink_ws-wn572hp3-4g.dts b/target/linux/ramips/dts/mt7621_wavlink_ws-wn572hp3-4g.dts
> new file mode 100644
> index 0000000000..89f7bb218d
> --- /dev/null
> +++ b/target/linux/ramips/dts/mt7621_wavlink_ws-wn572hp3-4g.dts
> @@ -0,0 +1,186 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +
> +#include "mt7621.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +	compatible = "wavlink,ws-wn572hp3-4g", "mediatek,mt7621-soc";
> +	model = "Wavlink WS-WN572HP3 4G";
> +
> +	chosen {
> +		bootargs = "console=ttyS0,115200";
> +	};
> +
> +	aliases {
> +		led-boot = &led_status_blue;
> +		led-failsafe = &led_status_blue;
> +		led-running = &led_status_blue;
> +		led-upgrade = &led_status_blue;
> +	};
> +
> +	keys {
> +		compatible = "gpio-keys";
> +
> +		reset {
> +			label = "Reset Button";
> +			gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_RESTART>;
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		rssihigh {
> +			label = "blue:rssihigh";
> +			gpios = <&gpio 68 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		rssimedium {
> +			label = "blue:rssimedium";
> +			gpios = <&gpio 81 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		rssilow {
> +			label = "blue:rssilow";
> +			gpios = <&gpio 80 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led_status_blue: status_blue {
> +			label = "blue:status";
> +			gpios = <&gpio 67 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		// gpio 79 would be Quectels PWRKEY if used
> +	};
> +};
> +
> +&spi0 {
> +	status = "okay";
> +
> +	flash at 0 {
> +		compatible = "jedec,spi-nor";
> +		reg = <0>;
> +		spi-max-frequency = <40000000>;
> +
> +		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 = "config";
> +				reg = <0x30000 0x10000>;
> +				read-only;
> +			};
> +
> +			factory: partition at 40000 {
> +				label = "factory";
> +				reg = <0x40000 0x10000>;
> +				read-only;
> +			};
> +
> +			partition at 50000 {
> +				compatible = "denx,fit";
> +				label = "firmware";
> +				reg = <0x50000 0xf30000>;
> +			};
> +
> +			partition at f00000 {
> +				label = "vendor";
> +				reg = <0xf80000 0x80000>;
> +				read-only;
> +			};
> +		};
> +	};
> +};
> +
> +&pcie {
> +	status = "okay";
> +};
> +
> +&pcie0 {
> +	wifi0: mt76 at 0,0 {
> +		compatible = "mediatek,mt76";
> +		reg = <0x0000 0 0 0 0>;
> +		mediatek,mtd-eeprom = <&factory 0x0>;
> +	};
> +};
> +
> +&pcie1 {
> +	wifi1: mt76 at 0,0 {
> +		compatible = "mediatek,mt76";
> +		reg = <0x0000 0 0 0 0>;
> +		mediatek,mtd-eeprom = <&factory 0x8000>;
> +	};
> +};
> +
> +&ethernet {
> +	pinctrl-0 = <&mdio_pins>, <&rgmii1_pins>;
> +};

You don't want this when a switch phy is muxed to gmac1. Please remove.

> +
> +&gmac0 {
> +	nvmem-cells = <&macaddr_factory_e000>;
> +	nvmem-cell-names = "mac-address";
> +};
> +
> +&gmac1 {
> +	status = "okay";
> +	label = "wan";
> +	phy-handle = <&ethphy4>;
> +
> +	nvmem-cells = <&macaddr_factory_e006>;
> +	nvmem-cell-names = "mac-address";
> +};
> +
> +&mdio {
> +	ethphy4: ethernet-phy at 4 {
> +		reg = <4>;
> +	};
> +};
> +
> +&switch0 {
> +	ports {
> +		port1: port at 1 {

You don't refer to port1 anywhere, why put a label in the first place?

> +			status = "okay";

What's the port label supposed to be?

> +		};
> +	};
> +};
> +
> +&state_default {
> +	gpio {
> +		groups = "wdt";
> +		function = "gpio";
> +	};
> +};
> +
> +&factory {
> +	compatible = "nvmem-cells";
> +	#address-cells = <1>;
> +	#size-cells = <1>;
> +
> +	macaddr_factory_e000: macaddr at e000 {
> +		reg = <0xe000 0x6>;
> +	};
> +
> +	macaddr_factory_e006: macaddr at e006 {
> +		reg = <0xe006 0x6>;
> +	};
> +};
> +
> +&wifi0{
> +	ieee80211-freq-limit = <2400000 2500000>;
> +};
> +
> +&wifi1{
> +	ieee80211-freq-limit = <5000000 6000000>;
> +};
> +
> diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
> index 943fc62ecd..4028e43e39 100644
> --- a/target/linux/ramips/image/mt7621.mk
> +++ b/target/linux/ramips/image/mt7621.mk
> @@ -2158,6 +2158,23 @@ define Device/wavlink_wl-wn533a8
>   endef
>   TARGET_DEVICES += wavlink_wl-wn533a8
>   
> +define Device/wavlink_ws-wn572hp3-4g
> +  $(Device/dsa-migration)
> +  BLOCKSIZE := 64k
> +  DEVICE_VENDOR := Wavlink
> +  DEVICE_MODEL := WS-WN572HP3
> +  DEVICE_VARIANT := 4G
> +  IMAGE_SIZE := 15040k
> +  KERNEL_LOADADDR := 0x82000000
> +  KERNEL := kernel-bin | relocate-kernel 0x80001000 | lzma | \
> +	fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
> +  IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
> +	append-rootfs | pad-rootfs | check-size | append-metadata
> +  DEVICE_PACKAGES := kmod-mt7603 kmod-mt7615e kmod-mt7663-firmware-ap \
> +	kmod-usb3 kmod-usb-net-rndis comgt-ncm
> +endef
> +TARGET_DEVICES += wavlink_ws-wn572hp3-4g
> +
>   define Device/wevo_11acnas
>     $(Device/dsa-migration)
>     $(Device/uimage-lzma-loader)

Don't you also need to add interface configuration at 02_network?

Arınç



More information about the openwrt-devel mailing list