root@router:~# cat /tmp/dwr-961_a1-24.10.dts
/dts-v1/;
/ {
compatible = "dlink,dwr-961-a1", "ralink,mt7620a-soc";
model = "D-Link DWR-961 A1";
#address-cells = <0x01>;
#size-cells = <0x01>;
gsw@10110000 {
compatible = "mediatek,mt7620-gsw";
resets = <0x01 0x18>;
interrupt-parent = <0x02>;
interrupts = <0x11>;
phandle = <0x0a>;
reg = <0x10110000 0x8000>;
reset-names = "ephy";
mediatek,ephy-base = [08];
};
cpuintc {
compatible = "mti,cpu-interrupt-controller";
#interrupt-cells = <0x01>;
#address-cells = <0x00>;
phandle = <0x03>;
interrupt-controller;
};
ohci@101c1000 {
compatible = "generic-ohci";
phy-names = "usb";
status = "okay";
interrupt-parent = <0x02>;
#address-cells = <0x01>;
interrupts = <0x12>;
#size-cells = <0x00>;
phys = <0x10>;
reg = <0x101c1000 0x1000>;
port@1 {
#trigger-source-cells = <0x00>;
reg = <0x01>;
};
};
leds {
compatible = "gpio-leds";
wlan5g {
gpios = <0x16 0x04 0x01>;
label = "green:wlan5g";
linux,default-trigger = "phy0tpt";
};
lan {
gpios = <0x14 0x0c 0x01>;
color = <0x02>;
function = "lan";
};
sms {
gpios = <0x15 0x0f 0x01>;
label = "green:sms";
};
wlan2g {
gpios = <0x17 0x00 0x01>;
label = "green:wlan2g";
linux,default-trigger = "phy1tpt";
};
hidden-1 {
gpios = <0x14 0x0d 0x01>;
label = "green:hidden-1";
};
wan {
gpios = <0x14 0x0b 0x01>;
color = <0x02>;
function = "wan";
};
status {
gpios = <0x14 0x07 0x01>;
color = <0x02>;
function = "status";
};
signal_red {
gpios = <0x16 0x01 0x00>;
label = "red:signal";
};
hidden-2 {
gpios = <0x14 0x0e 0x01>;
label = "green:hidden-2";
};
signal_green {
gpios = <0x16 0x00 0x00>;
label = "green:signal";
};
4g {
gpios = <0x16 0x02 0x01>;
label = "green:4g";
};
3g {
gpios = <0x16 0x03 0x01>;
label = "green:3g";
};
};
usbphy {
compatible = "mediatek,mt7620-usbphy";
resets = <0x01 0x19 0x01 0x16>;
ralink,sysctl = <0x01>;
phandle = <0x10>;
reset-names = "host", "device";
#phy-cells = <0x00>;
};
aliases {
spi0 = "/palmbus@10000000/spi@b00";
led-boot = "/leds/status";
spi1 = "/palmbus@10000000/spi@b40";
led-running = "/leds/status";
led-upgrade = "/leds/status";
led-failsafe = "/leds/status";
serial0 = "/palmbus@10000000/uartlite@c00";
};
chosen {
bootargs = "console=ttyS0,57600";
};
keys {
compatible = "gpio-keys";
wps {
gpios = <0x14 0x02 0x01>;
label = "wps";
linux,code = <0x211>;
};
reset {
gpios = <0x14 0x01 0x01>;
label = "reset";
linux,code = <0x198>;
};
};
ehci@101c0000 {
compatible = "generic-ehci";
phy-names = "usb";
status = "okay";
interrupt-parent = <0x02>;
#address-cells = <0x01>;
interrupts = <0x12>;
#size-cells = <0x00>;
phys = <0x10>;
reg = <0x101c0000 0x1000>;
port@1 {
#trigger-source-cells = <0x00>;
reg = <0x01>;
};
};
wmac@10180000 {
compatible = "ralink,rt7620-wmac", "ralink,rt2880-wmac";
clocks = <0x01 0x10>;
interrupt-parent = <0x03>;
interrupts = <0x06>;
reg = <0x10180000 0x40000>;
ralink,eeprom = "soc_wmac.eeprom";
};
ethernet@10100000 {
compatible = "mediatek,mt7620-eth";
resets = <0x01 0x15 0x01 0x17>;
mediatek,switch = <0x0a>;
interrupt-parent = <0x03>;
#address-cells = <0x01>;
interrupts = <0x05>;
#size-cells = <0x00>;
reg = <0x10100000 0x10000>;
pinctrl-0 = <0x0b 0x0c>;
reset-names = "fe", "esw";
pinctrl-names = "default";
port@5 {
compatible = "mediatek,eth-port";
status = "okay";
mediatek,fixed-link = <0x3e8 0x01 0x01 0x01>;
reg = <0x05>;
phy-mode = "rgmii";
};
mdio-bus {
status = "okay";
#address-cells = <0x01>;
#size-cells = <0x00>;
ethernet-phy@0 {
qca,ar8327-initvals = <0x04 0x87300000 0x0c 0x00 0x7c 0x7e 0x80 0x1200 0x84 0x1200 0x88 0x1200 0x8c 0x1200 0x90 0x1200 0x94 0x00>;
reg = <0x00>;
phy-mode = "rgmii";
};
};
port@4 {
compatible = "mediatek,eth-port";
status = "disabled";
reg = <0x04>;
};
};
palmbus@10000000 {
compatible = "palmbus";
ranges = <0x00 0x10000000 0x1fffff>;
#address-cells = <0x01>;
#size-cells = <0x01>;
reg = <0x10000000 0x200000>;
gpio@638 {
compatible = "ralink,rt2880-gpio";
gpio-controller;
status = "okay";
#interrupt-cells = <0x02>;
interrupt-parent = <0x02>;
interrupts = <0x06>;
ngpios = <0x10>;
phandle = <0x15>;
reg = <0x638 0x24>;
#gpio-cells = <0x02>;
ralink,register-map = [00 04 08 0c 10 14 18 1c 20 24];
interrupt-controller;
};
watchdog@120 {
compatible = "ralink,rt2880-wdt";
clocks = <0x01 0x08>;
resets = <0x01 0x08>;
interrupt-parent = <0x02>;
interrupts = <0x01>;
reg = <0x120 0x10>;
reset-names = "wdt";
};
uart@500 {
compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
clocks = <0x01 0x09>;
resets = <0x01 0x0c>;
status = "disabled";
interrupt-parent = <0x02>;
interrupts = <0x05>;
reg = <0x500 0x100>;
reg-shift = <0x02>;
};
intc@200 {
compatible = "ralink,rt2880-intc";
#interrupt-cells = <0x01>;
interrupt-parent = <0x03>;
interrupts = <0x02>;
phandle = <0x02>;
reg = <0x200 0x100>;
interrupt-controller;
};
pcm@2000 {
compatible = "ralink,mt7620a-pcm";
resets = <0x01 0x0b>;
status = "disabled";
interrupt-parent = <0x02>;
interrupts = <0x04>;
reg = <0x2000 0x800>;
reset-names = "pcm";
};
systick@d00 {
compatible = "ralink,mt7620a-systick", "ralink,cevt-systick";
interrupt-parent = <0x03>;
interrupts = <0x07>;
reg = <0xd00 0x10>;
};
gpio@660 {
compatible = "ralink,rt2880-gpio";
gpio-controller;
status = "okay";
#interrupt-cells = <0x02>;
interrupt-parent = <0x02>;
interrupts = <0x06>;
ngpios = <0x20>;
phandle = <0x16>;
reg = <0x660 0x24>;
#gpio-cells = <0x02>;
ralink,register-map = [00 04 08 0c 10 14 18 1c 20 24];
interrupt-controller;
};
i2c@900 {
compatible = "ralink,rt2880-i2c";
clocks = <0x01 0x0a>;
resets = <0x01 0x10>;
status = "disabled";
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x900 0x100>;
pinctrl-0 = <0x04>;
reset-names = "i2c";
pinctrl-names = "default";
};
gpio@600 {
compatible = "ralink,rt2880-gpio";
gpio-controller;
#interrupt-cells = <0x02>;
interrupt-parent = <0x02>;
interrupts = <0x06>;
ngpios = <0x18>;
phandle = <0x14>;
reg = <0x600 0x34>;
#gpio-cells = <0x02>;
ralink,register-map = [00 04 08 0c 20 24 28 2c 30 34];
interrupt-controller;
};
timer@100 {
compatible = "ralink,rt2880-timer";
clocks = <0x01 0x07>;
interrupt-parent = <0x02>;
interrupts = <0x01>;
reg = <0x100 0x20>;
};
uartlite@c00 {
compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
clocks = <0x01 0x0e>;
resets = <0x01 0x13>;
interrupt-parent = <0x02>;
interrupts = <0x0c>;
reg = <0xc00 0x100>;
pinctrl-0 = <0x08>;
reg-shift = <0x02>;
pinctrl-names = "default";
};
spi@b40 {
compatible = "ralink,rt2880-spi";
clocks = <0x01 0x0d>;
resets = <0x01 0x12>;
status = "disabled";
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0xb40 0x60>;
pinctrl-0 = <0x07>;
reset-names = "spi";
pinctrl-names = "default";
};
spi@b00 {
compatible = "ralink,rt2880-spi";
clocks = <0x01 0x0c>;
resets = <0x01 0x12>;
status = "okay";
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0xb00 0x40>;
pinctrl-0 = <0x06>;
reset-names = "spi";
pinctrl-names = "default";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0x00>;
spi-max-frequency = <0x2faf080>;
partitions {
compatible = "fixed-partitions";
#address-cells = <0x01>;
#size-cells = <0x01>;
partition@0 {
read-only;
label = "jboot";
reg = <0x00 0x10000>;
};
partition@ff0000 {
read-only;
label = "config";
reg = <0xff0000 0x10000>;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <0x01>;
#size-cells = <0x01>;
eeprom@e08e {
reg = <0xe08e 0x200>;
};
macaddr@e50e {
compatible = "mac-base";
phandle = <0x13>;
reg = <0xe50e 0x06>;
#nvmem-cell-cells = <0x01>;
};
eeprom@e29e {
phandle = <0x12>;
reg = <0xe29e 0x200>;
};
};
};
partition@10000 {
compatible = "openwrt,uimage", "denx,uimage";
openwrt,offset = <0x10000>;
label = "firmware";
openwrt,ih-magic = <0x4f4b4c49>;
reg = <0x10000 0xfe0000>;
};
};
};
};
syscon@0 {
compatible = "ralink,mt7620-sysc", "syscon";
#reset-cells = <0x01>;
#clock-cells = <0x01>;
phandle = <0x01>;
reg = <0x00 0x100>;
};
i2s@a00 {
compatible = "mediatek,mt7620-i2s";
clocks = <0x01 0x0b>;
resets = <0x01 0x11>;
txdma-req = <0x02>;
status = "disabled";
interrupt-parent = <0x02>;
interrupts = <0x0a>;
dma-names = "tx", "rx";
rxdma-req = <0x03>;
reg = <0xa00 0x100>;
dmas = <0x05 0x04 0x05 0x06>;
reset-names = "i2s";
};
gdma@2800 {
#dma-cells = <0x01>;
compatible = "ralink,rt3883-gdma";
resets = <0x01 0x0e>;
#dma-requests = <0x10>;
status = "disabled";
interrupt-parent = <0x02>;
interrupts = <0x07>;
phandle = <0x05>;
reg = <0x2800 0x800>;
reset-names = "dma";
#dma-channels = <0x10>;
};
gpio@688 {
compatible = "ralink,rt2880-gpio";
gpio-controller;
status = "okay";
#interrupt-cells = <0x02>;
interrupt-parent = <0x02>;
interrupts = <0x06>;
ngpios = <0x01>;
phandle = <0x17>;
reg = <0x688 0x24>;
#gpio-cells = <0x02>;
ralink,register-map = [00 04 08 0c 10 14 18 1c 20 24];
interrupt-controller;
};
memc@300 {
compatible = "ralink,mt7620a-memc", "ralink,rt3050-memc";
interrupt-parent = <0x02>;
interrupts = <0x03>;
reg = <0x300 0x100>;
};
};
mmc@10130000 {
cap-mmc-highspeed;
compatible = "mediatek,mt7620-mmc", "ralink,mt7620-sdhci";
clocks = <0x01 0x0f 0x01 0x0f>;
cap-sd-highspeed;
resets = <0x01 0x1e>;
pinctrl-1 = <0x0d>;
clock-names = "source", "hclk";
status = "disabled";
interrupt-parent = <0x02>;
interrupts = <0x0e>;
disable-wp;
bus-width = <0x04>;
reg = <0x10130000 0x4000>;
pinctrl-0 = <0x0d>;
reset-names = "hrst";
vmmc-supply = <0x0e>;
max-frequency = <0x16e3600>;
vqmmc-supply = <0x0f>;
pinctrl-names = "default", "state_uhs";
};
regulator-1v8 {
compatible = "regulator-fixed";
enable-active-high;
phandle = <0x0f>;
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
regulator-always-on;
regulator-name = "mmc_io";
};
cpus {
#address-cells = <0x01>;
#size-cells = <0x00>;
cpu@0 {
compatible = "mips,mips24KEc";
reg = <0x00>;
};
};
pcie@10140000 {
compatible = "mediatek,mt7620-pci";
resets = <0x01 0x1a>;
device_type = "pci";
ranges = <0x2000000 0x00 0x00 0x20000000 0x00 0x10000000 0x1000000 0x00 0x00 0x10160000 0x00 0x10000>;
status = "okay";
bus-range = <0x00 0xff>;
interrupt-parent = <0x03>;
#address-cells = <0x03>;
interrupts = <0x04>;
#size-cells = <0x02>;
reg = <0x10140000 0x100 0x10142000 0x100>;
pinctrl-0 = <0x11>;
reset-names = "pcie0";
pinctrl-names = "default";
pcie@0,0 {
device_type = "pci";
ranges;
#address-cells = <0x03>;
#size-cells = <0x02>;
reg = <0x00 0x00 0x00 0x00 0x00>;
wifi@0,0 {
compatible = "mediatek,mt76";
mac-address = [28 3b 82 c8 64 a0];
nvmem-cells = <0x12 0x13 0x02>;
reg = <0x00 0x00 0x00 0x00 0x00>;
ieee80211-freq-limit = <0x4c4b40 0x5b8d80>;
nvmem-cell-names = "eeprom", "mac-address";
};
};
};
regulator-3v3 {
compatible = "regulator-fixed";
enable-active-high;
phandle = <0x0e>;
regulator-min-microvolt = <0x325aa0>;
regulator-max-microvolt = <0x325aa0>;
regulator-always-on;
regulator-name = "mmc_power";
};
pinctrl {
compatible = "ralink,rt2880-pinmux";
pinctrl-0 = <0x09>;
pinctrl-names = "default";
mdio {
phandle = <0x0c>;
mdio {
groups = "mdio";
function = "mdio";
};
};
wled {
wled {
groups = "wled";
function = "wled";
};
};
uartf_gpio {
uartf_gpio {
groups = "uartf";
function = "gpio uartf";
};
};
rgmii1 {
phandle = <0x0b>;
rgmii1 {
groups = "rgmii1";
function = "rgmii1";
};
};
mdio_refclk {
mdio_refclk {
groups = "mdio";
function = "refclk";
};
};
uartlite {
phandle = <0x08>;
uart {
groups = "uartlite";
function = "uartlite";
};
};
sdhci {
phandle = <0x0d>;
sdhci {
groups = "nd_sd";
function = "sd";
};
};
pa {
pa {
groups = "pa";
function = "pa";
};
};
spi_pins {
phandle = <0x06>;
spi_pins {
groups = "spi";
function = "spi";
};
};
pa_gpio {
pa {
groups = "pa";
function = "gpio";
};
};
pcm_i2s {
pcm_i2s {
groups = "uartf";
function = "pcm i2s";
};
};
gpio_i2s {
gpio_i2s {
groups = "uartf";
function = "gpio i2s";
};
};
pinctrl0 {
phandle = <0x09>;
default {
groups = "i2c", "wled", "spi refclk", "uartf", "ephy";
function = "gpio";
};
};
pcie {
phandle = <0x11>;
pcie {
groups = "pcie";
function = "pcie rst";
};
};
spi1 {
phandle = <0x07>;
spi1 {
groups = "spi refclk";
function = "spi refclk";
};
};
rgmii2 {
rgmii2 {
groups = "rgmii2";
function = "rgmii2";
};
};
i2c_pins {
phandle = <0x04>;
i2c_pins {
groups = "i2c";
function = "i2c";
};
};
ephy {
ephy {
groups = "ephy";
function = "ephy";
};
};
};
};