ath79: add support for TP-Link TL-WA850RE v1
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>
Mon, 9 Dec 2019 13:51:07 +0000 (14:51 +0100)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 22 Jan 2020 16:18:55 +0000 (17:18 +0100)
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 <freifunk@adrianschmutzler.de>
target/linux/ath79/dts/ar9341_tplink_tl-wa.dtsi [new file with mode: 0644]
target/linux/ath79/dts/ar9341_tplink_tl-wa850re-v1.dts [new file with mode: 0644]
target/linux/ath79/image/tiny-tp-link.mk
target/linux/ath79/tiny/base-files/etc/board.d/01_leds
target/linux/ath79/tiny/base-files/etc/board.d/02_network

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 (file)
index 0000000..07cf206
--- /dev/null
@@ -0,0 +1,82 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "ar9341.dtsi"
+
+/ {
+       aliases {
+               serial0 = &uart;
+               label-mac-device = &wmac;
+       };
+};
+
+&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";
+};
+
+&eth0 {
+       status = "okay";
+
+       phy-handle = <&swphy0>;
+
+       mtd-mac-address = <&uboot 0x1fc00>;
+
+       gmac-config {
+               device = <&gmac>;
+
+               switch-phy-swap = <1>;
+       };
+};
+
+&eth1 {
+       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 (file)
index 0000000..bb0b498
--- /dev/null
@@ -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 = <KEY_RESTART>;
+                       gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+
+               wps {
+                       label = "WPS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       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>;
+               };
+       };
+};
index 070ede9721dacdfeaadcae939efc4b51b049f30b..3c15f843a95baf2b2d8da5b8c98ddfffb44e405d 100644 (file)
@@ -66,6 +66,17 @@ define Device/tplink_tl-mr3420-v2
 endef
 TARGET_DEVICES += tplink_tl-mr3420-v2
 
+define Device/tplink_tl-wa850re-v1
+  $(Device/tplink-4mlzma)
+  SOC := ar9341
+  DEVICE_MODEL := TL-WA850RE
+  DEVICE_VARIANT := 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)
   SOC := ar9132
index 199ad94bec82595a5ed559a37d3b3270d5c82602..32c99304aa8268dab0c4768f5ce60d8494d88008 100755 (executable)
@@ -54,6 +54,15 @@ tplink,tl-wr841-v8)
        ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x10"
        ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02"
        ;;
+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|\
index b325c7cf8ba220cc6ee876e40dba396c5c933808..114c19b48a411938907996d96f87f153e1f78ef0 100755 (executable)
@@ -32,6 +32,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)
                ucidef_set_interface_lan "eth0"