From f1c193c27e714a051b49788fff3aecbd728190e1 Mon Sep 17 00:00:00 2001 From: Piotr Dymacz Date: Fri, 26 Jan 2018 16:21:34 +0100 Subject: [PATCH] ramips: add support for ALFA Network AWUSFREE1 ALFA Network AWUSFREE1 is an USB Wi-Fi N300 adapter based on MT7628. Specification: - MT7628AN (580 MHz) - 64 MB of RAM (DDR2) - 8 MB of FLASH (SPI NOR) - 2T2R 2.4 GHz (MT7628) with external FEM (RFFM4203) - 2x detachable antennas (RP-SMA) - ASIX AX88772 USB to Ethernet bridge (connected with MT7628 PHY0) - 4x LED (2 driven by GPIO) - 1x button (reset) - 1x mini USB for host and main power input - UART header on PCB Flash instruction: You can use sysupgrade image directly in vendor firmware which is based on LEDE/OpenWrt. Alternatively, you can use web recovery mode in U-Boot: 1. Power device with reset button pressed and release it after ~5 sec. 2. Setup static IP 192.168.1.2/4 on your PC. 3. Go to 192.168.1.1 in browser and upload "sysupgrade" image. Signed-off-by: Piotr Dymacz --- .../ramips/base-files/etc/board.d/01_leds | 3 + .../ramips/base-files/etc/board.d/02_network | 41 ++--- target/linux/ramips/base-files/etc/diag.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/AWUSFREE1.dts | 164 ++++++++++++++++++ target/linux/ramips/image/mt76x8.mk | 9 + 6 files changed, 201 insertions(+), 20 deletions(-) create mode 100644 target/linux/ramips/dts/AWUSFREE1.dts diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds index 515656f647..0a870d9f6c 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -60,6 +60,9 @@ alfa-network,ac1200rm) set_wifi_led "$boardname:green:wlan2g" "wlan1" ucidef_set_led_default "wps" "wps" "$boardname:green:wps" "0" ;; +alfa-network,awusfree1) + set_wifi_led "$boardname:blue:wlan" + ;; all0256n-4M|\ all0256n-8M) ucidef_set_rssimon "wlan0" "200000" "1" diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network index fe19a226f8..d23f9e36e3 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -126,6 +126,27 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0" ;; + alfa-network,awusfree1|\ + cs-qr10|\ + d105|\ + dlink,dap-1522-a1|\ + dch-m225|\ + ex2700|\ + ex3700|\ + hpm|\ + mzk-ex300np|\ + mzk-ex750np|\ + na930|\ + pbr-d1|\ + tama,w06|\ + u25awf-h1|\ + wli-tx4-ag300n|\ + wmdr-143n|\ + wmr-300|\ + wn3000rpv3|\ + wrh-300cr) + ucidef_set_interface_lan "eth0" + ;; mir3g) ucidef_add_switch "switch0" \ "2:lan:2" "3:lan:1" "1:wan" "6t@eth0" @@ -237,26 +258,6 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "9@eth0" ;; - cs-qr10|\ - d105|\ - dlink,dap-1522-a1|\ - dch-m225|\ - ex2700|\ - ex3700|\ - hpm|\ - mzk-ex300np|\ - mzk-ex750np|\ - na930|\ - pbr-d1|\ - tama,w06|\ - u25awf-h1|\ - wli-tx4-ag300n|\ - wmdr-143n|\ - wmr-300|\ - wn3000rpv3|\ - wrh-300cr) - ucidef_set_interface_lan "eth0" - ;; duzun-dm06) ucidef_add_switch "switch0" \ "1:lan" "0:wan" "6@eth0" diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index c5f62ab66d..6038804b12 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -78,6 +78,9 @@ get_status_led() { wrh-300cr) status_led="$boardname:green:wps" ;; + alfa-network,awusfree1) + status_led="$boardname:orange:system" + ;; all0239-3g|\ dcs-930|\ dir-300-b1|\ diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index a0610b257f..76d735291d 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -17,6 +17,7 @@ platform_check_image() { ai-br100|\ air3gii|\ alfa-network,ac1200rm|\ + alfa-network,awusfree1|\ all0239-3g|\ all0256n-4M|\ all0256n-8M|\ diff --git a/target/linux/ramips/dts/AWUSFREE1.dts b/target/linux/ramips/dts/AWUSFREE1.dts new file mode 100644 index 0000000000..c0ffbb279a --- /dev/null +++ b/target/linux/ramips/dts/AWUSFREE1.dts @@ -0,0 +1,164 @@ +/* + * BSD LICENSE + * + * Copyright (C) 2018 Piotr Dymacz + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the names of the copyright holders nor the names of any + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/dts-v1/; + +#include "mt7628an.dtsi" + +#include +#include + +/ { + compatible = "alfa-network,awusfree1", "mediatek,mt7628an-soc"; + model = "ALFA Network AWUSFREE1"; + + chosen { + bootargs = "console=ttyS0,115200"; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + + reset { + label = "reset"; + gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + system { + label = "awusfree1:orange:system"; + gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; + }; + + wlan { + label = "awusfree1:blue:wlan"; + gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; + }; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x4000000>; + }; +}; + +&ehci { + status = "disabled"; +}; + +&esw { + mediatek,portdisable = <0x1e>; +}; + +ðernet { + mtd-mac-address = <&factory 0x2e>; +}; + +&gpio1 { + status = "okay"; +}; + +&ohci { + status = "disabled"; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "p0led_an", "wdt", "wled_an"; + ralink,function = "gpio"; + }; + + ext_lna { + ralink,group = "uart1"; + ralink,function = "sw_r"; + }; + + ext_pa { + ralink,group = "i2s"; + ralink,function = "antenna"; + }; + }; +}; + +&spi0 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <10000000>; + m25p,chunked-io = <32>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x30000 0x1000>; + }; + + partition@031000 { + label = "config"; + reg = <0x31000 0xf000>; + read-only; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + partition@50000 { + label = "firmware"; + reg = <0x50000 0x7b0000>; + }; + }; +}; + +&wmac { + status = "okay"; + mediatek,mtd-eeprom = <&factory 0x0>; +}; diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk index 415075b22d..bcee98ef45 100644 --- a/target/linux/ramips/image/mt76x8.mk +++ b/target/linux/ramips/image/mt76x8.mk @@ -19,6 +19,15 @@ endef DEVICE_VARS += TPLINK_FLASHLAYOUT TPLINK_HWID TPLINK_HWREV TPLINK_HWREVADD TPLINK_HVERSION +define Device/alfa-network_awusfree1 + DTS := AWUSFREE1 + IMAGE_SIZE := $(ralink_default_fw_size_8M) + DEVICE_TITLE := ALFA Network AWUSFREE1 + DEVICE_PACKAGES := uboot-envtools + SUPPORTED_DEVICES := $(subst _,$(comma),$(1)) +endef +TARGET_DEVICES += alfa-network_awusfree1 + define Device/tama_w06 DTS := W06 IMAGE_SIZE := 15040k