From dce66899bf243d78689afcc693340b891bbf4c2d Mon Sep 17 00:00:00 2001 From: Jan-Niklas Burfeind Date: Wed, 30 Nov 2022 21:35:30 +0100 Subject: [PATCH] ramips: add support for Wavlink WS-WN572HP3 4G MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Acked-by: Arınç ÜNAL --- .../dts/mt7621_wavlink_ws-wn572hp3-4g.dts | 184 ++++++++++++++++++ target/linux/ramips/image/mt7621.mk | 17 ++ .../mt7621/base-files/etc/board.d/02_network | 1 + 3 files changed, 202 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..60d0708a80 --- /dev/null +++ b/target/linux/ramips/dts/mt7621_wavlink_ws-wn572hp3-4g.dts @@ -0,0 +1,184 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "mt7621.dtsi" + +#include +#include + +/ { + compatible = "wavlink,ws-wn572hp3-4g", "mediatek,mt7621-soc"; + model = "Wavlink WS-WN572HP3 4G"; + + chosen { + bootargs = "console=ttyS0,115200"; + }; + + aliases { + label-mac-device = &wifi1; + 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 = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + rssihigh { + label = "blue:rssihigh"; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + }; + + rssimedium { + label = "blue:rssimedium"; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + }; + + rssilow { + label = "blue:rssilow"; + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; + }; + + led_status_blue: status_blue { + label = "blue:status"; + gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + }; + + // gpio 15 would be Quectels PWRKEY if used + }; +}; + +&spi0 { + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <40000000>; + + 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; + }; + + partition@50000 { + compatible = "denx,fit"; + label = "firmware"; + reg = <0x50000 0xf30000>; + }; + + partition@f00000 { + label = "vendor"; + reg = <0xf80000 0x80000>; + read-only; + }; + }; + }; +}; + +&pcie { + status = "okay"; +}; + +&pcie0 { + wifi0: mt76@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x0>; + }; +}; + +&pcie1 { + wifi1: mt76@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x8000>; + }; +}; + +&gmac0 { + nvmem-cells = <&macaddr_factory_e000>; + nvmem-cell-names = "mac-address"; +}; + +&gmac1 { + status = "okay"; + label = "wan"; + phy-handle = <ðphy4>; + + nvmem-cells = <&macaddr_factory_e006>; + nvmem-cell-names = "mac-address"; +}; + +&mdio { + ethphy4: ethernet-phy@4 { + reg = <4>; + }; +}; + +&switch0 { + ports { + port@1 { + status = "okay"; + label = "lan"; + }; + }; +}; + +&state_default { + gpio { + groups = "wdt"; + function = "gpio"; + }; +}; + +&factory { + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_factory_e000: macaddr@e000 { + reg = <0xe000 0x6>; + }; + + macaddr_factory_e006: macaddr@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 9d8641352a..08aa592be8 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -2145,6 +2145,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) diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network index c4fe2153ac..b7121db64f 100644 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network @@ -50,6 +50,7 @@ ramips_setup_interfaces() ;; asiarf,ap7621-001|\ humax,e10|\ + wavlink,ws-wn572hp3-4g|\ winstars,ws-wn583a6) ucidef_set_interfaces_lan_wan "lan" "wan" ;; -- 2.30.2