ath79: add support for TP-Link TL-WR940N v6
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>
Mon, 5 Aug 2019 15:51:16 +0000 (17:51 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Thu, 13 Feb 2020 16:33:20 +0000 (17:33 +0100)
The TL-WR940N v6 is similar to v3/v4, it just has different
LEDs and MAC address assignment.

Specification:
- 750 MHz CPU
- 32 MB of RAM
- 4 MB of FLASH
- 2.4 GHz WiFi
- 4x 10/100 Mbps Ethernet

The use of LEDs is based on ar71xx, so blue LED is used for WAN
and orange LED for diag (boot/failsafe/etc.).

Flash instruction (WebUI):
Download *-factory.bin image and upload it via the firmwary upgrade
function of the stock firmware WebUI.

Flash instruction (TFTP):
1. Set PC to fixed ip address 192.168.0.66
2. Download *-factory.bin image and rename it to
   wr940nv6_tp_recovery.bin
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.

Thanks to Manuel Kock for reviewing and testing this patch.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: Manuel Kock <github.web@manu.li>
target/linux/ath79/dts/tp9343_tplink_tl-wr940n-v6.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/tp9343_tplink_tl-wr940n-v6.dts b/target/linux/ath79/dts/tp9343_tplink_tl-wr940n-v6.dts
new file mode 100644 (file)
index 0000000..31f0c14
--- /dev/null
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "tp9343_tplink_tl-wr94x.dtsi"
+
+/ {
+       compatible = "tplink,tl-wr940n-v6", "qca,tp9343";
+       model = "TP-Link TL-WR940N v6";
+
+       aliases {
+               led-boot = &led_diag_orange;
+               led-failsafe = &led_diag_orange;
+               led-running = &led_diag_orange;
+               led-upgrade = &led_diag_orange;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               wan_blue {
+                       label = "tp-link:blue:wan";
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+               };
+
+               led_diag_orange: diag_orange {
+                       label = "tp-link:orange:diag";
+                       gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+       };
+};
+
+&eth1 {
+       mtd-mac-address = <&uboot 0x1fc00>;
+};
index 787ac055ba83912d3e11b4db8afff411b2d77ef9..8f6f2fe14a528b57b66722d726afcc8c408f7052 100644 (file)
@@ -274,6 +274,20 @@ define Device/tplink_tl-wr940n-v4
 endef
 TARGET_DEVICES += tplink_tl-wr940n-v4
 
+define Device/tplink_tl-wr940n-v6
+  $(Device/tplink-4mlzma)
+  SOC := tp9343
+  DEVICE_MODEL := TL-WR940N
+  DEVICE_VARIANT := v6
+  TPLINK_HWID := 0x09400006
+  SUPPORTED_DEVICES += tl-wr940n-v6
+  IMAGES += factory-us.bin factory-eu.bin factory-br.bin
+  IMAGE/factory-us.bin := tplink-v1-image factory -C US
+  IMAGE/factory-eu.bin := tplink-v1-image factory -C EU
+  IMAGE/factory-br.bin := tplink-v1-image factory -C BR
+endef
+TARGET_DEVICES += tplink_tl-wr940n-v6
+
 define Device/tplink_tl-wr941-v2
   $(Device/tplink-4m)
   SOC := ar9132
index 43efc46145fc47430d9ef5f6f11a550377a16ade..e8c685240670ecd8b8320ee10cf8118fd5ef89ba 100755 (executable)
@@ -96,6 +96,9 @@ tplink,tl-wr941nd-v6)
        ucidef_set_led_switch "lan3" "LAN3" "tp-link:blue:lan3" "switch0" "0x04"
        ucidef_set_led_switch "lan4" "LAN4" "tp-link:blue:lan4" "switch0" "0x02"
        ;;
+tplink,tl-wr940n-v6)
+       ucidef_set_led_netdev "wan" "WAN" "tp-link:blue:wan" "eth1"
+       ;;
 esac
 
 board_config_flush
index c8269599a480d9ec493be1562386491545832922..ff1e8110b46005544251f50c73d9b18374a19dc9 100755 (executable)
@@ -48,6 +48,7 @@ ath79_setup_interfaces()
        tplink,tl-wr841-v12|\
        tplink,tl-wr940n-v3|\
        tplink,tl-wr940n-v4|\
+       tplink,tl-wr940n-v6|\
        tplink,tl-wr941nd-v6)
                ucidef_set_interface_wan "eth1"
                ucidef_add_switch "switch0" \