[openwrt/openwrt] mediatek: add support for Elecom WRC-G01
LEDE Commits
lede-commits at lists.infradead.org
Fri Dec 26 14:50:44 PST 2025
hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/436c9af039ee6dded975ec93a6d2787ba3842790
commit 436c9af039ee6dded975ec93a6d2787ba3842790
Author: Yuhei Amemiya <minihui at me.com>
AuthorDate: Sun Dec 21 15:03:20 2025 +0800
mediatek: add support for Elecom WRC-G01
Hardware is identical to WRC-X3200GST3.
- SoC: MediaTek MT7622
- RAM: 512MB
- Flash: 128MB SPI-NAND
The -W suffix in the retail name (WRC-G01-W) denotes the casing color
and is omitted from the model name in the OpenWrt configuration to
maintain consistency with other Elecom devices.
Signed-off-by: Yuhei Amemiya <minihui at me.com>
Link: https://github.com/openwrt/openwrt/pull/21238
Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
.../linux/mediatek/dts/mt7622-elecom-wrc-g01.dts | 9 +
.../mediatek/dts/mt7622-elecom-wrc-x3200gst3.dts | 427 +--------------------
...00gst3.dts => mt7622-elecom-wrc-x3200gst3.dtsi} | 3 -
target/linux/mediatek/image/mt7622.mk | 25 +-
.../mt7622/base-files/lib/upgrade/platform.sh | 2 +
5 files changed, 32 insertions(+), 434 deletions(-)
diff --git a/target/linux/mediatek/dts/mt7622-elecom-wrc-g01.dts b/target/linux/mediatek/dts/mt7622-elecom-wrc-g01.dts
new file mode 100644
index 0000000000..510487625a
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7622-elecom-wrc-g01.dts
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "mt7622-elecom-wrc-x3200gst3.dtsi"
+
+/ {
+ model = "ELECOM WRC-G01";
+ compatible = "elecom,wrc-g01", "mediatek,mt7622";
+};
diff --git a/target/linux/mediatek/dts/mt7622-elecom-wrc-x3200gst3.dts b/target/linux/mediatek/dts/mt7622-elecom-wrc-x3200gst3.dts
index c78a6f4a07..3c75f99141 100644
--- a/target/linux/mediatek/dts/mt7622-elecom-wrc-x3200gst3.dts
+++ b/target/linux/mediatek/dts/mt7622-elecom-wrc-x3200gst3.dts
@@ -1,434 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/leds/common.h>
-#include <dt-bindings/pinctrl/mt65xx.h>
-
-#include "mt7622.dtsi"
-#include "mt6380.dtsi"
+#include "mt7622-elecom-wrc-x3200gst3.dtsi"
/ {
model = "ELECOM WRC-X3200GST3";
compatible = "elecom,wrc-x3200gst3", "mediatek,mt7622";
-
- aliases {
- serial0 = &uart0;
- led-boot = &led_power_green;
- led-failsafe = &led_power_red;
- led-running = &led_power_green;
- led-upgrade = &led_power_green;
- label-mac-device = &wan;
- };
-
- chosen {
- bootargs = "earlycon=uart8250,mmio32,0x11002000 console=ttyS0,115200n8 swiotlb=512";
- };
-
- memory at 40000000 {
- reg = <0 0x40000000 0 0x1f000000>;
- device_type = "memory";
- };
-
- leds {
- compatible = "gpio-leds";
-
- led-0 {
- gpios = <&pio 47 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_RED>;
- function = LED_FUNCTION_WPS;
- };
-
- led_power_red: led-1 {
- gpios = <&pio 48 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_RED>;
- function = LED_FUNCTION_POWER;
- function-enumerator = <1>;
- };
-
- led_power_green: led-2 {
- gpios = <&pio 49 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_GREEN>;
- function = LED_FUNCTION_POWER;
- function-enumerator = <2>;
- };
-
- led-3 {
- gpios = <&pio 50 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_BLUE>;
- function = LED_FUNCTION_POWER;
- function-enumerator = <3>;
- };
-
- led-4 {
- gpios = <&pio 85 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_WHITE>;
- function = LED_FUNCTION_WLAN;
- function-enumerator = <1>;
- linux,default-trigger = "phy0tpt";
- };
-
- led-5 {
- gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_WHITE>;
- function = LED_FUNCTION_WLAN;
- function-enumerator = <2>;
- linux,default-trigger = "phy1radio";
- };
- };
-
- keys {
- compatible = "gpio-keys";
-
- reset {
- label = "reset";
- gpios = <&pio 0 GPIO_ACTIVE_LOW>;
- linux,code = <KEY_RESTART>;
- };
-
- ap {
- label = "ap";
- gpios = <&pio 42 GPIO_ACTIVE_LOW>;
- linux,code = <BTN_0>;
- linux,input-type = <EV_SW>;
- };
-
- router {
- label = "router";
- gpios = <&pio 43 GPIO_ACTIVE_LOW>;
- linux,code = <BTN_1>;
- linux,input-type = <EV_SW>;
- };
-
- wps {
- label = "wps";
- gpios = <&pio 102 GPIO_ACTIVE_LOW>;
- linux,code = <KEY_WPS_BUTTON>;
- };
- };
-};
-
-&cpu0 {
- proc-supply = <&mt6380_vcpu_reg>;
- sram-supply = <&mt6380_vm_reg>;
-};
-
-&cpu1 {
- proc-supply = <&mt6380_vcpu_reg>;
- sram-supply = <&mt6380_vm_reg>;
-};
-
-&pio {
- eth_pins: eth-pins {
- mux {
- function = "eth";
- groups = "mdc_mdio", "rgmii_via_gmac2";
- };
- };
-
- pcie0_pins: pcie0-pins {
- mux {
- function = "pcie";
- groups = "pcie0_pad_perst",
- "pcie0_1_waken",
- "pcie0_1_clkreq";
- };
- };
-
- pmic_bus_pins: pmic-bus-pins {
- mux {
- function = "pmic";
- groups = "pmic_bus";
- };
- };
-
- pwm7_pins: pwm1-2-pins {
- mux {
- function = "pwm";
- groups = "pwm_ch7_2";
- };
- };
-
- /* Serial NAND is shared pin with SPI-NOR */
- serial_nand_pins: serial-nand-pins {
- mux {
- function = "flash";
- groups = "snfi";
- };
-
- conf-cmd-data {
- pins = "SPI_WP", "SPI_HOLD", "SPI_MOSI",
- "SPI_MISO", "SPI_CS";
- drive-strength = <MTK_DRIVE_16mA>;
- bias-pull-up;
- };
-
- conf-clk {
- pins = "SPI_CLK";
- drive-strength = <MTK_DRIVE_16mA>;
- bias-pull-down;
- };
- };
-
- uart0_pins: uart0-pins {
- mux {
- function = "uart";
- groups = "uart0_0_tx_rx" ;
- };
- };
-
- watchdog_pins: watchdog-pins {
- mux {
- function = "watchdog";
- groups = "watchdog";
- };
- };
-};
-
-ð {
- pinctrl-names = "default";
- pinctrl-0 = <ð_pins>;
- status = "okay";
-
- gmac0: mac at 0 {
- compatible = "mediatek,eth-mac";
- reg = <0>;
-
- phy-connection-type = "2500base-x";
-
- nvmem-cells = <&macaddr_factory_7fff4>;
- nvmem-cell-names = "mac-address";
-
- fixed-link {
- speed = <2500>;
- full-duplex;
- pause;
- };
- };
-
- mdio-bus {
- #address-cells = <1>;
- #size-cells = <0>;
-
- switch at 1f {
- compatible = "mediatek,mt7531";
- reg = <31>;
- interrupt-controller;
- #interrupt-cells = <1>;
- interrupt-parent = <&pio>;
- interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
- reset-gpios = <&pio 54 GPIO_ACTIVE_HIGH>;
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- wan: port at 0 {
- reg = <0>;
- label = "wan";
-
- nvmem-cells = <&macaddr_factory_7fffa>;
- nvmem-cell-names = "mac-address";
- };
-
- port at 1 {
- reg = <1>;
- label = "lan4";
- };
-
- port at 2 {
- reg = <2>;
- label = "lan3";
- };
-
- port at 3 {
- reg = <3>;
- label = "lan2";
- };
-
- port at 4 {
- reg = <4>;
- label = "lan1";
- };
-
- port at 6 {
- reg = <6>;
- ethernet = <&gmac0>;
- phy-mode = "2500base-x";
-
- fixed-link {
- speed = <2500>;
- full-duplex;
- pause;
- };
- };
- };
- };
- };
-};
-
-&bch {
- status = "okay";
-};
-
-&snfi {
- pinctrl-names = "default";
- pinctrl-0 = <&serial_nand_pins>;
- status = "okay";
-
- flash at 0 {
- compatible = "spi-nand";
- reg = <0>;
- spi-tx-bus-width = <4>;
- spi-rx-bus-width = <4>;
- nand-ecc-engine = <&snfi>;
- mediatek,bmt-v2;
- mediatek,bmt-table-size = <0x1000>;
- mediatek,bmt-remap-range = <0x0 0x8c0000>,
- <0x1bc0000 0x30c0000>;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition at 0 {
- label = "Preloader";
- reg = <0x0 0x80000>;
- read-only;
- };
-
- partition at 80000 {
- label = "ATF";
- reg = <0x80000 0x40000>;
- read-only;
- };
-
- partition at c0000 {
- label = "u-boot";
- reg = <0xc0000 0x80000>;
- read-only;
- };
-
- partition at 140000 {
- label = "u-boot-env";
- reg = <0x140000 0x80000>;
- read-only;
- };
-
- factory: partition at 1c0000 {
- label = "factory";
- reg = <0x1c0000 0x100000>;
- read-only;
-
- nvmem-layout {
- compatible = "fixed-layout";
- #address-cells = <1>;
- #size-cells = <1>;
-
- macaddr_factory_4: macaddr at 4 {
- compatible = "mac-base";
- reg = <0x4 0x6>;
- #nvmem-cell-cells = <1>;
- };
-
- macaddr_factory_7fff4: macaddr at 7fff4 {
- reg = <0x7fff4 0x6>;
- };
-
- macaddr_factory_7fffa: macaddr at 7fffa {
- reg = <0x7fffa 0x6>;
- };
- };
- };
-
- partition at 2c0000 {
- label = "kernel";
- reg = <0x2c0000 0x600000>;
- };
-
- partition at 8c0000 {
- label = "ubi";
- reg = <0x8c0000 0x1300000>;
- };
-
- partition at 1bc0000 {
- label = "tm_pattern";
- reg = <0x1bc0000 0x500000>;
- read-only;
- };
-
- partition at 20c0000 {
- label = "tm_key";
- reg = <0x20c0000 0x100000>;
- read-only;
- };
-
- partition at 21c0000 {
- label = "user_data";
- reg = <0x21c0000 0xf00000>;
- read-only;
- };
-
- partition at 30c0000 {
- label = "reserved";
- reg = <0x30c0000 0x4f40000>;
- read-only;
- };
- };
- };
-};
-
-&pcie0 {
- pinctrl-names = "default";
- pinctrl-0 = <&pcie0_pins>;
- status = "okay";
-};
-
-&slot0 {
- status = "okay";
-
- wifi at 0,0 {
- compatible = "mediatek,mt76";
- reg = <0x0000 0 0 0 0>;
- mediatek,mtd-eeprom = <&factory 0x5000>;
- ieee80211-freq-limit = <5000000 6000000>;
- nvmem-cells = <&macaddr_factory_4 1>;
- nvmem-cell-names = "mac-address";
- };
-};
-
-&pwm {
- pinctrl-names = "default";
- pinctrl-0 = <&pwm7_pins>;
- status = "okay";
-};
-
-&pwrap {
- pinctrl-names = "default";
- pinctrl-0 = <&pmic_bus_pins>;
- status = "okay";
-};
-
-&rtc {
- status = "disabled";
-};
-
-&uart0 {
- pinctrl-names = "default";
- pinctrl-0 = <&uart0_pins>;
- status = "okay";
-};
-
-&watchdog {
- pinctrl-names = "default";
- pinctrl-0 = <&watchdog_pins>;
- status = "okay";
-};
-
-&wmac {
- status = "okay";
-
- mediatek,mtd-eeprom = <&factory 0x0>;
};
diff --git a/target/linux/mediatek/dts/mt7622-elecom-wrc-x3200gst3.dts b/target/linux/mediatek/dts/mt7622-elecom-wrc-x3200gst3.dtsi
similarity index 98%
copy from target/linux/mediatek/dts/mt7622-elecom-wrc-x3200gst3.dts
copy to target/linux/mediatek/dts/mt7622-elecom-wrc-x3200gst3.dtsi
index c78a6f4a07..6061943719 100644
--- a/target/linux/mediatek/dts/mt7622-elecom-wrc-x3200gst3.dts
+++ b/target/linux/mediatek/dts/mt7622-elecom-wrc-x3200gst3.dtsi
@@ -10,9 +10,6 @@
#include "mt6380.dtsi"
/ {
- model = "ELECOM WRC-X3200GST3";
- compatible = "elecom,wrc-x3200gst3", "mediatek,mt7622";
-
aliases {
serial0 = &uart0;
led-boot = &led_power_green;
diff --git a/target/linux/mediatek/image/mt7622.mk b/target/linux/mediatek/image/mt7622.mk
index e45c064046..14d1330b36 100644
--- a/target/linux/mediatek/image/mt7622.mk
+++ b/target/linux/mediatek/image/mt7622.mk
@@ -213,10 +213,19 @@ define Device/elecom_wrc-2533gent
endef
TARGET_DEVICES += elecom_wrc-2533gent
-define Device/elecom_wrc-x3200gst3
+define Device/elecom_wrc-g01
+ $(Device/elecom_wrc-gst)
+ DEVICE_MODEL := WRC-G01
+ DEVICE_DTS := mt7622-elecom-wrc-g01
+ IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | \
+ append-ubi | check-size | \
+ elecom-wrc-gs-factory WRC-G01 0.00 -N | \
+ append-string MT7622_ELECOM_WRC-G01
+endef
+TARGET_DEVICES += elecom_wrc-g01
+
+define Device/elecom_wrc-gst
DEVICE_VENDOR := ELECOM
- DEVICE_MODEL := WRC-X3200GST3
- DEVICE_DTS := mt7622-elecom-wrc-x3200gst3
DEVICE_DTS_DIR := ../dts
IMAGE_SIZE := 25600k
KERNEL_SIZE := 6144k
@@ -224,12 +233,18 @@ define Device/elecom_wrc-x3200gst3
PAGESIZE := 2048
UBINIZE_OPTS := -E 5
IMAGES += factory.bin
+ IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+ DEVICE_PACKAGES := kmod-mt7915-firmware
+endef
+
+define Device/elecom_wrc-x3200gst3
+ $(Device/elecom_wrc-gst)
+ DEVICE_MODEL := WRC-X3200GST3
+ DEVICE_DTS := mt7622-elecom-wrc-x3200gst3
IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | \
append-ubi | check-size | \
elecom-wrc-gs-factory WRC-X3200GST3 0.00 -N | \
append-string MT7622_ELECOM_WRC-X3200GST3
- IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
- DEVICE_PACKAGES := kmod-mt7915-firmware
endef
TARGET_DEVICES += elecom_wrc-x3200gst3
diff --git a/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh
index 841397d4ef..471a8a127d 100755
--- a/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh
@@ -20,6 +20,7 @@ platform_do_upgrade() {
;;
dlink,eagle-pro-ai-m32-a1|\
dlink,eagle-pro-ai-r32-a1|\
+ elecom,wrc-g01|\
elecom,wrc-x3200gst3|\
mediatek,mt7622-rfb1-ubi|\
netgear,wax206|\
@@ -60,6 +61,7 @@ platform_check_image() {
;;
dlink,eagle-pro-ai-m32-a1|\
dlink,eagle-pro-ai-r32-a1|\
+ elecom,wrc-g01|\
elecom,wrc-x3200gst3|\
mediatek,mt7622-rfb1-ubi|\
netgear,wax206|\
More information about the lede-commits
mailing list