Hi, > -----Original Message----- > From: openwrt-devel [mailto:openwrt-devel-boun...@lists.openwrt.org] > On Behalf Of dev.aldr...@gmail.com > Sent: Montag, 5. Juli 2021 18:12 > To: openwrt-devel@lists.openwrt.org > Cc: m...@adrianschmutzler.de; Thomas Aldrian <dev.aldr...@gmail.com>; > coelner <waen...@gmail.com> > Subject: [PATCH] ramips: add support for Wavlink WL-WN576A2 > > From: Thomas Aldrian <dev.aldr...@gmail.com> > > This commit adds support for the Wavlink WL-WN576A2 wall-plug wireles > repeater / router. It is also sold under the name SilverCrest SWV 733 B1.
Generally fine, a few remarks below. Should be good to merge after those are resolved. > > Device specs: > > - CPU: MediaTek MT7628AN > - Flash: 8MB > - RAM: 64MB > - Bootloader: U-Boot > - Ethernet: 1x 10/100 Mbps > - 2.4 GHz: b/g/n SoC > - 5 GHz: a/n/ac MT7610EN > - Buttons: WPS, reset, sliding switch (ap/repeater) > - LEDs: 5x wifi status, 1x LAN/WAN, 1x WPS > > Flashing: > > U-Boot launches a TFTP client if WPS button is held during boot. > > - Server IP: 192.168.10.100 > - Firmware file name: firmware.bin > > Device will reboot automatically. First boot takes about 90s. > > Coelner is the original author, but I have made some fixes. He does not wish > to sign off using his real name. > > Signed-off-by: Thomas Aldrian <dev.aldr...@gmail.com> > Co-authored-by: coelner <waen...@gmail.com> Just add the e-mail address in the text above and remove the non-standard Co-authored-by tag. You may add Birger's Tested-by here. > --- > .../dts/mt7628an_wavlink_wl-wn576a2.dts | 171 ++++++++++++++++++ > target/linux/ramips/image/mt76x8.mk | 10 + > .../mt76x8/base-files/etc/board.d/01_leds | 3 + > .../mt76x8/base-files/etc/board.d/02_network | 2 + > 4 files changed, 186 insertions(+) > create mode 100644 target/linux/ramips/dts/mt7628an_wavlink_wl- > wn576a2.dts > > diff --git a/target/linux/ramips/dts/mt7628an_wavlink_wl-wn576a2.dts > b/target/linux/ramips/dts/mt7628an_wavlink_wl-wn576a2.dts > new file mode 100644 > index 0000000000..333a7dc950 > --- /dev/null > +++ b/target/linux/ramips/dts/mt7628an_wavlink_wl-wn576a2.dts > @@ -0,0 +1,171 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > + > +#include "mt7628an.dtsi" > + > +#include <dt-bindings/input/input.h> > +#include <dt-bindings/gpio/gpio.h> > + > +/ { > + compatible = "wavlink,wl-wn576a2", "mediatek,mt7628an-soc"; > + model = "Wavlink WL-WN576A2"; > + > + aliases { > + led-boot = &led_wps; > + led-failsafe = &led_wps; > + led-running = &led_wps; > + led-upgrade = &led_wps; > + }; > + > + keys { > + compatible = "gpio-keys"; > + > + reset { > + label = "reset"; > + gpios = <&gpio 43 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_RESTART>; > + }; > + > + wps { > + label = "wps"; > + gpios = <&gpio 38 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_WPS_BUTTON>; > + }; > + > + ap { > + label = "ap"; > + gpios = <&gpio 41 GPIO_ACTIVE_LOW>; > + linux,code = <BTN_0>; > + linux,input-type = <EV_SW>; > + }; > + > + repeater { > + label = "repeater"; > + gpios = <&gpio 42 GPIO_ACTIVE_LOW>; > + linux,code = <BTN_1>; > + linux,input-type = <EV_SW>; > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + wifi-high { > + label = "blue:wifi-high"; > + gpios = <&gpio 37 GPIO_ACTIVE_LOW>; > + }; > + > + wifi-mediumhigh { > + label = "blue:wifi-mediumhigh"; > + gpios = <&gpio 11 GPIO_ACTIVE_LOW>; > + }; > + > + wifi-medium { > + label = "blue:wifi-medium"; > + gpios = <&gpio 44 GPIO_ACTIVE_LOW>; > + }; > + > + wifi-mediumlow { > + label = "blue:wifi-mediumlow"; > + gpios = <&gpio 39 GPIO_ACTIVE_LOW>; > + }; > + > + wifi-low { > + label = "blue:wifi-low"; > + gpios = <&gpio 40 GPIO_ACTIVE_LOW>; > + }; > + > + lan { > + label = "blue:lan"; > + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; > + }; > + > + led_wps: wps { > + label = "blue:wps"; > + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; > + }; > + }; > +}; > + > +&state_default { > + gpio { > + groups = "i2c", "i2s", "wdt", "wled_an", "p0led_an", > "p1led_an", > + "p2led_an", "p3led_an", "p4led_an", "refclk", "gpio"; > + 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 = <40000000>; > + > + 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"; Add mediatek,mtd-eeprom = <&factory 0x0>; here > +}; > + > +ðernet { > + mtd-mac-address = <&factory 0x28>; Convert to nvmem here. (You will also need to add the corresponding node at the end of the file; just look at recent versions of the other wavlink devices) > +}; > + > +&esw { > + mediatek,portmap = <0x2f>; This means port 4 would be wan. You configure it as lan. You should probably choose a different portmap here. > +}; > + > +&usbphy { > + status = "disabled"; > +}; > + > +&ehci { > + status = "disabled"; > +}; > + > +&ohci { > + status = "disabled"; > +}; > diff --git a/target/linux/ramips/image/mt76x8.mk > b/target/linux/ramips/image/mt76x8.mk > index 3ba4d658be..00cca7c9f1 100644 > --- a/target/linux/ramips/image/mt76x8.mk > +++ b/target/linux/ramips/image/mt76x8.mk > @@ -724,6 +724,16 @@ define Device/wavlink_wl-wn575a3 endef > TARGET_DEVICES += wavlink_wl-wn575a3 > > +define Device/wavlink_wl-wn576a2 > + IMAGE_SIZE := 7872k > + DEVICE_VENDOR := Wavlink > + DEVICE_MODEL := WL-WN576A2 > + DEVICE_ALT0_VENDOR := Silvercrest > + DEVICE_ALT0_MODEL := SWV 733 B1 > + DEVICE_PACKAGES := kmod-mt76x0e > +endef > +TARGET_DEVICES += wavlink_wl-wn576a2 > + > define Device/wavlink_wl-wn577a2 > IMAGE_SIZE := 7872k > DEVICE_VENDOR := Wavlink > diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds > b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds > index e2fb44c81e..a426715dab 100644 > --- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds > +++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds > @@ -129,6 +129,9 @@ wavlink,wl-wn575a3) > ucidef_set_led_rssi "wifi-med" "wifi-med" "green:wifi-med" "wlan1" > "50" "84" > ucidef_set_led_rssi "wifi-high" "wifi-high" "green:wifi-high" "wlan1" > "85" "100" > ;; > +wavlink,wl-wn576a2) > + ucidef_set_led_switch "lan" "lan" "blue:lan" "switch0" "0x10" > + ;; > wavlink,wl-wn577a2|\ > wavlink,wl-wn578a2) > ucidef_set_led_switch "lan" "lan" "green:lan" "switch0" "0x8" > diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network > b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network > index 703936f217..faae347f66 100644 > --- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network > +++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network > @@ -122,6 +122,7 @@ ramips_setup_interfaces() > ucidef_add_switch "switch0" \ > "0:lan" "1:lan" "2:lan" "3:wan" "6@eth0" > ;; > + wavlink,wl-wn576a2|\ > tplink,tl-wr902ac-v3) Switch the two lines here to have proper alphabetic sorting. > ucidef_add_switch "switch0" \ > "4:lan" "6@eth0" > @@ -170,6 +171,7 @@ ramips_setup_macs() > cudy,wr1000|\ > hilink,hlk-7628n|\ > hilink,hlk-7688a|\ > + wavlink,wl-wn576a2|\ This should be dropped, the device only has one port set as LAN by default. Best Adrian > wavlink,wl-wn577a2|\ > wavlink,wl-wn578a2) > wan_mac=$(mtd_get_mac_binary factory 0x2e) > -- > 2.32.0 > > > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/mailman/listinfo/openwrt-devel _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel