ath79: add support for TP-Link TL-WA901ND v4 and v5

This ports support for the TL-WA901ND v4 and v5 from ar71xx to ath79.
They are similar to the TP9343-based TL-WR940N v3/v4 and TL-WR941ND v6.

Specifications:
  SoC: TP9343
  Flash/RAM: 4/32 MiB
  CPU: 750 MHz
  WiFi: 2.4 GHz b/g/n
  Ethernet: 1 port (100M)

Flashing instructions:
  Upload the factory image via the vendor firmware upgrade option.

Flash instruction (TFTP):
  1. Set PC to fixed ip address 192.168.0.66
  2. Download *-factory.bin image and rename it to * (see below)
  3. Start a tftp server with the image file in its root directory
  4. Turn off the router
  5. Press and hold Reset button
  6. Turn on router with the reset button pressed and wait ~15 seconds
  7. Release the reset button and after a short time
     the firmware should be transferred from the tftp server
  8. Wait ~30 second to complete recovery.

  * The image name for TFTP recovery is wa901ndv4_tp_recovery.bin for
  both variants.

In ar71xx, a MAC address with offset 1 was used for ethernet port.
That's probably wrong, but this commit sticks to it until we know
the correct value.

Like in ar71xx, this builds the default factory.bin with EU country
code.

Thanks to Leonardo Weiss for testing on the v5.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
Adrian Schmutzler 2020-04-15 14:01:34 +02:00
parent bf5d800578
commit 4a61a88f90
8 changed files with 174 additions and 72 deletions

View File

@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "tp9343_tplink_tl-wa901nd.dtsi"
/ {
compatible = "tplink,tl-wa901nd-v4", "qca,tp9343";
model = "TP-Link TL-WA901ND v4";
};

View File

@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "tp9343_tplink_tl-wa901nd.dtsi"
/ {
compatible = "tplink,tl-wa901nd-v5", "qca,tp9343";
model = "TP-Link TL-WA901ND v5";
};

View File

@ -0,0 +1,52 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "tp9343_tplink_tl-wx.dtsi"
/ {
aliases {
led-boot = &led_system;
led-failsafe = &led_system;
led-running = &led_system;
led-upgrade = &led_system;
};
keys {
compatible = "gpio-keys";
reset {
label = "Reset button";
linux,code = <KEY_RESTART>;
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
};
};
leds {
compatible = "gpio-leds";
led_system: system {
label = "tp-link:green:system";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
default-state = "on";
};
qss {
label = "tp-link:green:qss";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
lan {
label = "tp-link:green:lan";
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
};
wlan {
label = "tp-link:green:wlan";
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
};
&eth1 {
compatible = "syscon", "simple-mfd";
};

View File

@ -1,19 +1,8 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/gpio/gpio.h> #include "tp9343_tplink_tl-wx.dtsi"
#include <dt-bindings/input/input.h>
#include "qca956x.dtsi"
/ { / {
chosen {
bootargs = "console=ttyS0,115200n8";
};
aliases {
label-mac-device = &wmac;
};
keys { keys {
compatible = "gpio-keys"; compatible = "gpio-keys";
@ -30,62 +19,3 @@
}; };
}; };
}; };
&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 = <&swphy4>;
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <1>;
};
&eth1 {
status = "okay";
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View File

@ -0,0 +1,76 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "qca956x.dtsi"
/ {
aliases {
label-mac-device = &wmac;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
};
&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 = <&swphy4>;
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <1>;
};
&eth1 {
status = "okay";
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View File

@ -170,6 +170,28 @@ define Device/tplink_tl-wa901nd-v2
endef endef
TARGET_DEVICES += tplink_tl-wa901nd-v2 TARGET_DEVICES += tplink_tl-wa901nd-v2
define Device/tplink_tl-wa901nd-v4
$(Device/tplink-4mlzma)
SOC := tp9343
DEVICE_MODEL := TL-WA901ND
DEVICE_VARIANT := v4
TPLINK_HWID := 0x09010004
SUPPORTED_DEVICES += tl-wa901nd-v4
IMAGE/factory.bin := tplink-v1-image factory -C EU
endef
TARGET_DEVICES += tplink_tl-wa901nd-v4
define Device/tplink_tl-wa901nd-v5
$(Device/tplink-4mlzma)
SOC := tp9343
DEVICE_MODEL := TL-WA901ND
DEVICE_VARIANT := v5
TPLINK_HWID := 0x09010005
SUPPORTED_DEVICES += tl-wa901nd-v5
IMAGE/factory.bin := tplink-v1-image factory -C EU
endef
TARGET_DEVICES += tplink_tl-wa901nd-v5
define Device/tplink_tl-wr703n define Device/tplink_tl-wr703n
$(Device/tplink-4mlzma) $(Device/tplink-4mlzma)
SOC := ar9331 SOC := ar9331

View File

@ -47,7 +47,9 @@ tplink,tl-wa730re-v1|\
tplink,tl-wa801nd-v1|\ tplink,tl-wa801nd-v1|\
tplink,tl-wa830re-v1|\ tplink,tl-wa830re-v1|\
tplink,tl-wa860re-v1|\ tplink,tl-wa860re-v1|\
tplink,tl-wa901nd-v1) tplink,tl-wa901nd-v1|\
tplink,tl-wa901nd-v4|\
tplink,tl-wa901nd-v5)
ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0" ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
;; ;;
tplink,tl-mr3420-v2|\ tplink,tl-mr3420-v2|\

View File

@ -41,6 +41,8 @@ ath79_setup_interfaces()
tplink,tl-wa860re-v1|\ tplink,tl-wa860re-v1|\
tplink,tl-wa901nd-v1|\ tplink,tl-wa901nd-v1|\
tplink,tl-wa901nd-v2|\ tplink,tl-wa901nd-v2|\
tplink,tl-wa901nd-v4|\
tplink,tl-wa901nd-v5|\
tplink,tl-wr703n) tplink,tl-wr703n)
ucidef_set_interface_lan "eth0" ucidef_set_interface_lan "eth0"
;; ;;