Skip to content

Commit

Permalink
mediatek: add TP-Link TL-XTR8488 support
Browse files Browse the repository at this point in the history
The TP-Link TL-XTR8488 has the same hardware as the
TP-Link TL-XDR6088 except for the wifi and ram part.

RAM: MT40A512M16TB DDR4 1GB
WiFi1: MT7976GN 2.4GHz 4T4R
WiFi2: MT7976AN 5.2GHz 4T4R
WiFi3: MT7915AN 5.8GHz 4T4R

Signed-off-by: AnYun <amadeus@openjmu.xyz>
  • Loading branch information
aiamadeus committed Nov 1, 2023
1 parent c8e9d22 commit 6939d66
Show file tree
Hide file tree
Showing 4 changed files with 241 additions and 1 deletion.
228 changes: 228 additions & 0 deletions target/linux/mediatek/dts/mt7986a-tplink-tl-xtr8488.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,228 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

/dts-v1/;
#include "mt7986a-tplink-tl-xdr-common.dtsi"

/ {
model = "TP-Link TL-XTR8488";
compatible = "tplink,tl-xtr8488";

keys {
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&pio 15 GPIO_ACTIVE_LOW>;
};

wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&pio 16 GPIO_ACTIVE_LOW>;
};
};

leds {
turbo {
label = "green:turbo";
gpios = <&pio 12 GPIO_ACTIVE_LOW>;
};
};
};

&eth {
/delete-node/ mdio-bus;

mdio: mdio-bus {
#address-cells = <1>;
#size-cells = <0>;

phy5: phy@5 {
compatible = "ethernet-phy-ieee802.3-c45";
reg = <5>;
realtek,aldps-enable;
realtek,led-link-select = <0xa7 0x0 0x0>;
};

phy7: phy@7 {
compatible = "ethernet-phy-ieee802.3-c45";
reg = <7>;
realtek,aldps-enable;
realtek,led-link-select = <0xa7 0x0 0x0>;
};

switch: switch@0 {
compatible = "mediatek,mt7531";
reg = <31>;
reset-gpios = <&pio 6 GPIO_ACTIVE_HIGH>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&pio>;
interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
};
};
};

&switch {
ports {
#address-cells = <1>;
#size-cells = <0>;

port@0 {
reg = <0>;
label = "lan4";
};

port@1 {
reg = <1>;
label = "lan3";
};

port@2 {
reg = <2>;
label = "lan2";
};

port@3 {
reg = <3>;
label = "lan1";
};

port@5 {
reg = <5>;
label = "lan5";
phy-handle = <&phy5>;
phy-mode = "2500base-x";
};

port@6 {
reg = <6>;
label = "cpu";
ethernet = <&gmac0>;
phy-mode = "2500base-x";

fixed-link {
speed = <2500>;
full-duplex;
pause;
};
};
};
};

&spi0 {
flash@0 {
/delete-node/ partitions;

partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

partition@0 {
label = "bl2";
reg = <0x000000 0x0100000>;
read-only;
};

config: partition@100000 {
label = "config";
reg = <0x100000 0x0040000>;
read-only;
};

factory: partition@140000 {
label = "factory";
reg = <0x140000 0x0040000>;
read-only;
};

partition@180000 {
label = "reserved";
reg = <0x180000 0x0180000>;
read-only;
};

partition@300000 {
label = "u-boot-env";
reg = <0x300000 0x0080000>;
};

partition@380000 {
label = "fip";
reg = <0x380000 0x0200000>;
read-only;
};

partition@580000 {
label = "ubi";
reg = <0x580000 0x7800000>;
};
};
};
};

&pcie {
pinctrl-names = "default";
pinctrl-0 = <&pcie_pins>;
status = "okay";

pcie@0,0 {
reg = <0x0000 0 0 0 0>;

wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x1000>;
ieee80211-freq-limit = <5470000 5875000>;

nvmem-cells = <&macaddr_config_1c>;
nvmem-cell-names = "mac-address";
mac-address-increment = <3>;
};
};
};

&pcie_phy {
status = "okay";
};

&pio {
pcie_pins: pcie-pins {
mux {
function = "pcie";
groups = "pcie_clk", "pcie_wake", "pcie_pereset";
};
};

wf_2g_5g_pins: wf_2g_5g-pins {
mux {
function = "wifi";
groups = "wf_2g", "wf_5g";
};
conf {
pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
"WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
"WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
"WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
"WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
"WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
"WF1_TOP_CLK", "WF1_TOP_DATA";
drive-strength = <4>;
};
};
};

&wmac {
pinctrl-names = "default";
pinctrl-0 = <&wf_2g_5g_pins>;
};

&config {
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;

macaddr_config_1c: macaddr@1c {
reg = <0x1c 0x6>;
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ mediatek_setup_interfaces()
ucidef_set_interfaces_lan_wan "lan0 lan1 lan2 lan3" eth1
;;
tplink,tl-xdr4288|\
tplink,tl-xdr6088)
tplink,tl-xdr6088|\
tplink,tl-xtr8488)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 lan5" eth1
;;
tplink,tl-xdr6086)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,7 @@ case "$board" in
tplink,tl-xdr6088)
[ "$PHYNBR" = "1" ] && macaddr_add $(get_mac_label) 2 > /sys${DEVPATH}/macaddress
;;
tplink,tl-xtr8488)
[ "$PHYNBR" = "2" ] && macaddr_add $(get_mac_label) 2 > /sys${DEVPATH}/macaddress
;;
esac
8 changes: 8 additions & 0 deletions target/linux/mediatek/image/filogic.mk
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,14 @@ define Device/tplink_tl-xdr6088
endef
TARGET_DEVICES += tplink_tl-xdr6088

define Device/tplink_tl-xtr8488
DEVICE_MODEL := TL-XTR8488
DEVICE_DTS := mt7986a-tplink-tl-xtr8488
DEVICE_PACKAGES += kmod-mt7915-firmware
$(call Device/tplink_tl-common)
endef
TARGET_DEVICES += tplink_tl-xtr8488

define Device/xiaomi_mi-router-ax3000t
DEVICE_VENDOR := Xiaomi
DEVICE_MODEL := Mi Router AX3000T
Expand Down

0 comments on commit 6939d66

Please sign in to comment.