ath79: add support for TP-Link TL-MR6400

This device is an LTE router supported in ar71xx so far.
As per original commit, hardware specifications (v1.0 EU):
- SoC: QCA9531
- Flash: Winbond W25Q64FV (8MiB)
- RAM: EtronTech EM6AB160TSE-5G (64MiB)
- Wireless: SoC platform only (2.4GHz b/g/n, 2x internal antenna)
- Ethernet: 2NIC (3x100M + 1x100M)
- WWAN: TP-LINK LTE MODULE (2x external detachable antenna)
- Power: DC 12V 1A

Flashing instructions:
You can flash via tftp recovery (serve factory image as /mr6400_tp_recovery.bin
on 192.168.0.66/24, connect to any ethernet port and power on device while
holding the reset button). Flashing via OEM web interface does not work.

Known issues:
- LTE module does not always come up during boot (showing USB enumeration errors). Similar behavior has been reported at least from one user for ar71xx, too. Turning USB off and on again will serve as a workaround.
- eth0 (LAN) always shows carrier as 1 even if no cable is plugged in (this works "correctly" on ar71xx)

Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
[several adjustments]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: Filip Moc <lede@moc6.cz>
master
Enrico Mioso 4 years ago committed by Adrian Schmutzler
parent 83708f233d
commit b99b60b2f1

@ -0,0 +1,167 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "qca953x.dtsi"
/ {
compatible = "tplink,tl-mr6400-v1", "qca,qca9531";
model = "TP-Link TL-MR6400 v1";
aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
label-mac-device = &wmac;
};
leds {
compatible = "gpio-leds";
/* D12 */
wan {
label = "tp-link:white:wan";
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
};
/* D11 */
4g {
label = "tp-link:white:4g";
gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
};
/* D5 */
wps {
label = "tp-link:white:wps";
gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
};
/* D3 */
wlan {
label = "tp-link:white:wlan";
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0tpt";
};
/* D2 */
led_power: power {
label = "tp-link:white:power";
gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
};
/* D4 */
lan {
label = "tp-link:white:lan";
gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
};
};
keys {
compatible = "gpio-keys";
/* SW2 */
reset {
label = "Reset button";
linux,code = <KEY_RESTART>;
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
/* SW3 */
rfkill {
label = "RF kill button";
linux,code = <KEY_RFKILL>;
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
gpio-export {
compatible = "gpio-export";
gpio_usb_power {
gpio-export,name = "tp-link:power:lte";
gpio-export,output = <0>;
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
};
};
};
&uart {
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>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x020000>;
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0x7d0000>;
};
art: partition@7f0000 {
label = "art";
reg = <0x7f0000 0x010000>;
read-only;
};
};
};
};
&eth0 {
status = "okay";
phy-handle = <&swphy0>;
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <1>;
};
&eth1 {
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <(-1)>;
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};
&usb0 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb_phy {
status = "okay";
};

@ -215,6 +215,11 @@ 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"
;;
tplink,tl-mr6400-v1)
ucidef_set_led_switch "lan" "LAN" "tp-link:white:lan" "switch0" "0x0e"
ucidef_set_led_netdev "wan" "WAN" "tp-link:white:wan" "eth1"
ucidef_set_led_netdev "4g" "4G" "tp-link:white:4g" "usb0"
;;
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"

@ -236,6 +236,11 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "1:wan"
;;
tplink,tl-mr6400-v1)
ucidef_set_interfaces_lan_wan "eth0.1 eth1" "usb0"
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:1" "2:lan:3" "3:lan:2"
;;
tplink,tl-wr842n-v2)
ucidef_set_interface_wan "eth1"
ucidef_add_switch "switch0" \

@ -374,6 +374,18 @@ define Device/tplink_re450-v2
endef
TARGET_DEVICES += tplink_re450-v2
define Device/tplink_tl-mr6400-v1
$(Device/tplink-8mlzma)
SOC := qca9531
DEVICE_MODEL := TL-MR6400
DEVICE_VARIANT := v1
TPLINK_HWID := 0x64000001
DEVICE_PACKAGES := kmod-usb2 kmod-usb-net kmod-usb-net-rndis kmod-usb-serial \
kmod-usb-serial-option adb-enablemodem
SUPPORTED_DEVICES += tl-mr6400
endef
TARGET_DEVICES += tplink_tl-mr6400-v1
define Device/tplink_tl-wdr3500-v1
$(Device/tplink-8mlzma)
SOC := ar9344

Loading…
Cancel
Save