From 6c743c3006f9b8446a11eab4af2f7997ab6a6a2f Mon Sep 17 00:00:00 2001 From: Joe Mullally Date: Sat, 19 Feb 2022 21:32:54 +0000 Subject: [PATCH] ramips: Add support for TP-Link TL-WPA8631P v3 AV1300 Gigabit Passthrough Powerline ac Wi-Fi Extender Specifications -------------- * SoC: MediaTek MT7621AT * CPU: 880 MHz MIPS 1004KEc dual-core CPU * RAM: 64 MiB DDR2 (Zentel A3R12E40DBF-8E) * Flash: 8 MiB SPI NOR (GigaDevice GD25Q64CSIG) * Ethernet: SoC built-in Switch 5x 1GbE * Port 0: PLC (connected through AR8035-A) * Port 1-3: LAN * WLAN: 2x2 2.4GHz 300 Mbps + 2x2 5GHz 867 Mbps (MT7603EN + MT7613BEN) * PLC: HomePlug AV2 (Qualcomm QCA7500) * PLC Flash: 2MiB SPI NOR (GigaDevice GD25Q16CSIG) * Buttons: Reset, LED, Pair, Wi-Fi * LEDs: Power (green), PLC (green/amber), LAN (green), 2.4G (green), 5G (green) * UART: J1 (57600 baud) * Pinout: (3V3) (GND) (RX) (TX) * Visually identify GND from connection to PCB ground plane Installation ------------ Installation is possible from the OEM web interface. Make sure to install the latest OEM firmware first, so that the PLC firmware is at the latest version. However, please first check the OpenWRT Wiki page for confirmation that your OEM firmware version is supported. Signed-off-by: Joe Mullally --- .../dts/mt7621_tplink_tl-wpa8631p-v3.dts | 200 ++++++++++++++++++ target/linux/ramips/image/mt7621.mk | 11 + .../mt7621/base-files/etc/board.d/01_leds | 3 + .../mt7621/base-files/etc/board.d/02_network | 3 + 4 files changed, 217 insertions(+) create mode 100644 target/linux/ramips/dts/mt7621_tplink_tl-wpa8631p-v3.dts diff --git a/target/linux/ramips/dts/mt7621_tplink_tl-wpa8631p-v3.dts b/target/linux/ramips/dts/mt7621_tplink_tl-wpa8631p-v3.dts new file mode 100644 index 00000000000..7012c315c1f --- /dev/null +++ b/target/linux/ramips/dts/mt7621_tplink_tl-wpa8631p-v3.dts @@ -0,0 +1,200 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "mt7621.dtsi" + +#include +#include + +/ { + compatible = "tplink,tl-wpa8631p-v3", "mediatek,mt7621-soc"; + model = "TP-Link WPA8631P v3"; + + aliases { + label-mac-device = &gmac0; + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 31 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + led { + label = "led"; + linux,code = ; + gpios = <&gpio 30 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + pair { + label = "pair"; + linux,code = ; + gpios = <&gpio 32 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + wifi { + label = "wifi"; + linux,code = ; + gpios = <&gpio 33 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_power: power { + label = "green:power"; + gpios = <&gpio 22 GPIO_ACTIVE_LOW>; + }; + + lan { + label = "green:lan"; + gpios = <&gpio 29 GPIO_ACTIVE_LOW>; + }; + + wifi2g { + label = "green:wifi2g"; + gpios = <&gpio 23 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + wifi5g { + label = "green:wifi5g"; + gpios = <&gpio 24 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy1tpt"; + }; + }; + + gpio-export { + compatible = "gpio-export"; + + led_control { + gpio-export,name = "tp-link:led:control"; + gpio-export,output = <0>; + gpios = <&gpio 25 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&spi0 { + status = "okay"; + + 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 = <0x0 0x20000>; + read-only; + }; + + partition@20000 { + compatible = "tplink,firmware"; + label = "firmware"; + reg = <0x20000 0x710000>; + }; + + config: partition@730000 { + label = "config"; + reg = <0x730000 0xc0000>; + read-only; + }; + + radio: partition@7f0000 { + label = "radio"; + reg = <0x7f0000 0x10000>; + read-only; + }; + }; + }; +}; + +&state_default { + gpio { + groups = "rgmii2", "wdt"; + function = "gpio"; + }; +}; + +&pcie { + status = "okay"; +}; + +&pcie0 { + wifi@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&radio 0x0>; + nvmem-cells = <&macaddr_config_2008>; + nvmem-cell-names = "mac-address"; + ieee80211-freq-limit = <2400000 2500000>; + }; +}; + +&pcie1 { + wifi@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&radio 0x8000>; + nvmem-cells = <&macaddr_config_2008>; + nvmem-cell-names = "mac-address"; + mac-address-increment = <1>; + ieee80211-freq-limit = <5000000 6000000>; + }; +}; + +&gmac0 { + nvmem-cells = <&macaddr_config_2008>; + nvmem-cell-names = "mac-address"; +}; + +&switch0 { + ports { + port@0 { + status = "okay"; + label = "plc0"; + }; + + port@1 { + status = "okay"; + label = "lan1"; + }; + + port@2 { + status = "okay"; + label = "lan2"; + }; + + port@3 { + status = "okay"; + label = "lan3"; + }; + }; +}; + +&config { + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_config_2008: macaddr@2008 { + reg = <0x2008 0x6>; + }; +}; diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 1b75f0d7a6a..1b7d095fc48 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -1546,6 +1546,17 @@ define Device/tplink_re650-v1 endef TARGET_DEVICES += tplink_re650-v1 +define Device/tplink_tl-wpa8631p-v3 + $(Device/dsa-migration) + $(Device/tplink-safeloader) + DEVICE_MODEL := TL-WPA8631P + DEVICE_VARIANT := v3 + DEVICE_PACKAGES := kmod-mt7603 kmod-mt7615e kmod-mt7663-firmware-ap + TPLINK_BOARD_ID := TL-WPA8631P-V3 + IMAGE_SIZE := 7232k +endef +TARGET_DEVICES += tplink_tl-wpa8631p-v3 + define Device/ubnt_edgerouter_common $(Device/dsa-migration) $(Device/uimage-lzma-loader) diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds index b167cff857d..672c7b06689 100644 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds @@ -117,6 +117,9 @@ tplink,re650-v1) ucidef_set_led_netdev "eth_act" "LAN act" "green:eth_act" "lan" "tx rx" ucidef_set_led_netdev "eth_link" "LAN link" "green:eth_link" "lan" "link" ;; +tplink,tl-wpa8631p-v3) + ucidef_set_led_netdev "lan" "LAN" "green:lan" "br-lan" + ;; xiaomi,mi-router-ac2100) ucidef_set_led_netdev "wan-blue" "WAN (blue)" "blue:wan" "wan" ;; diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network index 9af169fbef6..3e934899bb4 100644 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network @@ -67,6 +67,9 @@ ramips_setup_interfaces() tplink,eap615-wall-v1) ucidef_set_interface_lan "lan0 lan1 lan2 lan3" ;; + tplink,tl-wpa8631p-v3) + ucidef_set_interface_lan "lan1 lan2 lan3 plc0" + ;; ubnt,edgerouter-x) ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4" "eth0" ;;