[openwrt/openwrt] ramips: Add support for TP-Link TL-WPA8631P v3

LEDE Commits lede-commits at lists.infradead.org
Sun Mar 6 11:44:29 PST 2022


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/6c743c3006f9b8446a11eab4af2f7997ab6a6a2f

commit 6c743c3006f9b8446a11eab4af2f7997ab6a6a2f
Author: Joe Mullally <jwmullally at gmail.com>
AuthorDate: Sat Feb 19 21:32:54 2022 +0000

    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 <jwmullally at gmail.com>
---
 .../ramips/dts/mt7621_tplink_tl-wpa8631p-v3.dts    | 200 +++++++++++++++++++++
 target/linux/ramips/image/mt7621.mk                |  11 ++
 .../ramips/mt7621/base-files/etc/board.d/01_leds   |   3 +
 .../mt7621/base-files/etc/board.d/02_network       |   3 +
 4 files changed, 217 insertions(+)

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 0000000000..7012c315c1
--- /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 <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	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 = <KEY_RESTART>;
+			gpios = <&gpio 31 GPIO_ACTIVE_LOW>;
+			debounce-interval = <60>;
+		};
+
+		led {
+			label = "led";
+			linux,code = <KEY_LIGHTS_TOGGLE>;
+			gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+			debounce-interval = <60>;
+		};
+
+		pair {
+			label = "pair";
+			linux,code = <BTN_1>;
+			gpios = <&gpio 32 GPIO_ACTIVE_LOW>;
+			debounce-interval = <60>;
+		};
+
+		wifi {
+			label = "wifi";
+			linux,code = <KEY_RFKILL>;
+			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 at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <25000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x0 0x20000>;
+				read-only;
+			};
+
+			partition at 20000 {
+				compatible = "tplink,firmware";
+				label = "firmware";
+				reg = <0x20000 0x710000>;
+			};
+
+			config: partition at 730000 {
+				label = "config";
+				reg = <0x730000 0xc0000>;
+				read-only;
+			};
+
+			radio: partition at 7f0000 {
+				label = "radio";
+				reg = <0x7f0000 0x10000>;
+				read-only;
+			};
+		};
+	};
+};
+
+&state_default {
+	gpio {
+		groups = "rgmii2", "wdt";
+		function = "gpio";
+	};
+};
+
+&pcie {
+	status = "okay";
+};
+
+&pcie0 {
+	wifi at 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 at 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 at 0 {
+			status = "okay";
+			label = "plc0";
+		};
+
+		port at 1 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port at 2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port at 3 {
+			status = "okay";
+			label = "lan3";
+		};
+	};
+};
+
+&config {
+	compatible = "nvmem-cells";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	macaddr_config_2008: macaddr at 2008 {
+		reg = <0x2008 0x6>;
+	};
+};
diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 1b75f0d7a6..1b7d095fc4 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 b167cff857..672c7b0668 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 9af169fbef..3e934899bb 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"
 		;;




More information about the lede-commits mailing list