ramips: add support for Wavlink WL-WN570HA1
authorThomas Vincent-Cross <me@tvc.id.au>
Mon, 22 Oct 2018 15:21:16 +0000 (02:21 +1100)
committerMathias Kresin <dev@kresin.me>
Tue, 27 Nov 2018 23:50:35 +0000 (00:50 +0100)
This commit adds support for the Wavlink WL-WN570HA1, a dual-band PoE
wireless router with the following specifications:

 - CPU: MediaTek MT7688AN 580MHz
 - Flash: 8MB
 - RAM: 64MB
 - Ethernet: 1x 10/100Mbps
 - 2.4 GHz: 802.11b/g/n SoC, 1T1R, 27 dBm
 - 5 GHz: 802.11a/n/ac MT7610E, 1T1R, 25 dBm
 - Antennas: 2x external (1 per radio), detachable
 - LEDs: 3 programmable + Wi-Fi, WAN/LAN, Power
 - Buttons: Reset

Flashing instructions:

Factory U-boot launches a TFTP client if reset button is pressed during power-on.
Rename the sysupgrade file and configure TFTP as follows:

 - Client (WL-WN570HA1) IP: 192.168.10.101
 - Server IP: 192.168.10.100
 - Filename: firmware.bin

Signed-off-by: Thomas Vincent-Cross <me@tvc.id.au>
[use generic board detection, add firmware partition compatible]
Signed-off-by: Mathias Kresin <dev@kresin.me>
target/linux/ramips/base-files/etc/board.d/01_leds
target/linux/ramips/base-files/etc/board.d/02_network
target/linux/ramips/base-files/lib/upgrade/platform.sh
target/linux/ramips/dts/WL-WN570HA1.dts [new file with mode: 0644]
target/linux/ramips/image/mt76x8.mk

index fb288de09bb96c9d640b877f82a3d0e795841649..4330254c8f0e25d5ec62363055eb66b9d4d3ded1 100755 (executable)
@@ -370,6 +370,14 @@ vocore-16M)
 w502u)
        set_wifi_led "rt2800pci-phy0::radio"
        ;;
+wavlink,wl-wn570ha1)
+       ucidef_set_led_switch "wan" "wan" "$boardname:green:wan" "switch0" "0x01"
+       ucidef_set_rssimon "wlan0" "200000" "1"
+       ucidef_set_led_rssi "wifi-low" "wifi-low" "$boardname:green:wifi-low" "wlan0" "1" "49"
+       ucidef_set_led_rssi "wifi-med" "wifi-med" "$boardname:green:wifi-med" "wlan0" "50" "84"
+       ucidef_set_led_rssi "wifi-high" "wifi-high" "$boardname:green:wifi-high" "wlan0" "85" "100"
+       set_wifi_led "$boardname:green:wifi"
+       ;;
 we1026-5g-16m)
        ucidef_set_led_netdev "lan" "LAN" "we1026-5g:green:lan" "eth0"
        set_wifi_led "we1026-5g:green:wifi"
index 6f60683fc25bd09b385e6eaf9131e25ee766d612..cdba37d38f7fb39ca28667cb5b8249c90bbbadb6 100755 (executable)
@@ -117,6 +117,7 @@ ramips_setup_interfaces()
        sk-wb8|\
        u7621-06-256M-16M|\
        vr500|\
+       wavlink,wl-wn570ha1|\
        wf-2881|\
        whr-g300n|\
        mqmaker,witi-256m|\
index e4ddc0eec4a0183b02e8c4663fb14ca17c7b8b5a..fc73f37e29e76e0a9edc428062249666289f30a4 100755 (executable)
@@ -178,6 +178,7 @@ platform_check_image() {
        w306r-v20|\
        w502u|\
        ravpower,wd03|\
+       wavlink,wl-wn570ha1|\
        wf-2881|\
        whr-1166d|\
        whr-300hp2|\
diff --git a/target/linux/ramips/dts/WL-WN570HA1.dts b/target/linux/ramips/dts/WL-WN570HA1.dts
new file mode 100644 (file)
index 0000000..14ca115
--- /dev/null
@@ -0,0 +1,136 @@
+/dts-v1/;
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+
+#include "mt7628an.dtsi"
+
+/ {
+       compatible = "wavlink,wl-wn570ha1", "mediatek,mt7628an-soc";
+       model = "Wavlink WL-WN570HA1";
+
+       chosen {
+               bootargs = "console=ttyS0,57600";
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x4000000>;
+       };
+
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               poll-interval = <20>;
+
+               reset {
+                       label = "reset";
+                       gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               power {
+                       label = "wl-wn570ha1:green:power";
+                       gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+                       default-state = "keep";
+               };
+
+               wan {
+                       label = "wl-wn570ha1:green:wan";
+                       gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
+               };
+
+               wifi-high {
+                       label = "wl-wn570ha1:green:wifi-high";
+                       gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
+               };
+
+               wifi-med {
+                       label = "wl-wn570ha1:green:wifi-med";
+                       gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
+               };
+
+               wifi-low {
+                       label = "wl-wn570ha1:green:wifi-low";
+                       gpios = <&gpio0 4 GPIO_ACTIVE_LOW>;
+               };
+
+               wifi {
+                       label = "wl-wn570ha1:green:wifi";
+                       gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&pinctrl {
+       state_default: pinctrl0 {
+               gpio {
+                       ralink,group = "i2c", "wled_an", "p0led_an", "wdt", "refclk";
+                       ralink,function = "gpio";
+               };
+       };
+};
+
+&pcie {
+       status = "okay";
+};
+
+&pcie0 {
+       wifi@0,0 {
+               reg = <0x0000 0 0 0 0>;
+               mediatek,mtd-eeprom = <&factory 0x8000>;
+               ieee80211-freq-limit = <5000000 6000000>;
+       };
+};
+
+&spi0 {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <10000000>;
+               m25p,chunked-io = <32>;
+
+               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;
+                       };
+
+                       factory: partition@40000 {
+                               label = "factory";
+                               reg = <0x40000 0x10000>;
+                               read-only;
+                       };
+
+                       partition@50000 {
+                               compatible = "denx,uimage";
+                               label = "firmware";
+                               reg = <0x50000 0x7b0000>;
+                       };
+               };
+       };
+};
+
+&wmac {
+       status = "okay";
+};
+
+&ethernet {
+       mtd-mac-address = <&factory 0x2e>;
+       mediatek,portmap = "llllw";
+};
index 3174988f491a147b8d266e7f2b07a4218847a24c..af5b0f6d608b0c37e4360ca7a4f5b4584ebbb66a 100644 (file)
@@ -321,6 +321,14 @@ define Device/vocore2lite
 endef
 TARGET_DEVICES += vocore2lite
 
+define Device/wavlink_wl-wn570ha1
+  DTS := WL-WN570HA1
+  IMAGE_SIZE := $(ralink_default_fw_size_8M)
+  DEVICE_TITLE := Wavlink WL-WN570HA1
+  DEVICE_PACKAGES := kmod-mt76x0e
+endef
+TARGET_DEVICES += wavlink_wl-wn570ha1
+
 define Device/wcr-1166ds
   DTS := WCR-1166DS
   BUFFALO_TAG_PLATFORM := MTK