From 5352669c2c470f2d2bb02deccfa758e1867e07b0 Mon Sep 17 00:00:00 2001 From: Piotr Dymacz Date: Sat, 14 Oct 2017 10:44:39 +0200 Subject: [PATCH] ramips: add support for ALFA Network AC1200RM ALFA Network AC1200RM is an AC1200 router, with 5-port FE switch and USB 2.0 port. Device is based on MediaTek MT7620A + MT7612EN. Specification: - MT7620A (580 MHz) - 64 MB of RAM (DDR2) - 16 MB of FLASH (SPI NOR) - 5x 10/100 Mbps Ethernet with passive PoE output in WAN and LAN4 - 2T2R 2.4 GHz (MT7620A) - 2T2R 5 GHz (MT7612EN) - 1x USB 2.0 - 9x LED (8 driven by GPIO) - 1x button (reset) - DC jack for main power input (12-24 V) - 2x UART, I2C, I2S and LED headers Flash instruction (do it under U-Boot, using UART and TFTP server): Select option "2: Load system code then write to Flash via TFTP" and use "sysupgrade" image. Signed-off-by: Piotr Dymacz --- .../ramips/base-files/etc/board.d/01_leds | 4 + .../ramips/base-files/etc/board.d/02_network | 1 + target/linux/ramips/base-files/etc/diag.sh | 13 +- .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/AC1200RM.dts | 171 ++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 9 + 6 files changed, 193 insertions(+), 6 deletions(-) create mode 100644 target/linux/ramips/dts/AC1200RM.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 55976edec8..3e26493e54 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -56,6 +56,10 @@ air3gii) set_wifi_led "$boardname:green:wlan" set_usb_led "$boardname:green:mobile" ;; +alfa-network,ac1200rm) + set_wifi_led "$boardname:green:wlan2g" "wlan1" + ucidef_set_led_default "wps" "wps" "$boardname:green:wps" "0" + ;; 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 48fdfdf3f1..105f5e9e32 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -71,6 +71,7 @@ ramips_setup_interfaces() ;; 3g-6200n|\ ai-br100|\ + alfa-network,ac1200rm|\ d240|\ db-wrt01|\ dir-300-b7|\ diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index 5ffa6368eb..e1d29152f1 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -69,6 +69,13 @@ get_status_led() { ht-tm02) status_led="$boardname:blue:wlan" ;; + alfa-network,ac1200rm|\ + awapn2403|\ + dir-645|\ + sk-wb8|\ + wrh-300cr) + status_led="$boardname:green:wps" + ;; all0239-3g|\ dcs-930|\ dir-300-b1|\ @@ -102,12 +109,6 @@ get_status_led() { ip2202) status_led="$boardname:green:run" ;; - awapn2403|\ - dir-645|\ - sk-wb8|\ - wrh-300cr) - status_led="$boardname:green:wps" - ;; c108) status_led="$boardname:green:lan" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 8160f5d388..cd21001324 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -16,6 +16,7 @@ platform_check_image() { a5-v11|\ ai-br100|\ air3gii|\ + alfa-network,ac1200rm|\ all0239-3g|\ all0256n-4M|\ all0256n-8M|\ diff --git a/target/linux/ramips/dts/AC1200RM.dts b/target/linux/ramips/dts/AC1200RM.dts new file mode 100644 index 0000000000..9305cb00e0 --- /dev/null +++ b/target/linux/ramips/dts/AC1200RM.dts @@ -0,0 +1,171 @@ +/* + * 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 "mt7620a.dtsi" + +#include +#include + +/ { + compatible = "alfa-network,ac1200rm", "ralink,mt7620a-soc"; + model = "ALFA Network AC1200RM"; + + 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 = <&gpio2 15 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + wlan2g { + label = "ac1200rm:green:wlan2g"; + gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; + }; + + wps { + label = "ac1200rm:green:wps"; + gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&ehci { + status = "okay"; +}; + +ðernet { + mtd-mac-address = <&factory 0x28>; + mediatek,portmap = "llllw"; + pinctrl-names = "default"; + pinctrl-0 = <&ephy_pins>; +}; + +&gpio1 { + status = "okay"; +}; + +&gpio2 { + status = "okay"; +}; + +&gpio3 { + status = "okay"; +}; + +&gsw { + mediatek,port4 = "ephy"; +}; + +&ohci { + status = "okay"; +}; + +&pcie { + status = "okay"; + + pcie-bridge { + mt76@0,0 { + reg = <0x0000 0 0 0 0>; + device_type = "pci"; + mediatek,mtd-eeprom = <&factory 0x8000>; + ieee80211-freq-limit = <5000000 6000000>; + + led { + led-sources = <2>; + led-active-low; + }; + }; + }; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "nd_sd", "spi refclk", "wled"; + ralink,function = "gpio"; + }; + }; +}; + +&spi0 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <10000000>; + + 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 { + label = "firmware"; + reg = <0x50000 0xfb0000>; + }; + }; +}; + +&wmac { + ralink,mtd-eeprom = <&factory 0>; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index 902677f3a9..6f9aa1aa6d 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -27,6 +27,15 @@ define Device/ai-br100 endef TARGET_DEVICES += ai-br100 +define Device/alfa-network_ac1200rm + DTS := AC1200RM + IMAGE_SIZE := 16064k + DEVICE_TITLE := ALFA Network AC1200RM + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci + SUPPORTED_DEVICES := $(subst _,$(comma),$(1)) +endef +TARGET_DEVICES += alfa-network_ac1200rm + define Device/Archer TPLINK_HWREVADD := 0 TPLINK_HVERSION := 3 -- 2.30.2