aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorLim Guo Wei <limguowei@gmail.com>2019-08-12 15:54:11 +0800
committerChuanhong Guo <gch981213@gmail.com>2019-08-17 23:52:34 +0800
commite7ab1b517397fdf6613f4682b7a752649841f7cd (patch)
treecfe098a3a24b803b9e90f44c67aa5282ec43fd8c /target/linux
parent2ada2a5e5bc02a5e7b3feefbee4dec0c4c355f5b (diff)
downloadupstream-e7ab1b517397fdf6613f4682b7a752649841f7cd.tar.gz
upstream-e7ab1b517397fdf6613f4682b7a752649841f7cd.tar.bz2
upstream-e7ab1b517397fdf6613f4682b7a752649841f7cd.zip
ath79: migrate TP-Link TL-MR3420v2 to ath79
Specifications: - SoC: ar9341 - RAM: 32M - Flash: 4M - Ethernet: 5x FE ports - WiFi: ar9341-wmac Flash instruction: Upload generated factory firmware on vendor's web interface. This changes the key assignment compared to ar71xx support of this device, since of the two keys on the device one is used as combined Reset/WPS and the second one as WiFi on/off button. Despite, the reset button required GPIO_ACTIVE_HIGH to work correctly. Signed-off-by: Lim Guo Wei <limguowei@gmail.com> [redo commit message] Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
Diffstat (limited to 'target/linux')
-rwxr-xr-xtarget/linux/ath79/base-files/etc/board.d/01_leds21
-rwxr-xr-xtarget/linux/ath79/base-files/etc/board.d/02_network17
-rw-r--r--target/linux/ath79/dts/ar9341_tplink_tl-mr3420-v2.dts190
-rw-r--r--target/linux/ath79/image/tiny-tp-link.mk11
4 files changed, 221 insertions, 18 deletions
diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds
index f1d738ba9f..ced8a94fd0 100755
--- a/target/linux/ath79/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/base-files/etc/board.d/01_leds
@@ -210,6 +210,17 @@ tplink,tl-mr3020-v1|\
tplink,tl-mr3040-v2)
ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
;;
+tplink,tl-mr3420-v2|\
+tplink,tl-wr740n-v4|\
+tplink,tl-wr741nd-v4|\
+tplink,tl-wr841-v8|\
+tplink,tl-wr842n-v2)
+ ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1"
+ ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04"
+ ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
+ 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-wr740n-v1|\
tplink,tl-wr740n-v3|\
tplink,tl-wr741-v1|\
@@ -222,16 +233,6 @@ tplink,tl-wr941-v4)
ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x08"
ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x10"
;;
-tplink,tl-wr740n-v4|\
-tplink,tl-wr741nd-v4|\
-tplink,tl-wr841-v8|\
-tplink,tl-wr842n-v2)
- ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1"
- ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04"
- ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
- 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-wr940n-v3|\
tplink,tl-wr940n-v4|\
tplink,tl-wr941nd-v6)
diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network
index 7387b6b7f1..cb0853ecb9 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -248,6 +248,15 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "1:wan"
;;
+ tplink,tl-mr3420-v2|\
+ tplink,tl-wr740n-v4|\
+ tplink,tl-wr741nd-v4|\
+ tplink,tl-wr841-v8|\
+ tplink,tl-wr842n-v2)
+ ucidef_set_interface_wan "eth1"
+ ucidef_add_switch "switch0" \
+ "0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
+ ;;
tplink,tl-wr1043nd-v1)
ucidef_add_switch "switch0" \
"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
@@ -261,14 +270,6 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
;;
- tplink,tl-wr740n-v4|\
- tplink,tl-wr741nd-v4|\
- tplink,tl-wr841-v8|\
- tplink,tl-wr842n-v2)
- ucidef_set_interface_wan "eth1"
- ucidef_add_switch "switch0" \
- "0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
- ;;
tplink,tl-wr941-v2)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
;;
diff --git a/target/linux/ath79/dts/ar9341_tplink_tl-mr3420-v2.dts b/target/linux/ath79/dts/ar9341_tplink_tl-mr3420-v2.dts
new file mode 100644
index 0000000000..48d936b194
--- /dev/null
+++ b/target/linux/ath79/dts/ar9341_tplink_tl-mr3420-v2.dts
@@ -0,0 +1,190 @@
+// 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 "ar9341.dtsi"
+
+/ {
+ model = "TP-Link TL-MR3420 v2";
+ compatible = "tplink,tl-mr3420-v2", "qca,ar9341";
+
+ aliases {
+ serial0 = &uart;
+ led-boot = &system;
+ led-failsafe = &system;
+ led-running = &system;
+ led-upgrade = &system;
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&jtag_disable_pins>;
+
+ reset {
+ label = "Reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
+ debounce-interval = <60>;
+ };
+
+ rfkill {
+ label = "WiFi";
+ linux,code = <KEY_RFKILL>;
+ gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
+ debounce-interval = <60>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ system: power {
+ label = "tp-link:green:power";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+
+ wlan {
+ label = "tp-link:green:wlan";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tpt";
+ };
+
+ qss {
+ label = "tp-link:green:qss";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+
+ wan {
+ label = "tp-link:green:wan";
+ gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+ };
+
+ lan1 {
+ label = "tp-link:green:lan1";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ };
+
+ lan2 {
+ label = "tp-link:green:lan2";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+
+ lan3 {
+ label = "tp-link:green:lan3";
+ gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
+ };
+
+ lan4 {
+ label = "tp-link:green:lan4";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+
+ usb {
+ label = "tp-link:green:usb";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&hub_port>;
+ linux,default-trigger = "usbport";
+ };
+ };
+};
+
+&ref {
+ clock-frequency = <25000000>;
+};
+
+&uart {
+ status = "okay";
+};
+
+&gpio {
+ status = "okay";
+
+ usb_power {
+ gpio-hog;
+ gpios = <4 GPIO_ACTIVE_HIGH>;
+ output-high;
+ line-name = "tp-link:power:usb";
+ };
+};
+
+&spi {
+ num-cs = <1>;
+
+ status = "okay";
+
+ 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;
+ };
+ };
+ };
+};
+
+&eth0 {
+ status = "okay";
+
+ phy-handle = <&swphy0>;
+ mtd-mac-address = <&uboot 0x1fc00>;
+ mtd-mac-address-increment = <(-1)>;
+};
+
+&eth1 {
+ status = "okay";
+
+ mtd-mac-address = <&uboot 0x1fc00>;
+
+ gmac-config {
+ device = <&gmac>;
+ switch-phy-swap = <1>;
+ };
+};
+
+&wmac {
+ status = "okay";
+
+ mtd-cal-data = <&art 0x1000>;
+ mtd-mac-address = <&uboot 0x1fc00>;
+};
+
+&usb {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ hub_port: port@1 {
+ reg = <1>;
+ #trigger-source-cells = <0>;
+ };
+};
+
+&usb_phy {
+ status = "okay";
+};
diff --git a/target/linux/ath79/image/tiny-tp-link.mk b/target/linux/ath79/image/tiny-tp-link.mk
index a2d598fb77..71d165fdc2 100644
--- a/target/linux/ath79/image/tiny-tp-link.mk
+++ b/target/linux/ath79/image/tiny-tp-link.mk
@@ -55,6 +55,17 @@ define Device/tplink_tl-mr3420-v1
endef
TARGET_DEVICES += tplink_tl-mr3420-v1
+define Device/tplink_tl-mr3420-v2
+ $(Device/tplink-4mlzma)
+ ATH_SOC := ar9341
+ DEVICE_MODEL := TL-MR3420
+ DEVICE_VARIANT := v2
+ TPLINK_HWID := 0x34200002
+ DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
+ SUPPORTED_DEVICES += tl-mr3420-v2
+endef
+TARGET_DEVICES += tplink_tl-mr3420-v2
+
define Device/tplink_tl-wa901nd-v2
$(Device/tplink-4m)
ATH_SOC := ar9132