ath79: add support for TP-Link TL-WR941N/ND v2/v3

Specification:
- SoC: Atheros AR9132
- Flash: 4 MB
- RAM: 32 MB
- Ethernet: Marvell 88E6060 with 5 FE ports.

Flash instruction:
  Upload the generated factory firmware on web interface.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
This commit is contained in:
Chuanhong Guo 2018-08-13 20:32:02 +08:00 committed by Mathias Kresin
parent 8db6522531
commit 1213504750
4 changed files with 184 additions and 0 deletions

View file

@ -133,6 +133,9 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
;;
tplink,tl-wr941-v2)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
;;
ubnt,unifiac-mesh-pro|\
ubnt,unifiac-pro)
ucidef_add_switch "switch0" \
@ -173,6 +176,10 @@ ath79_setup_macs()
base_mac=$(mtd_get_mac_binary product-info 8)
wan_mac=$(macaddr_add "$base_mac" 1)
;;
tplink,tl-wr941-v2)
base_mac=$(mtd_get_mac_binary u-boot 130048)
wan_mac=$(macaddr_add "$base_mac" 1)
;;
esac
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac

View file

@ -0,0 +1,164 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar9132.dtsi"
/ {
compatible = "tplink,tl-wr941-v2", "qca,ar9132";
model = "TP-Link TL-WR941N/ND v2/v3";
aliases {
led-status = &led_system;
};
keys {
compatible = "gpio-keys";
button0 {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
button1 {
label = "qss";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
led_system: system {
label = "tp-link:green:system";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
qss_r {
label = "tp-link:red:qss";
gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
};
qss_g {
label = "tp-link:green:qss";
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
};
wlan {
label = "tp-link:green:wlan";
gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
default-state = "off";
linux,default-trigger = "phy0tpt";
};
};
dsa {
compatible = "marvell,dsa";
#address-cells = <1>;
#size-cells = <0>;
dsa,mii-bus = <&mdio0>;
dsa,ethernet = <&eth0>;
switch@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
port@0 {
reg = <0>;
label = "wan";
};
port@1 {
reg = <1>;
label = "lan1";
};
port@2 {
reg = <2>;
label = "lan2";
};
port@3 {
reg = <3>;
label = "lan3";
};
port@4 {
reg = <4>;
label = "lan4";
};
port@5 {
reg = <5>;
label = "cpu";
};
};
};
};
&uart {
status = "okay";
};
&spi {
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 0x20000>;
read-only;
};
partition@20000 {
label = "firmware";
reg = <0x020000 0x3d0000>;
};
art: partition@3f0000 {
label = "art";
reg = <0x3f0000 0x10000>;
read-only;
};
};
};
};
&mdio0 {
status = "okay";
};
&eth0 {
status = "okay";
phy-mode = "rmii";
mtd-mac-address = <&uboot 0x1fc00>;
fixed-link {
speed = <100>;
full-duplex;
};
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View file

@ -137,6 +137,15 @@ define Device/tplink_tl-wr841-v11
endef
TARGET_DEVICES += tplink_tl-wr841-v11
define Device/tplink_tl-wr941-v2
$(Device/tplink-4m)
ATH_SOC := ar9132
DEVICE_TITLE := TP-Link TL-WR941N/ND v2/v3
TPLINK_HWID := 0x09410002
TPLINK_HWREV := 2
endef
TARGET_DEVICES += tplink_tl-wr941-v2
define Device/tplink_tl-wr941-v4
$(Device/tplink-4m)
ATH_SOC := ar7240

View file

@ -1,5 +1,9 @@
CONFIG_BLK_MQ_PCI=y
CONFIG_LEDS_RESET=y
CONFIG_NET_DSA=y
CONFIG_NET_DSA_MV88E6060=y
CONFIG_NET_DSA_TAG_TRAILER=y
CONFIG_NET_SWITCHDEV=y
CONFIG_OF_ADDRESS_PCI=y
CONFIG_OF_PCI=y
CONFIG_OF_PCI_IRQ=y