ramips: Add support for TP-Link TL-WPA8631P v3
authorJoe Mullally <jwmullally@gmail.com>
Sat, 19 Feb 2022 21:32:54 +0000 (21:32 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 6 Mar 2022 17:57:33 +0000 (18:57 +0100)
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@gmail.com>
target/linux/ramips/dts/mt7621_tplink_tl-wpa8631p-v3.dts [new file with mode: 0644]
target/linux/ramips/image/mt7621.mk
target/linux/ramips/mt7621/base-files/etc/board.d/01_leds
target/linux/ramips/mt7621/base-files/etc/board.d/02_network

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 (file)
index 0000000..7012c31
--- /dev/null
@@ -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@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>;
+       };
+};
index 1b75f0d7a6a7ca645c1a56284faf5d4aa3176048..1b7d095fc48750dd0fd0395456166a3245aa6df1 100644 (file)
@@ -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)
index b167cff857dfabefda7c787b39bd4fd9635a4e1c..672c7b06689997c403988370aaf9b7d018f065cf 100644 (file)
@@ -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"
        ;;
index 9af169fbef65d8868df0dd41fd9ceab673c7e0f4..3e934899bb4f2437cf73d060d309ce73b39a9140 100644 (file)
@@ -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"
                ;;