From 6939d662fbc7eaaf7d0df1f4d8bd61a5d22d866c Mon Sep 17 00:00:00 2001 From: aiamadeus <2789289348@qq.com> Date: Sun, 9 Jul 2023 23:16:28 +0800 Subject: [PATCH] mediatek: add TP-Link TL-XTR8488 support 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 --- .../dts/mt7986a-tplink-tl-xtr8488.dts | 228 ++++++++++++++++++ .../filogic/base-files/etc/board.d/02_network | 3 +- .../etc/hotplug.d/ieee80211/11_fix_wifi_mac | 3 + target/linux/mediatek/image/filogic.mk | 8 + 4 files changed, 241 insertions(+), 1 deletion(-) create mode 100644 target/linux/mediatek/dts/mt7986a-tplink-tl-xtr8488.dts diff --git a/target/linux/mediatek/dts/mt7986a-tplink-tl-xtr8488.dts b/target/linux/mediatek/dts/mt7986a-tplink-tl-xtr8488.dts new file mode 100644 index 00000000000000..a8b5d98671ca96 --- /dev/null +++ b/target/linux/mediatek/dts/mt7986a-tplink-tl-xtr8488.dts @@ -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 = ; + gpios = <&pio 15 GPIO_ACTIVE_LOW>; + }; + + wps { + label = "wps"; + linux,code = ; + gpios = <&pio 16 GPIO_ACTIVE_LOW>; + }; + }; + + leds { + turbo { + label = "green:turbo"; + gpios = <&pio 12 GPIO_ACTIVE_LOW>; + }; + }; +}; + +ð { + /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>; + }; +}; diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network index 9e0d53912912e9..6fa3a9218c629b 100644 --- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network +++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network @@ -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) diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac index 90600e33d80854..7f97e55f1f973b 100644 --- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac +++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac @@ -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 diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk index 413860a1a672c0..ee29b1b5c66606 100644 --- a/target/linux/mediatek/image/filogic.mk +++ b/target/linux/mediatek/image/filogic.mk @@ -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