ath79: add support for TP-Link RE355 v1 and RE450 v1

Specification:

SoC: Qualcomm Atheros QCA9558
RAM: 64/128MiB
Flash: 8MiB SPI-NOR
Wifi:
  - 2.4GHz: 3T3R (QCA9558)
  - 5GHz: 3T3R (QCA9880)
LAN: 1x 10/100/1000 Mbps
UART:
  - TP1: Tx
  - TP2: Rx
  - TP3: Gnd
  - TP4: 3v3

Flash instructions:
Flash factory image through stock firmware WEB UI.

Signed-off-by: Christoph Krapp <achterin@googlemail.com>
master
Christoph Krapp 2019-07-16 20:47:49 +02:00 committed by David Bauer
parent 8c51ddeff0
commit 6fde0b735c
8 changed files with 240 additions and 0 deletions

View File

@ -161,6 +161,8 @@ tplink,cpe210-v3)
tplink,cpe610-v1)
ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
;;
tplink,re355-v1|\
tplink,re450-v1|\
tplink,re450-v2)
ucidef_set_led_netdev "lan_data" "LAN Data" "tp-link:green:lan_data" "eth0" "tx rx"
ucidef_set_led_netdev "lan_link" "LAN Link" "tp-link:green:lan_link" "eth0" "link"

View File

@ -30,6 +30,8 @@ ath79_setup_interfaces()
tplink,cpe210-v3|\
tplink,cpe610-v1|\
tplink,re350k-v1|\
tplink,re355-v1|\
tplink,re450-v1|\
tplink,re450-v2|\
tplink,tl-mr10u|\
tplink,tl-mr3020-v1|\

View File

@ -163,6 +163,11 @@ case "$FIRMWARE" in
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary config 0x10008) +2)
;;
tplink,re355-v1|\
tplink,re450-v1)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2)
;;
tplink,re450-v2)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary info 8) +1)

View File

@ -18,6 +18,12 @@ tplink,archer-c7-v4)
tplink,archer-c7-v5)
migrate_leds "archer-c7-v5:=tp-link:"
;;
tplink,re355-v1)
migrate_leds "re355:=tp-link:"
;;
tplink,re450-v1)
migrate_leds "re450:=tp-link:"
;;
wd,mynet-n750)
migrate_leds "wd:=mynet-n750:"
;;

View File

@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "qca9558_tplink_rex5x.dtsi"
/ {
compatible = "tplink,re355-v1", "qca,qca9558";
model = "TP-Link RE355 v1";
};

View File

@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "qca9558_tplink_rex5x.dtsi"
/ {
compatible = "tplink,re450-v1", "qca,qca9558";
model = "TP-Link RE450 v1";
};

View File

@ -0,0 +1,180 @@
// 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 "qca9557.dtsi"
/ {
chosen {
bootargs = "console=ttyS0,115200n8";
};
aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
mdio-gpio0 = &mdio2;
};
leds {
compatible = "gpio-leds";
led_power: power {
label = "tp-link:blue:power";
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
};
wlan2g {
label = "tp-link:blue:wlan2g";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1tpt";
};
wlan5g {
label = "tp-link:blue:wlan5g";
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
lan_link {
label = "tp-link:green:lan_link";
gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
};
lan_data {
label = "tp-link:green:lan_data";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
wps_blue {
label = "tp-link:blue:wps";
gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
};
wps_red {
label = "tp-link:red:wps";
gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
};
};
keys {
compatible = "gpio-keys";
reset {
label = "Reset button";
linux,code = <KEY_RESTART>;
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
leds {
label = "LED control button";
linux,code = <BTN_0>;
gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
wps {
label = "WPS button";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
mdio2: mdio {
compatible = "virtual,mdio-gpio";
gpios = <&gpio 3 GPIO_ACTIVE_HIGH>, /* MDC */
<&gpio 1 GPIO_ACTIVE_HIGH>; /* MDIO */
#address-cells = <1>;
#size-cells = <0>;
phy0: ethernet-phy@4 {
reg = <4>;
reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};
};
};
&pcie0 {
status = "okay";
};
&uart {
status = "okay";
};
&gpio {
status = "okay";
};
&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>;
partition@0 {
label = "u-boot";
reg = <0x000000 0x020000>;
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0x5e0000>;
};
partition@600000 {
label = "partition-table";
reg = <0x600000 0x010000>;
read-only;
};
info: partition@610000 {
label = "info";
reg = <0x610000 0x020000>;
read-only;
};
partition@630000 {
label = "config";
reg = <0x630000 0x1c0000>;
read-only;
};
art: partition@7f0000 {
label = "art";
reg = <0x7f0000 0x010000>;
read-only;
};
};
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&info 0x8>;
pll-data = <0xa6000000 0x00000101 0x00001616>;
phy-handle = <&phy0>;
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&info 0x8>;
mtd-mac-address-increment = <(-1)>;
};

View File

@ -210,6 +210,33 @@ define Device/tplink_re350k-v1
endef
TARGET_DEVICES += tplink_re350k-v1
define Device/tplink_rex5x-v1
$(Device/tplink-safeloader)
ATH_SOC := qca9558
IMAGE_SIZE := 6016k
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
TPLINK_HWID := 0x0
TPLINK_HWREV := 0
endef
define Device/tplink_re355-v1
$(Device/tplink_rex5x-v1)
DEVICE_MODEL := RE355
DEVICE_VARIANT := v1
TPLINK_BOARD_ID := RE355
SUPPORTED_DEVICES += re355
endef
TARGET_DEVICES += tplink_re355-v1
define Device/tplink_re450-v1
$(Device/tplink_rex5x-v1)
DEVICE_MODEL := RE450
DEVICE_VARIANT := v1
TPLINK_BOARD_ID := RE450
SUPPORTED_DEVICES += re450
endef
TARGET_DEVICES += tplink_re450-v1
define Device/tplink_re450-v2
$(Device/tplink-safeloader)
ATH_SOC := qca9563