2
0
Эх сурвалжийг харах

ramips: add support for Wavlink WL-WN570HA1

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 <[email protected]>
[use generic board detection, add firmware partition compatible]
Signed-off-by: Mathias Kresin <[email protected]>
Thomas Vincent-Cross 7 жил өмнө
parent
commit
a160f50d4f

+ 8 - 0
target/linux/ramips/base-files/etc/board.d/01_leds

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

+ 1 - 0
target/linux/ramips/base-files/etc/board.d/02_network

@@ -117,6 +117,7 @@ ramips_setup_interfaces()
 	sk-wb8|\
 	u7621-06-256M-16M|\
 	vr500|\
+	wavlink,wl-wn570ha1|\
 	wf-2881|\
 	whr-g300n|\
 	mqmaker,witi-256m|\

+ 1 - 0
target/linux/ramips/base-files/lib/upgrade/platform.sh

@@ -178,6 +178,7 @@ platform_check_image() {
 	w306r-v20|\
 	w502u|\
 	ravpower,wd03|\
+	wavlink,wl-wn570ha1|\
 	wf-2881|\
 	whr-1166d|\
 	whr-300hp2|\

+ 136 - 0
target/linux/ramips/dts/WL-WN570HA1.dts

@@ -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";
+};

+ 8 - 0
target/linux/ramips/image/mt76x8.mk

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