forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mediatek: add support for Routerich AX3000
Routerich AX3000 is a wireless WiFi 6 router. Specification: - SoC : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3 GHz - RAM : DDR3 256 MiB (ESMT M15T2G16128A) - Flash : SPI-NAND 128 MiB (ESMT F50L1G41LB) - WLAN : MediaTek MT7976CN dual-band WiFi 6 - 2.4 GHz : b/g/n/ax, MIMO 2x2 - 5 GHz : a/n/ac/ax, MIMO 2x2 - Ethernet : 10/100/1000 Mbps x4 (MediaTek MT7531AE) - USB : 1x 2.0 - UART : through-hole on PCB - [J500] GND, TX, RX, 3.3V (115200n8) - Button : Mesh, Reset - LED : Power, WiFi (2.4g and 5g), MESH, LAN1-3, WAN - Power : 12 VDC, 1.5 A Flash instruction: Flash OpenWrt 'sysupgrade.bin' using web-interface (without keeping settings) Return to stock: Do sysupgrade with stock firmware image (without keeping settings) Recovery: Connect uart, use u-boot menu to flash stock firmware image or boot OpenWrt initramfs image. MAC addresses: +---------+-------------------+-----------+ | | MAC | Algorithm | +---------+-------------------+-----------+ | WAN | 24:0f:5e:xx:xx:b4 | label | | LAN | 24:0f:5e:xx:xx:b5 | label+1 | | WLAN 2g | 24:0f:5e:xx:xx:b6 | label+2 | | WLAN 5g | 24:0f:5e:xx:xx:b7 | label+3 | +---------+-------------------+-----------+ The label MAC was found in 'Factory', 0x24 Co-authored-by: Mikhail Zhilkin <[email protected]> Signed-off-by: Maximilian Weinmann <[email protected]>
- Loading branch information
1 parent
666c80d
commit e14451d
Showing
6 changed files
with
379 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,351 @@ | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
/dts-v1/; | ||
#include "mt7981.dtsi" | ||
|
||
#include <dt-bindings/gpio/gpio.h> | ||
#include <dt-bindings/input/input.h> | ||
#include <dt-bindings/leds/common.h> | ||
|
||
/ { | ||
model = "Routerich AX3000"; | ||
compatible = "routerich,ax3000", "mediatek,mt7981"; | ||
|
||
aliases { | ||
label-mac-device = &wan; | ||
|
||
led-boot = &led_status_blue; | ||
led-failsafe = &led_status_blue; | ||
led-running = &led_status_blue; | ||
led-upgrade = &led_status_blue; | ||
|
||
serial0 = &uart0; | ||
}; | ||
|
||
chosen { | ||
stdout-path = "serial0:115200n8"; | ||
}; | ||
|
||
memory { | ||
reg = <0 0x40000000 0 0x10000000>; | ||
}; | ||
|
||
gpio-keys { | ||
compatible = "gpio-keys"; | ||
|
||
mesh { | ||
label = "mesh"; | ||
linux,code = <KEY_WPS_BUTTON>; | ||
gpios = <&pio 0 GPIO_ACTIVE_LOW>; | ||
}; | ||
|
||
reset { | ||
label = "reset"; | ||
gpios = <&pio 1 GPIO_ACTIVE_LOW>; | ||
linux,code = <KEY_RESTART>; | ||
}; | ||
}; | ||
|
||
leds { | ||
compatible = "gpio-leds"; | ||
|
||
led-0 { | ||
label = "amber:wifi_5g"; | ||
color = <LED_COLOR_ID_AMBER>; | ||
function = LED_FUNCTION_WLAN; | ||
function-enumerator = <0>; | ||
gpios = <&pio 5 GPIO_ACTIVE_LOW>; | ||
linux,default-trigger = "phy1radio"; | ||
}; | ||
|
||
led-1 { | ||
label = "amber:wan"; | ||
color = <LED_COLOR_ID_AMBER>; | ||
function = LED_FUNCTION_WAN; | ||
function-enumerator = <0>; | ||
gpios = <&pio 6 GPIO_ACTIVE_HIGH>; | ||
}; | ||
|
||
led_status_blue: led-2 { | ||
label = "blue:status"; | ||
color = <LED_COLOR_ID_BLUE>; | ||
function = LED_FUNCTION_LAN; | ||
function-enumerator = <0>; | ||
gpios = <&pio 7 GPIO_ACTIVE_LOW>; | ||
panic-indicator; | ||
}; | ||
|
||
led-3 { | ||
label = "blue:lan1"; | ||
color = <LED_COLOR_ID_BLUE>; | ||
function = LED_FUNCTION_LAN; | ||
function-enumerator = <1>; | ||
gpios = <&pio 9 GPIO_ACTIVE_LOW>; | ||
}; | ||
|
||
led-4 { | ||
label = "blue:lan2"; | ||
color = <LED_COLOR_ID_BLUE>; | ||
function = LED_FUNCTION_LAN; | ||
function-enumerator = <2>; | ||
gpios = <&pio 10 GPIO_ACTIVE_LOW>; | ||
}; | ||
|
||
led-5 { | ||
label = "blue:lan3"; | ||
color = <LED_COLOR_ID_BLUE>; | ||
function = LED_FUNCTION_LAN; | ||
function-enumerator = <3>; | ||
gpios = <&pio 11 GPIO_ACTIVE_LOW>; | ||
}; | ||
|
||
led-6 { | ||
label = "blue:wan"; | ||
color = <LED_COLOR_ID_BLUE>; | ||
function = LED_FUNCTION_WAN; | ||
function-enumerator = <1>; | ||
gpios = <&pio 12 GPIO_ACTIVE_LOW>; | ||
}; | ||
|
||
led-7 { | ||
label = "blue:wifi_2g"; | ||
color = <LED_COLOR_ID_BLUE>; | ||
function = LED_FUNCTION_WLAN; | ||
function-enumerator = <1>; | ||
gpios = <&pio 34 GPIO_ACTIVE_LOW>; | ||
linux,default-trigger = "phy0radio"; | ||
}; | ||
|
||
led-8 { | ||
label = "blue:mesh"; | ||
color = <LED_COLOR_ID_BLUE>; | ||
function = LED_FUNCTION_WLAN; | ||
function-enumerator = <2>; | ||
gpios = <&pio 35 GPIO_ACTIVE_LOW>; | ||
}; | ||
}; | ||
}; | ||
|
||
ð { | ||
status = "okay"; | ||
|
||
gmac0: mac@0 { | ||
compatible = "mediatek,eth-mac"; | ||
reg = <0>; | ||
phy-mode = "2500base-x"; | ||
|
||
nvmem-cells = <&macaddr_factory_2a>; | ||
nvmem-cell-names = "mac-address"; | ||
|
||
fixed-link { | ||
speed = <2500>; | ||
full-duplex; | ||
pause; | ||
}; | ||
}; | ||
}; | ||
|
||
&mdio_bus { | ||
switch: switch@0 { | ||
compatible = "mediatek,mt7531"; | ||
reg = <31>; | ||
reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>; | ||
interrupt-controller; | ||
#interrupt-cells = <1>; | ||
interrupt-parent = <&pio>; | ||
interrupts = <38 IRQ_TYPE_LEVEL_HIGH>; | ||
}; | ||
}; | ||
|
||
&spi0 { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&spi0_flash_pins>; | ||
status = "okay"; | ||
|
||
spi_nand@0 { | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
compatible = "spi-nand"; | ||
reg = <0>; | ||
|
||
spi-max-frequency = <52000000>; | ||
|
||
spi-cal-enable; | ||
spi-cal-mode = "read-data"; | ||
spi-cal-datalen = <7>; | ||
spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>; | ||
spi-cal-addrlen = <5>; | ||
spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>; | ||
|
||
spi-tx-buswidth = <4>; | ||
spi-rx-buswidth = <4>; | ||
mediatek,nmbm; | ||
mediatek,bmt-max-ratio = <1>; | ||
mediatek,bmt-max-reserved-blocks = <64>; | ||
|
||
mediatek,bmt-remap-range = | ||
<0x0 0x580000>, | ||
<0x6580000 0x6680000>; | ||
|
||
partitions { | ||
compatible = "fixed-partitions"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
partition@0_all { | ||
label = "spi0.0"; | ||
reg = <0x0 0x8000000>; | ||
read-only; | ||
}; | ||
|
||
partition@0 { | ||
label = "BL2"; | ||
reg = <0x0 0x100000>; | ||
read-only; | ||
}; | ||
|
||
partition@100000 { | ||
label = "u-boot-env"; | ||
reg = <0x100000 0x80000>; | ||
}; | ||
|
||
factory: partition@180000 { | ||
compatible = "nvmem-cells"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
label = "Factory"; | ||
reg = <0x180000 0x200000>; | ||
read-only; | ||
|
||
eeprom_factory_0: eeprom@0 { | ||
reg = <0x0 0xa0000>; | ||
}; | ||
|
||
macaddr_factory_24: macaddr@24 { | ||
reg = <0x24 0x6>; | ||
}; | ||
|
||
macaddr_factory_2a: macaddr@2a { | ||
reg = <0x2a 0x6>; | ||
}; | ||
}; | ||
|
||
partition@380000 { | ||
label = "FIP"; | ||
reg = <0x380000 0x200000>; | ||
read-only; | ||
}; | ||
|
||
partition@580000 { | ||
label = "ubi"; | ||
reg = <0x580000 0x4000000>; | ||
}; | ||
|
||
partition@4580000 { | ||
label = "firmware_backup"; | ||
reg = <0x4580000 0x2000000>; | ||
read-only; | ||
}; | ||
|
||
partition@6580000 { | ||
label = "zrsave"; | ||
reg = <0x6580000 0x100000>; | ||
read-only; | ||
}; | ||
|
||
partition@6680000 { | ||
label = "config2"; | ||
reg = <0x6680000 0x100000>; | ||
read-only; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
&switch { | ||
ports { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
port@1 { | ||
reg = <0>; | ||
label = "lan1"; | ||
}; | ||
|
||
port@2 { | ||
reg = <2>; | ||
label = "lan2"; | ||
}; | ||
|
||
port@3 { | ||
reg = <3>; | ||
label = "lan3"; | ||
}; | ||
|
||
wan: port@4 { | ||
reg = <4>; | ||
label = "wan"; | ||
|
||
nvmem-cells = <&macaddr_factory_24>; | ||
nvmem-cell-names = "mac-address"; | ||
}; | ||
|
||
port@6 { | ||
reg = <6>; | ||
ethernet = <&gmac0>; | ||
phy-mode = "2500base-x"; | ||
|
||
fixed-link { | ||
speed = <2500>; | ||
full-duplex; | ||
pause; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
&pio { | ||
spi0_flash_pins: spi0-pins { | ||
mux { | ||
function = "spi"; | ||
groups = "spi0", "spi0_wp_hold"; | ||
}; | ||
|
||
conf-pu { | ||
pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP"; | ||
drive-strength = <8>; | ||
mediatek,pull-up-adv = <0>; /* bias-disable */ | ||
}; | ||
|
||
conf-pd { | ||
pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO"; | ||
drive-strength = <8>; | ||
mediatek,pull-up-adv = <0>; /* bias-disable */ | ||
}; | ||
}; | ||
}; | ||
|
||
&uart0 { | ||
status = "okay"; | ||
}; | ||
|
||
&usb_phy { | ||
status = "okay"; | ||
}; | ||
|
||
&watchdog { | ||
status = "okay"; | ||
}; | ||
|
||
&wifi { | ||
status = "okay"; | ||
|
||
nvmem-cells = <&eeprom_factory_0>; | ||
nvmem-cell-names = "eeprom"; | ||
}; | ||
|
||
&xhci { | ||
status = "okay"; | ||
|
||
mediatek,u3p-dis-msk = <0x1>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.