aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>2020-01-16 14:41:44 +0100
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>2020-01-22 23:52:51 +0100
commita66a1eb9c5f07095d8ed266b733b379bc9a8e8d4 (patch)
tree5d98c877235e259af86f000820644469dc4fd201 /target/linux
parentb2102be8a54ad14043035527d8ed33f4611f1553 (diff)
downloadupstream-a66a1eb9c5f07095d8ed266b733b379bc9a8e8d4.tar.gz
upstream-a66a1eb9c5f07095d8ed266b733b379bc9a8e8d4.tar.bz2
upstream-a66a1eb9c5f07095d8ed266b733b379bc9a8e8d4.zip
ath79: add support for TP-Link TL-WA850RE v2
TP-Link TL-WA850RE v2 is a wall-plug N300 Wi-Fi range extender, based on Qualcomm/Atheros QCA9533 v2. Short specification: - 550/391/195 MHz (CPU/DDR/AHB) - 1x 10/100 Mbps Ethernet - 32 MB of RAM (DDR1) - 4 MB of FLASH - 2T2R 2.4 GHz - 2x internal antennas (embedded on PCB) - 9x LED (all can be turned off with GPIO15), 2x button - UART (J3) header on PCB Flash instruction: use "factory" image directly in vendor GUI. Warning: this device does not include any kind of recovery mechanism in the bootloader and disassembling process is not trivial. You can access vendor firmware over serial line using: - login: root - password: sohoadmin Stock firmware uses label MAC address for WiFi and same with local bit set for ethernet. Since this is difficult to reproduce with the toolset of OpenWrt, we just keep both ethernet and WiFi to the same address here. This is the first tiny device with tplink-safeloader in ath79. Firmware partition is only 3648k and thus even smaller than for the tplink-4m(lzma) devices. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts164
-rw-r--r--target/linux/ath79/image/tiny-tp-link.mk14
-rwxr-xr-xtarget/linux/ath79/tiny/base-files/etc/board.d/01_leds3
-rwxr-xr-xtarget/linux/ath79/tiny/base-files/etc/board.d/02_network1
4 files changed, 181 insertions, 1 deletions
diff --git a/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts b/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts
new file mode 100644
index 0000000000..5236912047
--- /dev/null
+++ b/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts
@@ -0,0 +1,164 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "qca953x.dtsi"
+
+/ {
+ compatible = "tplink,tl-wa850re-v2", "qca,qca9533";
+ model = "TP-Link TL-WA850RE v2";
+
+ aliases {
+ led-boot = &led_re;
+ led-failsafe = &led_re;
+ led-running = &led_re;
+ led-upgrade = &led_re;
+ label-mac-device = &wmac;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,115200n8";
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&jtag_disable_pins>;
+
+ lan {
+ label = "tp-link:blue:lan";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+
+ led_re: re {
+ label = "tp-link:blue:re";
+ gpios = <&gpio 12 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>;
+ };
+
+ led_signal5: signal5 {
+ label = "tp-link:blue:signal5";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan {
+ label = "tp-link:blue:wlan";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tpt";
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "Reset button";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+ };
+
+ wps {
+ label = "WPS button";
+ linux,code = <KEY_RFKILL>;
+ gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ led_enable {
+ gpio-hog;
+ gpios = <15 GPIO_ACTIVE_HIGH>;
+ line-name = "tp-link:power:led";
+ output-high;
+ };
+};
+
+&uart {
+ status = "okay";
+};
+
+&spi {
+ status = "okay";
+
+ num-cs = <1>;
+
+ flash@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <25000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x000000 0x020000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x020000 0x390000>;
+ compatible = "tplink,firmware";
+ };
+
+ config: partition@3b0000 {
+ label = "config";
+ reg = <0x3b0000 0x040000>;
+ read-only;
+ };
+
+ art: partition@3f0000 {
+ label = "art";
+ reg = <0x3f0000 0x010000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&wmac {
+ status = "okay";
+
+ mtd-cal-data = <&art 0x1000>;
+ mtd-mac-address = <&config 0x10008>;
+};
+
+&eth0 {
+ status = "okay";
+
+ phy-handle = <&swphy4>;
+
+ mtd-mac-address = <&config 0x10008>;
+};
+
+&eth1 {
+ compatible = "syscon", "simple-mfd";
+};
diff --git a/target/linux/ath79/image/tiny-tp-link.mk b/target/linux/ath79/image/tiny-tp-link.mk
index 3c15f843a9..e5208530d6 100644
--- a/target/linux/ath79/image/tiny-tp-link.mk
+++ b/target/linux/ath79/image/tiny-tp-link.mk
@@ -77,6 +77,20 @@ define Device/tplink_tl-wa850re-v1
endef
TARGET_DEVICES += tplink_tl-wa850re-v1
+define Device/tplink_tl-wa850re-v2
+ $(Device/tplink-safeloader)
+ SOC := qca9533
+ IMAGE_SIZE := 3648k
+ DEVICE_MODEL := TL-WA850RE
+ DEVICE_VARIANT := v2
+ TPLINK_BOARD_ID := TLWA850REV2
+ TPLINK_HWID := 0x08500002
+ TPLINK_HWREV := 0x0
+ DEVICE_PACKAGES := rssileds
+ SUPPORTED_DEVICES += tl-wa850re-v2
+endef
+TARGET_DEVICES += tplink_tl-wa850re-v2
+
define Device/tplink_tl-wa901nd-v2
$(Device/tplink-4m)
SOC := ar9132
diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/01_leds b/target/linux/ath79/tiny/base-files/etc/board.d/01_leds
index 32c99304aa..75de6f3aad 100755
--- a/target/linux/ath79/tiny/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/tiny/base-files/etc/board.d/01_leds
@@ -54,7 +54,8 @@ 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)
+tplink,tl-wa850re-v1|\
+tplink,tl-wa850re-v2)
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"
diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/02_network b/target/linux/ath79/tiny/base-files/etc/board.d/02_network
index 114c19b48a..56200de59e 100755
--- a/target/linux/ath79/tiny/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/tiny/base-files/etc/board.d/02_network
@@ -33,6 +33,7 @@ ath79_setup_interfaces()
tplink,tl-mr3020-v1|\
tplink,tl-mr3040-v2|\
tplink,tl-wa850re-v1|\
+ tplink,tl-wa850re-v2|\
tplink,tl-wa901nd-v2|\
tplink,tl-wr703n)
ucidef_set_interface_lan "eth0"