]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
ramips: add support for TP-Link TL-MR6400 v7 21542/head
authorMiguel Fuertes <mjfuertesf@gmail.com>
Sun, 18 Jan 2026 15:51:22 +0000 (16:51 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Fri, 30 Jan 2026 13:20:34 +0000 (14:20 +0100)
Add DTS files for the TL-MR6400 v7 16M layout.

Update mt76x8 image definition and adjust LED/network config.

Signed-off-by: Miguel Fuertes <mjfuertesf@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21542
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/ramips/dts/mt7628an_tplink_16m.dtsi [new file with mode: 0644]
target/linux/ramips/dts/mt7628an_tplink_tl-mr6400-v7.dts [new file with mode: 0644]
target/linux/ramips/image/mt76x8.mk
target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
target/linux/ramips/mt76x8/base-files/etc/board.d/02_network

diff --git a/target/linux/ramips/dts/mt7628an_tplink_16m.dtsi b/target/linux/ramips/dts/mt7628an_tplink_16m.dtsi
new file mode 100644 (file)
index 0000000..6d3ad0d
--- /dev/null
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7628an.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       chosen {
+               bootargs = "console=ttyS0,115200";
+       };
+
+       aliases {
+               label-mac-device = &ethernet;
+       };
+};
+
+&spi0 {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <10000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "boot";
+                               reg = <0x0 0x20000>;
+                               read-only;
+                       };
+
+                       partition@20000 {
+                               compatible = "tplink,firmware";
+                               label = "firmware";
+                               reg = <0x20000 0xfa0000>;
+                       };
+
+                       partition@fc0000 {
+                               label = "config";
+                               reg = <0xfc0000 0x10000>;
+                               read-only;
+                       };
+
+                       factory: partition@fd0000 {
+                               label = "factory";
+                               reg = <0xfd0000 0x30000>;
+                               read-only;
+
+                               nvmem-layout {
+                                       compatible = "fixed-layout";
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       macaddr_factory_f100: macaddr@f100 {
+                                               compatible = "mac-base";
+                                               reg = <0xf100 0x6>;
+                                               #nvmem-cell-cells = <1>;
+                                       };
+
+                                       eeprom_factory_20000: eeprom@20000 {
+                                               reg = <0x20000 0x400>;
+                                       };
+
+                                       eeprom_factory_28000: eeprom@28000 {
+                                               reg = <0x28000 0x200>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
diff --git a/target/linux/ramips/dts/mt7628an_tplink_tl-mr6400-v7.dts b/target/linux/ramips/dts/mt7628an_tplink_tl-mr6400-v7.dts
new file mode 100644 (file)
index 0000000..349d29c
--- /dev/null
@@ -0,0 +1,115 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include <dt-bindings/leds/common.h>
+
+#include "mt7628an_tplink_16m.dtsi"
+
+/ {
+       compatible = "tplink,tl-mr6400-v7", "mediatek,mt7628an-soc";
+       model = "TP-Link TL-MR6400 v7";
+
+       aliases {
+               led-boot = &led_power;
+               led-failsafe = &led_power;
+               led-running = &led_power;
+               led-upgrade = &led_power;
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+
+               rfkill {
+                       label = "rfkill";
+                       gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RFKILL>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               wlan {
+                       function = LED_FUNCTION_WLAN;
+                       color = <LED_COLOR_ID_WHITE>;
+                       gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy0tpt";
+               };
+
+               lan {
+                       function = LED_FUNCTION_LAN;
+                       color = <LED_COLOR_ID_WHITE>;
+                       gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+               };
+
+               led_power: power {
+                       function = LED_FUNCTION_POWER;
+                       color = <LED_COLOR_ID_WHITE>;
+                       gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+               };
+
+               wan {
+                       function = LED_FUNCTION_WAN;
+                       color = <LED_COLOR_ID_WHITE>;
+                       gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
+               };
+
+               signal1 {
+                       label = "white:signal1";
+                       gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
+               };
+
+               signal2 {
+                       label = "white:signal2";
+                       gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
+               };
+
+               signal3 {
+                       label = "white:signal3";
+                       gpios = <&gpio 43 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&state_default {
+       gpio {
+               groups = "i2c", "p0led_an", "p1led_an", "p2led_an", "p3led_an", "p4led_an", "uart1", "wdt";
+               function = "gpio";
+       };
+};
+
+&esw {
+       mediatek,portmap = <0x37>;
+       mediatek,portdisable = <0x30>;
+};
+
+&wmac {
+       status = "okay";
+
+       nvmem-cells = <&eeprom_factory_20000>, <&macaddr_factory_1f100 0>;
+       nvmem-cell-names = "eeprom", "mac-address";
+};
+
+&ethernet {
+       nvmem-cells = <&macaddr_factory_1f100 0>;
+       nvmem-cell-names = "mac-address";
+};
+
+&factory {
+       nvmem-layout {
+               compatible = "fixed-layout";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               macaddr_factory_1f100: macaddr@1f100 {
+                       compatible = "mac-base";
+                       reg = <0x1f100 0x6>;
+                       #nvmem-cell-cells = <1>;
+               };
+       };
+};
index e379f253d42d1040bc8def6119cd55db95099949..d65e3e5a6fcc90fcbc8ff8ad6250ed6ded6ccc16 100644 (file)
@@ -1053,6 +1053,22 @@ define Device/tplink_tl-mr6400-v5
 endef
 TARGET_DEVICES += tplink_tl-mr6400-v5
 
+define Device/tplink_tl-mr6400-v7
+  $(Device/tplink-v2)
+  IMAGE_SIZE := 15872k
+  DEVICE_MODEL := TL-MR6400
+  DEVICE_VARIANT := v7
+  TPLINK_FLASHLAYOUT := 16Mmtk
+  TPLINK_HWID := 0x64000007
+  TPLINK_HWREV := 0x7
+  TPLINK_HWREVADD := 0x7
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport \
+       kmod-usb-serial-option kmod-usb-net-qmi-wwan uqmi
+  IMAGES := sysupgrade.bin tftp-recovery.bin
+  IMAGE/tftp-recovery.bin := pad-extra 128k | $$(IMAGE/factory.bin)
+endef
+TARGET_DEVICES += tplink_tl-mr6400-v7
+
 define Device/tplink_tl-wa801nd-v5
   $(Device/tplink-v2)
   IMAGE_SIZE := 7808k
index c44975ae462c115b62a8e5761734bd028b74f40c..f46b53d6f36f49d1012452c70174ad62654fd80f 100644 (file)
@@ -149,7 +149,8 @@ tplink,tl-mr6400-v4)
        ucidef_set_led_switch "lan" "lan" "white:lan" "switch0" "0x0e"
        ucidef_set_led_switch "wan" "wan" "white:wan" "switch0" "0x10"
        ;;
-tplink,tl-mr6400-v5)
+tplink,tl-mr6400-v5|\
+tplink,tl-mr6400-v7)
        ucidef_set_led_switch "lan" "lan" "white:lan" "switch0" "0x07"
        ucidef_set_led_switch "wan" "wan" "white:wan" "switch0" "0x08"
        ;;
index f0d86bb366820709d6a8da1edc0c9a9fb7e01e55..9e8b6b2f185b29383d392dbc729f0fe5880e97f3 100644 (file)
@@ -213,7 +213,8 @@ ramips_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
                ;;
-       tplink,tl-mr6400-v5)
+       tplink,tl-mr6400-v5|\
+       tplink,tl-mr6400-v7)
                ucidef_add_switch "switch0" \
                        "0:lan" "1:lan" "2:lan" "3:wan" "6@eth0"
                ;;