From 2e6bfab8c59f4c76ae3f3ccd1d3e09844e889ecc Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Mon, 9 Dec 2019 14:51:07 +0100 Subject: [PATCH] ath79: add support for TP-Link TL-WA850RE v1 This ports support for the TL-WA850RE v1 range extender from ar71xx to ath79. Specifications: Board: AP123 / AR9341 rev. 3 Flash/RAM: 4/32 MiB CPU: 535 MHz WiFi: 2.4 GHz b/g/n Ethernet: 1 port (100M) Flashing instructions: Upload the factory image via the vendor firmware upgrade option. Recovery: Note that this device does not provide TFTP via ethernet like many other TP-Link devices do. You will have to open the case if you require recovery beyond failsafe. Signed-off-by: Adrian Schmutzler (cherry picked from commit 6eaea3a8ba6154674058396c728494aa911ed7f1) --- .../ath79/base-files/etc/board.d/01_leds | 9 +++ .../ath79/base-files/etc/board.d/02_network | 1 + .../linux/ath79/dts/ar9341_tplink_tl-wa.dtsi | 81 +++++++++++++++++++ .../ath79/dts/ar9341_tplink_tl-wa850re-v1.dts | 79 ++++++++++++++++++ target/linux/ath79/image/tiny-tp-link.mk | 10 +++ 5 files changed, 180 insertions(+) create mode 100644 target/linux/ath79/dts/ar9341_tplink_tl-wa.dtsi create mode 100644 target/linux/ath79/dts/ar9341_tplink_tl-wa850re-v1.dts diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds index 91d5b0d80d..167c3a26a6 100755 --- a/target/linux/ath79/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/base-files/etc/board.d/01_leds @@ -177,6 +177,15 @@ tplink,tl-mr3020-v1|\ tplink,tl-mr3040-v2) ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0" ;; +tplink,tl-wa850re-v1) + ucidef_set_led_netdev "lan" "LAN" "tp-link:blue:lan" "eth0" + ucidef_set_rssimon "wlan0" "200000" "1" + ucidef_set_led_rssi "rssilow" "RSSILOW" "tp-link:blue:signal1" "wlan0" "1" "100" + ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "tp-link:blue:signal2" "wlan0" "20" "100" + ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" "tp-link:blue:signal3" "wlan0" "40" "100" + ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "tp-link:blue:signal4" "wlan0" "60" "100" + ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "tp-link:blue:signal5" "wlan0" "80" "100" + ;; tplink,tl-wr740n-v1|\ tplink,tl-wr740n-v3|\ tplink,tl-wr741-v1|\ diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network index eb75c75305..5b42828fcf 100755 --- a/target/linux/ath79/base-files/etc/board.d/02_network +++ b/target/linux/ath79/base-files/etc/board.d/02_network @@ -31,6 +31,7 @@ ath79_setup_interfaces() tplink,tl-mr10u|\ tplink,tl-mr3020-v1|\ tplink,tl-mr3040-v2|\ + tplink,tl-wa850re-v1|\ tplink,tl-wa901nd-v2|\ tplink,tl-wr703n|\ ubnt,bullet-m|\ diff --git a/target/linux/ath79/dts/ar9341_tplink_tl-wa.dtsi b/target/linux/ath79/dts/ar9341_tplink_tl-wa.dtsi new file mode 100644 index 0000000000..ecf54cc182 --- /dev/null +++ b/target/linux/ath79/dts/ar9341_tplink_tl-wa.dtsi @@ -0,0 +1,81 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include +#include + +#include "ar9341.dtsi" + +/ { + aliases { + serial0 = &uart; + }; +}; + +&ref { + clock-frequency = <25000000>; +}; + +&spi { + status = "okay"; + + num-cs = <1>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <25000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + uboot: partition@0 { + label = "u-boot"; + reg = <0x000000 0x020000>; + read-only; + }; + + partition@20000 { + compatible = "tplink,firmware"; + label = "firmware"; + reg = <0x020000 0x3d0000>; + }; + + art: partition@3f0000 { + label = "art"; + reg = <0x3f0000 0x010000>; + read-only; + }; + }; + }; +}; + +&uart { + status = "okay"; +}; + +ð0 { + status = "okay"; + + phy-handle = <&swphy0>; + + mtd-mac-address = <&uboot 0x1fc00>; + + gmac-config { + device = <&gmac>; + + switch-phy-swap = <1>; + }; +}; + +ð1 { + compatible = "syscon", "simple-mfd"; +}; + +&wmac { + status = "okay"; + + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&uboot 0x1fc00>; +}; diff --git a/target/linux/ath79/dts/ar9341_tplink_tl-wa850re-v1.dts b/target/linux/ath79/dts/ar9341_tplink_tl-wa850re-v1.dts new file mode 100644 index 0000000000..bb0b498b67 --- /dev/null +++ b/target/linux/ath79/dts/ar9341_tplink_tl-wa850re-v1.dts @@ -0,0 +1,79 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar9341_tplink_tl-wa.dtsi" + +/ { + model = "TP-Link TL-WA850RE v1"; + compatible = "tplink,tl-wa850re-v1", "qca,ar9341"; + + aliases { + led-boot = &led_re; + led-failsafe = &led_re; + led-running = &led_re; + led-upgrade = &led_re; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "Reset"; + linux,code = ; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + wps { + label = "WPS"; + linux,code = ; + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + lan { + label = "tp-link:blue:lan"; + gpios = <&gpio 20 GPIO_ACTIVE_LOW>; + }; + + wlan { + label = "tp-link:blue:wlan"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + led_re: re { + label = "tp-link:blue:re"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + }; + + signal1 { + label = "tp-link:blue:signal1"; + gpios = <&gpio 0 GPIO_ACTIVE_LOW>; + }; + + signal2 { + label = "tp-link:blue:signal2"; + gpios = <&gpio 1 GPIO_ACTIVE_LOW>; + }; + + signal3 { + label = "tp-link:blue:signal3"; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + }; + + signal4 { + label = "tp-link:blue:signal4"; + gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + }; + + signal5 { + label = "tp-link:blue:signal5"; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + }; + }; +}; diff --git a/target/linux/ath79/image/tiny-tp-link.mk b/target/linux/ath79/image/tiny-tp-link.mk index 84b0d320b1..7d8f124e87 100644 --- a/target/linux/ath79/image/tiny-tp-link.mk +++ b/target/linux/ath79/image/tiny-tp-link.mk @@ -51,6 +51,16 @@ define Device/tplink_tl-mr3420-v1 endef TARGET_DEVICES += tplink_tl-mr3420-v1 +define Device/tplink_tl-wa850re-v1 + $(Device/tplink-4mlzma) + ATH_SOC := ar9341 + DEVICE_TITLE := TP-Link TL-WA850RE v1 + TPLINK_HWID := 0x08500001 + DEVICE_PACKAGES := rssileds + SUPPORTED_DEVICES += tl-wa850re +endef +TARGET_DEVICES += tplink_tl-wa850re-v1 + define Device/tplink_tl-wa901nd-v2 $(Device/tplink-4m) ATH_SOC := ar9132