Skip to content

Commit

Permalink
mediatek: add support for Ruijie RG-X60 Pro (coolsnowwolf#11745)
Browse files Browse the repository at this point in the history
Informations:
- SoC       : MediaTek MT7986A 2.0GHz
- RAM       : DDR3 512MiB (W634GU6QB)
- Flash     : SPI-NAND 128 MiB (W25N01GVZEIG)
- WLAN      : MediaTek MT7986A integration dual-band WiFi 6
  - 2.4 GHz : b/g/n/ax, MIMO 4x4
  - 5 GHz   : a/n/ac/ax, MIMO 4x4
- Ethernet  : 10/100/1000 Mbps x4 (MediaTek MT7531AE)
              2500Mbps x 1 (Realtek RTL8221B-VB-CG)
- UART      : through-hole on PCB
  - [J500] GND, TX, RX, 3.3V (115200n1)
- Buttons   : Mesh, Reset
- LEDs      : 1x Power (Blue)
                  1x Turbo (Purple)
- Power     : 12 VDC, 3 A

About MAC Address:
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| WAN     | 10:82:3D:XX:XX:9E | label     |
| LAN     | 10:82:3D:XX:XX:9F | label+1   |
| WLAN 2g | 10:82:3D:XX:XX:A0 | label+2   |
| WLAN 5g | 10:82:3D:XX:XX:A1 | label+3   |
+---------+-------------------+-----------+

Signed-off-by: Ashley Lee <[email protected]>
  • Loading branch information
NekokeCore authored Jan 5, 2024
1 parent 4fa8c8b commit e2a0954
Show file tree
Hide file tree
Showing 4 changed files with 286 additions and 1 deletion.
264 changes: 264 additions & 0 deletions target/linux/mediatek/dts/mt7986a-ruijie-rg-x60-pro.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,264 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)

/dts-v1/;
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>

#include "mt7986a.dtsi"

/ {
compatible = "ruijie,rg-x60-pro", "mediatek,mt7986a";
model = "Ruijie RG-X60 Pro";

aliases {
serial0 = &uart0;
led-boot = &led_system;
led-failsafe = &led_alarm;
led-running = &led_system;
led-upgrade = &led_alarm;
};

chosen {
bootargs = "console=ttyS0,115200n8 earlycon=uart8250,mmio32,0x11002000";
};

memory {
reg = <0 0x40000000 0 0x20000000>;
};

gpio-keys {
compatible = "gpio-keys";

button-0 {
label = "reset";
gpios = <&pio 9 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};

button-1 {
label = "mesh";
gpios = <&pio 10 GPIO_ACTIVE_LOW>;
linux,code = <BTN_MISC>;
};
};

leds-gpio {
compatible = "gpio-leds";

led_system: led-0 {
label = "white:status";
gpios = <&pio 22 GPIO_ACTIVE_LOW>;
};

led_alarm: led-1 {
label = "purple:status";
gpios = <&pio 11 GPIO_ACTIVE_LOW>;
};
};
};

&eth {
status = "okay";

gmac0: mac@0 {
compatible = "mediatek,eth-mac";
reg = <0>;
phy-mode = "2500base-x";

fixed-link {
speed = <2500>;
full-duplex;
pause;
};
};

gmac1: mac@1 {
compatible = "mediatek,eth-mac";
reg = <1>;
phy-handle = <&phy7>;
phy-mode = "2500base-x";
};

mdio: mdio-bus {
#address-cells = <1>;
#size-cells = <0>;
};
};

&mdio {
switch: switch@1f {
compatible = "mediatek,mt7531";
reg = <31>;
reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&pio>;
interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
};

phy7: phy@7 {
compatible = "ethernet-phy-ieee802.3-c45";
reg = <7>;
reset-assert-us = <100000>;
reset-deassert-us = <100000>;
reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
realtek,aldps-enable;
};
};

&pio {
spi_flash_pins: spi-flash-pins-33-to-38 {
mux {
function = "spi";
groups = "spi0", "spi0_wp_hold";
};
conf-pu {
pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
drive-strength = <8>;
mediatek,pull-up-adv = <0>; /* bias-disable */
};
conf-pd {
pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
drive-strength = <8>;
mediatek,pull-down-adv = <0>; /* bias-disable */
};
};

wf_2g_5g_pins: wf_2g_5g-pins {
mux {
function = "wifi";
groups = "wf_2g", "wf_5g";
};
conf {
pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
"WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
"WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
"WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
"WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
"WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
"WF1_TOP_CLK", "WF1_TOP_DATA";
drive-strength = <4>;
};
};
};

&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi_flash_pins>;
status = "okay";

flash@0 {
compatible = "spi-nand";
#address-cells = <1>;
#size-cells = <1>;
reg = <0>;

spi-max-frequency = <20000000>;
spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>;

partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

partition@0 {
label = "BL2";
reg = <0x000000 0x100000>;
read-only;
};

partition@100000 {
label = "u-boot-env";
reg = <0x100000 0x80000>;
read-only;
};

factory: partition@180000 {
label = "Factory";
reg = <0x180000 0x200000>;
read-only;
};

partition@380000 {
label = "FIP";
reg = <0x380000 0x200000>;
read-only;
};

partition@580000 {
label = "product_info";
reg = <0x580000 0x80000>;
read-only;
};

partition@600000 {
label = "kdump";
reg = <0x600000 0x80000>;
read-only;
};

partition@680000 {
label = "ubi";
reg = <0x680000 0x3f00000>;
};
};
};
};

&switch {
ports {
#address-cells = <1>;
#size-cells = <0>;

port@0 {
reg = <0>;
label = "lan1";
};

port@1 {
reg = <1>;
label = "lan2";
};

port@2 {
reg = <2>;
label = "lan3";
};

port@3 {
reg = <3>;
label = "lan4";
};

port@6 {
reg = <6>;
label = "cpu";
ethernet = <&gmac0>;
phy-mode = "2500base-x";

fixed-link {
speed = <2500>;
full-duplex;
pause;
};
};
};
};

&wmac {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&wf_2g_5g_pins>;

mediatek,mtd-eeprom = <&factory 0x0>;
};

&uart0 {
status = "okay";
};

&watchdog {
status = "okay";
};
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ mediatek_setup_interfaces()
case $board in
asus,tuf-ax4200|\
jdcloud,re-cs-05|\
netcore,n60)
netcore,n60|\
ruijie,rg-x60-pro)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" eth1
;;
bananapi,bpi-r3)
Expand Down Expand Up @@ -98,6 +99,11 @@ mediatek_setup_macs()
wan_mac=$(macaddr_add "$lan_mac" 1)
label_mac=$wan_mac
;;
ruijie,rg-x60-pro)
label_mac=$(mtd_get_mac_ascii product_info ethaddr)
wan_mac=$label_mac
lan_mac=$(macaddr_add "$label_mac" 1)
;;
xiaomi,mi-router-wr30u|\
xiaomi,mi-router-ax3000t|\
xiaomi,redmi-router-ax6000)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ case "$board" in
[ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress
;;
ruijie,rg-x60-pro)
addr=$(mtd_get_mac_ascii product_info ethaddr)
[ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress
;;
tplink,tl-xdr4288|\
tplink,tl-xdr6086|\
tplink,tl-xdr6088)
Expand Down
10 changes: 10 additions & 0 deletions target/linux/mediatek/image/filogic.mk
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,16 @@ define Device/qihoo_360t7
endef
TARGET_DEVICES += qihoo_360t7

define Device/ruijie_rg-x60-pro
DEVICE_VENDOR := Ruijie
DEVICE_MODEL := RG-X60 Pro
DEVICE_DTS := mt7986a-ruijie-rg-x60-pro
DEVICE_DTS_DIR := ../dts
DEVICE_PACKAGES := kmod-mt7986-firmware mt7986-wo-firmware
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
endef
TARGET_DEVICES += ruijie_rg-x60-pro

define Device/tplink_tl-common
DEVICE_VENDOR := TP-Link
DEVICE_DTS_DIR := ../dts
Expand Down

0 comments on commit e2a0954

Please sign in to comment.