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>
This commit is contained in:
Adrian Schmutzler 2020-01-16 14:41:44 +01:00
parent b2102be8a5
commit a66a1eb9c5
4 changed files with 181 additions and 1 deletions

View File

@ -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";
};

View File

@ -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

View File

@ -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"

View File

@ -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"