[openwrt/openwrt] ramips: mt76x8: add support for Cudy TR1200 v1

LEDE Commits lede-commits at lists.infradead.org
Wed Jun 5 01:44:57 PDT 2024


nick pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/f1091ef7ac3596f1e401b918a36273672acbe389

commit f1091ef7ac3596f1e401b918a36273672acbe389
Author: Luis Mita <luis at luismita.com>
AuthorDate: Thu May 30 14:50:23 2024 -0400

    ramips: mt76x8: add support for Cudy TR1200 v1
    
    Hardware:
     - SoC: MediaTek MT7628AN (MIPS 580MHz)
     - Flash: 16 MiB XMC 25QH128CH10
     - RAM: 128 MiB ESMT M14D1G1664A
     - WLAN: 2.4 GHz (MT7628), 5 GHz (MT7613BEN 802.11ac)
     - Ethernet: 1x 10/100 Mbps WAN, 1x 10/100 LAN (MT7628)
     - USB 2.0 port
     - Buttons: 1 Reset button, 1 slider button
     - LEDs: 1x Red, 1x White
     - Serial console: unpopulated header, 115200 8n1
     - Power: 5 VDC, 2 A
    
    MAC addresses:
    +---------+-------------------+-----------+
    |         | MAC               | Algorithm |
    +---------+-------------------+-----------+
    | WAN     | 80:af:ca:xx:xx:x0 | label     |
    | LAN     | 80:af:ca:xx:xx:x0 | label     |
    | WLAN 2g | 80:af:ca:xx:xx:x0 | label     |
    | WLAN 5g | 80:af:ca:xx:xx:x2 | label+2   |
    +---------+-------------------+-----------+
    
    Installation:
    The installation must be done via TFTP by disassembling the router.
    On other occasions Cudy has distributed intermediate firmware to make
    installation easier, and so I recommend checking the Wiki for this
    device if there is a more convenient solution than the one below.
    
    To install using TFTP:
    1. Upgrade to a beta firmware (signed by Cudy) that can be downloaded
    from the wiki. This is required in order to use an unlocked u-boot.
    2. Connect to UART.
    3. While the router is turning on, press 1.
    4. Connect to LAN and set your IP to 192.168.1.88/24. Configure a TFTP
    server and an OpenWrt initramfs-kernel.bin firmware file as recovery.bin.
    5. Press Enter three times. Verify the filename.
    6. If you can reach LuCI or SSH now, just use the sysupgrade image with
    the 'Keep settings' option turned off.
    
    If you don't want to use the beta firmware nor the unlocked u-boot, you
    can install the firmware writing the sysupgrade image on the firmware
    partition of the SPI flash.
    
    Signed-off-by: Luis Mita <luis at luismita.com>
---
 .../linux/ramips/dts/mt7628an_cudy_tr1200-v1.dts   | 198 +++++++++++++++++++++
 target/linux/ramips/image/mt76x8.mk                |  11 ++
 .../mt76x8/base-files/etc/board.d/02_network       |   4 +
 3 files changed, 213 insertions(+)

diff --git a/target/linux/ramips/dts/mt7628an_cudy_tr1200-v1.dts b/target/linux/ramips/dts/mt7628an_cudy_tr1200-v1.dts
new file mode 100644
index 0000000000..d087530782
--- /dev/null
+++ b/target/linux/ramips/dts/mt7628an_cudy_tr1200-v1.dts
@@ -0,0 +1,198 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7628an.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+	compatible = "cudy,tr1200", "mediatek,mt7628an-soc";
+	model = "Cudy TR1200";
+
+	aliases {
+		led-boot = &led_status;
+		led-running = &led_status;
+		led-failsafe = &led_status;
+		led-upgrade = &led_status;
+		label-mac-device = ðernet;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200";
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+		};
+
+		mode {
+			label = "mode";
+			linux,input-type = <EV_SW>;
+			linux,code = <BTN_0>;
+			gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+			debounce-interval = <60>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_status: led_0 {
+			function = LED_FUNCTION_POWER;
+			color = <LED_COLOR_ID_RED>;
+			gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+		};
+
+		led_1 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&gpio 43 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio_export {
+		compatible = "gpio-export";
+
+		usb {
+			gpio-export,name = "usb";
+			gpio-export,output = <1>;
+			gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&spi0 {
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <40000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x0 0x30000>;
+				read-only;
+			};
+
+			partition at 30000 {
+				label = "u-boot-env";
+				reg = <0x30000 0x10000>;
+				read-only;
+			};
+
+			partition at 40000 {
+				label = "factory";
+				reg = <0x40000 0x10000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					eeprom_factory_0: eeprom at 0 {
+						reg = <0x0 0x400>;
+					};
+
+					eeprom_factory_8000: eeprom at 8000 {
+						reg = <0x8000 0x4da8>;
+					};
+				};
+			};
+
+			partition at 50000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x50000 0xf80000>;
+			};
+
+			partition at fd0000 {
+				label = "debug";
+				reg = <0xfd0000 0x10000>;
+				read-only;
+			};
+
+			partition at fe0000 {
+				label = "backup";
+				reg = <0xfe000 0x10000>;
+				read-only;
+			};
+
+			partition at ff0000 {
+				label = "bdinfo";
+				reg = <0xff0000 0x10000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_bdinfo_de00: macaddr at de00 {
+						compatible = "mac-base";
+						reg = <0xde00 0x6>;
+						#nvmem-cell-cells = <1>;
+					};
+				};
+			};
+		};
+	};
+};
+
+&state_default {
+	gpio {
+		groups = "i2c", "gpio", "wdt", "p0led_an", "wled_an";
+		function = "gpio";
+	};
+};
+
+&ehci {
+	status = "okay";
+};
+
+&ohci {
+	status = "okay";
+};
+
+&pcie {
+	status = "okay";
+};
+
+&pcie0 {
+	wifi at 0,0 {
+		compatible = "mediatek,mt76";
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&eeprom_factory_8000>, <&macaddr_bdinfo_de00 2>;
+		nvmem-cell-names = "eeprom", "mac-address";
+		ieee80211-freq-limit = <5000000 6000000>;
+	};
+};
+
+&wmac {
+	status = "okay";
+
+	nvmem-cells = <&eeprom_factory_0>, <&macaddr_bdinfo_de00 0>;
+	nvmem-cell-names = "eeprom", "mac-address";
+};
+
+&ethernet {
+	nvmem-cells = <&macaddr_bdinfo_de00 0>;
+	nvmem-cell-names = "mac-address";
+};
+
+&esw {
+	mediatek,portmap = <0x3d>;
+	mediatek,portdisable = <0x3c>;
+};
diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk
index 37c5a034c4..b33a789398 100644
--- a/target/linux/ramips/image/mt76x8.mk
+++ b/target/linux/ramips/image/mt76x8.mk
@@ -147,6 +147,17 @@ define Device/comfast_cf-wr758ac-v2
 endef
 TARGET_DEVICES += comfast_cf-wr758ac-v2
 
+define Device/cudy_tr1200-v1
+  IMAGE_SIZE := 15872k
+  DEVICE_VENDOR := Cudy
+  DEVICE_MODEL := TR1200
+  DEVICE_VARIANT := v1
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport \
+	kmod-mt7615e kmod-mt7663-firmware-ap
+  SUPPORTED_DEVICES += R46
+endef
+TARGET_DEVICES += cudy_tr1200-v1
+
 define Device/cudy_wr1000
   IMAGE_SIZE := 7872k
   IMAGES += factory.bin
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
index 9fee26e122..bec8e9e3df 100644
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
@@ -94,6 +94,10 @@ ramips_setup_interfaces()
 		ucidef_add_switch "switch0" \
 			"4:lan" "6 at eth0"
 		;;
+	cudy,tr1200)
+		ucidef_add_switch "switch0" \
+			"0:lan" "1:wan" "6 at eth0"
+		;;
 	cudy,wr1000)
 		ucidef_add_switch "switch0" \
 			"2:lan:2" "3:lan:1" "4:wan" "6 at eth0"




More information about the lede-commits mailing list