summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Galabov <sgalabov@FreeBSD.org>2016-04-16 20:01:08 +0000
committerStanislav Galabov <sgalabov@FreeBSD.org>2016-04-16 20:01:08 +0000
commitcf83b4329607782cd9bf78ba49c30f415040936f (patch)
tree87d08bff9e5db23064e4562eab5fea7efd76acaf
parent70a157d7f538dba26eebe2bb1a86e16716996407 (diff)
downloadsrc-test-cf83b4329607782cd9bf78ba49c30f415040936f.tar.gz
src-test-cf83b4329607782cd9bf78ba49c30f415040936f.zip
Notes
-rw-r--r--sys/gnu/dts/mips/3G-6200N.dts109
-rw-r--r--sys/gnu/dts/mips/3G-6200NL.dts93
-rw-r--r--sys/gnu/dts/mips/3G150B.dts118
-rw-r--r--sys/gnu/dts/mips/3G300M.dts124
-rw-r--r--sys/gnu/dts/mips/A5-V11.dts123
-rw-r--r--sys/gnu/dts/mips/AI-BR100.dts109
-rw-r--r--sys/gnu/dts/mips/AIR3GII.dts98
-rw-r--r--sys/gnu/dts/mips/ALL0239-3G.dts115
-rw-r--r--sys/gnu/dts/mips/ALL0256N-4M.dts103
-rw-r--r--sys/gnu/dts/mips/ALL0256N-8M.dts103
-rw-r--r--sys/gnu/dts/mips/ALL5002.dts111
-rw-r--r--sys/gnu/dts/mips/ALL5003.dts111
-rw-r--r--sys/gnu/dts/mips/AR670W.dts105
-rw-r--r--sys/gnu/dts/mips/AR725W.dts115
-rw-r--r--sys/gnu/dts/mips/ASL26555-16M.dts156
-rw-r--r--sys/gnu/dts/mips/ASL26555-8M.dts150
-rw-r--r--sys/gnu/dts/mips/ATP-52B.dts96
-rw-r--r--sys/gnu/dts/mips/AWAPN2403.dts85
-rw-r--r--sys/gnu/dts/mips/AWM002-4M.dtsi15
-rw-r--r--sys/gnu/dts/mips/AWM002-8M.dtsi15
-rw-r--r--sys/gnu/dts/mips/AWM002-EVB-4M.dts53
-rw-r--r--sys/gnu/dts/mips/AWM002-EVB-8M.dts53
-rw-r--r--sys/gnu/dts/mips/AWM002.dtsi78
-rw-r--r--sys/gnu/dts/mips/AWM003-EVB.dts68
-rw-r--r--sys/gnu/dts/mips/ArcherC20i.dts118
-rw-r--r--sys/gnu/dts/mips/BC2.dts87
-rw-r--r--sys/gnu/dts/mips/BR-6425.dts71
-rw-r--r--sys/gnu/dts/mips/BR-6475ND.dts183
-rw-r--r--sys/gnu/dts/mips/BROADWAY.dts92
-rw-r--r--sys/gnu/dts/mips/CARAMBOLA.dts75
-rw-r--r--sys/gnu/dts/mips/CF-WR800N.dts115
-rw-r--r--sys/gnu/dts/mips/CY-SWR1100.dts152
-rw-r--r--sys/gnu/dts/mips/D105.dts92
-rw-r--r--sys/gnu/dts/mips/DAP-1350.dts125
-rw-r--r--sys/gnu/dts/mips/DB-WRT01.dts100
-rw-r--r--sys/gnu/dts/mips/DCS-930.dts113
-rw-r--r--sys/gnu/dts/mips/DCS-930L-B1.dts108
-rw-r--r--sys/gnu/dts/mips/DIR-300-B1.dts109
-rw-r--r--sys/gnu/dts/mips/DIR-300-B7.dts103
-rw-r--r--sys/gnu/dts/mips/DIR-320-B1.dts131
-rw-r--r--sys/gnu/dts/mips/DIR-600-B1.dts109
-rw-r--r--sys/gnu/dts/mips/DIR-600-B2.dts105
-rw-r--r--sys/gnu/dts/mips/DIR-610-A1.dts104
-rw-r--r--sys/gnu/dts/mips/DIR-615-D.dts105
-rw-r--r--sys/gnu/dts/mips/DIR-615-H1.dts125
-rw-r--r--sys/gnu/dts/mips/DIR-620-A1.dts118
-rw-r--r--sys/gnu/dts/mips/DIR-620-D1.dts112
-rw-r--r--sys/gnu/dts/mips/DIR-645.dts142
-rw-r--r--sys/gnu/dts/mips/DIR-810L.dts136
-rw-r--r--sys/gnu/dts/mips/DIR-860L-B1.dts129
-rw-r--r--sys/gnu/dts/mips/E1700.dts154
-rw-r--r--sys/gnu/dts/mips/ESR-9753.dts94
-rw-r--r--sys/gnu/dts/mips/EX2700.dts148
-rw-r--r--sys/gnu/dts/mips/F5D8235_V1.dts111
-rw-r--r--sys/gnu/dts/mips/F5D8235_V2.dts118
-rw-r--r--sys/gnu/dts/mips/F7C027.dts133
-rw-r--r--sys/gnu/dts/mips/FIREWRT.dts122
-rw-r--r--sys/gnu/dts/mips/FONERA20N.dts134
-rw-r--r--sys/gnu/dts/mips/FREESTATION5.dts102
-rw-r--r--sys/gnu/dts/mips/GL-MT300A.dts164
-rw-r--r--sys/gnu/dts/mips/GL-MT300N.dts153
-rw-r--r--sys/gnu/dts/mips/GL-MT750.dts159
-rw-r--r--sys/gnu/dts/mips/HC5661.dts32
-rw-r--r--sys/gnu/dts/mips/HC5761.dts32
-rw-r--r--sys/gnu/dts/mips/HC5861.dts92
-rw-r--r--sys/gnu/dts/mips/HC5XXX.dtsi141
-rw-r--r--sys/gnu/dts/mips/HG255D.dts130
-rw-r--r--sys/gnu/dts/mips/HLKRM04.dts125
-rw-r--r--sys/gnu/dts/mips/HPM.dts149
-rw-r--r--sys/gnu/dts/mips/HT-TM02.dts113
-rw-r--r--sys/gnu/dts/mips/HW550-3G.dts114
-rw-r--r--sys/gnu/dts/mips/IP2202.dts88
-rw-r--r--sys/gnu/dts/mips/JHR-N805R.dts89
-rw-r--r--sys/gnu/dts/mips/JHR-N825R.dts81
-rw-r--r--sys/gnu/dts/mips/JHR-N926R.dts127
-rw-r--r--sys/gnu/dts/mips/LINKIT7688.dts177
-rw-r--r--sys/gnu/dts/mips/M2M.dts112
-rw-r--r--sys/gnu/dts/mips/M3.dts106
-rw-r--r--sys/gnu/dts/mips/M4-4M.dts94
-rw-r--r--sys/gnu/dts/mips/M4-8M.dts99
-rw-r--r--sys/gnu/dts/mips/MINIEMBPLUG.dts120
-rw-r--r--sys/gnu/dts/mips/MINIEMBWIFI.dts92
-rw-r--r--sys/gnu/dts/mips/MIWIFI-MINI.dts155
-rw-r--r--sys/gnu/dts/mips/MIWIFI-NANO.dts91
-rw-r--r--sys/gnu/dts/mips/MLW221.dts122
-rw-r--r--sys/gnu/dts/mips/MLWG2.dts122
-rw-r--r--sys/gnu/dts/mips/MOFI3500-3GN.dts111
-rw-r--r--sys/gnu/dts/mips/MPRA1.dts123
-rw-r--r--sys/gnu/dts/mips/MPRA2.dts119
-rw-r--r--sys/gnu/dts/mips/MR-102N.dts115
-rw-r--r--sys/gnu/dts/mips/MT7620a.dts127
-rw-r--r--sys/gnu/dts/mips/MT7620a_MT7530.dts119
-rw-r--r--sys/gnu/dts/mips/MT7620a_MT7610e.dts88
-rw-r--r--sys/gnu/dts/mips/MT7620a_V22SG.dts114
-rw-r--r--sys/gnu/dts/mips/MT7621.dts56
-rw-r--r--sys/gnu/dts/mips/MT7628.dts65
-rw-r--r--sys/gnu/dts/mips/MZK-750DHP.dts111
-rw-r--r--sys/gnu/dts/mips/MZK-DP150N.dts100
-rw-r--r--sys/gnu/dts/mips/MZK-W300NH2.dts111
-rw-r--r--sys/gnu/dts/mips/MZK-WDPR.dts86
-rw-r--r--sys/gnu/dts/mips/MicroWRT.dts109
-rw-r--r--sys/gnu/dts/mips/NA930.dts174
-rw-r--r--sys/gnu/dts/mips/NBG-419N.dts94
-rw-r--r--sys/gnu/dts/mips/NCS601W.dts75
-rw-r--r--sys/gnu/dts/mips/NW718.dts109
-rw-r--r--sys/gnu/dts/mips/OY-0001.dts125
-rw-r--r--sys/gnu/dts/mips/PBR-M1.dts187
-rw-r--r--sys/gnu/dts/mips/PSG1208.dts114
-rw-r--r--sys/gnu/dts/mips/PSR-680W.dts91
-rw-r--r--sys/gnu/dts/mips/PWH2004.dts84
-rw-r--r--sys/gnu/dts/mips/PX-4885-4M.dts43
-rw-r--r--sys/gnu/dts/mips/PX-4885-8M.dts43
-rw-r--r--sys/gnu/dts/mips/PX-4885.dtsi54
-rw-r--r--sys/gnu/dts/mips/RE6500.dts123
-rw-r--r--sys/gnu/dts/mips/RP-N53.dts166
-rw-r--r--sys/gnu/dts/mips/RT-G32-B1.dts86
-rw-r--r--sys/gnu/dts/mips/RT-N10-PLUS.dts80
-rw-r--r--sys/gnu/dts/mips/RT-N13U.dts98
-rw-r--r--sys/gnu/dts/mips/RT-N14U.dts128
-rw-r--r--sys/gnu/dts/mips/RT-N15.dts113
-rw-r--r--sys/gnu/dts/mips/RT-N56U.dts151
-rw-r--r--sys/gnu/dts/mips/RT5350F-OLINUXINO-EVB.dts102
-rw-r--r--sys/gnu/dts/mips/RT5350F-OLINUXINO.dts80
-rw-r--r--sys/gnu/dts/mips/RUT5XX.dts93
-rw-r--r--sys/gnu/dts/mips/SAP-G3200U3.dts124
-rw-r--r--sys/gnu/dts/mips/SL-R7205.dts93
-rw-r--r--sys/gnu/dts/mips/TEW-691GR.dts109
-rw-r--r--sys/gnu/dts/mips/TEW-692GR.dts128
-rw-r--r--sys/gnu/dts/mips/TINY-AC.dts166
-rw-r--r--sys/gnu/dts/mips/UBNT-ERX.dts114
-rw-r--r--sys/gnu/dts/mips/UR-326N4G.dts113
-rw-r--r--sys/gnu/dts/mips/UR-336UN.dts92
-rw-r--r--sys/gnu/dts/mips/V11STFE.dts85
-rw-r--r--sys/gnu/dts/mips/V22RW-2X2.dts94
-rw-r--r--sys/gnu/dts/mips/VOCORE-16M.dts39
-rw-r--r--sys/gnu/dts/mips/VOCORE-8M.dts39
-rw-r--r--sys/gnu/dts/mips/VOCORE.dtsi197
-rw-r--r--sys/gnu/dts/mips/W150M.dts114
-rw-r--r--sys/gnu/dts/mips/W306R_V20.dts88
-rw-r--r--sys/gnu/dts/mips/W502U.dts102
-rw-r--r--sys/gnu/dts/mips/WCR150GN.dts98
-rw-r--r--sys/gnu/dts/mips/WF-2881.dts118
-rw-r--r--sys/gnu/dts/mips/WHR-1166D.dts172
-rw-r--r--sys/gnu/dts/mips/WHR-300HP2.dts150
-rw-r--r--sys/gnu/dts/mips/WHR-600D.dts150
-rw-r--r--sys/gnu/dts/mips/WHR-G300N.dts85
-rw-r--r--sys/gnu/dts/mips/WITI.dts128
-rw-r--r--sys/gnu/dts/mips/WIZARD8800.dts83
-rw-r--r--sys/gnu/dts/mips/WIZFI630A.dts182
-rw-r--r--sys/gnu/dts/mips/WL-330N.dts100
-rw-r--r--sys/gnu/dts/mips/WL-330N3G.dts109
-rw-r--r--sys/gnu/dts/mips/WL-341V3.dts123
-rw-r--r--sys/gnu/dts/mips/WL-351.dts117
-rw-r--r--sys/gnu/dts/mips/WLI-TX4-AG300N.dts105
-rw-r--r--sys/gnu/dts/mips/WMR-300.dts106
-rw-r--r--sys/gnu/dts/mips/WNCE2001.dts139
-rw-r--r--sys/gnu/dts/mips/WR512-3GN-4M.dts109
-rw-r--r--sys/gnu/dts/mips/WR512-3GN-8M.dts109
-rw-r--r--sys/gnu/dts/mips/WR6202.dts113
-rw-r--r--sys/gnu/dts/mips/WRTNODE.dts93
-rw-r--r--sys/gnu/dts/mips/WRTNODE2.dtsi93
-rw-r--r--sys/gnu/dts/mips/WRTNODE2P.dts27
-rw-r--r--sys/gnu/dts/mips/WRTNODE2R.dts27
-rw-r--r--sys/gnu/dts/mips/WSR-1166.dts186
-rw-r--r--sys/gnu/dts/mips/WSR-600.dts159
-rw-r--r--sys/gnu/dts/mips/WT1520-4M.dts43
-rw-r--r--sys/gnu/dts/mips/WT1520-8M.dts43
-rw-r--r--sys/gnu/dts/mips/WT1520.dtsi48
-rw-r--r--sys/gnu/dts/mips/WT3020-4M.dts102
-rw-r--r--sys/gnu/dts/mips/WT3020-8M.dts102
-rw-r--r--sys/gnu/dts/mips/WZR-AGL300NH.dts143
-rw-r--r--sys/gnu/dts/mips/X5.dts138
-rw-r--r--sys/gnu/dts/mips/X8.dts99
-rw-r--r--sys/gnu/dts/mips/XDXRN502J.dts92
-rw-r--r--sys/gnu/dts/mips/Y1.dts49
-rw-r--r--sys/gnu/dts/mips/Y1.dtsi109
-rw-r--r--sys/gnu/dts/mips/Y1S.dts106
-rw-r--r--sys/gnu/dts/mips/YOUKU-YK1.dts127
-rw-r--r--sys/gnu/dts/mips/ZBT-WA05.dts120
-rw-r--r--sys/gnu/dts/mips/ZBT-WE826.dts124
-rw-r--r--sys/gnu/dts/mips/ZBT-WG2626.dts127
-rw-r--r--sys/gnu/dts/mips/ZBT-WR8305RT.dts117
-rw-r--r--sys/gnu/dts/mips/ZTE-Q7.dts113
-rw-r--r--sys/gnu/dts/mips/mt7620a.dtsi538
-rw-r--r--sys/gnu/dts/mips/mt7620n.dtsi337
-rw-r--r--sys/gnu/dts/mips/mt7621.dtsi377
-rw-r--r--sys/gnu/dts/mips/mt7628an.dtsi459
-rw-r--r--sys/gnu/dts/mips/rt2880.dtsi196
-rw-r--r--sys/gnu/dts/mips/rt3050.dtsi265
-rw-r--r--sys/gnu/dts/mips/rt3352.dtsi293
-rw-r--r--sys/gnu/dts/mips/rt3883.dtsi405
-rw-r--r--sys/gnu/dts/mips/rt5350.dtsi334
192 files changed, 23011 insertions, 0 deletions
diff --git a/sys/gnu/dts/mips/3G-6200N.dts b/sys/gnu/dts/mips/3G-6200N.dts
new file mode 100644
index 0000000000000..183148ad8b555
--- /dev/null
+++ b/sys/gnu/dts/mips/3G-6200N.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "3G-6200N", "ralink,rt3050-soc";
+ model = "Edimax 3g-6200n";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@3e0000 {
+ label = "cimage";
+ reg = <0x3e0000 0x20000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x390000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "3g-6200n:green:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wlan {
+ label = "3g-6200n:amber:wlan";
+ gpios = <&gpio0 14 1>;
+ };
+
+ 3g {
+ label = "3g-6200n:blue:3g";
+ gpios = <&gpio0 7 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x211>;
+ };
+
+ wlanswitch {
+ label = "wlanswitch";
+ gpios = <&gpio0 13 1>;
+ linux,code = <0x100>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/3G-6200NL.dts b/sys/gnu/dts/mips/3G-6200NL.dts
new file mode 100644
index 0000000000000..760dafcd85798
--- /dev/null
+++ b/sys/gnu/dts/mips/3G-6200NL.dts
@@ -0,0 +1,93 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "3G-6200NL", "ralink,rt3050-soc";
+ model = "Edimax 3g-6200nl";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@3e0000 {
+ label = "cimage";
+ reg = <0x3e0000 0x20000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x390000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wlan {
+ label = "3g-6200nl:amber:wlan";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/3G150B.dts b/sys/gnu/dts/mips/3G150B.dts
new file mode 100644
index 0000000000000..628a0fa4c4abf
--- /dev/null
+++ b/sys/gnu/dts/mips/3G150B.dts
@@ -0,0 +1,118 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "3G150B", "ralink,rt5350-soc";
+ model = "Tenda 3G150B";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+
+ gpio1: gpio@660 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf", "led";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ ralink,led-polarity = <1>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ ap {
+ label = "3g150b:blue:ap";
+ gpios = <&gpio0 7 1>;
+ };
+
+ 3g {
+ label = "3g150b:blue:3g";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ usb {
+ gpio-export,name = "usb";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 13 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/3G300M.dts b/sys/gnu/dts/mips/3G300M.dts
new file mode 100644
index 0000000000000..f14eb9ec519b1
--- /dev/null
+++ b/sys/gnu/dts/mips/3G300M.dts
@@ -0,0 +1,124 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "3G300M", "ralink,rt3052-soc";
+ model = "Tenda 3G300M";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ 3grouter {
+ label = "3g300m:blue:3grouter";
+ gpios = <&gpio0 11 1>;
+ };
+
+ ap {
+ label = "3g300m:blue:ap";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wisprouter {
+ label = "3g300m:blue:wisprouter";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wirelessrouter {
+ label = "3g300m:blue:wirelessrouter";
+ gpios = <&gpio0 13 1>;
+ };
+
+ 3g {
+ label = "3g300m:blue:3g";
+ gpios = <&gpio0 7 1>;
+ };
+
+ wpsreset {
+ label = "3g300m:blue:wpsreset";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+
+ mode {
+ label = "mode";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x100>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/A5-V11.dts b/sys/gnu/dts/mips/A5-V11.dts
new file mode 100644
index 0000000000000..63d96043057e4
--- /dev/null
+++ b/sys/gnu/dts/mips/A5-V11.dts
@@ -0,0 +1,123 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "A5-V11", "ralink,rt5350-soc";
+ model = "A5-V11";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "pm25lq032";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+
+ gpio1: gpio@660 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf", "led";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ system {
+ label = "a5-v11:blue:system";
+ gpios = <&gpio0 20 1>;
+ };
+
+ power {
+ label = "a5-v11:red:power";
+ gpios = <&gpio0 17 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ usb {
+ gpio-export,name = "usb";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 7 0>;
+ };
+
+ root_hub {
+ gpio-export,name = "root_hub";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 12 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/AI-BR100.dts b/sys/gnu/dts/mips/AI-BR100.dts
new file mode 100644
index 0000000000000..d624864292045
--- /dev/null
+++ b/sys/gnu/dts/mips/AI-BR100.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "AI-BR100", "ralink,mt7620a-soc";
+ model = "Aigale Ai-BR100";
+
+ palmbus@10000000 {
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "en25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "u-boot-env";
+ reg = <0x20000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@30000 {
+ label = "factory";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "firmware";
+ reg = <0x40000 0x7c0000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf", "rgmii1", "rgmii2", "ephy", "wled", "nd_sd";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "llllw";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wan {
+ label = "ai-br100:blue:wan";
+ gpios = <&gpio2 4 1>;
+ };
+
+ wlan {
+ label = "ai-br100:blue:wlan";
+ gpios = <&gpio3 0 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/AIR3GII.dts b/sys/gnu/dts/mips/AIR3GII.dts
new file mode 100644
index 0000000000000..a3457e68a2eef
--- /dev/null
+++ b/sys/gnu/dts/mips/AIR3GII.dts
@@ -0,0 +1,98 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "AIR3GII", "ralink,rt5350-soc";
+ model = "AirLive Air3GII";
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "en25q32b";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wlan {
+ label = "air3gii:green:wlan";
+ gpios = <&gpio0 8 0>;
+ };
+
+ mobile {
+ label = "air3gii:green:mobile";
+ gpios = <&gpio0 9 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ALL0239-3G.dts b/sys/gnu/dts/mips/ALL0239-3G.dts
new file mode 100644
index 0000000000000..ae09fb97061c3
--- /dev/null
+++ b/sys/gnu/dts/mips/ALL0239-3G.dts
@@ -0,0 +1,115 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "ALL0239-3G", "ralink,rt3052-soc";
+ model = "Allnet ALL0239-3G";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ status = "okay";
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "all0239-3g:green:usb";
+ gpios = <&gpio0 8 1>;
+ };
+
+ 3g {
+ label = "all0239-3g:green:3g";
+ gpios = <&gpio0 11 1>;
+ };
+
+ status {
+ label = "all0239-3g:green:status";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wps {
+ label = "all0239-3g:green:wps";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ connect {
+ label = "connect";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0xda>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/ALL0256N-4M.dts b/sys/gnu/dts/mips/ALL0256N-4M.dts
new file mode 100644
index 0000000000000..67fdb68965cc1
--- /dev/null
+++ b/sys/gnu/dts/mips/ALL0256N-4M.dts
@@ -0,0 +1,103 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "ALL0256N", "ralink,rt3050-soc";
+ model = "Allnet ALL0256N";
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3c8000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ rssilow {
+ label = "all0256n:green:rssilow";
+ gpios = <&gpio0 14 1>;
+ };
+
+ rssimed {
+ label = "all0256n:green:rssimed";
+ gpios = <&gpio0 12 1>;
+ };
+
+ rssihigh {
+ label = "all0256n:green:rssihigh";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ALL0256N-8M.dts b/sys/gnu/dts/mips/ALL0256N-8M.dts
new file mode 100644
index 0000000000000..d1b590dc6a121
--- /dev/null
+++ b/sys/gnu/dts/mips/ALL0256N-8M.dts
@@ -0,0 +1,103 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "ALL0256N", "ralink,rt3050-soc";
+ model = "Allnet ALL0256N";
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ rssilow {
+ label = "all0256n:green:rssilow";
+ gpios = <&gpio0 14 1>;
+ };
+
+ rssimed {
+ label = "all0256n:green:rssimed";
+ gpios = <&gpio0 12 1>;
+ };
+
+ rssihigh {
+ label = "all0256n:green:rssihigh";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ALL5002.dts b/sys/gnu/dts/mips/ALL5002.dts
new file mode 100644
index 0000000000000..2e6a3ea1eb955
--- /dev/null
+++ b/sys/gnu/dts/mips/ALL5002.dts
@@ -0,0 +1,111 @@
+/dts-v1/;
+
+/include/ "rt3352.dtsi"
+
+/ {
+ compatible = "ALL5002", "ralink,rt3352-soc";
+ model = "Allnet ALL5002";
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l25635e";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x1fb0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ i2c-gpio {
+ compatible = "i2c-gpio";
+ gpios = <&gpio0 1 0 &gpio0 2 0>;
+ i2c-gpio,delay-us = <10>;
+
+ pcf0: iexp@38 {
+ #gpio-cells = <2>;
+ compatible = "inxp,pcf8574a";
+ reg = <0x38>;
+ gpio-controller;
+ };
+
+ hwmon@4b {
+ compatible = "national,lm92";
+ reg = <0x4b>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ ld1 {
+ label = "all5002:green:ld1";
+ gpios = <&pcf0 0 1>;
+ };
+
+ ld2 {
+ label = "all5002:green:ld2";
+ gpios = <&pcf0 1 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ALL5003.dts b/sys/gnu/dts/mips/ALL5003.dts
new file mode 100644
index 0000000000000..ec480983f82aa
--- /dev/null
+++ b/sys/gnu/dts/mips/ALL5003.dts
@@ -0,0 +1,111 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "ALL5003", "ralink,rt5350-soc";
+ model = "Allnet ALL5003";
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l25635e";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x1fb0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ i2c-gpio {
+ compatible = "i2c-gpio";
+ gpios = <&gpio0 1 0 &gpio0 2 0>;
+ i2c-gpio,delay-us = <10>;
+
+ pcf0: iexp@38 {
+ #gpio-cells = <2>;
+ compatible = "inxp,pcf8574a";
+ reg = <0x38>;
+ gpio-controller;
+ };
+
+ hwmon@4b {
+ compatible = "national,lm92";
+ reg = <0x4b>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ ld1 {
+ label = "all5003:green:ld1";
+ gpios = <&pcf0 0 1>;
+ };
+
+ ld2 {
+ label = "all5003:green:ld2";
+ gpios = <&pcf0 1 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/AR670W.dts b/sys/gnu/dts/mips/AR670W.dts
new file mode 100644
index 0000000000000..0e29d89f2d9cb
--- /dev/null
+++ b/sys/gnu/dts/mips/AR670W.dts
@@ -0,0 +1,105 @@
+/dts-v1/;
+
+/include/ "rt2880.dtsi"
+
+/ {
+ compatible = "AR670W", "ralink,rt2880-soc";
+ model = "Airlink101 AR670W";
+
+ palmbus@300000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "spi", "uartlite";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@400000 {
+ status = "okay";
+ mtd-mac-address = <&factory 0x2004>;
+
+ port@0 {
+ phy-handle = <&phy0>;
+ phy-mode = "mii";
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ phy-mode = "mii";
+ reg = <0>;
+ };
+ };
+ };
+
+ wmac@480000 {
+ status = "okay";
+ ralink,mtd-eeprom = <&factory 0x2000>;
+ };
+
+ cfi@bdc00000 {
+ compatible = "cfi-flash";
+ reg = <0xbc400000 0x800000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ u-boot@0 {
+ reg = <0x0 0x30000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ factory: factory@30000 {
+ reg = <0x30000 0x10000>;
+ label = "factory";
+ read-only;
+ };
+
+ firmware@40000 {
+ reg = <0x40000 0x3c0000>;
+ label = "firmware";
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "ar670w:green:power";
+ gpios = <&gpio0 7 1>;
+ };
+
+ wpsblue {
+ label = "ar670w:blue:wps";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 9 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/AR725W.dts b/sys/gnu/dts/mips/AR725W.dts
new file mode 100644
index 0000000000000..6f66c3f85edfa
--- /dev/null
+++ b/sys/gnu/dts/mips/AR725W.dts
@@ -0,0 +1,115 @@
+/dts-v1/;
+
+/include/ "rt2880.dtsi"
+
+/ {
+ compatible = "AR725W", "ralink,rt2880-soc";
+ model = "Airlink101 AR725W";
+
+ palmbus@300000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "spi", "uartlite";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@400000 {
+ status = "okay";
+ mtd-mac-address = <&factory 0x4>;
+
+ port@0 {
+ phy-handle = <&phy0>;
+ phy-mode = "mii";
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ phy-mode = "mii";
+ reg = <0>;
+ };
+ };
+ };
+
+ wmac@480000 {
+ status = "okay";
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ cfi@bdc00000 {
+ compatible = "cfi-flash";
+ reg = <0xbc400000 0x800000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ u-boot@0 {
+ reg = <0x0 0x30000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ u-boot-env@30000 {
+ reg = <0x30000 0x10000>;
+ label = "u-boot-env";
+ };
+
+ factory: factory@40000 {
+ reg = <0x40000 0x10000>;
+ label = "factory";
+ read-only;
+ };
+
+ firmware@50000 {
+ reg = <0x50000 0x3B0000>;
+ label = "firmware";
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "ar725w:green:power";
+ gpios = <&gpio0 7 0>;
+ };
+
+ wpsred {
+ label = "ar725w:red:wps";
+ gpios = <&gpio0 8 1>;
+ };
+
+ wpsblue {
+ label = "ar725w:blue:wps";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 9 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ASL26555-16M.dts b/sys/gnu/dts/mips/ASL26555-16M.dts
new file mode 100644
index 0000000000000..d644b562bda77
--- /dev/null
+++ b/sys/gnu/dts/mips/ASL26555-16M.dts
@@ -0,0 +1,156 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "ASL26555", "ralink,rt3050-soc";
+ model = "Alpha ASL26555";
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25sl12801";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xf80000>;
+ };
+
+ partition@fd0000 {
+ label = "cert";
+ reg = <0xfd0000 0x10000>;
+ read-only;
+ };
+
+ partition@fe0000 {
+ label = "langpack";
+ reg = <0xfe0000 0x10000>;
+ read-only;
+ };
+
+ devdata: partition@ff0000 {
+ label = "devdata";
+ reg = <0xff0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&devdata 0x4004>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x1e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&devdata 0x4000>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 0>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 12 0>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ eth {
+ label = "asl26555:green:eth";
+ gpios = <&gpio0 0 1>;
+ };
+
+ wan-red {
+ label = "asl26555:red:wan";
+ gpios = <&gpio0 1 0>;
+ };
+
+ wan-green {
+ label = "asl26555:green:wan";
+ gpios = <&gpio0 2 0>;
+ };
+
+ wlan {
+ label = "asl26555:green:wlan";
+ gpios = <&gpio0 7 0>;
+ };
+
+ power-green {
+ label = "asl26555:green:power";
+ gpios = <&gpio0 8 0>;
+ };
+
+ power-red {
+ label = "asl26555:red:power";
+ gpios = <&gpio0 9 0>;
+ };
+
+ 3g-green {
+ label = "asl26555:green:3g";
+ gpios = <&gpio0 14 1>;
+ };
+
+ 3g-red {
+ label = "asl26555:red:3g";
+ gpios = <&gpio0 17 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ASL26555-8M.dts b/sys/gnu/dts/mips/ASL26555-8M.dts
new file mode 100644
index 0000000000000..2780e35482dcc
--- /dev/null
+++ b/sys/gnu/dts/mips/ASL26555-8M.dts
@@ -0,0 +1,150 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "ASL26555", "ralink,rt3050-soc";
+ model = "Alpha ASL26555";
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25sl064p";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ ubootenv: partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "rgdb";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x790000>;
+ };
+
+ partition@7e0000 {
+ label = "cert";
+ reg = <0x7e0000 0x10000>;
+ read-only;
+ };
+
+ partition@7f0000 {
+ label = "langpack";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&ubootenv 0x4004>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x1e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&ubootenv 0x4000>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 0>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 12 0>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ eth {
+ label = "asl26555:green:eth";
+ gpios = <&gpio0 0 1>;
+ };
+
+ wan-red {
+ label = "asl26555:red:wan";
+ gpios = <&gpio0 1 0>;
+ };
+
+ wan-green {
+ label = "asl26555:green:wan";
+ gpios = <&gpio0 2 0>;
+ };
+
+ wlan {
+ label = "asl26555:green:wlan";
+ gpios = <&gpio0 7 0>;
+ };
+
+ power-green {
+ label = "asl26555:green:power";
+ gpios = <&gpio0 8 0>;
+ };
+
+ power-red {
+ label = "asl26555:red:power";
+ gpios = <&gpio0 9 0>;
+ };
+
+ 3g-green {
+ label = "asl26555:green:3g";
+ gpios = <&gpio0 14 1>;
+ };
+
+ 3g-red {
+ label = "asl26555:red:3g";
+ gpios = <&gpio0 17 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ATP-52B.dts b/sys/gnu/dts/mips/ATP-52B.dts
new file mode 100644
index 0000000000000..f7e9ac77d9c77
--- /dev/null
+++ b/sys/gnu/dts/mips/ATP-52B.dts
@@ -0,0 +1,96 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "ATP-52B", "ralink,rt3052-soc";
+ model = "Argus ATP-52B";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "bootloader";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "config";
+ reg = <0x30000 0x10000>;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7a0000>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ run {
+ label = "atp-52b:green:run";
+ gpios = <&gpio0 9 1>;
+ };
+
+ net {
+ label = "atp-52b:amber:net";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/AWAPN2403.dts b/sys/gnu/dts/mips/AWAPN2403.dts
new file mode 100644
index 0000000000000..9c10155ce4978
--- /dev/null
+++ b/sys/gnu/dts/mips/AWAPN2403.dts
@@ -0,0 +1,85 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "AWAPN2403", "ralink,rt3052-soc";
+ model = "AsiaRF AWAPN2403";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ link {
+ label = "awapn2403:green:wps";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/AWM002-4M.dtsi b/sys/gnu/dts/mips/AWM002-4M.dtsi
new file mode 100644
index 0000000000000..f770232eca472
--- /dev/null
+++ b/sys/gnu/dts/mips/AWM002-4M.dtsi
@@ -0,0 +1,15 @@
+/include/ "AWM002.dtsi"
+
+/ {
+ compatible = "AWM002", "ralink,rt5350-soc";
+ model = "AsiaRF AWM002";
+
+ palmbus@10000000 {
+ spi@b00 {
+ m25p80@0 {
+ compatible = "jedec,spi-nor";
+ linux,modalias = "m25p80", "mx25l3205d";
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/AWM002-8M.dtsi b/sys/gnu/dts/mips/AWM002-8M.dtsi
new file mode 100644
index 0000000000000..ab2c3ac4765e9
--- /dev/null
+++ b/sys/gnu/dts/mips/AWM002-8M.dtsi
@@ -0,0 +1,15 @@
+/include/ "AWM002.dtsi"
+
+/ {
+ compatible = "AWM002", "ralink,rt5350-soc";
+ model = "AsiaRF AWM002";
+
+ palmbus@10000000 {
+ spi@b00 {
+ m25p80@0 {
+ compatible = "jedec,spi-nor";
+ linux,modalias = "m25p80", "mx25l6405d";
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/AWM002-EVB-4M.dts b/sys/gnu/dts/mips/AWM002-EVB-4M.dts
new file mode 100644
index 0000000000000..fe2ff1aa00e20
--- /dev/null
+++ b/sys/gnu/dts/mips/AWM002-EVB-4M.dts
@@ -0,0 +1,53 @@
+/dts-v1/;
+
+/include/ "AWM002-4M.dtsi"
+
+/ {
+ model = "AsiaRF AWM002 EVB";
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ tx {
+ label = "awm002-evb:green:tx";
+ gpios = <&gpio0 15 1>;
+ };
+
+ rx {
+ label = "awm002-evb:green:rx";
+ gpios = <&gpio0 16 1>;
+ };
+
+ wps {
+ label = "awm002-evb:green:wps";
+ gpios = <&gpio0 21 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset_wps {
+ label = "reset_wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+
+ mode {
+ label = "mode";
+ gpios = <&gpio0 20 1>;
+ linux,code = <0x32>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/AWM002-EVB-8M.dts b/sys/gnu/dts/mips/AWM002-EVB-8M.dts
new file mode 100644
index 0000000000000..d4de3f19000e4
--- /dev/null
+++ b/sys/gnu/dts/mips/AWM002-EVB-8M.dts
@@ -0,0 +1,53 @@
+/dts-v1/;
+
+/include/ "AWM002-8M.dtsi"
+
+/ {
+ model = "AsiaRF AWM002 EVB";
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ tx {
+ label = "awm002-evb:green:tx";
+ gpios = <&gpio0 15 1>;
+ };
+
+ rx {
+ label = "awm002-evb:green:rx";
+ gpios = <&gpio0 16 1>;
+ };
+
+ wps {
+ label = "awm002-evb:green:wps";
+ gpios = <&gpio0 21 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset_wps {
+ label = "reset_wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+
+ mode {
+ label = "mode";
+ gpios = <&gpio0 20 1>;
+ linux,code = <0x32>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/AWM002.dtsi b/sys/gnu/dts/mips/AWM002.dtsi
new file mode 100644
index 0000000000000..a360d8cd4efdb
--- /dev/null
+++ b/sys/gnu/dts/mips/AWM002.dtsi
@@ -0,0 +1,78 @@
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "AWM002", "ralink,rt5350-soc";
+ model = "AsiaRF AWM002";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0 0>;
+ compatible = "jedec,spi-nor";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x1fb0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3f>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ ld1 {
+ label = "awm002:green:ld1";
+ gpios = <&gpio0 0 1>;
+ };
+
+ ld2 {
+ label = "awm002:green:ld2";
+ gpios = <&gpio0 1 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/AWM003-EVB.dts b/sys/gnu/dts/mips/AWM003-EVB.dts
new file mode 100644
index 0000000000000..b74dd90c840b1
--- /dev/null
+++ b/sys/gnu/dts/mips/AWM003-EVB.dts
@@ -0,0 +1,68 @@
+/dts-v1/;
+
+/include/ "AWM002-8M.dtsi"
+
+/ {
+ compatible = "AWM003", "ralink,rt5350-soc";
+ model = "AsiaRF AWM003 EVB";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ palmbus@10000000 {
+ spi@b00 {
+ m25p80@0 {
+ compatible = "jedec,spi-nor";
+ linux,modalias = "m25p80", "mx25l6405d";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ tx {
+ label = "awm003-evb:green:tx";
+ gpios = <&gpio0 15 1>;
+ };
+
+ rx {
+ label = "awm003-evb:green:rx";
+ gpios = <&gpio0 16 1>;
+ };
+
+ wps {
+ label = "awm003-evb:green:wps";
+ gpios = <&gpio0 21 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset_wps {
+ label = "reset_wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+
+ mode {
+ label = "mode";
+ gpios = <&gpio0 20 1>;
+ linux,code = <0x32>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ArcherC20i.dts b/sys/gnu/dts/mips/ArcherC20i.dts
new file mode 100644
index 0000000000000..a2a77b4156d73
--- /dev/null
+++ b/sys/gnu/dts/mips/ArcherC20i.dts
@@ -0,0 +1,118 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-soc";
+ model = "TP-Link Archer C20i";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l6405d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0x7a0000>;
+ };
+
+ partition@7c0000 {
+ label = "config";
+ reg = <0x7c0000 0x10000>;
+ };
+
+ rom: partition@7d0000 {
+ label = "rom";
+ reg = <0x7d0000 0x10000>;
+ };
+
+ partition@7e0000 {
+ label = "romfile";
+ reg = <0x7e0000 0x10000>;
+ };
+
+ radio: partition@7f0000 {
+ label = "radio";
+ reg = <0x7f0000 0x10000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf", "rgmii1", "rgmii2", "wled", "nd_sd";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&rom 0xf100>;
+ mediatek,portmap = "wllll";
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "ephy";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&radio 0>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+
+ pcie-bridge {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&radio 32768>;
+ mediatek,2ghz = <0>;
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ };
+};
diff --git a/sys/gnu/dts/mips/BC2.dts b/sys/gnu/dts/mips/BC2.dts
new file mode 100644
index 0000000000000..0c74ffaee3dea
--- /dev/null
+++ b/sys/gnu/dts/mips/BC2.dts
@@ -0,0 +1,87 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "BC2", "ralink,rt3052-soc";
+ model = "NexAira BC2";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "bc2:blue:usb";
+ gpios = <&gpio0 20 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 17 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/BR-6425.dts b/sys/gnu/dts/mips/BR-6425.dts
new file mode 100644
index 0000000000000..a5f91771f0403
--- /dev/null
+++ b/sys/gnu/dts/mips/BR-6425.dts
@@ -0,0 +1,71 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "BR-6425", "ralink,rt3052-soc";
+ model = "Edimax BR-6425";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "br-6425:green:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wlan {
+ label = "br-6425:orange:wlan";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset_wps {
+ label = "reset_wps";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x198>;
+ };
+
+ rfkill {
+ label = "RFKILL switch";
+ gpios = <&gpio0 13 1>;
+ linux,code = <0xf7>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/BR-6475ND.dts b/sys/gnu/dts/mips/BR-6475ND.dts
new file mode 100644
index 0000000000000..fc6d16f775871
--- /dev/null
+++ b/sys/gnu/dts/mips/BR-6475ND.dts
@@ -0,0 +1,183 @@
+/dts-v1/;
+
+/include/ "rt3883.dtsi"
+
+/ {
+ compatible = "BR-6475ND", "ralink,rt3883-soc";
+ model = "Edimax BR-6475nD";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ palmbus@10000000 {
+ timer@100 {
+ status = "okay";
+ };
+
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ uartlite@c00 {
+ status = "okay";
+ };
+ };
+
+ ethernet@10100000 {
+ status = "okay";
+ mtd-mac-address = <&devdata 0x0d>;
+
+ port@0 {
+ mediatek,fixed-link = <1000 1 1 1>;
+ };
+ };
+
+ wmac@10180000 {
+ status = "okay";
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pci@10140000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pci_pins>;
+
+ pci_pins: pci {
+ pci {
+ ralink,group = "pci";
+ ralink,function = "pci-fnc";
+ };
+ };
+
+ host-bridge {
+ pci-bridge@1 {
+ status = "okay";
+
+ wmac@0,0 {
+ ralink,5ghz = <0>;
+ compatible = "ralink,rt2880-pci", "pciclass060400", "pciclass0604";
+ reg = < 0x10000 0 0 0 0 >;
+ ralink,eeprom = "rt2x00pci_1_0.eeprom";
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ nor-flash@1c000000 {
+ compatible = "cfi-flash";
+ reg = <0x1c000000 0x800000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x00000000 0x00030000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ partition@30000 {
+ reg = <0x00030000 0x00010000>;
+ label = "nvram";
+ read-only;
+ };
+
+ factory: partition@40000 {
+ reg = <0x00040000 0x00010000>;
+ label = "factory";
+ read-only;
+ };
+
+ devdata: partition@50000 {
+ reg = <0x00050000 0x00020000>;
+ label = "devdata";
+ read-only;
+ };
+
+ partition@70000 {
+ reg = <0x00070000 0x00790000>;
+ label = "firmware";
+ };
+
+ partition@170000 {
+ reg = <0x00270000 0x00590000>;
+ label = "rootfs";
+ };
+ };
+
+ rtl8367 {
+ compatible = "realtek,rtl8367";
+ gpio-sda = <&gpio0 5 0>;
+ gpio-sck = <&gpio0 4 0>;
+ realtek,extif0 = <1 0 1 1 1 1 1 1 2>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0x198>;
+ };
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio0 9 1>;
+ linux,input-type = <5>;
+ linux,code = <0xf7>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "br-6475nd:green:power";
+ gpios = <&gpio0 10 1>;
+ };
+
+ wlan {
+ label = "br-6475nd:amber:wlan";
+ gpios = <&gpio0 11 1>;
+ };
+
+ wlan_5ghz {
+ label = "br-6475nd:amber:wlan_5ghz";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ /* Unclear if this is the correct gpio setup; the USB ports are
+ unpopulated on a stock BR-6475nD, even though the hardware exists
+ and the headers are there. */
+ /*
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ usb {
+ gpio-export,name="usb";
+ gpio-export,output=<0>;
+ gpios = <&gpio0 19 0>;
+ };
+ };
+ */
+};
diff --git a/sys/gnu/dts/mips/BROADWAY.dts b/sys/gnu/dts/mips/BROADWAY.dts
new file mode 100644
index 0000000000000..df43644178579
--- /dev/null
+++ b/sys/gnu/dts/mips/BROADWAY.dts
@@ -0,0 +1,92 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "BROADWAY", "ralink,rt3052-soc";
+ model = "Hauppauge Broadway";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "bootloader";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "config";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x790000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ diskmounted {
+ label = "broadway:red:diskmounted";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wps_active {
+ label = "broadway:red:wps_active";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ factory {
+ label = "Factory Reset button";
+ gpios = <&gpio0 13 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/CARAMBOLA.dts b/sys/gnu/dts/mips/CARAMBOLA.dts
new file mode 100644
index 0000000000000..771d4ec9c7403
--- /dev/null
+++ b/sys/gnu/dts/mips/CARAMBOLA.dts
@@ -0,0 +1,75 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "CARAMBOLA", "ralink,rt3050-soc";
+ model = "8devices Carambola";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+
+ i2c-gpio {
+ compatible = "i2c-gpio";
+ gpios = <&gpio0 1 0 &gpio0 2 0>;
+ i2c-gpio,delay-us = <10>;
+ };
+};
diff --git a/sys/gnu/dts/mips/CF-WR800N.dts b/sys/gnu/dts/mips/CF-WR800N.dts
new file mode 100644
index 0000000000000..66ba9269ae71f
--- /dev/null
+++ b/sys/gnu/dts/mips/CF-WR800N.dts
@@ -0,0 +1,115 @@
+/dts-v1/;
+
+/include/ "mt7620n.dtsi"
+
+/ {
+ compatible = "cf-wr800n", "ralink,mt7620n-soc";
+ model = "Comfast CF-WR800N";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ ralink,group = "ephy", "wled", "spi refclk", "i2c";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ ethernet {
+ label = "cf-wr800n:white:ethernet";
+ gpios = <&gpio2 4 1>;
+ };
+
+ wifi {
+ label = "cf-wr800n:white:wifi";
+ gpios = <&gpio3 0 1>;
+ };
+
+ wps {
+ label = "cf-wr800n:white:wps";
+ gpios = <&gpio1 15 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/CY-SWR1100.dts b/sys/gnu/dts/mips/CY-SWR1100.dts
new file mode 100644
index 0000000000000..be15d9b863860
--- /dev/null
+++ b/sys/gnu/dts/mips/CY-SWR1100.dts
@@ -0,0 +1,152 @@
+/dts-v1/;
+
+/include/ "rt3883.dtsi"
+
+/ {
+ compatible = "CY-SWR1100", "ralink,rt3883-soc";
+ model = "Samsung CY-SWR1100";
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "spi";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ port@0 {
+ mediatek,fixed-link = <1000 1 1 1>;
+ phy-mode = "rgmii";
+ };
+ };
+
+ pci@10140000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pci_pins>;
+
+ pci_pins: pci {
+ pci {
+ ralink,group = "pci";
+ ralink,function = "pci-fnc";
+ };
+ };
+
+ host-bridge {
+ pci-bridge@1 {
+ status = "okay";
+
+ wmac@0,0 {
+ ralink,5ghz = <0>;
+ compatible = "ralink,rt2880-pci", "pciclass060400", "pciclass0604";
+ reg = < 0x10000 0 0 0 0 >;
+ ralink,eeprom = "rt2x00pci_1_0.eeprom";
+ };
+ };
+ };
+ };
+
+ wmac@10180000 {
+ status = "okay";
+ ralink,2ghz = <0>;
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ nor-flash@1c000000 {
+ compatible = "cfi-flash";
+ reg = <0x1c000000 0x800000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x4000>;
+ read-only;
+ };
+
+ factory: partition@34000 {
+ label = "factory";
+ reg = <0x34000 0x4000>;
+ read-only;
+ };
+
+ partition@38000 {
+ label = "nvram";
+ reg = <0x38000 0x8000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "devdata";
+ reg = <0x40000 0x10000>;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ rtl8367 {
+ compatible = "realtek,rtl8367";
+ gpio-sda = <&gpio0 1 0>;
+ gpio-sck = <&gpio0 2 0>;
+ realtek,extif0 = <1 0 1 1 1 1 1 1 2>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 6 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 3 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wps {
+ label = "cy-swr1100:blue:wps";
+ gpios = <&gpio0 0 1>;
+ };
+
+ usb {
+ label = "cy-swr1100:blue:usb";
+ gpios = <&gpio1 1 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/D105.dts b/sys/gnu/dts/mips/D105.dts
new file mode 100644
index 0000000000000..1a1ea736329c2
--- /dev/null
+++ b/sys/gnu/dts/mips/D105.dts
@@ -0,0 +1,92 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "D105", "ralink,rt3050-soc";
+ model = "Huawei D105";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "d105:red:power";
+ gpios = <&gpio0 0 1>;
+ };
+
+ wps {
+ label = "d105:green:usb";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/DAP-1350.dts b/sys/gnu/dts/mips/DAP-1350.dts
new file mode 100644
index 0000000000000..e97c5514f8c8e
--- /dev/null
+++ b/sys/gnu/dts/mips/DAP-1350.dts
@@ -0,0 +1,125 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "DAP-1350", "ralink,rt3052-soc";
+ model = "D-Link DAP-1350";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ devdata: partition@30000 {
+ label = "devdata";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "devconf";
+ reg = <0x40000 0x30000>;
+ read-only;
+ };
+
+ partition@70000 {
+ label = "devlang";
+ reg = <0x70000 0x40000>;
+ read-only;
+ };
+
+ partition@b0000 {
+ label = "firmware";
+ reg = <0xb0000 0x750000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&devdata 0x2e>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&devdata 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "dap-1350:blue:power";
+ gpios = <&gpio0 8 1>;
+ };
+
+ power2 {
+ label = "dap-1350:red:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wps {
+ label = "dap-1350:blue:wps";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+
+ rt {
+ label = "rt";
+ gpios = <&gpio0 11 1>;
+ linux,code = <0x100>;
+ };
+
+ ap {
+ label = "ap";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0x101>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/DB-WRT01.dts b/sys/gnu/dts/mips/DB-WRT01.dts
new file mode 100644
index 0000000000000..e3a7770835aab
--- /dev/null
+++ b/sys/gnu/dts/mips/DB-WRT01.dts
@@ -0,0 +1,100 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-soc";
+ model = "Planex DB-WRT01";
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "en25q64";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l6405d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "spi refclk", "rgmii1";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "llllw";
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "ephy";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "db-wrt01:orange:power";
+ gpios = <&gpio1 1 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ s1 {
+ label = "wps";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/DCS-930.dts b/sys/gnu/dts/mips/DCS-930.dts
new file mode 100644
index 0000000000000..b43d4e550466b
--- /dev/null
+++ b/sys/gnu/dts/mips/DCS-930.dts
@@ -0,0 +1,113 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "DCS-930", "ralink,rt3050-soc";
+ model = "D-Link DCS-930";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "spi", "jtag", "mdio", "rgmii", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x400000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "kernel";
+ reg = <0x50000 0x150000>;
+ };
+
+ partition@150000 {
+ label = "rootfs";
+ reg = <0x150000 0x2b0000>;
+ };
+
+ partition {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wifi {
+ label = "dcs-930:red:alert";
+ gpios = <&gpio0 8 1>;
+ };
+
+ power {
+ label = "dcs-930:green:status";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wps {
+ label = "dcs-930:blue:wps";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x101>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/DCS-930L-B1.dts b/sys/gnu/dts/mips/DCS-930L-B1.dts
new file mode 100644
index 0000000000000..8b53cfd79d783
--- /dev/null
+++ b/sys/gnu/dts/mips/DCS-930L-B1.dts
@@ -0,0 +1,108 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "DCS-930L-B1", "ralink,rt5350-soc";
+ model = "D-Link DCS-930L B1";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf", "led";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "dcs-930l-b1:red:power";
+ gpios = <&gpio0 17 1>;
+ };
+
+ wps {
+ label = "dcs-930l-b1:blue:wps";
+ gpios = <&gpio0 19 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 20 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-300-B1.dts b/sys/gnu/dts/mips/DIR-300-B1.dts
new file mode 100644
index 0000000000000..f0298b2db392e
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-300-B1.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "DIR-300-B1", "ralink,rt3050-soc";
+ model = "D-Link DIR-300 B1";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "spi", "jtag", "mdio", "rgmii", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ devdata: partition@30000 {
+ label = "devdata";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "devconf";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&devdata 0x4004>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&devdata 0x4000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "dir-300-b1:amber:status";
+ gpios = <&gpio0 8 1>;
+ };
+
+ status2 {
+ label = "dir-300-b1:green:status";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wan {
+ label = "dir-300-b1:amber:wan";
+ gpios = <&gpio0 14 1>;
+ };
+
+ wan2 {
+ label = "dir-300-b1:green:wan";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wps {
+ label = "dir-300-b1:blue:wps";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-300-B7.dts b/sys/gnu/dts/mips/DIR-300-B7.dts
new file mode 100644
index 0000000000000..f3cec7b215fed
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-300-B7.dts
@@ -0,0 +1,103 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "DIR-300-B7", "ralink,rt5350-soc";
+ model = "D-Link DIR-300 B7";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ mediatek,led_polarity = <0x17>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "dir-300-b7:green:status";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wps {
+ label = "dir-300-b7:blue:wps";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ wmac@10180000 {
+ status = "okay";
+ ralink,led-polarity = <1>;
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-320-B1.dts b/sys/gnu/dts/mips/DIR-320-B1.dts
new file mode 100644
index 0000000000000..fba590f7094a3
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-320-B1.dts
@@ -0,0 +1,131 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "DIR-320-B1", "ralink,rt5350-soc";
+ model = "D-Link DIR-320 B1";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ mediatek,led_polarity = <0x17>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "dir-320-b1:green:status";
+ gpios = <&gpio0 9 1>;
+ };
+
+ usb {
+ label = "dir-320-b1:green:usb";
+ gpios = <&gpio0 14 1>;
+ };
+
+ wps {
+ label = "dir-320-b1:green:wps";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c0000 {
+ status = "okay";
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ usb {
+ gpio-export,name = "usb";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 7 0>;
+ };
+
+ root_hub {
+ gpio-export,name = "root_hub";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 12 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-600-B1.dts b/sys/gnu/dts/mips/DIR-600-B1.dts
new file mode 100644
index 0000000000000..ea3d3ebecd40e
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-600-B1.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "DIR-600-B1", "ralink,rt3050-soc";
+ model = "D-Link DIR-600 B1";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "spi", "jtag", "mdio", "rgmii", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ devdata: partition@30000 {
+ label = "devdata";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "devconf";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&devdata 0x4004>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&devdata 0x4000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "dir-600-b1:amber:status";
+ gpios = <&gpio0 8 1>;
+ };
+
+ status2 {
+ label = "dir-600-b1:green:status";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wan {
+ label = "dir-600-b1:amber:wan";
+ gpios = <&gpio0 14 1>;
+ };
+
+ wan2 {
+ label = "dir-600-b1:green:wan";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wps {
+ label = "dir-600-b1:blue:wps";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-600-B2.dts b/sys/gnu/dts/mips/DIR-600-B2.dts
new file mode 100644
index 0000000000000..27915634e9aac
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-600-B2.dts
@@ -0,0 +1,105 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "DIR-600-B2", "ralink,rt3050-soc";
+ model = "D-Link DIR-600 B2";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "spi", "jtag", "mdio", "rgmii", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ devdata: partition@30000 {
+ label = "devdata";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "devconf";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&devdata 0x4000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "dir-600-b2:amber:status";
+ gpios = <&gpio0 8 1>;
+ };
+
+ status2 {
+ label = "dir-600-b2:green:status";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wan {
+ label = "dir-600-b2:amber:wan";
+ gpios = <&gpio0 14 1>;
+ };
+
+ wan2 {
+ label = "dir-600-b2:green:wan";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wps {
+ label = "dir-600-b2:blue:wps";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-610-A1.dts b/sys/gnu/dts/mips/DIR-610-A1.dts
new file mode 100644
index 0000000000000..cfab89ae1dcae
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-610-A1.dts
@@ -0,0 +1,104 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "DIR-610-A1", "ralink,rt5350-soc";
+ model = "D-Link DIR-610 A1";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ devdata: partition@30000 {
+ label = "devdata";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&devdata 0x4004>;
+ };
+
+ esw@10110000 {
+ status = "okay";
+ mediatek,portmap = <0x2f>;
+ mediatek,led_polarity = <0x17>;
+ };
+
+ wmac@10180000 {
+ status = "okay";
+ ralink,led-polarity = <1>;
+ ralink,mtd-eeprom = <&devdata 0x4000>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "dir-610-a1:green:status";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wps {
+ label = "dir-610-a1:green:wps";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-615-D.dts b/sys/gnu/dts/mips/DIR-615-D.dts
new file mode 100644
index 0000000000000..45aeacea1e5f7
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-615-D.dts
@@ -0,0 +1,105 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "DIR-615-D", "ralink,rt3050-soc";
+ model = "D-Link DIR-615 D";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "spi", "jtag", "mdio", "rgmii", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ devdata: partition@30000 {
+ label = "devdata";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "devconf";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&devdata 0x4000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "dir-615-d:amber:status";
+ gpios = <&gpio0 8 1>;
+ };
+
+ status2 {
+ label = "dir-615-d:green:status";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wan {
+ label = "dir-615-d:amber:wan";
+ gpios = <&gpio0 14 1>;
+ };
+
+ wan2 {
+ label = "dir-615-d:green:wan";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wps {
+ label = "dir-615-d:blue:wps";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-615-H1.dts b/sys/gnu/dts/mips/DIR-615-H1.dts
new file mode 100644
index 0000000000000..d21d7d5eabd29
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-615-H1.dts
@@ -0,0 +1,125 @@
+/dts-v1/;
+
+/include/ "rt3352.dtsi"
+
+/ {
+ compatible = "DIR-615-H1", "ralink,rt3352-soc";
+ model = "D-Link DIR-615 H1";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+
+ rgmii {
+ ralink,group = "rgmii";
+ ralink,function = "rgmii";
+ };
+
+ mdio {
+ ralink,group = "mdio";
+ ralink,function = "mdio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "dir-615-h1:amber:status";
+ gpios = <&gpio0 7 0>;
+ };
+
+ status2 {
+ label = "dir-615-h1:green:status";
+ gpios = <&gpio0 9 0>;
+ };
+
+ wan {
+ label = "dir-615-h1:amber:wan";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wan2 {
+ label = "dir-615-h1:green:wan";
+ gpios = <&gpio0 13 1>;
+ };
+
+ wps {
+ label = "dir-615-h1:blue:wps";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-620-A1.dts b/sys/gnu/dts/mips/DIR-620-A1.dts
new file mode 100644
index 0000000000000..c72b11bc14893
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-620-A1.dts
@@ -0,0 +1,118 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "DIR-620-A1", "ralink,rt3050-soc";
+ model = "D-Link DIR-620 A1";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "dir-620-a1:amber:status";
+ gpios = <&gpio0 8 1>;
+ };
+
+ status2 {
+ label = "dir-620-a1:green:status";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wan {
+ label = "dir-620-a1:amber:wan";
+ gpios = <&gpio0 14 1>;
+ };
+
+ wan2 {
+ label = "dir-620-a1:green:wan";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wps {
+ label = "dir-620-a1:blue:wps";
+ gpios = <&gpio0 13 0>;
+ };
+
+ wps2 {
+ label = "dir-620-a1:amber:wps";
+ gpios = <&gpio0 11 0>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-620-D1.dts b/sys/gnu/dts/mips/DIR-620-D1.dts
new file mode 100644
index 0000000000000..4737d24c8839c
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-620-D1.dts
@@ -0,0 +1,112 @@
+/dts-v1/;
+
+/include/ "rt3352.dtsi"
+
+/ {
+ compatible = "DIR-620-D1", "ralink,rt3352-soc";
+ model = "D-Link DIR-620 D1";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l6405d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+
+ rgmii {
+ ralink,group = "rgmii";
+ ralink,function = "rgmii";
+ };
+
+ mdio {
+ ralink,group = "mdio";
+ ralink,function = "mdio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "dir-620-d1:green:status";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wifi {
+ label = "dir-620-d1:green:wifi";
+ gpios = <&gpio0 17 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset_wps {
+ label = "reset_wps";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-645.dts b/sys/gnu/dts/mips/DIR-645.dts
new file mode 100644
index 0000000000000..6272324caafab
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-645.dts
@@ -0,0 +1,142 @@
+/dts-v1/;
+
+/include/ "rt3883.dtsi"
+
+/ {
+ compatible = "DIR-645", "ralink,rt3883-soc";
+ model = "D-Link DIR-645";
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <25000000>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x4000>;
+ read-only;
+ };
+
+ factory: partition@34000 {
+ label = "factory";
+ reg = <0x34000 0x4000>;
+ read-only;
+ };
+
+ partition@38000 {
+ label = "nvram";
+ reg = <0x38000 0x8000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "devdata";
+ reg = <0x40000 0x10000>;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+
+ port@0 {
+ mediatek,fixed-link = <1000 1 1 0>;
+ };
+ };
+
+ wmac@10180000 {
+ ralink,5ghz = <0>;
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ rtl8367b {
+ compatible = "realtek,rtl8367b";
+ gpio-sda = <&gpio0 1 0>;
+ gpio-sck = <&gpio0 2 0>;
+ realtek,extif1 = <1 0 1 1 1 1 1 1 2>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 9 0>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 14 0>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ inet {
+ label = "dir-645:green:inet";
+ gpios = <&gpio0 0 1>;
+ };
+
+ wps {
+ label = "dir-645:green:wps";
+ gpios = <&gpio1 2 0>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ usb {
+ gpio-export,name = "usb";
+ gpio-export,output = <1>;
+ gpios = <&gpio1 6 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-810L.dts b/sys/gnu/dts/mips/DIR-810L.dts
new file mode 100644
index 0000000000000..91fb01843bde5
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-810L.dts
@@ -0,0 +1,136 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "dlink,dir-810l", "ralink,mt7620a-soc";
+ model = "D-Link DIR-810L";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ factory5g: partition@50000 {
+ label = "factory5g";
+ reg = <0x50000 0x10000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "Wolf_Config";
+ reg = <0x60000 0x10000>;
+ read-only;
+ };
+
+ partition@70000 {
+ label = "MyDlink";
+ reg = <0x70000 0x80000>;
+ read-only;
+ };
+
+ partition@e0000 {
+ label = "Jffs2";
+ reg = <0xe0000 0x80000>;
+ read-only;
+ };
+
+ partition@170000 {
+ label = "firmware";
+ reg = <0x170000 0x690000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "mdio", "rgmii1", "i2c", "wled", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ mediatek,portmap = "llllw";
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "ephy";
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x100>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x100>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "dir-810l:green:power";
+ gpios = <&gpio0 9 0>;
+ };
+
+ wan {
+ label = "dir-810l:orange:wan";
+ gpios = <&gpio0 12 0>;
+ };
+
+ status {
+ label = "dir-810l:orange:power";
+ gpios = <&gpio0 13 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/DIR-860L-B1.dts b/sys/gnu/dts/mips/DIR-860L-B1.dts
new file mode 100644
index 0000000000000..a6add705ba70e
--- /dev/null
+++ b/sys/gnu/dts/mips/DIR-860L-B1.dts
@@ -0,0 +1,129 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+ compatible = "ralink,mt7621-eval-board", "ralink,mt7621-soc";
+ model = "D-Link DIR-860L B1";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x8000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ palmbus@1E000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x4000>;
+ read-only;
+ };
+
+ radio: partition@34000 {
+ label = "radio";
+ reg = <0x34000 0x4000>;
+ read-only;
+ };
+
+ factory: partition@38000 {
+ label = "factory";
+ reg = <0x38000 0x8000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "defaults";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+ };
+ };
+
+ pcie@1e140000 {
+ status = "okay";
+
+ pcie0 {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&radio 0x2000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+
+ pcie1 {
+ mt76@1,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&radio 0>;
+ mediatek,5ghz = <0>;
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uart2", "uart3", "rgmii2", "sdhci";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "dir-860l-b1:orange:power";
+ gpios = <&gpio0 13 1>;
+ };
+
+ power2 {
+ label = "dir-860l-b1:green:power";
+ gpios = <&gpio0 15 1>;
+ };
+
+ net {
+ label = "dir-860l-b1:orange:net";
+ gpios = <&gpio0 14 1>;
+ };
+
+ net2 {
+ label = "dir-860l-b1:green:net";
+ gpios = <&gpio0 16 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ };
+};
diff --git a/sys/gnu/dts/mips/E1700.dts b/sys/gnu/dts/mips/E1700.dts
new file mode 100644
index 0000000000000..8b4361af87d2a
--- /dev/null
+++ b/sys/gnu/dts/mips/E1700.dts
@@ -0,0 +1,154 @@
+/*
+ * Device Tree file for the Linksys E1700
+ *
+ * Copyright (C) 2014 Imre Kaloz <kaloz@openwrt.org>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "linksys,e1700", "ralink,mt7620a-soc";
+ model = "Linksys E1700";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l6405d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "config";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ status = "okay";
+ mtd-mac-address = <&factory 0x28>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;
+
+ port@5 {
+ status = "okay";
+ mediatek,fixed-link = <1000 1 1 1>;
+ phy-mode = "rgmii";
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ reg = <0>;
+ phy-mode = "rgmii";
+ };
+
+ phy1: ethernet-phy@1 {
+ reg = <1>;
+ phy-mode = "rgmii";
+ };
+
+ phy2: ethernet-phy@2 {
+ reg = <2>;
+ phy-mode = "rgmii";
+ };
+
+ phy3: ethernet-phy@3 {
+ reg = <3>;
+ phy-mode = "rgmii";
+ };
+
+ phy4: ethernet-phy@4 {
+ reg = <4>;
+ phy-mode = "rgmii";
+ };
+
+ phy1f: ethernet-phy@1f {
+ reg = <0x1f>;
+ phy-mode = "rgmii";
+ };
+ };
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "gmac";
+ mediatek,mt7530 = <1>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 0>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 2 0>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "e1700:green:power";
+ gpios = <&gpio0 10 1>;
+ };
+
+ wan {
+ label = "e1700:green:wps";
+ gpios = <&gpio0 12 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ESR-9753.dts b/sys/gnu/dts/mips/ESR-9753.dts
new file mode 100644
index 0000000000000..67d8539f9d397
--- /dev/null
+++ b/sys/gnu/dts/mips/ESR-9753.dts
@@ -0,0 +1,94 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "ESR-9753", "ralink,rt3052-soc";
+ model = "Senao / EnGenius ESR-9753";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "esr-9753:orange:power";
+ gpios = <&gpio0 8 1>;
+ };
+
+ wps {
+ label = "esr-9753:orange:wps";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+};
diff --git a/sys/gnu/dts/mips/EX2700.dts b/sys/gnu/dts/mips/EX2700.dts
new file mode 100644
index 0000000000000..4b5a01a94ee56
--- /dev/null
+++ b/sys/gnu/dts/mips/EX2700.dts
@@ -0,0 +1,148 @@
+/*
+ * Device Tree file for the Netgear EX2700
+ *
+ * Copyright (C) 2016 Joseph C. Lehner <joseph.c.lehner@gmail.com>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-soc";
+ model = "Netgear EX2700";
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ palmbus@10000000 {
+
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "firmware";
+ reg = <0x40000 0x3b0000>;
+ };
+
+ art: partition@3f0000 {
+ label = "art";
+ reg = <0x3f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&art 0x0>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&art 0x1000>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ // spi refclk: pins 37, 38, 39
+ // uartf: pins 8, 9, 10, 11, 12, 13, 14
+ // i2c: pins 1, 2
+ ralink,group = "i2c", "uartf", "spi refclk";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_g {
+ label = "ex2700:green:power";
+ gpios = <&gpio0 9 1>;
+ default-state = "on";
+ };
+
+ power_r {
+ label = "ex2700:red:power";
+ gpios = <&gpio0 11 1>;
+ };
+
+ device_g {
+ label = "ex2700:green:device";
+ gpios = <&gpio0 13 1>;
+ };
+
+ device_r {
+ label = "ex2700:red:device";
+ gpios = <&gpio0 10 1>;
+ };
+
+ router_g {
+ label = "ex2700:green:router";
+ gpios = <&gpio0 12 1>;
+ };
+
+ router_r {
+ label = "ex2700:red:router";
+ gpios = <&gpio0 14 1>;
+ };
+
+ wps {
+ label = "ex2700:green:wps";
+ gpios = <&gpio1 15 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/F5D8235_V1.dts b/sys/gnu/dts/mips/F5D8235_V1.dts
new file mode 100644
index 0000000000000..f1bfc0917e83b
--- /dev/null
+++ b/sys/gnu/dts/mips/F5D8235_V1.dts
@@ -0,0 +1,111 @@
+/dts-v1/;
+
+/include/ "rt2880.dtsi"
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "F5D8235_V1", "ralink,rt2880-soc";
+ model = "Belkin F5D8235 v1";
+
+ palmbus@300000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "linux";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@400000 {
+ status = "okay";
+ mtd-mac-address = <&factory 0x4>;
+
+ port@0 {
+ mediatek,fixed-link = <1000 1 1 1>;
+ };
+ };
+
+ /* FIXME: no u-boot partition and 0x40000@uboot is out of boundaries */
+/* wmac@480000 {
+ status = "okay";
+ ralink,mtd-eeprom = <&u-boot 0x40000>;
+ };
+*/
+ rtl8366s {
+ compatible = "realtek,rtl8366s";
+ gpio-sda = <&gpio0 1 0>;
+ gpio-sck = <&gpio0 2 0>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 9 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ storage {
+ label = "f5d8235-v1:blue:storage";
+ gpios = <&gpio0 7 1>;
+ };
+
+ storage2 {
+ label = "f5d8235-v1:orange:storage";
+ gpios = <&gpio0 8 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/F5D8235_V2.dts b/sys/gnu/dts/mips/F5D8235_V2.dts
new file mode 100644
index 0000000000000..38446e62f990f
--- /dev/null
+++ b/sys/gnu/dts/mips/F5D8235_V2.dts
@@ -0,0 +1,118 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "F5D8235_V2", "ralink,rt3052-soc";
+ model = "Belkin F5D8235 v2";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ uboot: partition@0 {
+ label = "uboot";
+ reg = <0x0 0x50000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x790000>;
+ };
+
+ partition@7e0000 {
+ label = "nvram";
+ reg = <0x7e0000 0x10000>;
+ };
+
+ factory: partition@7f0000 {
+ label = "factory";
+ reg = <0x7f0000 0x10000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&uboot 0x40004>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&uboot 0x40000>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+
+ rtl8366rb {
+ compatible = "rtl8366rb";
+ gpio-sda = <&gpio0 1 0>;
+ gpio-sck = <&gpio0 2 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ internet {
+ label = "f5d8235-v2:blue:internet";
+ gpios = <&gpio0 5 1>;
+ };
+
+ internet2 {
+ label = "f5d8235-v2:amber:internet";
+ gpios = <&gpio0 6 1>;
+ };
+
+ modem {
+ label = "f5d8235-v2:blue:modem";
+ gpios = <&gpio0 11 1>;
+ };
+
+ modem2 {
+ label = "f5d8235-v2:amber:modem";
+ gpios = <&gpio0 8 1>;
+ };
+
+ router {
+ label = "f5d8235-v2:blue:router";
+ gpios = <&gpio0 9 1>;
+ };
+
+ storage {
+ label = "f5d8235-v2:blue:storage";
+ gpios = <&gpio0 23 1>;
+ };
+
+ storage2 {
+ label = "f5d8235-v2:amber:storage";
+ gpios = <&gpio0 22 1>;
+ };
+
+ security {
+ label = "f5d8235-v2:blue:security";
+ gpios = <&gpio0 13 1>;
+ };
+
+ security2 {
+ label = "f5d8235-v2:amber:security";
+ gpios = <&gpio0 12 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/F7C027.dts b/sys/gnu/dts/mips/F7C027.dts
new file mode 100644
index 0000000000000..7d479ad34f6fb
--- /dev/null
+++ b/sys/gnu/dts/mips/F7C027.dts
@@ -0,0 +1,133 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "F7C027", "ralink,rt5350-soc";
+ model = "Belkin F7C027";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l12805d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x770000>;
+ };
+
+ partition@7c0000 {
+ label = "firmware2";
+ reg = <0x7c0000 0x770000>;
+ };
+
+ partition@f30000 {
+ label = "belkin_settings";
+ reg = <0xf30000 0xa0000>;
+ };
+
+ partition@fd0000 {
+ label = "unknown";
+ reg = <0xfd0000 0x10000>;
+ };
+
+ partition@fe0000 {
+ label = "nvram";
+ reg = <0xfe0000 0x10000>;
+ };
+
+ partition@ff0000 {
+ label = "user_factory";
+ reg = <0xff0000 0x10000>;
+ };
+ };
+ };
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "f7c027:blue:status";
+ gpios = <&gpio0 7 1>;
+ };
+
+ power {
+ label = "f7c027:blue:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ orange {
+ label = "f7c027:orange:status";
+ gpios = <&gpio0 11 1>;
+ };
+
+ relay {
+ label = "f7c027:device:relay";
+ gpios = <&gpio0 13 0>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ top {
+ label = "top";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ power {
+ label = "power";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x100>;
+ };
+
+ sensor {
+ label = "sensor";
+ gpios = <&gpio0 14 1>;
+ linux,code = <0x101>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/FIREWRT.dts b/sys/gnu/dts/mips/FIREWRT.dts
new file mode 100644
index 0000000000000..e7cfb1174408a
--- /dev/null
+++ b/sys/gnu/dts/mips/FIREWRT.dts
@@ -0,0 +1,122 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+ compatible = "mediatek,mt7621-eval-board", "mediatek,mt7621-soc";
+ model = "Firefly FireWRT";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x1c000000>, <0x20000000 0x4000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ palmbus@1E000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+ };
+ };
+
+ pcie@1e140000 {
+ status = "okay";
+
+ pcie0 {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+
+ pcie1 {
+ mt76@1,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x0000>;
+ mediatek,5ghz = <0>;
+ };
+ };
+ };
+
+ ethernet@1e100000 {
+ mtd-mac-address = <&factory 0xe000>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "firewrt:green:power";
+ gpios = <&gpio0 22 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 18 1>;
+ linux,code = <0x211>;
+ };
+
+ power {
+ label = "power";
+ gpios = <&gpio0 23 1>;
+ linux,code = <116>;
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "wdt", "rgmii2";
+ ralink,function = "gpio";
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/FONERA20N.dts b/sys/gnu/dts/mips/FONERA20N.dts
new file mode 100644
index 0000000000000..a9d0acdc87aaf
--- /dev/null
+++ b/sys/gnu/dts/mips/FONERA20N.dts
@@ -0,0 +1,134 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "FONERA20N", "ralink,rt3052-soc";
+ model = "La Fonera 2.0N";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "spi", "jtag", "mdio", "rgmii", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wifi {
+ label = "fonera20n:orange:wifi";
+ gpios = <&gpio0 7 1>;
+ };
+
+ power {
+ label = "fonera20n:green:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ usb {
+ label = "fonera20n:orange:usb";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x198>;
+ };
+
+ switch {
+ label = "switch";
+ gpios = <&gpio0 13 1>;
+ linux,code = <0xf7>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+
+ port@0 {
+ compatible = "swconfig,port";
+ swconfig,segment = "lan";
+ swconfig,portmap = <0 4>;
+ };
+
+ port@1 {
+ compatible = "swconfig,port";
+ swconfig,segment = "lan";
+ swconfig,portmap = <1 3>;
+ };
+
+ port@2 {
+ compatible = "swconfig,port";
+ swconfig,segment = "lan";
+ swconfig,portmap = <2 2>;
+ };
+
+ port@3 {
+ compatible = "swconfig,port";
+ swconfig,segment = "lan";
+ swconfig,portmap = <3 1>;
+ };
+
+ port@4 {
+ compatible = "swconfig,port";
+ swconfig,segment = "wan";
+ swconfig,portmap = <4 0>;
+ };
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/FREESTATION5.dts b/sys/gnu/dts/mips/FREESTATION5.dts
new file mode 100644
index 0000000000000..0e38c553d8903
--- /dev/null
+++ b/sys/gnu/dts/mips/FREESTATION5.dts
@@ -0,0 +1,102 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "FREESTATION5", "ralink,rt3050-soc";
+ model = "ARC FreeStation5";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x01>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+
+ gpio-export {
+ compatible = "gpio-export";
+
+ // Used to enable power-over-ethernet passthrough from port0 to port1.
+ // Disable passthrough by default to prevent accidental equipment damage.
+ poe {
+ gpio-export,name = "poe-passthrough";
+ gpio-export,output = <1>; // OUT_INIT_HIGH
+ gpios = <&gpio0 11 1>; // GPIO 11, ACTIVE_LOW
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ // The following leds are defined in the ArcOS firmware, but reportedly
+ // not present in the Freestation5 device.
+ wifi {
+ label = "freestation5:unknown:wifi";
+ gpios = <&gpio0 7 1>;
+ };
+
+ powerg {
+ label = "freestation5:unknown:powerg";
+ gpios = <&gpio0 9 1>;
+ };
+
+ usb {
+ label = "freestation5:unknown:usb";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/GL-MT300A.dts b/sys/gnu/dts/mips/GL-MT300A.dts
new file mode 100644
index 0000000000000..c1eb0a9818a33
--- /dev/null
+++ b/sys/gnu/dts/mips/GL-MT300A.dts
@@ -0,0 +1,164 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "GL-MT300A", "ralink,mt7620a-soc";
+ model = "GL-MT300A";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "w25q128";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xf80000>;
+ };
+
+ partition@ff0000 {
+ label = "art";
+ reg = <0xff0000 0x10000>;
+ };
+ };
+ };
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4000>;
+ ralink,port-map = "wllll";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+
+ pcie-bridge {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "wled","ephy","uartf","i2c";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wan {
+ label = "gl-mt300a:wan";
+ gpios = <&gpio2 0 1>;
+ };
+
+ lan {
+ label = "gl-mt300a:lan";
+ gpios = <&gpio2 1 1>;
+ };
+
+ wlan {
+ label = "gl-mt300a:wlan";
+ gpios = <&gpio3 0 1>;
+ };
+
+ usb {
+ label = "gl-mt300a:usb";
+ gpios = <&gpio0 7 1>;
+ };
+
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ reset {
+ label = "reset";
+ gpios = <&gpio0 13 1>;
+ linux,code = <0x198>;
+ };
+
+ BTN_0 {
+ label = "BTN_0";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x100>;
+ };
+
+ BTN_1 {
+ label = "BTN_1";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x101>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/GL-MT300N.dts b/sys/gnu/dts/mips/GL-MT300N.dts
new file mode 100644
index 0000000000000..82db37eecd0d0
--- /dev/null
+++ b/sys/gnu/dts/mips/GL-MT300N.dts
@@ -0,0 +1,153 @@
+/dts-v1/;
+
+/include/ "mt7620n.dtsi"
+
+/ {
+ compatible = "GL-MT300N", "ralink,mt7620n-soc";
+ model = "GL-MT300N";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "w25q128";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xf80000>;
+ };
+
+ partition@ff0000 {
+ label = "art";
+ reg = <0xff0000 0x10000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4000>;
+ ralink,port-map = "wllll";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+
+ pcie-bridge {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "wled","ephy","i2c";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wan {
+ label = "gl-mt300n:wan";
+ gpios = <&gpio2 0 1>;
+ };
+
+ lan {
+ label = "gl-mt300n:lan";
+ gpios = <&gpio2 1 1>;
+ };
+
+ wlan {
+ label = "gl-mt300n:wlan";
+ gpios = <&gpio3 0 1>;
+ };
+
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+
+ BTN_0 {
+ label = "BTN_0";
+ gpios = <&gpio2 2 1>;
+ linux,code = <0x100>;
+ };
+
+ BTN_1 {
+ label = "BTN_1";
+ gpios = <&gpio2 3 1>;
+ linux,code = <0x101>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/GL-MT750.dts b/sys/gnu/dts/mips/GL-MT750.dts
new file mode 100644
index 0000000000000..a36ae5e4dc93c
--- /dev/null
+++ b/sys/gnu/dts/mips/GL-MT750.dts
@@ -0,0 +1,159 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "GL-MT750", "ralink,mt7620a-soc";
+ model = "GL-MT750";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "w25q128";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xf80000>;
+ };
+
+ partition@ff0000 {
+ label = "art";
+ reg = <0xff0000 0x10000>;
+ };
+ };
+ };
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4000>;
+ ralink,port-map = "llllw";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+
+ pcie-bridge {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "wled","ephy","uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wan {
+ label = "gl-mt750:wan";
+ gpios = <&gpio2 0 1>;
+ };
+
+ lan {
+ label = "gl-mt750:lan";
+ gpios = <&gpio2 1 1>;
+ };
+
+ wlan {
+ label = "gl-mt750:wlan";
+ gpios = <&gpio3 0 1>;
+ };
+
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ reset {
+ label = "reset";
+ gpios = <&gpio0 13 1>;
+ linux,code = <0x198>;
+ };
+
+ BTN_0 {
+ label = "BTN_0";
+ gpios = <&gpio2 2 1>;
+ linux,code = <0x100>;
+ };
+
+ BTN_1 {
+ label = "BTN_1";
+ gpios = <&gpio2 3 1>;
+ linux,code = <0x101>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/HC5661.dts b/sys/gnu/dts/mips/HC5661.dts
new file mode 100644
index 0000000000000..b9a717bc54e49
--- /dev/null
+++ b/sys/gnu/dts/mips/HC5661.dts
@@ -0,0 +1,32 @@
+/dts-v1/;
+
+/include/ "HC5XXX.dtsi"
+
+/ {
+ compatible = "HC5661", "ralink,mt7620a-soc";
+ model = "HiWiFi HC5661";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ system {
+ label = "hc5661:blue:system";
+ gpios = <&gpio0 9 1>;
+ };
+
+ internet {
+ label = "hc5661:blue:internet";
+ gpios = <&gpio0 11 1>;
+ };
+
+ wlan2g {
+ label = "hc5661:blue:wlan2g";
+ gpios = <&gpio3 0 1>;
+ };
+
+ wlan5g {
+ label = "hc5661:blue:wlan5g";
+ gpios = <&gpio0 7 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/HC5761.dts b/sys/gnu/dts/mips/HC5761.dts
new file mode 100644
index 0000000000000..a10904cc90c55
--- /dev/null
+++ b/sys/gnu/dts/mips/HC5761.dts
@@ -0,0 +1,32 @@
+/dts-v1/;
+
+/include/ "HC5XXX.dtsi"
+
+/ {
+ compatible = "HC5761", "ralink,mt7620a-soc";
+ model = "HiWiFi HC5761";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ system {
+ label = "hc5761:blue:system";
+ gpios = <&gpio0 9 1>;
+ };
+
+ internet {
+ label = "hc5761:blue:internet";
+ gpios = <&gpio0 11 1>;
+ };
+
+ wlan2g {
+ label = "hc5761:blue:wlan2g";
+ gpios = <&gpio3 0 1>;
+ };
+
+ wlan5g {
+ label = "hc5761:blue:wlan5g";
+ gpios = <&gpio0 7 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/HC5861.dts b/sys/gnu/dts/mips/HC5861.dts
new file mode 100644
index 0000000000000..b279db1835d77
--- /dev/null
+++ b/sys/gnu/dts/mips/HC5861.dts
@@ -0,0 +1,92 @@
+/dts-v1/;
+
+/include/ "HC5XXX.dtsi"
+
+/ {
+ compatible = "HC5861", "ralink,mt7620a-soc";
+ model = "HiWiFi HC5861";
+
+ ethernet@10100000 {
+ status = "okay";
+ mtd-mac-address = <&factory 0x4>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;
+ mediatek,portmap = "wllll";
+
+ port@4 {
+ status = "okay";
+ phy-handle = <&phy4>;
+ phy-mode = "rgmii";
+ };
+
+ port@5 {
+ status = "okay";
+ phy-handle = <&phy5>;
+ phy-mode = "rgmii";
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy4: ethernet-phy@4 {
+ reg = <4>;
+ phy-mode = "rgmii";
+ };
+
+ phy5: ethernet-phy@5 {
+ reg = <5>;
+ phy-mode = "rgmii";
+ };
+ };
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "gmac";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ system {
+ label = "hc5861:blue:system";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wlan2g {
+ label = "hc5861:blue:wlan2g";
+ gpios = <&gpio0 11 1>;
+ };
+
+ internet {
+ label = "hc5861:blue:internet";
+ gpios = <&gpio3 0 1>;
+ };
+
+ wlan5g {
+ label = "hc5861:blue:wlan5g";
+ gpios = <&gpio0 7 1>;
+ };
+
+ turbo {
+ label = "hc5861:blue:turbo";
+ gpios = <&gpio0 10 1>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ usbpower {
+ gpio-export,name = "usbpower";
+ gpio-export,output = <0>;
+ gpios = <&gpio0 13 0>;
+ };
+
+ sdpower {
+ gpio-export,name = "sdpower";
+ gpio-export,output = <0>;
+ gpios = <&gpio0 8 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/HC5XXX.dtsi b/sys/gnu/dts/mips/HC5XXX.dtsi
new file mode 100644
index 0000000000000..84e2b8005377c
--- /dev/null
+++ b/sys/gnu/dts/mips/HC5XXX.dtsi
@@ -0,0 +1,141 @@
+/include/ "mt7620a.dtsi"
+
+/ {
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ sysc@0 {
+ ralink,gpiomux = "i2c", "jtag";
+ ralink,uartmux = "gpio";
+ ralink,wdtmux = <1>;
+ };
+
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xf80000>;
+ };
+
+ partition@fd0000 {
+ label = "hwf_config";
+ reg = <0xfd0000 0x10000>;
+ };
+
+ bdinfo: partition@fe0000 {
+ label = "bdinfo";
+ reg = <0xfe0000 0x10000>;
+ };
+
+ partition@ff0000 {
+ label = "backup";
+ reg = <0xff0000 0x10000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "wllll";
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "uartf", "wled", "nd_sd";
+ ralink,function = "gpio";
+ };
+
+ pa {
+ ralink,group = "pa";
+ ralink,function = "pa";
+ };
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ usbpower {
+ gpio-export,name = "usbpower";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 13 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/HG255D.dts b/sys/gnu/dts/mips/HG255D.dts
new file mode 100644
index 0000000000000..00f012c425190
--- /dev/null
+++ b/sys/gnu/dts/mips/HG255D.dts
@@ -0,0 +1,130 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "HG255D", "ralink,rt3052-soc";
+ model = "HuaWei HG255D";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x1000000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x40000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x40000 0x20000>;
+ read-only;
+ };
+
+ factory: partition@60000 {
+ label = "factory";
+ reg = <0x60000 0x20000>;
+ read-only;
+ };
+
+ partition@80000 {
+ label = "firmware";
+ reg = <0x80000 0xf60000>;
+ };
+
+ partition@fa0000 {
+ label = "factory-orig";
+ reg = <0xfa0000 0x20000>;
+ read-only;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "hg255d:green:power";
+ gpios = <&gpio0 8 1>;
+ };
+
+ internet {
+ label = "hg255d:green:internet";
+ gpios = <&gpio0 13 1>;
+ };
+
+ wifi {
+ label = "hg255d:green:wlan";
+ gpios = <&gpio0 14 1>;
+ };
+
+ usb {
+ label = "hg255d:green:usb";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wps {
+ label = "hg255d:green:wps";
+ gpios = <&gpio0 12 1>;
+ };
+
+ voice {
+ label = "hg255d:green:voice";
+ gpios = <&gpio0 5 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <10>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 4 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x211>;
+ };
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0xf7>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/HLKRM04.dts b/sys/gnu/dts/mips/HLKRM04.dts
new file mode 100644
index 0000000000000..3c9a93ca8c911
--- /dev/null
+++ b/sys/gnu/dts/mips/HLKRM04.dts
@@ -0,0 +1,125 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "HLKRM04", "ralink,rt5350-soc";
+ model = "HILINK HLK-RM04";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x1000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS1,57600";
+ };
+
+ palmbus@10000000 {
+ uart@500 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag";
+ ralink,function = "gpio";
+ };
+
+ uartf_gpio {
+ ralink,group = "uartf";
+ ralink,function = "gpio uartf";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ /* I2C */
+ gpio1 {
+ /* I2C_I2C_SD */
+ gpio-export,name = "hlk-rm04:gpio0";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 1 0>;
+ };
+ gpio2 {
+ /* I2C_I2C_SCLK */
+ gpio-export,name = "hlk-rm04:gpio1";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 2 0>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ reset {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio0 14 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/HPM.dts b/sys/gnu/dts/mips/HPM.dts
new file mode 100644
index 0000000000000..c1b8ff3eee45b
--- /dev/null
+++ b/sys/gnu/dts/mips/HPM.dts
@@ -0,0 +1,149 @@
+/dts-v1/;
+
+/include/ "rt3883.dtsi"
+
+/ {
+ compatible = "HPM", "ralink,rt3883-soc";
+ model = "Omnima HPM";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ compatible = "jedec,spi-nor";
+ spi-max-frequency = <25000000>;
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x0030000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ partition@30000 {
+ reg = <0x00030000 0x00010000>;
+ label = "config";
+ read-only;
+ };
+
+ factory: partition@40000 {
+ reg = <0x00040000 0x00010000>;
+ label = "factory";
+ read-only;
+ };
+
+ partition@50000 {
+ reg = <0x00050000 0x00fb0000>;
+ label = "firmware";
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ phy-handle = <&phy0>;
+ phy-mode = "rgmii";
+ mtd-mac-address = <&factory 0x28>;
+
+ mdio-bus {
+ status = "okay";
+
+ phy0: ethernet-phy@4 {
+ reg = <4>;
+ };
+ };
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 14 0>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "hpm:orange:power";
+ gpios = <&gpio0 7 1>;
+ };
+
+ status {
+ label = "hpm:green:status";
+ gpios = <&gpio0 21 1>;
+ };
+
+ eth {
+ label = "hpm:green:eth";
+ gpios = <&gpio0 20 1>;
+ };
+
+ eth2 {
+ label = "hpm:red:eth";
+ gpios = <&gpio0 18 1>;
+ };
+
+ wifi {
+ label = "hpm:green:wifi";
+ gpios = <&gpio0 17 1>;
+ };
+
+ wifi2 {
+ label = "hpm:red:wifi";
+ gpios = <&gpio0 19 1>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+ /* gpio 12 and 13 handle the OC input */
+
+ usb0 {
+ gpio-export,name = "usb0";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 2 0>;
+ };
+
+ usb1 {
+ gpio-export,name = "usb1";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 1 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/HT-TM02.dts b/sys/gnu/dts/mips/HT-TM02.dts
new file mode 100644
index 0000000000000..bb7f33379fae7
--- /dev/null
+++ b/sys/gnu/dts/mips/HT-TM02.dts
@@ -0,0 +1,113 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "HT-TM02", "ralink,rt5350-soc";
+ model = "HooToo HT-TM02";
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l6405d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x10>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wlan {
+ label = "ht-tm02:blue:wlan";
+ gpios = <&gpio0 7 1>;
+ };
+
+ lan {
+ label = "ht-tm02:green:lan";
+ gpios = <&gpio0 12 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ modeswitch {
+ label = "modeswitch";
+ gpios = <&gpio0 14 1>;
+ linux,code = <0x100>;
+ linux,input-type = <5>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/HW550-3G.dts b/sys/gnu/dts/mips/HW550-3G.dts
new file mode 100644
index 0000000000000..8a88131d0c258
--- /dev/null
+++ b/sys/gnu/dts/mips/HW550-3G.dts
@@ -0,0 +1,114 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "HW550-3G", "ralink,rt3052-soc";
+ model = "Aztech HW550-3G";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "hw550-3g:green:usb";
+ gpios = <&gpio0 8 1>;
+ };
+
+ 3g {
+ label = "hw550-3g:green:3g";
+ gpios = <&gpio0 11 1>;
+ };
+
+ status {
+ label = "hw550-3g:green:status";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wps {
+ label = "hw550-3g:green:wps";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ connect {
+ label = "connect";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0xda>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/IP2202.dts b/sys/gnu/dts/mips/IP2202.dts
new file mode 100644
index 0000000000000..da6304521e262
--- /dev/null
+++ b/sys/gnu/dts/mips/IP2202.dts
@@ -0,0 +1,88 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "IP2202", "ralink,rt3052-soc";
+ model = "Poray IP2202";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ run {
+ label = "ip2202:green:run";
+ gpios = <&gpio0 9 1>;
+ };
+
+ net {
+ label = "ip2202:amber:net";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/JHR-N805R.dts b/sys/gnu/dts/mips/JHR-N805R.dts
new file mode 100644
index 0000000000000..9ddab6ee6d077
--- /dev/null
+++ b/sys/gnu/dts/mips/JHR-N805R.dts
@@ -0,0 +1,89 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "JHR-N805R", "ralink,rt3050-soc";
+ model = "JCG JHR-N805R";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x2e>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ system {
+ label = "jhr-n805r:blue:system";
+ gpios = <&gpio0 9 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/JHR-N825R.dts b/sys/gnu/dts/mips/JHR-N825R.dts
new file mode 100644
index 0000000000000..2b648c570d1a4
--- /dev/null
+++ b/sys/gnu/dts/mips/JHR-N825R.dts
@@ -0,0 +1,81 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "JHR-N825R", "ralink,rt3052-soc";
+ model = "JCG JHR-N825R";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x2e>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ system {
+ label = "jhr-n825r:red:power";
+ gpios = <&gpio0 9 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ reset_wps {
+ label = "reset_wps";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/JHR-N926R.dts b/sys/gnu/dts/mips/JHR-N926R.dts
new file mode 100644
index 0000000000000..f4dfd109fe807
--- /dev/null
+++ b/sys/gnu/dts/mips/JHR-N926R.dts
@@ -0,0 +1,127 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "JHR-N926R", "ralink,rt3052-soc";
+ model = "JCG JHR-N926R";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x2e>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wlan1 {
+ label = "jhr-n926r:red:wlan";
+ gpios = <&gpio0 20 1>;
+ };
+
+ wlan2 {
+ label = "jhr-n926r:yellow:wlan";
+ gpios = <&gpio0 19 1>;
+ };
+
+ wlan3 {
+ label = "jhr-n926r:green:wlan";
+ gpios = <&gpio0 17 1>;
+ };
+
+ system {
+ label = "jhr-n926r:blue:system";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ display_data {
+ gpio-export,name = "display_data";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 7 1>;
+ };
+
+ display_clock {
+ gpio-export,name = "display_clock";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 8 0>;
+ };
+
+ display_blank {
+ gpio-export,name = "display_blank";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 11 0>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset_wps {
+ label = "reset_wps";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wlan {
+ label = "wlan";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x100>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/LINKIT7688.dts b/sys/gnu/dts/mips/LINKIT7688.dts
new file mode 100644
index 0000000000000..2dfb98c12ece2
--- /dev/null
+++ b/sys/gnu/dts/mips/LINKIT7688.dts
@@ -0,0 +1,177 @@
+/dts-v1/;
+
+/include/ "mt7628an.dtsi"
+
+/ {
+ compatible = "mediatek,linkit", "mediatek,mt7628an-soc";
+ model = "MediaTek LinkIt Smart 7688";
+
+ chosen {
+ bootargs = "console=ttyS2,57600";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x8000000>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "gpio";
+ ralink,function = "gpio";
+ };
+
+ perst {
+ ralink,group = "perst";
+ ralink,function = "gpio";
+ };
+
+ refclk {
+ ralink,group = "refclk";
+ ralink,function = "gpio";
+ };
+
+ i2s {
+ ralink,group = "i2s";
+ ralink,function = "gpio";
+ };
+
+ spis {
+ ralink,group = "spis";
+ ralink,function = "gpio";
+ };
+
+ wled_kn {
+ ralink,group = "wled_kn";
+ ralink,function = "gpio";
+ };
+
+ wled_an {
+ ralink,group = "wled_an";
+ ralink,function = "wled_an";
+ };
+
+ wdt {
+ ralink,group = "wdt";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ wmac@10300000 {
+ status = "okay";
+ };
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_pins>, <&spi_cs1_pins>;
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l25635e";
+ spi-max-frequency = <40000000>;
+ m25p,chunked-io = <31>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x1fb0000>;
+ };
+ };
+
+ spidev@1 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "spidev";
+ reg = <1 0>;
+ spi-max-frequency = <40000000>;
+ };
+ };
+
+ i2c@900 {
+ status = "okay";
+ };
+
+ uart1@d00 {
+ status = "okay";
+ };
+
+ uart2@e00 {
+ status = "okay";
+ };
+
+ pwm@5000 {
+ status = "okay";
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ mediatek,cd-high;
+ };
+
+ bootstrap {
+ compatible = "mediatek,linkit";
+
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wifi {
+ label = "mediatek:orange:wifi";
+ gpios = <&wgpio 0 0>;
+ default-state = "on";
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "reset";
+ gpios = <&gpio1 6 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ wgpio: gpio-wifi {
+ compatible = "mediatek,gpio-wifi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+
+};
diff --git a/sys/gnu/dts/mips/M2M.dts b/sys/gnu/dts/mips/M2M.dts
new file mode 100644
index 0000000000000..c547b5f5b6399
--- /dev/null
+++ b/sys/gnu/dts/mips/M2M.dts
@@ -0,0 +1,112 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "M2M", "ralink,rt5350-soc";
+ model = "Intenso Memory 2 Move";
+
+ chosen {
+ bootargs = "console=ttyS0,57600n8 root=/dev/mtdblock5";
+ };
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l6405d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "Bootloader";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "Config";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "Factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wifi {
+ label = "m2m:blue:wifi";
+ gpios = <&gpio0 7 1>;
+ };
+
+ wan {
+ label = "m2m:green:wan";
+ gpios = <&gpio0 12 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ power {
+ label = "power";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x116>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0x0>;
+ };
+};
diff --git a/sys/gnu/dts/mips/M3.dts b/sys/gnu/dts/mips/M3.dts
new file mode 100644
index 0000000000000..0a78afeb85b96
--- /dev/null
+++ b/sys/gnu/dts/mips/M3.dts
@@ -0,0 +1,106 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "M3", "ralink,rt5350-soc";
+ model = "Poray M3";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q32";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ mediatek,led_polarity = <1>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "m3:blue:status";
+ gpios = <&gpio0 9 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ mode {
+ label = "mode";
+ gpios = <&gpio0 17 1>;
+ linux,code = <0x100>;
+ linux,input-type = <5>;
+ };
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ ralink,led-polarity = <1>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/M4-4M.dts b/sys/gnu/dts/mips/M4-4M.dts
new file mode 100644
index 0000000000000..d99e37a3fd16f
--- /dev/null
+++ b/sys/gnu/dts/mips/M4-4M.dts
@@ -0,0 +1,94 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "M4", "ralink,rt5350-soc";
+ model = "Poray M4";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "pm25lq032";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ mediatek,led_polarity = <1>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "m4:blue:status";
+ gpios = <&gpio0 9 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/M4-8M.dts b/sys/gnu/dts/mips/M4-8M.dts
new file mode 100644
index 0000000000000..b9a27309b7ecd
--- /dev/null
+++ b/sys/gnu/dts/mips/M4-8M.dts
@@ -0,0 +1,99 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "M4", "ralink,rt5350-soc";
+ model = "Poray M4";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "gd25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ mediatek,led_polarity = <1>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "m4:blue:status";
+ gpios = <&gpio0 9 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ ralink,led-polarity = <1>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/MINIEMBPLUG.dts b/sys/gnu/dts/mips/MINIEMBPLUG.dts
new file mode 100644
index 0000000000000..12ff3b13a1446
--- /dev/null
+++ b/sys/gnu/dts/mips/MINIEMBPLUG.dts
@@ -0,0 +1,120 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "MINIEMBPLUG", "ralink,rt5350-soc";
+ model = "Omnima MiniEMBPlug";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wlan {
+ label = "miniembplug:red:wlan";
+ gpios = <&gpio0 9 0>;
+ };
+
+ mobile {
+ label = "miniembplug:green:mobile";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x211>;
+ };
+
+ mode-one {
+ label = "mode1";
+ gpios = <&gpio0 11 1>;
+ linux,code = <0x211>;
+ };
+
+ mode-two {
+ label = "mode2";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l6405d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/MINIEMBWIFI.dts b/sys/gnu/dts/mips/MINIEMBWIFI.dts
new file mode 100644
index 0000000000000..70557f9c2b479
--- /dev/null
+++ b/sys/gnu/dts/mips/MINIEMBWIFI.dts
@@ -0,0 +1,92 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "MINIEMBWIFI", "ralink,rt3052-soc";
+ model = "Omnima MiniEMBWiFi";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "miniembwifi:green:status";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wlan {
+ label = "miniembwifi:green:wlan";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/MIWIFI-MINI.dts b/sys/gnu/dts/mips/MIWIFI-MINI.dts
new file mode 100644
index 0000000000000..81a128e5bb652
--- /dev/null
+++ b/sys/gnu/dts/mips/MIWIFI-MINI.dts
@@ -0,0 +1,155 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "xiaomi,miwifi-mini", "ralink,mt7620a-soc";
+ model = "Xiaomi MiWiFi Mini";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xf80000>;
+ };
+
+ partition@fd0000 {
+ label = "crash";
+ reg = <0xfd0000 0x10000>;
+ };
+
+ partition@fe0000 {
+ label = "reserved";
+ reg = <0xfe0000 0x10000>;
+ read-only;
+ };
+
+ partition@ff0000 {
+ label = "Bdata";
+ reg = <0xff0000 0x10000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "llllw";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+
+ pcie-bridge {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "rgmii1";
+ ralink,function = "gpio";
+ };
+
+ pa {
+ ralink,group = "pa";
+ ralink,function = "pa";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ blue {
+ label = "miwifi-mini:blue:status";
+ gpios = <&gpio1 0 1>;
+ };
+
+ yellow {
+ label = "miwifi-mini:yellow:status";
+ gpios = <&gpio1 2 1>;
+ };
+
+ red {
+ label = "miwifi-mini:red:status";
+ gpios = <&gpio1 5 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 6 0>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MIWIFI-NANO.dts b/sys/gnu/dts/mips/MIWIFI-NANO.dts
new file mode 100644
index 0000000000000..363b90d4ff387
--- /dev/null
+++ b/sys/gnu/dts/mips/MIWIFI-NANO.dts
@@ -0,0 +1,91 @@
+/dts-v1/;
+
+/include/ "mt7628an.dtsi"
+
+/ {
+ compatible = "xiaomi,MiWifi Nano", "mediatek,mt7628an-soc";
+ model = "MiWiFi Nano";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "refclk", "wled", "gpio";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wifi {
+ label = "miwifi-nano:blue:wifi";
+ gpios = <&gpio0 11 1>;
+ default-state = "1";
+ };
+ status {
+ label = "miwifi-nano:red:status";
+ gpios = <&gpio1 5 1>;
+ default-state = "on";
+ };
+ radio {
+ label = "miwifi-nano:amber:radio";
+ gpios = <&gpio1 12 1>;
+ default-state = "1";
+
+ };
+ };
+
+
+ wmac@10300000 {
+ status = "okay";
+ };
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+ m25p,chunked-io = <32>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MLW221.dts b/sys/gnu/dts/mips/MLW221.dts
new file mode 100644
index 0000000000000..ab8e4c05a4e17
--- /dev/null
+++ b/sys/gnu/dts/mips/MLW221.dts
@@ -0,0 +1,122 @@
+/dts-v1/;
+
+/include/ "mt7620n.dtsi"
+
+/ {
+ compatible = "mlw221", "ralink,mt7620n-soc";
+ model = "Kingston MLW221";
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl129p1";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xf60000>;
+ };
+
+ partition@fb0000 {
+ label = "user-config";
+ reg = <0xfb0000 0x50000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "wllll";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ ralink,group = "i2c", "ephy", "wled";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ system {
+ label = "mlw221:blue:system";
+ gpios = <&gpio2 3 1>;
+ };
+
+ wifi {
+ label = "mlw221:blue:wifi";
+ gpios = <&gpio3 0 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+
+ system {
+ label = "system";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MLWG2.dts b/sys/gnu/dts/mips/MLWG2.dts
new file mode 100644
index 0000000000000..e08475e19f289
--- /dev/null
+++ b/sys/gnu/dts/mips/MLWG2.dts
@@ -0,0 +1,122 @@
+/dts-v1/;
+
+/include/ "mt7620n.dtsi"
+
+/ {
+ compatible = "mlwg2", "ralink,mt7620n-soc";
+ model = "Kingston MLWG2";
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xf60000>;
+ };
+
+ partition@fb0000 {
+ label = "user-config";
+ reg = <0xfb0000 0x50000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "wllll";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ ralink,group = "i2c", "ephy", "wled";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ system {
+ label = "mlwg2:blue:system";
+ gpios = <&gpio2 3 1>;
+ };
+
+ wifi {
+ label = "mlwg2:blue:wifi";
+ gpios = <&gpio3 0 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+
+ system {
+ label = "system";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MOFI3500-3GN.dts b/sys/gnu/dts/mips/MOFI3500-3GN.dts
new file mode 100644
index 0000000000000..9bd1f42d43bc6
--- /dev/null
+++ b/sys/gnu/dts/mips/MOFI3500-3GN.dts
@@ -0,0 +1,111 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "MOFI3500-3GN", "ralink,rt3052-soc";
+ model = "MoFi Network MOFI3500-3GN";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "mofi3500-3gn:green:usb";
+ gpios = <&gpio0 8 1>;
+ };
+
+ 3g {
+ label = "mofi3500-3gn:green:3g";
+ gpios = <&gpio0 11 1>;
+ };
+
+ status {
+ label = "mofi3500-3gn:green:status";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wps {
+ label = "mofi3500-3gn:green:wps";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ connect {
+ label = "connect";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0xda>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ wmac@10180000 {
+ status = "okay";
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/MPRA1.dts b/sys/gnu/dts/mips/MPRA1.dts
new file mode 100644
index 0000000000000..973074875532a
--- /dev/null
+++ b/sys/gnu/dts/mips/MPRA1.dts
@@ -0,0 +1,123 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "MPRA1", "ralink,rt5350-soc";
+ model = "HAME MPR-A1";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+
+ gpio1: gpio@660 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf", "led";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ system {
+ label = "mpr-a1:blue:system";
+ gpios = <&gpio0 20 1>;
+ };
+
+ power {
+ label = "mpr-a1:red:power";
+ gpios = <&gpio0 17 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ usb {
+ gpio-export,name = "usb";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 7 0>;
+ };
+
+ root_hub {
+ gpio-export,name = "root_hub";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 12 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MPRA2.dts b/sys/gnu/dts/mips/MPRA2.dts
new file mode 100644
index 0000000000000..86c741f1014fc
--- /dev/null
+++ b/sys/gnu/dts/mips/MPRA2.dts
@@ -0,0 +1,119 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "MPRA2", "ralink,rt5350-soc";
+ model = "HAME MPR-A2";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ system {
+ label = "mpr-a2:blue:system";
+ gpios = <&gpio0 20 1>;
+ };
+
+ power {
+ label = "mpr-a2:red:power";
+ gpios = <&gpio0 17 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ usb {
+ gpio-export,name = "usb";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 7 0>;
+ };
+
+ root_hub {
+ gpio-export,name = "root_hub";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 12 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MR-102N.dts b/sys/gnu/dts/mips/MR-102N.dts
new file mode 100644
index 0000000000000..2b6139737f99a
--- /dev/null
+++ b/sys/gnu/dts/mips/MR-102N.dts
@@ -0,0 +1,115 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "MR-102N", "ralink,rt3052-soc";
+ model = "AXIMCom MR-102N";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x790000>;
+ };
+
+ partition@7e0000 {
+ label = "nvram";
+ reg = <0x7e0000 0x10000>;
+ };
+
+ partition@7f0000 {
+ label = "nvram_backup";
+ reg = <0x7f0000 0x10000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ status = "okay";
+ #mediatek,portmap = <0x3e>;
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "mr-102n:green:usb";
+ gpios = <&gpio0 8 1>;
+ };
+
+ status {
+ label = "mr-102n:amber:status";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wlan {
+ label = "mr-102n:green:wlan";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 13 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 18 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/MT7620a.dts b/sys/gnu/dts/mips/MT7620a.dts
new file mode 100644
index 0000000000000..db138e328d85b
--- /dev/null
+++ b/sys/gnu/dts/mips/MT7620a.dts
@@ -0,0 +1,127 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-eval-board", "ralink,mt7620a-soc";
+ model = "Ralink MT7620a + MT7610e evaluation board";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "en25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;
+ mediatek,portmap = "llllw";
+
+ port@4 {
+ status = "okay";
+ phy-mode = "rgmii";
+ phy-handle = <&phy4>;
+ };
+
+ port@5 {
+ status = "okay";
+ phy-mode = "rgmii";
+ phy-handle = <&phy5>;
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy4: ethernet-phy@4 {
+ reg = <4>;
+ phy-mode = "rgmii";
+ };
+
+ phy5: ethernet-phy@5 {
+ reg = <5>;
+ phy-mode = "rgmii";
+ };
+ };
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "gmac";
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ s2 {
+ label = "S2";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x100>;
+ };
+
+ s3 {
+ label = "S3";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x101>;
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/MT7620a_MT7530.dts b/sys/gnu/dts/mips/MT7620a_MT7530.dts
new file mode 100644
index 0000000000000..784cc98aa4306
--- /dev/null
+++ b/sys/gnu/dts/mips/MT7620a_MT7530.dts
@@ -0,0 +1,119 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-eval-board", "ralink,mt7620a-soc";
+ model = "Ralink MT7620a + MT7530 evaluation board";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;
+ mediatek,portmap = "llllw";
+
+ port@5 {
+ status = "okay";
+ mediatek,fixed-link = <1000 1 1 1>;
+ phy-mode = "rgmii";
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ reg = <0>;
+ phy-mode = "rgmii";
+ };
+
+ phy1: ethernet-phy@1 {
+ reg = <1>;
+ phy-mode = "rgmii";
+ };
+
+ phy2: ethernet-phy@2 {
+ reg = <2>;
+ phy-mode = "rgmii";
+ };
+
+ phy3: ethernet-phy@3 {
+ reg = <3>;
+ phy-mode = "rgmii";
+ };
+
+ phy4: ethernet-phy@4 {
+ reg = <4>;
+ phy-mode = "rgmii";
+ };
+
+ phy1f: ethernet-phy@1f {
+ reg = <0x1f>;
+ phy-mode = "rgmii";
+ };
+ };
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "gmac";
+ mediatek,mt7530 = <1>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/MT7620a_MT7610e.dts b/sys/gnu/dts/mips/MT7620a_MT7610e.dts
new file mode 100644
index 0000000000000..4e3ba1e5eafc6
--- /dev/null
+++ b/sys/gnu/dts/mips/MT7620a_MT7610e.dts
@@ -0,0 +1,88 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-eval-board", "ralink,mt7620a-soc";
+ model = "Ralink MT7620A evaluation board";
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "en25q64";
+ spi-max-frequency = <1000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mediatek,portmap = "llllw";
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "ephy";
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x100>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 13 1>;
+ linux,code = <0x101>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MT7620a_V22SG.dts b/sys/gnu/dts/mips/MT7620a_V22SG.dts
new file mode 100644
index 0000000000000..f56d592663c64
--- /dev/null
+++ b/sys/gnu/dts/mips/MT7620a_V22SG.dts
@@ -0,0 +1,114 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-eval-board", "ralink,mt7620a-soc";
+ model = "Ralink MT7620a V22SG High Power evaluation board";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf", "spi";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;
+ mediatek,portmap = "llllw";
+
+ port@4 {
+ status = "okay";
+ phy-handle = <&phy4>;
+ phy-mode = "rgmii";
+ };
+
+ port@5 {
+ status = "okay";
+ phy-handle = <&phy5>;
+ phy-mode = "rgmii";
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy4: ethernet-phy@4 {
+ reg = <4>;
+ phy-mode = "rgmii";
+ };
+
+ phy5: ethernet-phy@5 {
+ reg = <5>;
+ phy-mode = "rgmii";
+ };
+ };
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "gmac";
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+
+ aoss {
+ label = "aoss";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ nand {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "mtk,mt7620-nand";
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "u-boot-env";
+ reg = <0x40000 0x20000>;
+ read-only;
+ };
+
+ factory: partition@60000 {
+ label = "factory";
+ reg = <0x60000 0x20000>;
+ read-only;
+ };
+
+ partition@80000 {
+ label = "firmware";
+ reg = <0x80000 0x7f80000>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MT7621.dts b/sys/gnu/dts/mips/MT7621.dts
new file mode 100644
index 0000000000000..341d8f2a70d36
--- /dev/null
+++ b/sys/gnu/dts/mips/MT7621.dts
@@ -0,0 +1,56 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+ compatible = "mediatek,mt7621-eval-board", "mediatek,mt7621-soc";
+ model = "Mediatek MT7621 evaluation board";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ xhci@1E1C0000 {
+ status = "okay";
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uart2", "uart3", "rgmii2", "sdhci";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ nand@1e003000 {
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x80000>; /* 64 KB */
+ };
+
+ partition@80000 {
+ label = "uboot_env";
+ reg = <0x80000 0x80000>; /* 64 KB */
+ };
+
+ partition@100000 {
+ label = "factory";
+ reg = <0x100000 0x40000>;
+ };
+
+ partition@140000 {
+ label = "rootfs";
+ reg = <0x140000 0xec0000>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MT7628.dts b/sys/gnu/dts/mips/MT7628.dts
new file mode 100644
index 0000000000000..5e5b0a1928fd3
--- /dev/null
+++ b/sys/gnu/dts/mips/MT7628.dts
@@ -0,0 +1,65 @@
+/dts-v1/;
+
+/include/ "mt7628an.dtsi"
+
+/ {
+ compatible = "mediatek,mt7628an-eval-board", "mediatek,mt7628an-soc";
+ model = "Mediatek MT7628AN evaluation board";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ wmac@10300000 {
+ status = "okay";
+ };
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "en25q64";
+ spi-max-frequency = <10000000>;
+ m25p,chunked-io = <32>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MZK-750DHP.dts b/sys/gnu/dts/mips/MZK-750DHP.dts
new file mode 100644
index 0000000000000..df0b73be95067
--- /dev/null
+++ b/sys/gnu/dts/mips/MZK-750DHP.dts
@@ -0,0 +1,111 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-soc";
+ model = "Planex MZK-750DHP";
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l6405d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "spi refclk", "rgmii1";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "llllw";
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "ephy";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wps {
+ label = "mzk-750dhp:green:wps";
+ gpios = <&gpio1 11 1>;
+ };
+
+ power {
+ label = "mzk-750dhp:green:power";
+ gpios = <&gpio1 15 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ s1 {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x100>;
+ };
+
+ s2 {
+ label = "wps";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MZK-DP150N.dts b/sys/gnu/dts/mips/MZK-DP150N.dts
new file mode 100644
index 0000000000000..821183965de3b
--- /dev/null
+++ b/sys/gnu/dts/mips/MZK-DP150N.dts
@@ -0,0 +1,100 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "MZK-DP150N", "ralink,rt5350-soc";
+ model = "Planex MZK-DP150N";
+
+ palmbus@10000000 {
+ gpio1: gpio@660 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ spidev@1 {
+ compatible = "linux,spidev";
+ spi-max-frequency = <10000000>;
+ reg = <1>;
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "jtag", "uartf", "led";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x17>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ ralink,led-polarity = <1>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "mzk-dp150n:green:power";
+ gpios = <&gpio0 9 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MZK-W300NH2.dts b/sys/gnu/dts/mips/MZK-W300NH2.dts
new file mode 100644
index 0000000000000..8b4335e416c0d
--- /dev/null
+++ b/sys/gnu/dts/mips/MZK-W300NH2.dts
@@ -0,0 +1,111 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "MZK-W300NH2", "ralink,rt3052-soc";
+ model = "Planex MZK-W300NH2";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@3e0000 {
+ label = "cimage";
+ reg = <0x3e0000 0x20000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x390000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "mzk-w300nh2:green:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wlan {
+ label = "mzk-w300nh2:amber:wlan";
+ gpios = <&gpio0 14 1>;
+ };
+
+ wps {
+ label = "mzk-w300nh2:amber:wps";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x211>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+
+ rt {
+ label = "rt";
+ gpios = <&gpio0 13 1>;
+ linux,code = <0x100>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MZK-WDPR.dts b/sys/gnu/dts/mips/MZK-WDPR.dts
new file mode 100644
index 0000000000000..1746949aa4d9f
--- /dev/null
+++ b/sys/gnu/dts/mips/MZK-WDPR.dts
@@ -0,0 +1,86 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "MZK-WDPR", "ralink,rt3052-soc";
+ model = "Planex MZK-WDPR";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@7f0000 {
+ label = "Data3G";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x680000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+
+ gpio-export {
+ compatible = "gpio-export";
+
+ lcd_ctrl1 {
+ gpio-export,name = "lcd_ctrl1";
+ gpio-export,output = <0>;
+ gpios = <&gpio0 1 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/MicroWRT.dts b/sys/gnu/dts/mips/MicroWRT.dts
new file mode 100644
index 0000000000000..fb0037505fd74
--- /dev/null
+++ b/sys/gnu/dts/mips/MicroWRT.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "microwrt", "ralink,mt7620a-soc";
+ model = "Microduino MicroWRT";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "u-boot-env";
+ reg = <0x20000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@30000 {
+ label = "factory";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "firmware";
+ reg = <0x40000 0xfc0000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "llllw";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ ralink,group = "wled", "i2c", "wdt", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/NA930.dts b/sys/gnu/dts/mips/NA930.dts
new file mode 100644
index 0000000000000..ade3356477307
--- /dev/null
+++ b/sys/gnu/dts/mips/NA930.dts
@@ -0,0 +1,174 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-eval-board", "ralink,mt7620a-soc";
+ model = "Sercomm NA930";
+
+ chosen {
+ bootargs = "console=ttyS1,57600";
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "rgmii2", "spi", "ephy";
+ ralink,function = "gpio";
+ };
+
+ uartf_gpio {
+ ralink,group = "uartf";
+ ralink,function = "gpio uartf";
+ };
+ };
+ };
+
+ palmbus@10000000 {
+ uart@500 {
+ status = "okay";
+ };
+
+ gpio@638 {
+ status = "okay";
+ };
+
+ gpio@660 {
+ status = "okay";
+ };
+ };
+
+ nand {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "mtk,mt7620-nand";
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ partition@200000 {
+ label = "factory";
+ reg = <0x200000 0x40000>;
+ read-only;
+ };
+
+ partition@240000 {
+ label = "Config";
+ reg = <0x240000 0x400000>;
+ read-only;
+ };
+
+ partition@640000 {
+ label = "firmware";
+ reg = <0x640000 0x1400000>;
+ };
+ };
+
+ ethernet@10100000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii1_pins &mdio_pins>;
+ mediatek,portmap = "llllw";
+
+ port@4 {
+ status = "okay";
+ phy-handle = <&phy4>;
+ phy-mode = "rgmii";
+ };
+
+ port@5 {
+ status = "okay";
+ phy-handle = <&phy5>;
+ phy-mode = "rgmii";
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy4: ethernet-phy@4 {
+ reg = <4>;
+ phy-mode = "rgmii";
+ };
+
+ phy5: ethernet-phy@5 {
+ reg = <5>;
+ phy-mode = "rgmii";
+ };
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 11 1>;
+ linux,code = <0x198>;
+ };
+
+ zwave {
+ label = "zwave";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x100>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 14 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ zwave {
+ label = "na930:blue:zwave";
+ gpios = <&gpio2 0 1>;
+ };
+
+ status {
+ label = "na930:blue:status";
+ gpios = <&gpio2 26 1>;
+ };
+
+ service {
+ label = "na930:blue:service";
+ gpios = <&gpio2 28 1>;
+ };
+
+ power {
+ label = "na930:blue:power";
+ gpios = <&gpio2 29 1>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ telit {
+ gpio-export,name = "telit";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 13 0>;
+ };
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "gmac";
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/NBG-419N.dts b/sys/gnu/dts/mips/NBG-419N.dts
new file mode 100644
index 0000000000000..0043812241318
--- /dev/null
+++ b/sys/gnu/dts/mips/NBG-419N.dts
@@ -0,0 +1,94 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "NBG-419N", "ralink,rt3052-soc";
+ model = "ZyXEL NBG-419N";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "nbg-419n:green:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wps {
+ label = "nbg-419n:green:wps";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/NCS601W.dts b/sys/gnu/dts/mips/NCS601W.dts
new file mode 100644
index 0000000000000..a7f1212e71006
--- /dev/null
+++ b/sys/gnu/dts/mips/NCS601W.dts
@@ -0,0 +1,75 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "NCS601W", "ralink,rt5350-soc";
+ model = "Wansview NCS601W";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/NW718.dts b/sys/gnu/dts/mips/NW718.dts
new file mode 100644
index 0000000000000..8405b7af5f8c3
--- /dev/null
+++ b/sys/gnu/dts/mips/NW718.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "NW718", "ralink,rt3050-soc";
+ model = "Netcore NW718";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <25000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "config";
+ reg = <0x30000 0x20000>;
+ read-only;
+ };
+
+ factory: partition@50000 {
+ label = "factory";
+ reg = <0x50000 0x10000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "firmware";
+ reg = <0x60000 0x3a0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ cpu {
+ label = "nw718:amber:cpu";
+ gpios = <&gpio0 13 1>;
+ };
+
+ usb {
+ label = "nw718:amber:usb";
+ gpios = <&gpio0 8 1>;
+ };
+
+ wps {
+ label = "nw718:amber:wps";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/OY-0001.dts b/sys/gnu/dts/mips/OY-0001.dts
new file mode 100644
index 0000000000000..c9680d1619995
--- /dev/null
+++ b/sys/gnu/dts/mips/OY-0001.dts
@@ -0,0 +1,125 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-soc";
+ model = "OY-0001";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf", "rgmii1", "rgmii2", "wled", "nd_sd";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mediatek,portmap = "llllw";
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "ephy";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ powerled {
+ label = "oy-0001:green:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wifiled {
+ label = "oy-0001:green:wifi";
+ gpios = <&gpio3 0 1>;
+ };
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ s1 {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/PBR-M1.dts b/sys/gnu/dts/mips/PBR-M1.dts
new file mode 100644
index 0000000000000..9703a1bcb30a2
--- /dev/null
+++ b/sys/gnu/dts/mips/PBR-M1.dts
@@ -0,0 +1,187 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+ compatible = "mediatek,mt7621-eval-board", "mediatek,mt7621-soc";
+ model = "PBR-M1";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x10000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdhci_pins>;
+ };
+
+ xhci@1E1C0000 {
+ status = "okay";
+ };
+
+ palmbus@1E000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+
+ };
+ };
+
+ i2c@900 {
+ compatible = "ralink,i2c-mt7621";
+ reg = <0x900 0x100>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c_pins>;
+ status = "okay";
+
+ pcf8563: rtc@51 {
+ status = "okay";
+ compatible = "nxp,pcf8563";
+ reg = <0x51>;
+ };
+ };
+ };
+
+ pcie@1e140000 {
+ status = "okay";
+
+ pcie0 {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+
+ pcie1 {
+ mt76@1,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x0000>;
+ mediatek,5ghz = <0>;
+ };
+ };
+ };
+
+ ethernet@1e100000 {
+ mtd-mac-address = <&factory 0xe000>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "pbr-m1:blue:power";
+ gpios = <&gpio0 31 1>;
+ };
+
+ sys {
+ label = "pbr-m1:blue:sys";
+ gpios = <&gpio1 0 1>;
+ };
+
+ internet {
+ label = "pbr-m1:blue:internet";
+ gpios = <&gpio0 29 1>;
+ };
+
+ wlan2g {
+ label = "pbr-m1:blue:wlan2g";
+ gpios = <&gpio1 1 1>;
+ };
+
+ wlan5g {
+ label = "pbr-m1:blue:wlan5g";
+ gpios = <&gpio0 28 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 18 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ power_usb2 {
+ gpio-export,name = "power_usb2";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 22 0>;
+ };
+
+ power_usb3 {
+ gpio-export,name = "power_usb3";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 25 0>;
+ };
+
+ power_sata {
+ gpio-export,name = "power_sata";
+ gpio-export,output = <1>;
+ gpios = <&gpio0 27 0>;
+ };
+ };
+
+ beeper: beeper {
+ compatible = "gpio-beeper";
+ gpios = <&gpio0 26 1>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "wdt", "rgmii2", "jtag", "mdio";
+ ralink,function = "gpio";
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/PSG1208.dts b/sys/gnu/dts/mips/PSG1208.dts
new file mode 100644
index 0000000000000..c3be8ef7cba3d
--- /dev/null
+++ b/sys/gnu/dts/mips/PSG1208.dts
@@ -0,0 +1,114 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "PSG1208", "ralink,mt7620a-soc";
+ model = "Phicomm PSG1208";
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "en25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@30000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf", "rgmii1", "rgmii2", "ephy", "wled", "nd_sd";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "llllw";
+ };
+
+ pcie@10140000 {
+ status = "okay";
+
+ pcie-bridge {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wan {
+ label = "psg1208:white:wps";
+ gpios = <&gpio1 15 1>;
+ };
+
+ wlan {
+ label = "psg1208:white:wlan2g";
+ gpios = <&gpio3 0 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/PSR-680W.dts b/sys/gnu/dts/mips/PSR-680W.dts
new file mode 100644
index 0000000000000..c5a600ad29a61
--- /dev/null
+++ b/sys/gnu/dts/mips/PSR-680W.dts
@@ -0,0 +1,91 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "PSR-680W", "ralink,rt3052-soc";
+ model = "Petatel PSR-680W Wireless 3G Router";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wan {
+ label = "psr-680w:red:wan";
+ gpios = <&gpio0 19 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/PWH2004.dts b/sys/gnu/dts/mips/PWH2004.dts
new file mode 100644
index 0000000000000..23ef1ff79fdc1
--- /dev/null
+++ b/sys/gnu/dts/mips/PWH2004.dts
@@ -0,0 +1,84 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "PWH2004", "ralink,rt3052-soc";
+ model = "Prolink PWH2004";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wifi {
+ label = "pwh2004:red:wifi";
+ gpios = <&gpio0 14 1>;
+ };
+
+ power {
+ label = "pwh2004:green:power";
+ gpios = <&gpio0 9 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+};
diff --git a/sys/gnu/dts/mips/PX-4885-4M.dts b/sys/gnu/dts/mips/PX-4885-4M.dts
new file mode 100644
index 0000000000000..10c784cca70f6
--- /dev/null
+++ b/sys/gnu/dts/mips/PX-4885-4M.dts
@@ -0,0 +1,43 @@
+/dts-v1/;
+
+/include/ "PX-4885.dtsi"
+
+/ {
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "devdata";
+ reg = <0x20000 0x20000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "devconf";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/PX-4885-8M.dts b/sys/gnu/dts/mips/PX-4885-8M.dts
new file mode 100644
index 0000000000000..d4a0273a27778
--- /dev/null
+++ b/sys/gnu/dts/mips/PX-4885-8M.dts
@@ -0,0 +1,43 @@
+/dts-v1/;
+
+/include/ "PX-4885.dtsi"
+
+/ {
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "devdata";
+ reg = <0x20000 0x20000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "devconf";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/PX-4885.dtsi b/sys/gnu/dts/mips/PX-4885.dtsi
new file mode 100644
index 0000000000000..05959ca71901d
--- /dev/null
+++ b/sys/gnu/dts/mips/PX-4885.dtsi
@@ -0,0 +1,54 @@
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "PX-4885", "ralink,rt5350-soc";
+ model = "7Links PX-4885";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ orange {
+ label = "px-4885:orange:wifi";
+ gpios = <&gpio0 18 1>;
+ };
+
+ blue {
+ label = "px-4885:blue:storage";
+ gpios = <&gpio0 19 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/RE6500.dts b/sys/gnu/dts/mips/RE6500.dts
new file mode 100644
index 0000000000000..9887c2868bbd7
--- /dev/null
+++ b/sys/gnu/dts/mips/RE6500.dts
@@ -0,0 +1,123 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+ compatible = "mediatek,mt7621-eval-board", "mediatek,mt7621-soc";
+ model = "Linksys RE6500";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ palmbus@1E000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "en25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uart2", "uart3", "rgmii2";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ pcie@1e140000 {
+ status = "okay";
+
+ pcie0 {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x0000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+
+ pcie1 {
+ mt76@1,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,5ghz = <0>;
+ };
+ };
+ };
+
+ ethernet@1e100000 {
+ mtd-mac-address = <&factory 0x2e>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wifi {
+ label = "re6500:orange:wifi";
+ gpios = <&gpio0 0 0>;
+ };
+
+ power {
+ label = "re6500:white:power";
+ gpios = <&gpio0 9 0>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x211>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 11 0>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/RP-N53.dts b/sys/gnu/dts/mips/RP-N53.dts
new file mode 100644
index 0000000000000..8ebceb263c4a3
--- /dev/null
+++ b/sys/gnu/dts/mips/RP-N53.dts
@@ -0,0 +1,166 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "asus,rp-n53", "ralink,mt7620a-soc";
+ model = "Asus RP-N53";
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ i2c@900 {
+ status = "okay";
+ };
+
+ i2s@a00 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcm_i2s_pins>;
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+
+ pcm@2000 {
+ status = "okay";
+ };
+
+ gdma@2800 {
+ status = "okay";
+ };
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "mdio", "rgmii1";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "ephy";
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ touch {
+ label = "touch";
+ gpios = <&gpio1 0 1>;
+ linux,code = <0x100>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 1 1>;
+ linux,code = <0x100>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <0x100>;
+ };
+
+ audio {
+ label = "audio";
+ gpios = <&gpio1 3 0>;
+ linux,code = <0x101>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ backlight {
+ label = "rp-n53:white:back";
+ gpios = <&gpio1 4 1>;
+ };
+
+ wifi0 {
+ label = "rp-n53:blue:5g3";
+ gpios = <&gpio1 5 1>;
+ };
+
+ wifi1 {
+ label = "rp-n53:blue:5g2";
+ gpios = <&gpio1 6 1>;
+ };
+
+ wifi2 {
+ label = "rp-n53:blue:5g1";
+ gpios = <&gpio1 7 1>;
+ };
+
+ wifi3 {
+ label = "rp-n53:blue:wifi";
+ gpios = <&gpio1 8 1>;
+ };
+
+ wifi4 {
+ label = "rp-n53:blue:2g1";
+ gpios = <&gpio1 9 1>;
+ };
+
+ wifi5 {
+ label = "rp-n53:blue:2g2";
+ gpios = <&gpio1 10 1>;
+ };
+
+ wifi6 {
+ label = "rp-n53:blue:2g3";
+ gpios = <&gpio1 11 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/RT-G32-B1.dts b/sys/gnu/dts/mips/RT-G32-B1.dts
new file mode 100644
index 0000000000000..5dcaf225e7c0b
--- /dev/null
+++ b/sys/gnu/dts/mips/RT-G32-B1.dts
@@ -0,0 +1,86 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "RT-G32-B1", "ralink,rt3050-soc";
+ model = "Asus RT-G32 B1";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "devdata";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ devconf: partition@40000 {
+ label = "devconf";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&devconf 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&devconf 0>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/RT-N10-PLUS.dts b/sys/gnu/dts/mips/RT-N10-PLUS.dts
new file mode 100644
index 0000000000000..ecd732e285f66
--- /dev/null
+++ b/sys/gnu/dts/mips/RT-N10-PLUS.dts
@@ -0,0 +1,80 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "RT-N10-PLUS", "ralink,rt3050-soc";
+ model = "Asus RT-N10+";
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "devdata";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ devconf: partition@40000 {
+ label = "devconf";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&devconf 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&devconf 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wps {
+ label = "rt-n10-plus:green:wps";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/RT-N13U.dts b/sys/gnu/dts/mips/RT-N13U.dts
new file mode 100644
index 0000000000000..193bf1aa15284
--- /dev/null
+++ b/sys/gnu/dts/mips/RT-N13U.dts
@@ -0,0 +1,98 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "RT-N13U", "ralink,rt3052-soc";
+ model = "Asus RT-N13U";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "rt-n13u:blue:power";
+ gpios = <&gpio0 7 1>;
+ };
+
+ wifi {
+ label = "rt-n13u:blue:wifi";
+ gpios = <&gpio0 8 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <10>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/RT-N14U.dts b/sys/gnu/dts/mips/RT-N14U.dts
new file mode 100644
index 0000000000000..4c03c0d45ed7e
--- /dev/null
+++ b/sys/gnu/dts/mips/RT-N14U.dts
@@ -0,0 +1,128 @@
+/dts-v1/;
+
+/include/ "mt7620n.dtsi"
+
+/ {
+ compatible = "asus,rt-n14u", "ralink,mt7620n-soc";
+ model = "Asus RT-N14U";
+
+ palmbus@10000000 {
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "wllll";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ ralink,group = "ephy", "wled", "i2c";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wan {
+ label = "rt-n14u:blue:wan";
+ gpios = <&gpio2 0 1>;
+ };
+
+ lan {
+ label = "rt-n14u:blue:lan";
+ gpios = <&gpio2 1 1>;
+ };
+
+ usb {
+ label = "rt-n14u:blue:usb";
+ gpios = <&gpio2 2 1>;
+ };
+
+ power {
+ label = "rt-n14u:blue:power";
+ gpios = <&gpio2 3 1>;
+ };
+
+ air {
+ label = "rt-n14u:blue:air";
+ gpios = <&gpio3 0 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/RT-N15.dts b/sys/gnu/dts/mips/RT-N15.dts
new file mode 100644
index 0000000000000..85154634798dc
--- /dev/null
+++ b/sys/gnu/dts/mips/RT-N15.dts
@@ -0,0 +1,113 @@
+/dts-v1/;
+
+/include/ "rt2880.dtsi"
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "RT-N15", "ralink,rt2880-soc";
+ model = "Asus RT-N15";
+
+ palmbus@300000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartlite", "mdio";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@400000 {
+ status = "okay";
+ mtd-mac-address = <&factory 0x4>;
+
+ port@0 {
+ mediatek,fixed-link = <1000 1 1 1>;
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ phy-mode = "mii";
+ reg = <0>;
+ };
+ };
+ };
+
+ rtl8366s {
+ compatible = "realtek,rtl8366s";
+ gpio-sda = <&gpio0 1 0>;
+ gpio-sck = <&gpio0 2 0>;
+ };
+
+ wmac@480000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 0>;
+ linux,code = <0x211>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 12 0>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "rt-n15:blue:power";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/RT-N56U.dts b/sys/gnu/dts/mips/RT-N56U.dts
new file mode 100644
index 0000000000000..0b6857d072ca4
--- /dev/null
+++ b/sys/gnu/dts/mips/RT-N56U.dts
@@ -0,0 +1,151 @@
+/dts-v1/;
+
+/include/ "rt3883.dtsi"
+
+/ {
+ compatible = "RT-N56U", "ralink,rt3883-soc";
+ model = "Asus RT-N56U";
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+
+ port@0 {
+ mediatek,fixed-link = <1000 1 1 1>;
+ };
+ };
+
+ pci@10140000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pci_pins>;
+
+ pci_pins: pci {
+ pci {
+ ralink,group = "pci";
+ ralink,function = "pci-fnc";
+ };
+ };
+
+ host-bridge {
+ pci-bridge@1 {
+ status = "okay";
+
+ wmac@0,0 {
+ compatible = "ralink,rt2880-pci", "pciclass060400", "pciclass0604";
+ reg = < 0x10000 0 0 0 0 >;
+ ralink,eeprom = "rt2x00pci_1_0.eeprom";
+ };
+ };
+ };
+ };
+
+ wmac@10180000 {
+ status = "okay";
+ ralink,2ghz = <0>;
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ nor-flash@1c000000 {
+ compatible = "cfi-flash";
+ reg = <0x1c000000 0x800000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x0030000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ partition@30000 {
+ reg = <0x00030000 0x00010000>;
+ label = "u-boot-env";
+ read-only;
+ };
+
+ factory: partition@40000 {
+ reg = <0x00040000 0x00010000>;
+ label = "factory";
+ read-only;
+ };
+
+ partition@50000 {
+ reg = <0x00050000 0x007b0000>;
+ label = "firmware";
+ };
+ };
+
+ rtl8367 {
+ compatible = "realtek,rtl8367";
+ gpio-sda = <&gpio0 1 0>;
+ gpio-sck = <&gpio0 2 0>;
+ realtek,extif1 = <1 0 1 1 1 1 1 1 2>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 13 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 2 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "rt-n56u:blue:power";
+ gpios = <&gpio0 0 1>;
+ };
+
+ lan {
+ label = "rt-n56u:blue:lan";
+ gpios = <&gpio0 19 1>;
+ };
+
+ wan {
+ label = "rt-n56u:blue:wan";
+ gpios = <&gpio1 3 1>;
+ };
+
+ usb {
+ label = "rt-n56u:blue:usb";
+ gpios = <&gpio1 0 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/RT5350F-OLINUXINO-EVB.dts b/sys/gnu/dts/mips/RT5350F-OLINUXINO-EVB.dts
new file mode 100644
index 0000000000000..8d32230533ddb
--- /dev/null
+++ b/sys/gnu/dts/mips/RT5350F-OLINUXINO-EVB.dts
@@ -0,0 +1,102 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "RT5350F-OLINUXINO-EVB", "ralink,rt5350-soc";
+ model = "Olimex RT5350F-OLinuXino-EVB";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+
+ gpio1: gpio@660 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ mediatek,led_polarity = <0x17>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ relay1 {
+ gpio-export,name = "relay1";
+ gpio-export,output = <0>;
+ gpios = <&gpio0 14 0>;
+ };
+
+ relay2 {
+ gpio-export,name = "relay2";
+ gpio-export,output = <0>;
+ gpios = <&gpio0 12 0>;
+ };
+
+ button {
+ gpio-export,name = "button";
+ gpios = <&gpio0 0 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/RT5350F-OLINUXINO.dts b/sys/gnu/dts/mips/RT5350F-OLINUXINO.dts
new file mode 100644
index 0000000000000..169771ea497d7
--- /dev/null
+++ b/sys/gnu/dts/mips/RT5350F-OLINUXINO.dts
@@ -0,0 +1,80 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "RT5350F-OLINUXINO", "ralink,rt5350-soc";
+ model = "Olimex RT5350F-OLinuXino";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+
+ gpio1: gpio@660 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ mediatek,led_polarity = <0x17>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/RUT5XX.dts b/sys/gnu/dts/mips/RUT5XX.dts
new file mode 100644
index 0000000000000..fc9f3e4331796
--- /dev/null
+++ b/sys/gnu/dts/mips/RUT5XX.dts
@@ -0,0 +1,93 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "RUT5XX", "ralink,rt3050-soc";
+ model = "Teltonika RUT5XX";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "n25q128a13";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "rut5xx:green:status";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/SAP-G3200U3.dts b/sys/gnu/dts/mips/SAP-G3200U3.dts
new file mode 100644
index 0000000000000..343742b5dd734
--- /dev/null
+++ b/sys/gnu/dts/mips/SAP-G3200U3.dts
@@ -0,0 +1,124 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+ compatible = "mediatek,mt7621-eval-board", "mediatek,mt7621-soc";
+ model = "STORYLiNK SAP-G3200U3";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x8000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ palmbus@1E000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "en25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x1000>;
+ read-only;
+ };
+
+ partition@31000 {
+ label = "config";
+ reg = <0x31000 0xf000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pcie@1e140000 {
+ status = "okay";
+
+ pcie0 {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+
+ pcie1 {
+ mt76@1,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x0000>;
+ mediatek,5ghz = <0>;
+ };
+ };
+ };
+
+ ethernet@1e100000 {
+ mtd-mac-address = <&factory 0xe006>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "sap-g3200u3:green:usb";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 16 1>;
+ linux,code = <0x198>;
+ };
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio0 14 1>;
+ linux,code = <0xf7>;
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "uart3", "jtag";
+ ralink,function = "gpio";
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/SL-R7205.dts b/sys/gnu/dts/mips/SL-R7205.dts
new file mode 100644
index 0000000000000..9fe78452cc6bd
--- /dev/null
+++ b/sys/gnu/dts/mips/SL-R7205.dts
@@ -0,0 +1,93 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "SL-R7205", "ralink,rt3052-soc";
+ model = "Skyline SL-R7205 Wireless 3G Router";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wifi {
+ label = "sl-r7205:green:wifi";
+ gpios = <&gpio0 7 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/TEW-691GR.dts b/sys/gnu/dts/mips/TEW-691GR.dts
new file mode 100644
index 0000000000000..5bd6444f87b52
--- /dev/null
+++ b/sys/gnu/dts/mips/TEW-691GR.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+/include/ "rt3883.dtsi"
+
+/ {
+ compatible = "TEW-691GR", "ralink,rt3883-soc";
+ model = "TRENDnet TEW-691GR";
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+
+ port@0 {
+ phy-handle = <&phy0>;
+ phy-mode = "rgmii";
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ reg = <0>;
+ };
+ };
+ };
+
+ wmac@10180000 {
+ ralink,5ghz = <0>;
+ };
+
+ nor-flash@1c000000 {
+ compatible = "cfi-flash";
+ reg = <0x1c000000 0x800000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x0030000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ partition@30000 {
+ reg = <0x00030000 0x00010000>;
+ label = "u-boot-env";
+ read-only;
+ };
+
+ factory: partition@40000 {
+ reg = <0x00040000 0x00010000>;
+ label = "factory";
+ read-only;
+ };
+
+ partition@50000 {
+ reg = <0x00050000 0x007b0000>;
+ label = "firmware";
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 2 1>;
+ linux,code = <0x211>;
+ };
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0xf7>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wps {
+ label = "tew-691gr:green:wps";
+ gpios = <&gpio0 9 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/TEW-692GR.dts b/sys/gnu/dts/mips/TEW-692GR.dts
new file mode 100644
index 0000000000000..17835f616e494
--- /dev/null
+++ b/sys/gnu/dts/mips/TEW-692GR.dts
@@ -0,0 +1,128 @@
+/dts-v1/;
+
+/include/ "rt3883.dtsi"
+
+/ {
+ compatible = "TEW-692GR", "ralink,rt3883-soc";
+ model = "TRENDnet TEW-692GR";
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ status = "okay";
+ mtd-mac-address = <&factory 0x28>;
+
+ port@0 {
+ phy-handle = <&phy0>;
+ phy-mode = "rgmii";
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ reg = <0>;
+ };
+ };
+ };
+
+ pci@10140000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pci_pins>;
+
+ pci_pins: pci {
+ pci {
+ ralink,group = "pci";
+ ralink,function = "pci-fnc";
+ };
+ };
+
+ host-bridge {
+ pci-bridge@1 {
+ status = "okay";
+ };
+ };
+ };
+
+ wmac@10180000 {
+ ralink,5ghz = <0>;
+ };
+
+ nor-flash@1c000000 {
+ compatible = "cfi-flash";
+ reg = <0x1c000000 0x800000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x0030000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ partition@30000 {
+ reg = <0x00030000 0x00010000>;
+ label = "u-boot-env";
+ read-only;
+ };
+
+ factory: partition@40000 {
+ reg = <0x00040000 0x00010000>;
+ label = "factory";
+ read-only;
+ };
+
+ partition@50000 {
+ reg = <0x00050000 0x007b0000>;
+ label = "firmware";
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 2 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wps {
+ label = "tew-692gr:orange:wps";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wps2 {
+ label = "tew-692gr:green:wps";
+ gpios = <&gpio1 4 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/TINY-AC.dts b/sys/gnu/dts/mips/TINY-AC.dts
new file mode 100644
index 0000000000000..ae4c4b54b2bbd
--- /dev/null
+++ b/sys/gnu/dts/mips/TINY-AC.dts
@@ -0,0 +1,166 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "TINY-AC", "ralink,mt7620a-soc";
+ model = "Dovado Tiny AC";
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l6405d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;
+ mediatek,portmap = "llllw";
+
+ port@4 {
+ status = "okay";
+ phy-mode = "rgmii";
+ phy-handle = <&phy4>;
+ };
+
+ port@5 {
+ status = "okay";
+ phy-mode = "rgmii";
+ phy-handle = <&phy5>;
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy4: ethernet-phy@4 {
+ reg = <4>;
+ phy-mode = "rgmii";
+ };
+
+ phy5: ethernet-phy@5 {
+ reg = <5>;
+ phy-mode = "rgmii";
+ };
+ };
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "gmac";
+ mediatek,mt7530 = <1>;
+
+ };
+
+ wmac@10180000 {
+ ralink,eeprom = "rt2x00pci_1_0.eeprom";
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "uartf", "nd_sd", "wled";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "tiny-ac:green:usb";
+ gpios = <&gpio0 11 1>;
+ };
+
+ wifi {
+ label = "tiny-ac:orange:wifi";
+ gpios = <&gpio3 0 1>;
+ };
+
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 13 1>;
+ linux,code = <0x198>;
+ };
+
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ usbpower {
+ gpio-export,name = "usbpower";
+ gpio-export,output = <1>;
+ gpios = <&gpio2 5 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/UBNT-ERX.dts b/sys/gnu/dts/mips/UBNT-ERX.dts
new file mode 100644
index 0000000000000..ec31a37f0b700
--- /dev/null
+++ b/sys/gnu/dts/mips/UBNT-ERX.dts
@@ -0,0 +1,114 @@
+#include <dt-bindings/input/input.h>
+
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+ compatible = "mediatek,mt7621-eval-board", "mediatek,mt7621-soc";
+ model = "UBNT-ERX";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x10000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ palmbus@1E000000 {
+ spi@b00 {
+ /* This board has 2Mb spi flash soldered in and visible
+ from manufacturer's firmware.
+ But this SoC shares spi and nand pins,
+ and current driver does't handle this sharing well */
+ status = "disabled";
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <1>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "spi";
+ reg = <0x0 0x200000>;
+ read-only;
+ };
+ };
+ };
+ };
+
+ nand@1e003000 {
+ status = "okay";
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x80000>;
+ read-only;
+ };
+
+ partition@80000 {
+ label = "u-boot-env";
+ reg = <0x80000 0x60000>;
+ read-only;
+ };
+
+ factory: partition@e0000 {
+ label = "factory";
+ reg = <0xe0000 0x60000>;
+ };
+
+ partition@140000 {
+ label = "kernel1";
+ reg = <0x140000 0x300000>;
+ };
+
+ partition@440000 {
+ label = "kernel2";
+ reg = <0x440000 0x300000>;
+ };
+
+ partition@740000 {
+ label = "ubi";
+ reg = <0x740000 0xf7c0000>;
+ };
+
+ };
+
+ ethernet@1e100000 {
+ mtd-mac-address = <&factory 0x22>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "uart2", "uart3", "i2c", "pcie", "rgmii2", "jtag";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ sdhci@1E130000 {
+ status = "disabled";
+ };
+
+ pcie@1e140000 {
+ status = "disabled";
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 12 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/UR-326N4G.dts b/sys/gnu/dts/mips/UR-326N4G.dts
new file mode 100644
index 0000000000000..b95eaf02074d7
--- /dev/null
+++ b/sys/gnu/dts/mips/UR-326N4G.dts
@@ -0,0 +1,113 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "UR-326N4G", "ralink,rt3052-soc";
+ model = "UPVEL UR-326N4G";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4004>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ 3g {
+ label = "ur-326n4g:green:3g";
+ gpios = <&gpio0 9 1>;
+ };
+
+ gateway {
+ label = "ur-326n4g:green:gateway";
+ gpios = <&gpio0 11 1>;
+ };
+
+ ap {
+ label = "ur-326n4g:green:ap";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wps {
+ label = "ur-326n4g:green:wps";
+ gpios = <&gpio0 14 1>;
+ };
+
+ station {
+ label = "ur-326n4g:green:station";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset_wps {
+ label = "reset_wps";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ mode {
+ label = "mode";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0x32>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/UR-336UN.dts b/sys/gnu/dts/mips/UR-336UN.dts
new file mode 100644
index 0000000000000..5feaba34a7e01
--- /dev/null
+++ b/sys/gnu/dts/mips/UR-336UN.dts
@@ -0,0 +1,92 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "UR-336UN", "ralink,rt3052-soc";
+ model = "UPVEL UR-336UN";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ };
+
+ /* FIXME: no partitions defined */
+/* ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4004>;
+ };
+*/
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ /* FIXME: no partitions defined */
+/* wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+*/
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ 3g {
+ label = "ur-336un:green:3g";
+ gpios = <&gpio0 9 1>;
+ };
+
+ gateway {
+ label = "ur-336un:green:gateway";
+ gpios = <&gpio0 11 1>;
+ };
+
+ ap {
+ label = "ur-336un:green:ap";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wps {
+ label = "ur-336un:green:wps";
+ gpios = <&gpio0 14 1>;
+ };
+
+ station {
+ label = "ur-336un:green:station";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset_wps {
+ label = "reset_wps";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ mode {
+ label = "mode";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0x32>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/V11STFE.dts b/sys/gnu/dts/mips/V11STFE.dts
new file mode 100644
index 0000000000000..5a43e6dcf07a2
--- /dev/null
+++ b/sys/gnu/dts/mips/V11STFE.dts
@@ -0,0 +1,85 @@
+/dts-v1/;
+
+/include/ "rt2880.dtsi"
+
+/ {
+ compatible = "V11ST-FE", "ralink,rt2880-soc";
+ model = "Ralink V11ST-FE";
+
+ palmbus@300000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+ };
+
+ ethernet@400000 {
+ status = "okay";
+ };
+
+ wmac@480000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pci@10140000 {
+ status = "okay";
+
+ host-bridge {
+ pci-bridge@1 {
+ status = "okay";
+ };
+ };
+ };
+
+ nor-flash@1c000000 {
+ compatible = "cfi-flash";
+ reg = <0x1c000000 0x800000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x0030000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ partition@30000 {
+ reg = <0x00030000 0x00010000>;
+ label = "u-boot-env";
+ read-only;
+ };
+
+ factory: partition@40000 {
+ reg = <0x00040000 0x00010000>;
+ label = "factory";
+ read-only;
+ };
+
+ partition@50000 {
+ reg = <0x00050000 0x003b0000>;
+ label = "firmware";
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 0>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "v11st-fe:green:status";
+ gpios = <&gpio0 12 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/V22RW-2X2.dts b/sys/gnu/dts/mips/V22RW-2X2.dts
new file mode 100644
index 0000000000000..98e8da06316e5
--- /dev/null
+++ b/sys/gnu/dts/mips/V22RW-2X2.dts
@@ -0,0 +1,94 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "V22RW-2X2", "ralink,rt3052-soc";
+ model = "Ralink AP-RT3052-V22RW-2X2";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ security {
+ label = "v22rw-2x2:green:security";
+ gpios = <&gpio0 13 1>;
+ };
+
+ wps {
+ label = "v22rw-2x2:red:wps";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/VOCORE-16M.dts b/sys/gnu/dts/mips/VOCORE-16M.dts
new file mode 100644
index 0000000000000..680b486cd6fcd
--- /dev/null
+++ b/sys/gnu/dts/mips/VOCORE-16M.dts
@@ -0,0 +1,39 @@
+/dts-v1/;
+
+/include/ "VOCORE.dtsi"
+
+&spi0 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/VOCORE-8M.dts b/sys/gnu/dts/mips/VOCORE-8M.dts
new file mode 100644
index 0000000000000..e8f9c2c2c1517
--- /dev/null
+++ b/sys/gnu/dts/mips/VOCORE-8M.dts
@@ -0,0 +1,39 @@
+/dts-v1/;
+
+/include/ "VOCORE.dtsi"
+
+&spi0 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/VOCORE.dtsi b/sys/gnu/dts/mips/VOCORE.dtsi
new file mode 100644
index 0000000000000..ab1c53ef433d5
--- /dev/null
+++ b/sys/gnu/dts/mips/VOCORE.dtsi
@@ -0,0 +1,197 @@
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "VoCore", "ralink,rt5350-soc";
+ model = "VoCore";
+
+ palmbus@10000000 {
+ gpio1: gpio@660 {
+ status = "okay";
+ };
+
+ i2c@900 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "jtag", "uartf", "led";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x17>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ gpio0 {
+ gpio-export,name = "gpio0";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 0 0>;
+ };
+
+ /* UARTF */
+ gpio7 {
+ /* UARTF_RTS_N */
+ gpio-export,name = "gpio7";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 7 0>;
+ };
+
+ gpio8 {
+ /* UARTF_TXD */
+ gpio-export,name = "gpio8";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 8 0>;
+ };
+
+ gpio9 {
+ /* UARTF_CTS_N */
+ gpio-export,name = "gpio9";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 9 0>;
+ };
+
+ gpio12 {
+ /* UARTF_DCD_N */
+ gpio-export,name = "gpio12";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 12 0>;
+ };
+
+ gpio13 {
+ /* UARTF_DSR_N */
+ gpio-export,name = "gpio13";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 13 0>;
+ };
+
+ gpio14 {
+ /* UARTF_RIN */
+ gpio-export,name = "gpio14";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 14 0>;
+ };
+
+ /* JTAG */
+ gpio17 {
+ /* JTAG_TDO */
+ gpio-export,name = "gpio17";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 17 0>;
+ };
+
+ gpio18 {
+ /* JTAG_TDI */
+ gpio-export,name = "gpio18";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 18 0>;
+ };
+
+ gpio19 {
+ /* JTAG_TMS */
+ gpio-export,name = "gpio19";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 19 0>;
+ };
+
+ gpio20 {
+ /* JTAG_TCLK */
+ gpio-export,name = "gpio20";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 20 0>;
+ };
+
+ gpio21 {
+ /* JTAG_TRST_N */
+ gpio-export,name = "gpio21";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio0 21 0>;
+ };
+
+ /* ETH LEDs */
+ gpio22 {
+ /* ETH0_LED */
+ gpio-export,name = "gpio22";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio1 0 0>;
+ };
+
+ gpio23 {
+ /* ETH1_LED */
+ gpio-export,name = "gpio23";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio1 1 0>;
+ };
+
+ gpio24 {
+ /* ETH2_LED */
+ gpio-export,name = "gpio24";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio1 2 0>;
+ };
+
+ gpio25 {
+ /* ETH3_LED */
+ gpio-export,name = "gpio25";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio1 3 0>;
+ };
+
+ gpio26 {
+ /* ETH4_LED */
+ gpio-export,name = "gpio26";
+ gpio-export,direction_may_change = <1>;
+ gpios = <&gpio1 4 0>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ /* UARTF_RXD */
+ label = "vocore:green:status";
+ gpios = <&gpio0 10 0>;
+ };
+
+ eth {
+ /* UARTF_DTR_N */
+ label = "vocore:orange:eth";
+ gpios = <&gpio0 11 0>;
+ };
+ };
+};
+
+&spi1 {
+ status = "okay";
+
+ spidev@0 {
+ compatible = "linux,spidev";
+ spi-max-frequency = <10000000>;
+ reg = <0>;
+ };
+};
diff --git a/sys/gnu/dts/mips/W150M.dts b/sys/gnu/dts/mips/W150M.dts
new file mode 100644
index 0000000000000..49790892cdee0
--- /dev/null
+++ b/sys/gnu/dts/mips/W150M.dts
@@ -0,0 +1,114 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "W150M", "ralink,rt3050-soc";
+ model = "Tenda W150M";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3c8000>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ 3grouter {
+ label = "w150m:blue:3grouter";
+ gpios = <&gpio0 11 1>;
+ };
+
+ ap {
+ label = "w150m:blue:ap";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wisprouter {
+ label = "w150m:blue:wisprouter";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wirelessrouter {
+ label = "w150m:blue:wirelessrouter";
+ gpios = <&gpio0 13 1>;
+ };
+
+ 3g {
+ label = "w150m:blue:3g";
+ gpios = <&gpio0 7 1>;
+ };
+
+ wpsreset {
+ label = "w150m:blue:wpsreset";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+
+ mode {
+ label = "mode";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x100>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+};
diff --git a/sys/gnu/dts/mips/W306R_V20.dts b/sys/gnu/dts/mips/W306R_V20.dts
new file mode 100644
index 0000000000000..c6ed9406432d8
--- /dev/null
+++ b/sys/gnu/dts/mips/W306R_V20.dts
@@ -0,0 +1,88 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "W306R_V20", "ralink,rt3052-soc";
+ model = "Tenda W306R V2.0";
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ sys {
+ label = "w306r-v20:green:sys";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wps {
+ label = "w306r-v20:green:wps";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "RESET/WPS";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/W502U.dts b/sys/gnu/dts/mips/W502U.dts
new file mode 100644
index 0000000000000..112a4bda75fc9
--- /dev/null
+++ b/sys/gnu/dts/mips/W502U.dts
@@ -0,0 +1,102 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "W502U", "ralink,rt3052-soc";
+ model = "ALFA Networks W502U";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "w502u:blue:usb";
+ gpios = <&gpio0 13 1>;
+ };
+
+ wps {
+ label = "w502u:blue:wps";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/WCR150GN.dts b/sys/gnu/dts/mips/WCR150GN.dts
new file mode 100644
index 0000000000000..ed80b6f5bf870
--- /dev/null
+++ b/sys/gnu/dts/mips/WCR150GN.dts
@@ -0,0 +1,98 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "WCR150GN", "ralink,rt3050-soc";
+ model = "Sparklan WCR-150GN";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ user {
+ label = "wcr-150gn:amber:user";
+ gpios = <&gpio0 12 1>;
+ };
+
+ power {
+ label = "wcr-150gn:amber:power";
+ gpios = <&gpio0 8 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x211>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/WF-2881.dts b/sys/gnu/dts/mips/WF-2881.dts
new file mode 100644
index 0000000000000..d33436c64a829
--- /dev/null
+++ b/sys/gnu/dts/mips/WF-2881.dts
@@ -0,0 +1,118 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+ compatible = "mediatek,mt7621-eval-board", "mediatek,mt7621-soc";
+ model = "NETIS WF-2881";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x8000000>;
+ };
+
+ palmbus@1E000000 {
+ spi@b00 {
+ status="disabled";
+ };
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ nand@1e003000 {
+ status = "okay";
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x1000>;
+ read-only;
+ };
+
+ partition@80000 {
+ label = "config";
+ reg = <0x80000 0x80000>;
+ read-only;
+ };
+
+ factory: partition@100000 {
+ label = "factory";
+ reg = <0x100000 0x40000>;
+ read-only;
+ };
+
+ partition@140000 {
+ label = "firmware";
+ reg = <0x140000 0x7E40000>;
+ };
+ };
+
+ pcie@1e140000 {
+ status = "okay";
+
+ pcie0 {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+
+ pcie1 {
+ mt76@1,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x0000>;
+ mediatek,5ghz = <0>;
+ };
+ };
+ };
+
+ ethernet@1e100000 {
+ mtd-mac-address = <&factory 0xe006>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "wf-2881:green:usb";
+ gpios = <&gpio0 6 1>;
+ };
+
+ wps {
+ label = "wf-2881:green:wps";
+ gpios = <&gpio0 0 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 12 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "uart3", "jtag";
+ ralink,function = "gpio";
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WHR-1166D.dts b/sys/gnu/dts/mips/WHR-1166D.dts
new file mode 100644
index 0000000000000..d3e9b7a4a4257
--- /dev/null
+++ b/sys/gnu/dts/mips/WHR-1166D.dts
@@ -0,0 +1,172 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-soc";
+ model = "Buffalo WHR-1166D";
+
+ palmbus@10000000 {
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l6405d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf", "wled", "nd_sd";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii1_pins &mdio_pins>;
+
+ port@5 {
+ status = "okay";
+ phy-handle = <&phy5>;
+ phy-mode = "rgmii";
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy5: ethernet-phy@5 {
+ reg = <5>;
+ phy-mode = "rgmii";
+ };
+ };
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "ephy";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+
+ pcie-bridge {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 32768>;
+ mediatek,2ghz = <0>;
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "whr-1166d:red:power";
+ gpios = <&gpio0 7 1>;
+ };
+
+ wifi {
+ label = "whr-1166d:green:wifi";
+ gpios = <&gpio0 8 1>;
+ };
+
+ power2 {
+ label = "whr-1166d:green:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wifi2 {
+ label = "whr-1166d:orange:wifi";
+ gpios = <&gpio0 10 1>;
+ };
+
+ internet {
+ label = "whr-1166d:green:internet";
+ gpios = <&gpio2 17 1>;
+ };
+
+ router {
+ label = "whr-1166d:orange:router";
+ gpios = <&gpio2 18 1>;
+ };
+
+ router2 {
+ label = "whr-1166d:green:router";
+ gpios = <&gpio2 19 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio2 12 1>;
+ linux,code = <0x198>;
+ };
+
+ aoss {
+ label = "aoss";
+ gpios = <&gpio2 13 1>;
+ linux,code = <0x211>;
+ };
+
+ ap {
+ label = "ap";
+ gpios = <&gpio2 14 1>;
+ linux,code = <0x100>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+
+ bridge {
+ label = "bridge";
+ gpios = <&gpio2 15 1>;
+ linux,code = <0x100>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WHR-300HP2.dts b/sys/gnu/dts/mips/WHR-300HP2.dts
new file mode 100644
index 0000000000000..638837da2f614
--- /dev/null
+++ b/sys/gnu/dts/mips/WHR-300HP2.dts
@@ -0,0 +1,150 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-soc";
+ model = "Buffalo WHR-300HP2";
+
+ palmbus@10000000 {
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf", "rgmii1", "rgmii2", "wled", "nd_sd";
+ ralink,function = "gpio";
+ };
+
+ pa {
+ ralink,group = "pa";
+ ralink,function = "pa";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mediatek,portmap = "llllw";
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "ephy";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "whr-300hp2:red:power";
+ gpios = <&gpio0 7 1>;
+ };
+
+ wifi {
+ label = "whr-300hp2:green:wifi";
+ gpios = <&gpio0 8 1>;
+ };
+
+ power2 {
+ label = "whr-300hp2:green:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wifi2 {
+ label = "whr-300hp2:orange:wifi";
+ gpios = <&gpio0 10 1>;
+ };
+
+ internet {
+ label = "whr-300hp2:green:internet";
+ gpios = <&gpio2 17 1>;
+ };
+
+ router {
+ label = "whr-300hp2:green:router";
+ gpios = <&gpio2 18 1>;
+ };
+
+ router2 {
+ label = "whr-300hp2:orange:router";
+ gpios = <&gpio2 19 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio2 12 1>;
+ linux,code = <0x198>;
+ };
+
+ aoss {
+ label = "aoss";
+ gpios = <&gpio2 13 1>;
+ linux,code = <0x211>;
+ };
+
+ ap {
+ label = "ap";
+ gpios = <&gpio2 14 1>;
+ linux,code = <0x100>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+
+ bridge {
+ label = "bridge";
+ gpios = <&gpio2 15 1>;
+ linux,code = <0x100>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WHR-600D.dts b/sys/gnu/dts/mips/WHR-600D.dts
new file mode 100644
index 0000000000000..3173342ec058c
--- /dev/null
+++ b/sys/gnu/dts/mips/WHR-600D.dts
@@ -0,0 +1,150 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ralink,mt7620a-soc";
+ model = "Buffalo WHR-600D";
+
+ palmbus@10000000 {
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l6405d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf", "rgmii1", "rgmii2", "wled", "nd_sd";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "llllw";
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "ephy";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "whr-600d:red:power";
+ gpios = <&gpio0 7 1>;
+ };
+
+ wifi {
+ label = "whr-600d:green:wifi";
+ gpios = <&gpio0 8 1>;
+ };
+
+ power2 {
+ label = "whr-600d:green:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wifi2 {
+ label = "whr-600d:orange:wifi";
+ gpios = <&gpio0 10 1>;
+ };
+
+ internet {
+ label = "whr-600d:green:internet";
+ gpios = <&gpio2 17 1>;
+ };
+
+ router {
+ label = "whr-600d:green:router";
+ gpios = <&gpio2 18 1>;
+ };
+
+ router2 {
+ label = "whr-600d:orange:router";
+ gpios = <&gpio2 19 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio2 12 1>;
+ linux,code = <0x198>;
+ };
+
+ aoss {
+ label = "aoss";
+ gpios = <&gpio2 13 1>;
+ linux,code = <0x211>;
+ };
+
+ ap {
+ label = "ap";
+ gpios = <&gpio2 14 1>;
+ linux,code = <0x100>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+
+ bridge {
+ label = "bridge";
+ gpios = <&gpio2 15 1>;
+ linux,code = <0x100>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WHR-G300N.dts b/sys/gnu/dts/mips/WHR-G300N.dts
new file mode 100644
index 0000000000000..e433e74426284
--- /dev/null
+++ b/sys/gnu/dts/mips/WHR-G300N.dts
@@ -0,0 +1,85 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "WHR-G300N", "ralink,rt3052-soc";
+ model = "Buffalo WHR-G300N";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ /* FIXME: no partitions defined */
+/* wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+*/
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ diag {
+ label = "whr-g300n:red:diag";
+ gpios = <&gpio0 7 1>;
+ };
+
+ router {
+ label = "whr-g300n:green:router";
+ gpios = <&gpio0 9 1>;
+ };
+
+ security {
+ label = "whr-g300n:amber:security";
+ gpios = <&gpio0 14 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ aoss {
+ label = "aoss";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+
+ router-off {
+ label = "router-off";
+ gpios = <&gpio0 11 1>;
+ linux,code = <0x102>;
+ };
+
+ router-on {
+ label = "router-on";
+ gpios = <&gpio0 8 1>;
+ linux,code = <0x103>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WITI.dts b/sys/gnu/dts/mips/WITI.dts
new file mode 100644
index 0000000000000..78e2bc9602850
--- /dev/null
+++ b/sys/gnu/dts/mips/WITI.dts
@@ -0,0 +1,128 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+ compatible = "mediatek,mt7621-eval-board", "mediatek,mt7621-soc";
+ model = "MQmaker WiTi";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x10000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ xhci@1E1C0000 {
+ status = "okay";
+ };
+
+ palmbus@1E000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+ };
+
+ i2c@900 {
+ compatible = "ralink,i2c-mt7621";
+ reg = <0x900 0x100>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c_pins>;
+ status = "okay";
+
+ pcf8563: rtc@51 {
+ status = "okay";
+ compatible = "nxp,pcf8563";
+ reg = <0x51>;
+ };
+ };
+ };
+
+ pcie@1e140000 {
+ status = "okay";
+
+ pcie0 {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ mtd-mac-address = <&factory 0xe000>;
+ };
+ };
+
+ pcie1 {
+ mt76@1,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x0000>;
+ mediatek,5ghz = <0>;
+ mtd-mac-address = <&factory 0xe000>;
+ };
+ };
+ };
+
+ ethernet@1e100000 {
+ mtd-mac-address = <&factory 0xe000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 18 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "wdt", "rgmii2", "jtag", "mdio";
+ ralink,function = "gpio";
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WIZARD8800.dts b/sys/gnu/dts/mips/WIZARD8800.dts
new file mode 100644
index 0000000000000..7d8243c76de9d
--- /dev/null
+++ b/sys/gnu/dts/mips/WIZARD8800.dts
@@ -0,0 +1,83 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "WIZARD8800", "ralink,rt5350-soc";
+ model = "EASYACC WI-STOR WIZARD 8800";
+
+ palmbus@10000000 {
+ gpio1@638 {
+ status = "okay";
+ };
+
+ gpio2@660 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q32";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+};
diff --git a/sys/gnu/dts/mips/WIZFI630A.dts b/sys/gnu/dts/mips/WIZFI630A.dts
new file mode 100644
index 0000000000000..e2a51ecf1b0ac
--- /dev/null
+++ b/sys/gnu/dts/mips/WIZFI630A.dts
@@ -0,0 +1,182 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "wizfi630a", "ralink,rt5350-soc";
+ model = "WIZnet WizFi630A";
+
+ chosen {
+ bootargs = "console=ttyS1,115200";
+ };
+
+ palmbus@10000000 {
+ gpio1: gpio@660 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+ };
+
+ uart@500 {
+ compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0x500 0x100>;
+ resets = <&rstctrl 12>;
+ reset-names = "uart";
+ interrupt-parent = <&intc>;
+ interrupts = <5>;
+ reg-shift = <2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&uartf_pins>;
+ status = "okay";
+ };
+
+ uartlite@c00 {
+ compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0xc00 0x100>;
+ resets = <&rstctrl 19>;
+ reset-names = "uartl";
+ interrupt-parent = <&intc>;
+ interrupts = <12>;
+ reg-shift = <2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&uartlite_pins>;
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag" ;
+ ralink,function = "gpio";
+ };
+ };
+
+ uartf_gpio_pins: uartf_gpio {
+ uartf_gpio {
+ ralink,group = "uartf";
+ ralink,function = "uartf";
+ };
+ };
+
+ uartlite_pins: uartlite {
+ uart {
+ ralink,group = "uartlite";
+ ralink,function = "uartlite";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x17>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ run {
+ label = "wizfi630a::run";
+ gpios = <&gpio0 1 1>;
+ };
+
+ wps {
+ label = "wizfi630a::wps";
+ gpios = <&gpio0 20 1>;
+ };
+
+ uart1 {
+ label = "wizfi630a::uart1";
+ gpios = <&gpio0 18 1>;
+ };
+
+ uart2 {
+ label = "wizfi630a::uart2";
+ gpios = <&gpio0 21 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 17 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+
+ scm1 {
+ label = "SCM1";
+ gpios = <&gpio0 19 1>;
+ linux,code = <0x100>;
+ };
+
+ scm2 {
+ label = "SCM2";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x101>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WL-330N.dts b/sys/gnu/dts/mips/WL-330N.dts
new file mode 100644
index 0000000000000..632d9607ac511
--- /dev/null
+++ b/sys/gnu/dts/mips/WL-330N.dts
@@ -0,0 +1,100 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "WL-330N", "ralink,rt3050-soc";
+ model = "Asus WL-330N";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ link {
+ label = "wl-330n:blue:link";
+ gpios = <&gpio0 9 1>;
+ };
+
+ power {
+ label = "wl-330n:blue:power";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WL-330N3G.dts b/sys/gnu/dts/mips/WL-330N3G.dts
new file mode 100644
index 0000000000000..1e129adbef87e
--- /dev/null
+++ b/sys/gnu/dts/mips/WL-330N3G.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "WL-330N3G", "ralink,rt3050-soc";
+ model = "Asus WL-330N3G";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ 3g {
+ label = "wl-330n3g:blue:3g";
+ gpios = <&gpio0 9 1>;
+ };
+
+ 3g2 {
+ label = "wl-330n3g:red:3g";
+ gpios = <&gpio0 13 1>;
+ };
+
+ power {
+ label = "wl-330n3g:blue:power";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/WL-341V3.dts b/sys/gnu/dts/mips/WL-341V3.dts
new file mode 100644
index 0000000000000..debe55e9aa24c
--- /dev/null
+++ b/sys/gnu/dts/mips/WL-341V3.dts
@@ -0,0 +1,123 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "WL-341V3", "ralink,rt3052-soc";
+ model = "Sitecom WL-341 v3";
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ boardnvram: partition@20000 {
+ label = "board-nvram";
+ reg = <0x20000 0x10000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "firmware";
+ reg = <0x40000 0x3b0000>;
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&boardnvram 0xffa0>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&boardnvram 0xfd70>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ first {
+ label = "wl-341v3:amber:first";
+ gpios = <&gpio0 9 1>;
+ };
+
+ first2 {
+ label = "wl-341v3:blue:first";
+ gpios = <&gpio0 13 1>;
+ };
+
+ third {
+ label = "wl-341v3:amber:third";
+ gpios = <&gpio0 11 1>;
+ };
+
+ third2 {
+ label = "wl-341v3:blue:third";
+ gpios = <&gpio0 14 1>;
+ };
+
+ fourth {
+ label = "wl-341v3:blue:fourth";
+ gpios = <&gpio0 10 1>;
+ };
+
+ fifth {
+ label = "wl-341v3:amber:fifth";
+ gpios = <&gpio0 12 1>;
+ };
+
+ fifth2 {
+ label = "wl-341v3:blue:fifth";
+ gpios = <&gpio0 8 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 5 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/WL-351.dts b/sys/gnu/dts/mips/WL-351.dts
new file mode 100644
index 0000000000000..7f16631ef4a95
--- /dev/null
+++ b/sys/gnu/dts/mips/WL-351.dts
@@ -0,0 +1,117 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "WL-351", "ralink,rt3052-soc";
+ model = "Sitecom WL-351 v1 002";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3f>;
+ ralink,fct2 = <0x0002500c>;
+ /*
+ * ext phy base addr 31, rx/tx clock skew 0,
+ * turbo mii off, rgmi 3.3v off, port 5 polling off
+ * port5: enabled, gige, full-duplex, rx/tx-flow-control
+ * port6: enabled, gige, full-duplex, rx/tx-flow-control
+ */
+ ralink,fpa2 = <0x1f003fff>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "wl-351:amber:power";
+ gpios = <&gpio0 8 1>;
+ };
+
+ unpopulated {
+ label = "wl-351:amber:unpopulated";
+ gpios = <&gpio0 12 1>;
+ };
+
+ unpopulated2 {
+ label = "wl-351:blue:unpopulated";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ rtl8366rb {
+ compatible = "rtl8366rb";
+ gpio-sda = <&gpio0 1 0>;
+ gpio-sck = <&gpio0 2 0>;
+ };
+};
diff --git a/sys/gnu/dts/mips/WLI-TX4-AG300N.dts b/sys/gnu/dts/mips/WLI-TX4-AG300N.dts
new file mode 100644
index 0000000000000..873feab82d662
--- /dev/null
+++ b/sys/gnu/dts/mips/WLI-TX4-AG300N.dts
@@ -0,0 +1,105 @@
+/dts-v1/;
+
+/include/ "rt2880.dtsi"
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "WLI-TX4-AG300N", "ralink,rt2880-soc";
+ model = "Buffalo WLI-TX4-AG300N";
+
+ palmbus@300000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "linux";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@400000 {
+ status = "okay";
+ mtd-mac-address = <&factory 0x4>;
+
+ port@0 {
+ mediatek,fixed-link = <1000 1 1 1>;
+ };
+ };
+
+ wmac@480000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+
+ bandwidth {
+ label = "bandwidth";
+ gpios = <&gpio0 8 0>;
+ linux,code = <0x198>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 9 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ diag {
+ label = "wli-tx4-ag300n:red:diag";
+ gpios = <&gpio0 10 1>;
+ };
+
+ power {
+ label = "wli-tx4-ag300n:blue:power";
+ gpios = <&gpio0 12 1>;
+ };
+
+ security {
+ label = "wli-tx4-ag300n:blue:security";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WMR-300.dts b/sys/gnu/dts/mips/WMR-300.dts
new file mode 100644
index 0000000000000..709768781c860
--- /dev/null
+++ b/sys/gnu/dts/mips/WMR-300.dts
@@ -0,0 +1,106 @@
+/dts-v1/;
+
+/include/ "mt7620n.dtsi"
+
+/ {
+ compatible = "buffalo,wmr-300", "ralink,mt7620n-soc";
+ model = "Buffalo WMR-300";
+
+ palmbus@10000000 {
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "en25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "wllll";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ ralink,group = "i2c", "ephy";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ aoss1 {
+ label = "wmr-300:red:aoss";
+ gpios = <&gpio2 1 1>;
+ };
+
+ aoss2 {
+ label = "wmr-300:green:aoss";
+ gpios = <&gpio2 2 1>;
+ };
+
+ power {
+ label = "wmr-300:green:status";
+ gpios = <&gpio2 4 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+
+ aoss {
+ label = "aoss";
+ gpios = <&gpio0 2 1>;
+ linux,code = <0x211>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WNCE2001.dts b/sys/gnu/dts/mips/WNCE2001.dts
new file mode 100644
index 0000000000000..da094dcd1684d
--- /dev/null
+++ b/sys/gnu/dts/mips/WNCE2001.dts
@@ -0,0 +1,139 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "WNCE2001", "ralink,rt3052-soc";
+ model = "Netgear WNCE2001";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "mx25l3205d";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ factory: partition@30000 {
+ label = "factory";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "config";
+ reg = <0x40000 0x20000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "language";
+ reg = <0x60000 0x30000>;
+ read-only;
+ };
+
+ partition@90000 {
+ label = "pot";
+ reg = <0x90000 0x10000>;
+ read-only;
+ };
+
+ partition@a0000 {
+ label = "checksum";
+ reg = <0xa0000 0x10000>;
+ };
+
+ partition@b0000 {
+ label = "firmware";
+ reg = <0xb0000 0x350000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power-green {
+ label = "wnce2001:green:power";
+ gpios = <&gpio0 8 1>;
+ };
+
+ power-red {
+ label = "wnce2001:red:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wlan-green {
+ label = "wnce2001:green:wlan";
+ gpios = <&gpio0 12 0>;
+ };
+
+ wlan-red {
+ label = "wnce2001:red:wlan";
+ gpios = <&gpio0 13 0>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+
+ rt {
+ label = "rt";
+ gpios = <&gpio0 11 1>;
+ linux,code = <0x100>;
+ };
+
+ ap {
+ label = "ap";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0x101>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WR512-3GN-4M.dts b/sys/gnu/dts/mips/WR512-3GN-4M.dts
new file mode 100644
index 0000000000000..531a3709a3d87
--- /dev/null
+++ b/sys/gnu/dts/mips/WR512-3GN-4M.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "WR512-3GN", "ralink,rt3052-soc";
+ model = "WR512-3GN-like router";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3c8000>;
+ };
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ 3g {
+ label = "wr512-3gn:green:3g";
+ gpios = <&gpio0 9 1>;
+ };
+
+ gateway {
+ label = "wr512-3gn:green:gateway";
+ gpios = <&gpio0 11 1>;
+ };
+
+ ap {
+ label = "wr512-3gn:green:ap";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wps {
+ label = "wr512-3gn:green:wps";
+ gpios = <&gpio0 14 1>;
+ };
+
+ station {
+ label = "wr512-3gn:green:station";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset_wps {
+ label = "reset_wps";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ mode {
+ label = "mode";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0x32>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/WR512-3GN-8M.dts b/sys/gnu/dts/mips/WR512-3GN-8M.dts
new file mode 100644
index 0000000000000..5f369f89c29f3
--- /dev/null
+++ b/sys/gnu/dts/mips/WR512-3GN-8M.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "WR512-3GN", "ralink,rt3052-soc";
+ model = "WR512-3GN-like router";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ 3g {
+ label = "wr512-3gn:green:3g";
+ gpios = <&gpio0 9 1>;
+ };
+
+ gateway {
+ label = "wr512-3gn:green:gateway";
+ gpios = <&gpio0 11 1>;
+ };
+
+ ap {
+ label = "wr512-3gn:green:ap";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wps {
+ label = "wr512-3gn:green:wps";
+ gpios = <&gpio0 14 1>;
+ };
+
+ station {
+ label = "wr512-3gn:green:station";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset_wps {
+ label = "reset_wps";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ mode {
+ label = "mode";
+ gpios = <&gpio0 7 1>;
+ linux,code = <0x32>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/WR6202.dts b/sys/gnu/dts/mips/WR6202.dts
new file mode 100644
index 0000000000000..0c80514714b7c
--- /dev/null
+++ b/sys/gnu/dts/mips/WR6202.dts
@@ -0,0 +1,113 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "WR6202", "ralink,rt3052-soc";
+ model = "AWB WR6202";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wps {
+ label = "wr6202:blue:wps";
+ gpios = <&gpio0 14 1>;
+ };
+
+ 3g {
+ label = "wr6202:blue:3g";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ usb {
+ gpio-export,name = "usb";
+ gpio-export,output = <0>;
+ gpios = <&gpio0 11 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WRTNODE.dts b/sys/gnu/dts/mips/WRTNODE.dts
new file mode 100644
index 0000000000000..d5ff18e8e0888
--- /dev/null
+++ b/sys/gnu/dts/mips/WRTNODE.dts
@@ -0,0 +1,93 @@
+/dts-v1/;
+
+/include/ "mt7620n.dtsi"
+
+/ {
+ compatible = "wrtnode", "ralink,mt7620n-soc";
+ model = "WRTNODE";
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "wllll";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ ralink,group = "ephy", "wled", "pa", "i2c", "wdt", "uartf", "spi refclk";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ indicator {
+ label = "wrtnode:blue:indicator";
+ gpios = <&gpio1 14 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WRTNODE2.dtsi b/sys/gnu/dts/mips/WRTNODE2.dtsi
new file mode 100644
index 0000000000000..d9aaba88689f5
--- /dev/null
+++ b/sys/gnu/dts/mips/WRTNODE2.dtsi
@@ -0,0 +1,93 @@
+/include/ "mt7628an.dtsi"
+
+/ {
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ spi-max-frequency = <10000000>;
+ m25p,chunked-io = <32>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x1fb0000>;
+ };
+ };
+
+
+ spidev@1 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "spidev";
+ reg = <1 0>;
+ linux,modalias = "spidev", "spidev";
+ spi-max-frequency = <10000000>;
+ };
+ };
+
+ uart1@d00 {
+ status = "okay";
+ };
+
+ i2c@900 {
+ status = "okay";
+ };
+
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ ralink,port-map = "llllw";
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 5 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+};
+
diff --git a/sys/gnu/dts/mips/WRTNODE2P.dts b/sys/gnu/dts/mips/WRTNODE2P.dts
new file mode 100644
index 0000000000000..153fab2bc0c9b
--- /dev/null
+++ b/sys/gnu/dts/mips/WRTNODE2P.dts
@@ -0,0 +1,27 @@
+/dts-v1/;
+
+/include/ "WRTNODE2.dtsi"
+
+/ {
+ compatible = "mediatek,wrtnode2p", "mediatek,mt7628an-soc";
+ model = "WRTnode2P";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "gpio", "jtag";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ indicator {
+ label = "wrtnode:blue:indicator";
+ gpios = <&gpio1 9 1>;
+ };
+ };
+};
+
diff --git a/sys/gnu/dts/mips/WRTNODE2R.dts b/sys/gnu/dts/mips/WRTNODE2R.dts
new file mode 100644
index 0000000000000..e91591590a5e1
--- /dev/null
+++ b/sys/gnu/dts/mips/WRTNODE2R.dts
@@ -0,0 +1,27 @@
+/dts-v1/;
+
+/include/ "WRTNODE2.dtsi"
+
+/ {
+ compatible = "mediatek,wrtnode2r", "mediatek,mt7628an-soc";
+ model = "WRTnode2R";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "gpio", "wled_an";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ indicator {
+ label = "wrtnode:blue:indicator";
+ gpios = <&gpio1 12 1>;
+ };
+ };
+};
+
diff --git a/sys/gnu/dts/mips/WSR-1166.dts b/sys/gnu/dts/mips/WSR-1166.dts
new file mode 100644
index 0000000000000..9743cee652ac7
--- /dev/null
+++ b/sys/gnu/dts/mips/WSR-1166.dts
@@ -0,0 +1,186 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+ compatible = "ralink,mt7621-eval-board", "ralink,mt7621-soc";
+ model = "Buffalo WSR-1166DHP";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x8000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ palmbus@1E000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xf90000>;
+ };
+
+ partition@fe0000 {
+ label = "board_data";
+ reg = <0xfe0000 0x20000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uart2", "uart3", "rgmii2", "sdhci";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ internet_g {
+ label = "wsr-1166:green:internet";
+ gpios = <&gpio1 9 1>;
+ };
+
+ router_g {
+ label = "wsr-1166:green:router";
+ gpios = <&gpio1 10 1>;
+ };
+
+ router_o {
+ label = "wsr-1166:orange:router";
+ gpios = <&gpio1 11 1>;
+ };
+
+ internet_o {
+ label = "wsr-1166:orange:internet";
+ gpios = <&gpio1 12 1>;
+ };
+
+ wifi_o {
+ label = "wsr-1166:orange:wifi";
+ gpios = <&gpio1 13 1>;
+ };
+
+ power {
+ label = "wsr-1166:green:power";
+ gpios = <&gpio1 14 1>;
+ };
+
+ diag {
+ label = "wsr-1166:orange:diag";
+ gpios = <&gpio1 15 1>;
+ };
+
+ wifi_g {
+ label = "wsr-1166:green:wifi";
+ gpios = <&gpio1 16 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ power {
+ label = "power";
+ gpios = <&gpio0 18 1>;
+ linux,code = <0x74>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 3 1>;
+ linux,code = <0x198>;
+ };
+
+ aoss {
+ label = "aoss";
+ gpios = <&gpio0 6 1>;
+ linux,code = <0x211>;
+ };
+
+ auto {
+ label = "mode";
+ gpios = <&gpio0 7 0>;
+ linux,code = <0x100>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+
+ ap {
+ label = "ap";
+ gpios = <&gpio0 10 0>;
+ linux,code = <0x100>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+
+ router {
+ label = "router";
+ gpios = <&gpio0 12 0>;
+ linux,code = <0x100>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+ };
+
+ gpio_poweroff {
+ compatible = "gpio-poweroff";
+ gpios = <&gpio0 0 1>;
+ };
+
+ pcie@1e140000 {
+ status = "okay";
+
+ pcie0 {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+
+ pcie1 {
+ mt76@1,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x0000>;
+ mediatek,5ghz = <0>;
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WSR-600.dts b/sys/gnu/dts/mips/WSR-600.dts
new file mode 100644
index 0000000000000..949572c263431
--- /dev/null
+++ b/sys/gnu/dts/mips/WSR-600.dts
@@ -0,0 +1,159 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+ compatible = "ralink,mt7621-eval-board", "ralink,mt7621-soc";
+ model = "Buffalo WSR-600DHP";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ palmbus@1E000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uart2", "uart3", "rgmii2", "sdhci";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "wsr-600:green:power";
+ gpios = <&gpio0 12 1>;
+ };
+
+ wifi_o {
+ label = "wsr-600:orange:wifi";
+ gpios = <&gpio1 9 1>;
+ };
+
+ diag {
+ label = "wsr-600:orange:diag";
+ gpios = <&gpio1 10 1>;
+ };
+
+ wifi_g {
+ label = "wsr-600:green:wifi";
+ gpios = <&gpio1 12 1>;
+ };
+
+ router_o {
+ label = "wsr-600:orange:router";
+ gpios = <&gpio1 13 1>;
+ };
+
+ router_g {
+ label = "wsr-600:green:router";
+ gpios = <&gpio1 14 1>;
+ };
+
+ internet_o {
+ label = "wsr-600:orange:internet";
+ gpios = <&gpio1 15 1>;
+ };
+
+ internet_g {
+ label = "wsr-600:green:internet";
+ gpios = <&gpio1 16 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ power {
+ label = "power";
+ gpios = <&gpio0 8 1>;
+ linux,code = <0x74>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 11 1>;
+ linux,code = <0x198>;
+ };
+
+ aoss {
+ label = "aoss";
+ gpios = <&gpio0 18 1>;
+ linux,code = <0x211>;
+ };
+
+ auto {
+ label = "mode";
+ gpios = <&gpio0 7 0>;
+ linux,code = <0x100>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+
+ ap {
+ label = "ap";
+ gpios = <&gpio0 6 0>;
+ linux,code = <0x100>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+
+ router {
+ label = "router";
+ gpios = <&gpio0 10 0>;
+ linux,code = <0x100>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+ };
+
+ gpio_poweroff {
+ compatible = "gpio-poweroff";
+ gpios = <&gpio1 11 1>;
+ };
+};
diff --git a/sys/gnu/dts/mips/WT1520-4M.dts b/sys/gnu/dts/mips/WT1520-4M.dts
new file mode 100644
index 0000000000000..9cdff67453898
--- /dev/null
+++ b/sys/gnu/dts/mips/WT1520-4M.dts
@@ -0,0 +1,43 @@
+/dts-v1/;
+
+/include/ "WT1520.dtsi"
+
+/ {
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WT1520-8M.dts b/sys/gnu/dts/mips/WT1520-8M.dts
new file mode 100644
index 0000000000000..e9549cec6a845
--- /dev/null
+++ b/sys/gnu/dts/mips/WT1520-8M.dts
@@ -0,0 +1,43 @@
+/dts-v1/;
+
+/include/ "WT1520.dtsi"
+
+/ {
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "s25fl064k";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WT1520.dtsi b/sys/gnu/dts/mips/WT1520.dtsi
new file mode 100644
index 0000000000000..13ff268a8bf12
--- /dev/null
+++ b/sys/gnu/dts/mips/WT1520.dtsi
@@ -0,0 +1,48 @@
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "NEXXWT1520", "ralink,rt5350-soc";
+ model = "Nexx WT1520";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS1,57600";
+ };
+
+ palmbus@10000000 {
+ uart@500 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uartf_pins>;
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "jtag";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/WT3020-4M.dts b/sys/gnu/dts/mips/WT3020-4M.dts
new file mode 100644
index 0000000000000..39b52c3474111
--- /dev/null
+++ b/sys/gnu/dts/mips/WT3020-4M.dts
@@ -0,0 +1,102 @@
+/dts-v1/;
+
+/include/ "mt7620n.dtsi"
+
+/ {
+ compatible = "wt3020", "ralink,mt7620n-soc";
+ model = "Nexx WT3020";
+
+ palmbus@10000000 {
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q32";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "wllll";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ ralink,group = "ephy", "wled", "pa", "i2c", "wdt", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "wt3020:blue:power";
+ gpios = <&gpio3 0 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WT3020-8M.dts b/sys/gnu/dts/mips/WT3020-8M.dts
new file mode 100644
index 0000000000000..3a24651b9af22
--- /dev/null
+++ b/sys/gnu/dts/mips/WT3020-8M.dts
@@ -0,0 +1,102 @@
+/dts-v1/;
+
+/include/ "mt7620n.dtsi"
+
+/ {
+ compatible = "wt3020", "ralink,mt7620n-soc";
+ model = "Nexx WT3020";
+
+ palmbus@10000000 {
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "wllll";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ ralink,group = "ephy", "wled", "pa", "i2c", "wdt", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "wt3020:blue:power";
+ gpios = <&gpio3 0 0>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/WZR-AGL300NH.dts b/sys/gnu/dts/mips/WZR-AGL300NH.dts
new file mode 100644
index 0000000000000..02989bee1522f
--- /dev/null
+++ b/sys/gnu/dts/mips/WZR-AGL300NH.dts
@@ -0,0 +1,143 @@
+/dts-v1/;
+
+/include/ "rt2880.dtsi"
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "WZR-AGL300NH", "ralink,rt2880-soc";
+ model = "Buffalo WZR-AGL300NH";
+
+ palmbus@300000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartlite", "mdio";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@400000 {
+ status = "okay";
+ mtd-mac-address = <&factory 0x4>;
+
+ port@0 {
+ mediatek,fixed-link = <1000 1 1 1>;
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ phy-mode = "mii";
+ reg = <0>;
+ };
+ };
+ };
+
+ rtl8366s {
+ compatible = "realtek,rtl8366s";
+ gpio-sda = <&gpio0 1 0>;
+ gpio-sck = <&gpio0 2 0>;
+ };
+
+ wmac@480000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 0 1>;
+ linux,code = <0x211>;
+ };
+
+ router {
+ label = "router_switch";
+ gpios = <&gpio0 7 0>;
+ linux,code = <0x100>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 9 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ router {
+ label = "wzr-agl300nh:green:router";
+ gpios = <&gpio0 8 1>;
+ };
+
+ diag {
+ label = "wzr-agl300nh:red:diag";
+ gpios = <&gpio0 12 1>;
+ };
+
+ security_g {
+ label = "wzr-agl300nh:orange:security_g";
+ gpios = <&gpio0 11 1>;
+ };
+
+ security_n {
+ label = "wzr-agl300nh:orange:security_n";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+
+ pcibus0: pci@00440000 {
+ compatible = "ralink,rt288x-pci";
+ reg = <0x00440000 0x20000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ status = "ok";
+ };
+};
diff --git a/sys/gnu/dts/mips/X5.dts b/sys/gnu/dts/mips/X5.dts
new file mode 100644
index 0000000000000..4952c905cdb0b
--- /dev/null
+++ b/sys/gnu/dts/mips/X5.dts
@@ -0,0 +1,138 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "X5", "ralink,rt5350-soc";
+ model = "Poray X5";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "gd25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ mediatek,led_polarity = <1>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "x5:green:power";
+ gpios = <&gpio0 13 1>;
+ };
+
+ 20 {
+ label = "x5:green:20";
+ gpios = <&gpio0 12 1>;
+ };
+
+ 50 {
+ label = "x5:green:50";
+ gpios = <&gpio0 11 1>;
+ };
+
+ 80 {
+ label = "x5:green:80";
+ gpios = <&gpio0 7 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ bat {
+ label = "bat";
+ gpios = <&gpio0 9 1>;
+ linux,code = <0x211>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+
+ mode {
+ label = "mode";
+ gpios = <&gpio0 14 1>;
+ linux,code = <0x100>;
+ linux,input-type = <5>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ usb-mode {
+ gpio-export,name = "usb-mode";
+ gpio-export,output = <0>;
+ gpios = <&gpio0 18 0>;
+ };
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ ralink,led-polarity = <1>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/X8.dts b/sys/gnu/dts/mips/X8.dts
new file mode 100644
index 0000000000000..ad7f808a435a5
--- /dev/null
+++ b/sys/gnu/dts/mips/X8.dts
@@ -0,0 +1,99 @@
+/dts-v1/;
+
+/include/ "rt5350.dtsi"
+
+/ {
+ compatible = "X8", "ralink,rt5350-soc";
+ model = "Poray X8";
+
+ palmbus@10000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "gd25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "jtag", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x2f>;
+ mediatek,led_polarity = <1>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "x8:green:power";
+ gpios = <&gpio0 13 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ ralink,led-polarity = <1>;
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/XDXRN502J.dts b/sys/gnu/dts/mips/XDXRN502J.dts
new file mode 100644
index 0000000000000..97940dd5b16b1
--- /dev/null
+++ b/sys/gnu/dts/mips/XDXRN502J.dts
@@ -0,0 +1,92 @@
+/dts-v1/;
+
+/include/ "rt3050.dtsi"
+
+/ {
+ compatible = "XDXRN502J", "ralink,rt3052-soc";
+ model = "XDX RN502J";
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ cfi@1f000000 {
+ compatible = "cfi-flash";
+ reg = <0x1f000000 0x800000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x3b0000>;
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x28>;
+ };
+
+ esw@10110000 {
+ mediatek,portmap = <0x3e>;
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wifi {
+ label = "xdxrn502j:green:wifi";
+ gpios = <&gpio0 7 1>;
+ };
+
+ power {
+ label = "xdxrn502j:green:power";
+ gpios = <&gpio0 9 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 10 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ otg@101c0000 {
+ status = "okay";
+ };
+};
diff --git a/sys/gnu/dts/mips/Y1.dts b/sys/gnu/dts/mips/Y1.dts
new file mode 100644
index 0000000000000..90227958c0fda
--- /dev/null
+++ b/sys/gnu/dts/mips/Y1.dts
@@ -0,0 +1,49 @@
+/dts-v1/;
+
+/include/ "Y1.dtsi"
+
+/ {
+ compatible = "lenovo,Y1", "ralink,mt7620a-soc";
+ model = "Lenovo Y1";
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "llllw";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power1 {
+ label = "y1:blue:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wlan1 {
+ label = "y1:blue:wifi";
+ gpios = <&gpio3 0 1>;
+ };
+
+ wlan2 {
+ label = "y1:blue:wifi5g";
+ gpios = <&gpio2 10 1>;
+ };
+
+ usb {
+ label = "y1:blue:usb";
+ gpios = <&gpio2 12 1>;
+ };
+
+ lan {
+ label = "y1:blue:lan";
+ gpios = <&gpio2 15 1>;
+ };
+
+ internet {
+ label = "y1:blue:internet";
+ gpios = <&gpio2 11 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/Y1.dtsi b/sys/gnu/dts/mips/Y1.dtsi
new file mode 100644
index 0000000000000..18652f12ce386
--- /dev/null
+++ b/sys/gnu/dts/mips/Y1.dtsi
@@ -0,0 +1,109 @@
+/include/ "mt7620a.dtsi"
+
+/ {
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ pcie@10140000 {
+ status = "okay";
+
+ pcie-bridge {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "uartf", "wled", "nd_sd";
+ ralink,function = "gpio";
+ };
+
+ pa {
+ ralink,group = "pa";
+ ralink,function = "pa";
+ };
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 11 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/Y1S.dts b/sys/gnu/dts/mips/Y1S.dts
new file mode 100644
index 0000000000000..d7f4615aa5096
--- /dev/null
+++ b/sys/gnu/dts/mips/Y1S.dts
@@ -0,0 +1,106 @@
+/dts-v1/;
+
+/include/ "Y1.dtsi"
+
+/ {
+ compatible = "lenovo,Y1S", "ralink,mt7620a-soc";
+ model = "Lenovo Y1S";
+
+ ethernet@10100000 {
+ status = "okay";
+ mtd-mac-address = <&factory 0x4>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;
+ mediatek,portmap = "wllll";
+
+ port@4 {
+ status = "okay";
+ phy-handle = <&phy4>;
+ phy-mode = "rgmii";
+ };
+
+ port@5 {
+ status = "okay";
+ phy-handle = <&phy5>;
+ phy-mode = "rgmii";
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy4: ethernet-phy@4 {
+ reg = <4>;
+ phy-mode = "rgmii";
+ };
+
+ phy5: ethernet-phy@5 {
+ reg = <5>;
+ phy-mode = "rgmii";
+ };
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+ /* GPIO 54、55、56 USB1、2、3 */
+ usb0 {
+ gpio-export,name = "usb0";
+ gpio-export,output = <1>; // GPIOF_OUT_INIT_HIGH
+ gpios = <&gpio2 14 0>; // GPIO2:40+14=GPIO 54
+ };
+ usb1 {
+ gpio-export,name = "usb1";
+ gpio-export,output = <1>;
+ gpios = <&gpio2 15 0>;
+ };
+ usb2 {
+ gpio-export,name = "usb2";
+ gpio-export,output = <1>;
+ gpios = <&gpio2 16 0>;
+ };
+ };
+
+ gsw@10110000 {
+ mediatek,port4 = "gmac";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power1 {
+ label = "y1s:yellow:power";
+ gpios = <&gpio0 14 1>;
+ };
+
+ power2 {
+ label = "y1s:blue:power";
+ gpios = <&gpio0 9 1>;
+ };
+
+ wlan1 {
+ label = "y1s:yellow:wifi";
+ gpios = <&gpio3 0 1>;
+ };
+
+ wlan2 {
+ label = "y1s:blue:wifi";
+ gpios = <&gpio2 10 1>;
+ };
+
+ usb1 {
+ label = "y1s:yellow:usb";
+ gpios = <&gpio2 13 1>;
+ };
+
+ usb2 {
+ label = "y1s:blue:usb";
+ gpios = <&gpio2 12 1>;
+ };
+
+ internet {
+ label = "y1s:blue:internet";
+ gpios = <&gpio2 11 1>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/YOUKU-YK1.dts b/sys/gnu/dts/mips/YOUKU-YK1.dts
new file mode 100644
index 0000000000000..47847d0b0ae2c
--- /dev/null
+++ b/sys/gnu/dts/mips/YOUKU-YK1.dts
@@ -0,0 +1,127 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "YOUKU-YK1", "ralink,mt7620a-soc";
+ model = "YOUKU YK1";
+
+ palmbus@10000000 {
+
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q256";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x1fb0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ ralink,group = "i2c", "uartf", "rgmii1", "rgmii2", "ephy", "wled", "nd_sd";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "llllw";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ sdhci@b0130000 {
+ status = "okay";
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ wan {
+ label = "youku-yk1:blue:wan";
+ gpios = <&gpio2 4 1>;
+ };
+ air {
+ label = "youku-yk1:blue:air";
+ gpios = <&gpio3 0 1>;
+ };
+ usb {
+ label = "youku-yk1:blue:usb";
+ gpios = <&gpio1 11 1>;
+ };
+ power {
+ label = "youku-yk1:blue:power";
+ gpios = <&gpio1 5 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ZBT-WA05.dts b/sys/gnu/dts/mips/ZBT-WA05.dts
new file mode 100644
index 0000000000000..f7fca60ce544c
--- /dev/null
+++ b/sys/gnu/dts/mips/ZBT-WA05.dts
@@ -0,0 +1,120 @@
+/dts-v1/;
+
+/include/ "mt7620n.dtsi"
+
+/ {
+ compatible = "zbtlink,zbt-wa05", "ralink,mt7620n-soc";
+ model = "Zbtlink ZBT-WA05";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ en25q64@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x760000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "wllll";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ ralink,group = "i2c", "spi refclk", "wled";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "zbt-wa05:blue:power";
+ gpios = <&gpio1 14 1>;
+ };
+
+ usb {
+ label = "zbt-wa05:blue:usb";
+ gpios = <&gpio1 15 0>;
+ };
+
+ air {
+ label = "zbt-wa05:blue:air";
+ gpios = <&gpio3 0 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ZBT-WE826.dts b/sys/gnu/dts/mips/ZBT-WE826.dts
new file mode 100644
index 0000000000000..22bef9905c4e0
--- /dev/null
+++ b/sys/gnu/dts/mips/ZBT-WE826.dts
@@ -0,0 +1,124 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "zbtlink,zbt-we826", "ralink,mt7620a-soc";
+ model = "ZBT-WE826";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ en25q128@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "w25q128";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+ };
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ ralink,port-map = "wllll";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ default {
+ ralink,group = "i2c", "uartf", "wled", "spi refclk", "pa";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power {
+ label = "zbt-we826:green:power";
+ gpios = <&gpio1 14 0>;
+ };
+ usb {
+ label = "zbt-we826:green:usb";
+ gpios = <&gpio1 15 0>;
+ };
+ air {
+ label = "zbt-we826:green:wifi";
+ gpios = <&gpio3 0 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+}; \ No newline at end of file
diff --git a/sys/gnu/dts/mips/ZBT-WG2626.dts b/sys/gnu/dts/mips/ZBT-WG2626.dts
new file mode 100644
index 0000000000000..b18f4c1db85e5
--- /dev/null
+++ b/sys/gnu/dts/mips/ZBT-WG2626.dts
@@ -0,0 +1,127 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+ compatible = "mediatek,mt7621-eval-board", "mediatek,mt7621-soc";
+ model = "ZBT-WG2626";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x1c000000>, <0x20000000 0x4000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ palmbus@1E000000 {
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+
+ };
+ };
+
+ i2c@900 {
+ compatible = "ralink,i2c-mt7621";
+ reg = <0x900 0x100>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c_pins>;
+ status = "okay";
+ };
+ };
+
+ pcie@1e140000 {
+ status = "okay";
+
+ pcie0 {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ mediatek,2ghz = <0>;
+ };
+ };
+
+ pcie1 {
+ mt76@1,0 {
+ reg = <0x0000 0 0 0 0>;
+ device_type = "pci";
+ mediatek,mtd-eeprom = <&factory 0x0000>;
+ mediatek,5ghz = <0>;
+ };
+ };
+ };
+
+ ethernet@1e100000 {
+ mtd-mac-address = <&factory 0xe000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 18 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ status {
+ label = "zbt-wg2626:green:status";
+ gpios = <&gpio0 24 1>;
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "wdt", "rgmii2", "wdt rst", "jtag", "mdio";
+ ralink,function = "gpio";
+ };
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ZBT-WR8305RT.dts b/sys/gnu/dts/mips/ZBT-WR8305RT.dts
new file mode 100644
index 0000000000000..11efc6f765be0
--- /dev/null
+++ b/sys/gnu/dts/mips/ZBT-WR8305RT.dts
@@ -0,0 +1,117 @@
+/dts-v1/;
+
+/include/ "mt7620n.dtsi"
+
+/ {
+ compatible = "zbtlink,zbt-wr8305rt", "ralink,mt7620n-soc";
+ model = "Zbtlink ZBT-WR8305RT";
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "en25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "llllw";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ ephy {
+ ralink,group = "ephy";
+ ralink,function = "ephy";
+ };
+
+ default {
+ ralink,group = "i2c", "uartf", "spi refclk", "wled";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ sys {
+ label = "zbt-wr8305rt:green:sys";
+ gpios = <&gpio1 14 1>;
+ };
+
+ lan {
+ label = "zbt-wr8305rt:green:usb";
+ gpios = <&gpio1 15 1>;
+ };
+
+ wifi {
+ label = "zbt-wr8305rt:green:wifi";
+ gpios = <&gpio3 0 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/ZTE-Q7.dts b/sys/gnu/dts/mips/ZTE-Q7.dts
new file mode 100644
index 0000000000000..dd278aa39b3dd
--- /dev/null
+++ b/sys/gnu/dts/mips/ZTE-Q7.dts
@@ -0,0 +1,113 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "ZTE-Q7", "ralink,mt7620a-soc";
+ model = "ZTE Q7";
+
+ palmbus@10000000 {
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "en25q64";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf", "rgmii1", "rgmii2", "ephy", "wled", "nd_sd";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4>;
+ mediatek,portmap = "wllll";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ sdhci@10130000 {
+ status = "okay";
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ statred {
+ label = "zte-q7:red:status";
+ gpios = <&gpio0 13 1>;
+ };
+
+ statblue {
+ label = "zte-q7:blue:status";
+ gpios = <&gpio0 9 1>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/sys/gnu/dts/mips/mt7620a.dtsi b/sys/gnu/dts/mips/mt7620a.dtsi
new file mode 100644
index 0000000000000..fb358c4a03f7a
--- /dev/null
+++ b/sys/gnu/dts/mips/mt7620a.dtsi
@@ -0,0 +1,538 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "ralink,mtk7620a-soc";
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips24KEc";
+ };
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ cpuintc: cpuintc@0 {
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ interrupt-controller;
+ compatible = "mti,cpu-interrupt-controller";
+ };
+
+ aliases {
+ spi0 = &spi0;
+ spi1 = &spi1;
+ };
+
+ palmbus@10000000 {
+ compatible = "palmbus";
+ reg = <0x10000000 0x200000>;
+ ranges = <0x0 0x10000000 0x1FFFFF>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ sysc@0 {
+ compatible = "ralink,mt7620a-sysc", "ralink,rt3050-sysc";
+ reg = <0x0 0x100>;
+ };
+
+ timer@100 {
+ compatible = "ralink,mt7620a-timer", "ralink,rt2880-timer";
+ reg = <0x100 0x20>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+ };
+
+ watchdog@120 {
+ compatible = "ralink,mt7620a-wdt", "ralink,rt2880-wdt";
+ reg = <0x120 0x10>;
+
+ resets = <&rstctrl 8>;
+ reset-names = "wdt";
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+ };
+
+ intc: intc@200 {
+ compatible = "ralink,mt7620a-intc", "ralink,rt2880-intc";
+ reg = <0x200 0x100>;
+
+ resets = <&rstctrl 19>;
+ reset-names = "intc";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <2>;
+ };
+
+ memc@300 {
+ compatible = "ralink,mt7620a-memc", "ralink,rt3050-memc";
+ reg = <0x300 0x100>;
+
+ resets = <&rstctrl 20>;
+ reset-names = "mc";
+
+ interrupt-parent = <&intc>;
+ interrupts = <3>;
+ };
+
+ uart@500 {
+ compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0x500 0x100>;
+
+ resets = <&rstctrl 12>;
+ reset-names = "uart";
+
+ interrupt-parent = <&intc>;
+ interrupts = <5>;
+
+ reg-shift = <2>;
+
+ status = "disabled";
+ };
+
+ gpio0: gpio@600 {
+ compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
+ reg = <0x600 0x34>;
+
+ resets = <&rstctrl 13>;
+ reset-names = "pio";
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <0>;
+ ralink,num-gpios = <24>;
+ ralink,register-map = [ 00 04 08 0c
+ 20 24 28 2c
+ 30 34 ];
+ };
+
+ gpio1: gpio@638 {
+ compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
+ reg = <0x638 0x24>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <24>;
+ ralink,num-gpios = <16>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ gpio2: gpio@660 {
+ compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
+ reg = <0x660 0x24>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <40>;
+ ralink,num-gpios = <32>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ gpio3: gpio@688 {
+ compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
+ reg = <0x688 0x24>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <72>;
+ ralink,num-gpios = <1>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ i2c@900 {
+ compatible = "link,mt7620a-i2c", "ralink,rt2880-i2c";
+ reg = <0x900 0x100>;
+
+ resets = <&rstctrl 16>;
+ reset-names = "i2c";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c_pins>;
+ };
+
+ i2s@a00 {
+ compatible = "ralink,mt7620a-i2s";
+ reg = <0xa00 0x100>;
+
+ resets = <&rstctrl 17>;
+ reset-names = "i2s";
+
+ interrupt-parent = <&intc>;
+ interrupts = <10>;
+
+ dmas = <&gdma 4>,
+ <&gdma 5>;
+ dma-names = "tx", "rx";
+
+ status = "disabled";
+ };
+
+ spi0: spi@b00 {
+ compatible = "ralink,mt7620a-spi", "ralink,rt2880-spi";
+ reg = <0xb00 0x40>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_pins>;
+ };
+
+ spi1: spi@b40 {
+ compatible = "ralink,rt2880-spi";
+ reg = <0xb40 0x60>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ status = "disabled";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_cs1>;
+ };
+
+ uartlite@c00 {
+ compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0xc00 0x100>;
+
+ resets = <&rstctrl 19>;
+ reset-names = "uartl";
+
+ interrupt-parent = <&intc>;
+ interrupts = <12>;
+
+ reg-shift = <2>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&uartlite_pins>;
+ };
+
+ systick@d00 {
+ compatible = "ralink,mt7620a-systick", "ralink,cevt-systick";
+ reg = <0xd00 0x10>;
+
+ resets = <&rstctrl 28>;
+ reset-names = "intc";
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <7>;
+ };
+
+ pcm@2000 {
+ compatible = "ralink,mt7620a-pcm";
+ reg = <0x2000 0x800>;
+
+ resets = <&rstctrl 11>;
+ reset-names = "pcm";
+
+ interrupt-parent = <&intc>;
+ interrupts = <4>;
+
+ status = "disabled";
+ };
+
+ gdma: gdma@2800 {
+ compatible = "ralink,mt7620a-gdma", "ralink,rt2880-gdma";
+ reg = <0x2800 0x800>;
+
+ resets = <&rstctrl 14>;
+ reset-names = "dma";
+
+ interrupt-parent = <&intc>;
+ interrupts = <7>;
+
+ #dma-cells = <1>;
+ #dma-channels = <16>;
+ #dma-requests = <16>;
+
+ status = "disabled";
+ };
+ };
+
+ pinctrl {
+ compatible = "ralink,rt2880-pinmux";
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinctrl0 {
+ };
+
+ pcm_i2s_pins: pcm_i2s {
+ pcm_i2s {
+ ralink,group = "uartf";
+ ralink,function = "pcm i2s";
+ };
+ };
+
+ uartf_gpio_pins: uartf_gpio {
+ uartf_gpio {
+ ralink,group = "uartf";
+ ralink,function = "gpio uartf";
+ };
+ };
+
+ spi_pins: spi {
+ spi {
+ ralink,group = "spi";
+ ralink,function = "spi";
+ };
+ };
+
+ spi_cs1: spi1 {
+ spi1 {
+ ralink,group = "spi_cs1";
+ ralink,function = "spi_cs1";
+ };
+ };
+
+ i2c_pins: i2c {
+ i2c {
+ ralink,group = "i2c";
+ ralink,function = "i2c";
+ };
+ };
+
+ uartlite_pins: uartlite {
+ uart {
+ ralink,group = "uartlite";
+ ralink,function = "uartlite";
+ };
+ };
+
+ mdio_pins: mdio {
+ mdio {
+ ralink,group = "mdio";
+ ralink,function = "mdio";
+ };
+ };
+
+ ephy_pins: ephy {
+ ephy {
+ ralink,group = "ephy";
+ ralink,function = "ephy";
+ };
+ };
+
+ wled_pins: wled {
+ wled {
+ ralink,group = "wled";
+ ralink,function = "wled";
+ };
+ };
+
+ rgmii1_pins: rgmii1 {
+ rgmii1 {
+ ralink,group = "rgmii1";
+ ralink,function = "rgmii1";
+ };
+ };
+
+ rgmii2_pins: rgmii2 {
+ rgmii2 {
+ ralink,group = "rgmii2";
+ ralink,function = "rgmii2";
+ };
+ };
+
+ pcie_pins: pcie {
+ pcie {
+ ralink,group = "pcie";
+ ralink,function = "pcie rst";
+ };
+ };
+ };
+
+ rstctrl: rstctrl {
+ compatible = "ralink,mt7620a-reset", "ralink,rt2880-reset";
+ #reset-cells = <1>;
+ };
+
+ usbphy: usbphy {
+ compatible = "mediatek,mt7620-usbphy";
+ #phy-cells = <1>;
+
+ resets = <&rstctrl 22 &rstctrl 25>;
+ reset-names = "host", "device";
+ };
+
+ ethernet@10100000 {
+ compatible = "mediatek,mt7620-eth";
+ reg = <0x10100000 10000>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <5>;
+
+ resets = <&rstctrl 21 &rstctrl 23>;
+ reset-names = "fe", "esw";
+
+ mediatek,switch = <&gsw>;
+
+ port@4 {
+ compatible = "mediatek,mt7620a-gsw-port", "mediatek,eth-port";
+ reg = <4>;
+
+ status = "disabled";
+ };
+
+ port@5 {
+ compatible = "mediatek,mt7620a-gsw-port", "mediatek,eth-port";
+ reg = <5>;
+
+ status = "disabled";
+ };
+
+ mdio-bus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+ };
+ };
+
+ gsw: gsw@10110000 {
+ compatible = "mediatek,mt7620-gsw";
+ reg = <0x10110000 8000>;
+
+ resets = <&rstctrl 23>;
+ reset-names = "esw";
+
+ interrupt-parent = <&intc>;
+ interrupts = <17>;
+ };
+
+ sdhci@10130000 {
+ compatible = "ralink,mt7620-sdhci";
+ reg = <0x10130000 4000>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <14>;
+
+ status = "disabled";
+ };
+
+ ehci@101c0000 {
+ compatible = "generic-ehci";
+ reg = <0x101c0000 0x1000>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+
+ phys = <&usbphy 1>;
+ phy-names = "usb";
+
+ status = "disabled";
+ };
+
+ ohci@101c1000 {
+ compatible = "generic-ohci";
+ reg = <0x101c1000 0x1000>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+
+ phys = <&usbphy 1>;
+ phy-names = "usb";
+
+ status = "disabled";
+ };
+
+ pcie@10140000 {
+ compatible = "mediatek,mt7620-pci";
+ reg = <0x10140000 0x100
+ 0x10142000 0x100>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ resets = <&rstctrl 26>;
+ reset-names = "pcie0";
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <4>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie_pins>;
+
+ device_type = "pci";
+
+ bus-range = <0 255>;
+ ranges = <
+ 0x02000000 0 0x00000000 0x20000000 0 0x10000000 /* pci memory */
+ 0x01000000 0 0x00000000 0x10160000 0 0x00010000 /* io space */
+ >;
+
+ status = "disabled";
+
+ pcie-bridge {
+ reg = <0x0000 0 0 0 0>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ };
+ };
+
+ wmac@10180000 {
+ compatible = "ralink,rt7620-wmac", "ralink,rt2880-wmac";
+ reg = <0x10180000 40000>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <6>;
+
+ ralink,eeprom = "soc_wmac.eeprom";
+ };
+};
+
+#include <fbsd-mt7620a.dtsi>
diff --git a/sys/gnu/dts/mips/mt7620n.dtsi b/sys/gnu/dts/mips/mt7620n.dtsi
new file mode 100644
index 0000000000000..37f70a7c5c272
--- /dev/null
+++ b/sys/gnu/dts/mips/mt7620n.dtsi
@@ -0,0 +1,337 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "ralink,mtk7620n-soc";
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips24KEc";
+ };
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ cpuintc: cpuintc@0 {
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ interrupt-controller;
+ compatible = "mti,cpu-interrupt-controller";
+ };
+
+ aliases {
+ spi0 = &spi0;
+ spi1 = &spi1;
+ };
+
+ palmbus@10000000 {
+ compatible = "palmbus";
+ reg = <0x10000000 0x200000>;
+ ranges = <0x0 0x10000000 0x1FFFFF>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ sysc@0 {
+ compatible = "ralink,mt7620a-sysc", "ralink,rt3050-sysc";
+ reg = <0x0 0x100>;
+ };
+
+ timer@100 {
+ compatible = "ralink,mt7620a-timer", "ralink,rt2880-timer";
+ reg = <0x100 0x20>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+ };
+
+ watchdog@120 {
+ compatible = "ralink,mt7620a-wdt", "ralink,rt2880-wdt";
+ reg = <0x120 0x10>;
+
+ resets = <&rstctrl 8>;
+ reset-names = "wdt";
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+ };
+
+ intc: intc@200 {
+ compatible = "ralink,mt7620a-intc", "ralink,rt2880-intc";
+ reg = <0x200 0x100>;
+
+ resets = <&rstctrl 19>;
+ reset-names = "intc";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <2>;
+ };
+
+ memc@300 {
+ compatible = "ralink,mt7620a-memc", "ralink,rt3050-memc";
+ reg = <0x300 0x100>;
+
+ resets = <&rstctrl 20>;
+ reset-names = "mc";
+
+ interrupt-parent = <&intc>;
+ interrupts = <3>;
+ };
+
+ gpio0: gpio@600 {
+ compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
+ reg = <0x600 0x34>;
+
+ resets = <&rstctrl 13>;
+ reset-names = "pio";
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <0>;
+ ralink,num-gpios = <24>;
+ ralink,register-map = [ 00 04 08 0c
+ 20 24 28 2c
+ 30 34 ];
+ };
+
+ gpio1: gpio@638 {
+ compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
+ reg = <0x638 0x24>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <24>;
+ ralink,num-gpios = <16>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ gpio2: gpio@660 {
+ compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
+ reg = <0x660 0x24>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <40>;
+ ralink,num-gpios = <32>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ gpio3: gpio@688 {
+ compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
+ reg = <0x688 0x24>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <72>;
+ ralink,num-gpios = <1>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ spi0: spi@b00 {
+ compatible = "ralink,mt7620a-spi", "ralink,rt2880-spi";
+ reg = <0xb00 0x40>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_pins>;
+ };
+
+ spi1: spi@b40 {
+ compatible = "ralink,rt2880-spi";
+ reg = <0xb40 0x60>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ status = "disabled";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_cs1>;
+ };
+
+ uartlite@c00 {
+ compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0xc00 0x100>;
+
+ resets = <&rstctrl 19>;
+ reset-names = "uartl";
+
+ interrupt-parent = <&intc>;
+ interrupts = <12>;
+
+ reg-shift = <2>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&uartlite_pins>;
+ };
+
+ systick@d00 {
+ compatible = "ralink,mt7620a-systick", "ralink,cevt-systick";
+ reg = <0xd00 0x10>;
+
+ resets = <&rstctrl 28>;
+ reset-names = "intc";
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <7>;
+ };
+ };
+
+ pinctrl {
+ compatible = "ralink,rt2880-pinmux";
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinctrl0 {
+ };
+
+ spi_pins: spi {
+ spi {
+ ralink,group = "spi";
+ ralink,function = "spi";
+ };
+ };
+
+ spi_cs1: spi1 {
+ spi1 {
+ ralink,group = "spi_cs1";
+ ralink,function = "spi_cs1";
+ };
+ };
+
+ uartlite_pins: uartlite {
+ uart {
+ ralink,group = "uartlite";
+ ralink,function = "uartlite";
+ };
+ };
+ };
+
+ rstctrl: rstctrl {
+ compatible = "ralink,mt7620a-reset", "ralink,rt2880-reset";
+ #reset-cells = <1>;
+ };
+
+ usbphy: usbphy {
+ compatible = "mediatek,mt7620-usbphy";
+ #phy-cells = <1>;
+
+ resets = <&rstctrl 22 &rstctrl 25>;
+ reset-names = "host", "device";
+ };
+
+ ethernet@10100000 {
+ compatible = "mediatek,mt7620-eth";
+ reg = <0x10100000 10000>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <5>;
+
+ resets = <&rstctrl 21 &rstctrl 23>;
+ reset-names = "fe", "esw";
+
+ mediatek,switch = <&gsw>;
+
+ mdio-bus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+ };
+ };
+
+ gsw: gsw@10110000 {
+ compatible = "mediatek,mt7620-gsw";
+ reg = <0x10110000 8000>;
+
+ resets = <&rstctrl 23>;
+ reset-names = "esw";
+
+ interrupt-parent = <&intc>;
+ interrupts = <17>;
+ mediatek,port4 = "gmac";
+ };
+
+ ehci@101c0000 {
+ compatible = "generic-ehci";
+ reg = <0x101c0000 0x1000>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+
+ phys = <&usbphy 1>;
+ phy-names = "usb";
+
+ status = "disabled";
+ };
+
+ ohci@101c1000 {
+ compatible = "generic-ohci";
+ reg = <0x101c1000 0x1000>;
+
+ phys = <&usbphy 1>;
+ phy-names = "usb";
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+
+ status = "disabled";
+ };
+
+ wmac@10180000 {
+ compatible = "ralink,rt7620-wmac", "ralink,rt2880-wmac";
+ reg = <0x10180000 40000>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <6>;
+
+ ralink,eeprom = "soc_wmac.eeprom";
+ };
+};
+
+#include <fbsd-mt7620n.dtsi>
diff --git a/sys/gnu/dts/mips/mt7621.dtsi b/sys/gnu/dts/mips/mt7621.dtsi
new file mode 100644
index 0000000000000..63104c256cbd6
--- /dev/null
+++ b/sys/gnu/dts/mips/mt7621.dtsi
@@ -0,0 +1,377 @@
+#include <dt-bindings/interrupt-controller/mips-gic.h>
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "mediatek,mtk7621-soc";
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips1004Kc";
+ };
+
+ cpu@1 {
+ compatible = "mips,mips1004Kc";
+ };
+ };
+
+ cpuintc: cpuintc@0 {
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ interrupt-controller;
+ compatible = "mti,cpu-interrupt-controller";
+ };
+
+ cpuclock: cpuclock@0 {
+ #clock-cells = <0>;
+ compatible = "fixed-clock";
+
+ /* FIXME: there should be way to detect this */
+ clock-frequency = <880000000>;
+ };
+
+ sysclock: sysclock@0 {
+ #clock-cells = <0>;
+ compatible = "fixed-clock";
+
+ /* FIXME: there should be way to detect this */
+ clock-frequency = <50000000>;
+ };
+
+ palmbus@1E000000 {
+ compatible = "palmbus";
+ reg = <0x1E000000 0x100000>;
+ ranges = <0x0 0x1E000000 0x0FFFFF>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ sysc@0 {
+ compatible = "mtk,mt7621-sysc";
+ reg = <0x0 0x100>;
+ };
+
+ wdt@100 {
+ compatible = "mtk,mt7621-wdt";
+ reg = <0x100 0x100>;
+ };
+
+ gpio@600 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ compatible = "mtk,mt7621-gpio";
+ reg = <0x600 0x100>;
+
+ gpio0: bank@0 {
+ reg = <0>;
+ compatible = "mtk,mt7621-gpio-bank";
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+
+ gpio1: bank@1 {
+ reg = <1>;
+ compatible = "mtk,mt7621-gpio-bank";
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+
+ gpio2: bank@2 {
+ reg = <2>;
+ compatible = "mtk,mt7621-gpio-bank";
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+
+ memc@5000 {
+ compatible = "mtk,mt7621-memc";
+ reg = <0x300 0x100>;
+ };
+
+ cpc@1fbf0000 {
+ compatible = "mtk,mt7621-cpc";
+ reg = <0x1fbf0000 0x8000>;
+ };
+
+ mc@1fbf8000 {
+ compatible = "mtk,mt7621-mc";
+ reg = <0x1fbf8000 0x8000>;
+ };
+
+ uartlite@c00 {
+ compatible = "ns16550a";
+ reg = <0xc00 0x100>;
+
+ clocks = <&sysclock>;
+
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_SHARED 26 IRQ_TYPE_LEVEL_HIGH>;
+
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ no-loopback-test;
+ };
+
+ spi@b00 {
+ status = "okay";
+
+ compatible = "ralink,mt7621-spi";
+ reg = <0xb00 0x100>;
+
+ clocks = <&sysclock>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_pins>;
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0 0>;
+ spi-max-frequency = <10000000>;
+ m25p,chunked-io = <32>;
+ };
+ };
+ };
+
+ pinctrl {
+ compatible = "ralink,rt2880-pinmux";
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinctrl0 {
+ };
+
+ spi_pins: spi {
+ spi {
+ ralink,group = "spi";
+ ralink,function = "spi";
+ };
+ };
+
+ i2c_pins: i2c {
+ i2c {
+ ralink,group = "i2c";
+ ralink,function = "i2c";
+ };
+ };
+
+ uart1_pins: uart1 {
+ uart1 {
+ ralink,group = "uart1";
+ ralink,function = "uart1";
+ };
+ };
+
+ uart2_pins: uart2 {
+ uart2 {
+ ralink,group = "uart2";
+ ralink,function = "uart2";
+ };
+ };
+
+ uart3_pins: uart3 {
+ uart3 {
+ ralink,group = "uart3";
+ ralink,function = "uart3";
+ };
+ };
+
+ rgmii1_pins: rgmii1 {
+ rgmii1 {
+ ralink,group = "rgmii1";
+ ralink,function = "rgmii1";
+ };
+ };
+
+ rgmii2_pins: rgmii2 {
+ rgmii2 {
+ ralink,group = "rgmii2";
+ ralink,function = "rgmii2";
+ };
+ };
+
+ mdio_pins: mdio {
+ mdio {
+ ralink,group = "mdio";
+ ralink,function = "mdio";
+ };
+ };
+
+ pcie_pins: pcie {
+ pcie {
+ ralink,group = "pcie";
+ ralink,function = "pcie rst";
+ };
+ };
+
+ nand_pins: nand {
+ spi-nand {
+ ralink,group = "spi";
+ ralink,function = "nand1";
+ };
+
+ sdhci-nand {
+ ralink,group = "sdhci";
+ ralink,function = "nand2";
+ };
+ };
+
+ sdhci_pins: sdhci {
+ sdhci {
+ ralink,group = "sdhci";
+ ralink,function = "sdhci";
+ };
+ };
+ };
+
+ rstctrl: rstctrl {
+ compatible = "ralink,rt2880-reset";
+ #reset-cells = <1>;
+ };
+
+ sdhci@1E130000 {
+ compatible = "ralink,mt7620-sdhci";
+ reg = <0x1E130000 4000>;
+
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_SHARED 20 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ xhci@1E1C0000 {
+ status = "okay";
+
+ compatible = "mediatek,mt8173-xhci";
+ reg = <0x1e1c0000 0x1000
+ 0x1e1d0700 0x0100>;
+
+ clocks = <&sysclock>;
+ clock-names = "sys_ck";
+
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_SHARED 22 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ gic: interrupt-controller@1fbc0000 {
+ compatible = "mti,gic";
+ reg = <0x1fbc0000 0x2000>;
+
+ interrupt-controller;
+ #interrupt-cells = <3>;
+
+ mti,reserved-cpu-vectors = <7>;
+
+ timer {
+ compatible = "mti,gic-timer";
+ interrupts = <GIC_LOCAL 1 IRQ_TYPE_NONE>;
+ clocks = <&cpuclock>;
+ };
+ };
+
+ nand@1e003000 {
+ status = "disabled";
+
+ compatible = "mtk,mt7621-nand";
+ bank-width = <2>;
+ reg = <0x1e003000 0x800
+ 0x1e003800 0x800>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ };
+
+ ethernet@1e100000 {
+ compatible = "mediatek,mt7621-eth";
+ reg = <0x1e100000 10000>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ resets = <&rstctrl 6 &rstctrl 23>;
+ reset-names = "fe", "eth";
+
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_SHARED 3 IRQ_TYPE_LEVEL_HIGH>;
+
+ mediatek,switch = <&gsw>;
+
+ mdio-bus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ phy1f: ethernet-phy@1f {
+ reg = <0x1f>;
+ phy-mode = "rgmii";
+ };
+ };
+ };
+
+ gsw: gsw@1e110000 {
+ compatible = "mediatek,mt7621-gsw";
+ reg = <0x1e110000 8000>;
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_SHARED 23 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ pcie@1e140000 {
+ compatible = "mediatek,mt7621-pci";
+ reg = <0x1e140000 0x100
+ 0x1e142000 0x100>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie_pins>;
+
+ device_type = "pci";
+
+ bus-range = <0 255>;
+ ranges = <
+ 0x02000000 0 0x00000000 0x60000000 0 0x10000000 /* pci memory */
+ 0x01000000 0 0x00000000 0x1e160000 0 0x00010000 /* io space */
+ >;
+
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_SHARED 4 IRQ_TYPE_LEVEL_HIGH
+ GIC_SHARED 24 IRQ_TYPE_LEVEL_HIGH
+ GIC_SHARED 25 IRQ_TYPE_LEVEL_HIGH>;
+
+ status = "okay";
+
+ pcie0 {
+ reg = <0x0000 0 0 0 0>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ };
+
+ pcie1 {
+ reg = <0x0800 0 0 0 0>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ };
+
+ pcie2 {
+ reg = <0x1000 0 0 0 0>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ };
+ };
+};
+
+#include <fbsd-mt7621.dtsi>
diff --git a/sys/gnu/dts/mips/mt7628an.dtsi b/sys/gnu/dts/mips/mt7628an.dtsi
new file mode 100644
index 0000000000000..2985b2046076d
--- /dev/null
+++ b/sys/gnu/dts/mips/mt7628an.dtsi
@@ -0,0 +1,459 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "ralink,mtk7628an-soc";
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips24KEc";
+ };
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ cpuintc: cpuintc@0 {
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ interrupt-controller;
+ compatible = "mti,cpu-interrupt-controller";
+ };
+
+ palmbus@10000000 {
+ compatible = "palmbus";
+ reg = <0x10000000 0x200000>;
+ ranges = <0x0 0x10000000 0x1FFFFF>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ sysc@0 {
+ compatible = "ralink,mt7620a-sysc";
+ reg = <0x0 0x100>;
+ };
+
+ watchdog@120 {
+ compatible = "ralink,mt7628an-wdt", "mtk,mt7621-wdt";
+ reg = <0x120 0x10>;
+
+ resets = <&rstctrl 8>;
+ reset-names = "wdt";
+
+ interrupt-parent = <&intc>;
+ interrupts = <24>;
+ };
+
+ intc: intc@200 {
+ compatible = "ralink,mt7628an-intc", "ralink,rt2880-intc";
+ reg = <0x200 0x100>;
+
+ resets = <&rstctrl 9>;
+ reset-names = "intc";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <2>;
+
+ ralink,intc-registers = <0x9c 0xa0
+ 0x6c 0xa4
+ 0x80 0x78>;
+ };
+
+ memc@300 {
+ compatible = "ralink,mt7620a-memc", "ralink,rt3050-memc";
+ reg = <0x300 0x100>;
+
+ resets = <&rstctrl 20>;
+ reset-names = "mc";
+
+ interrupt-parent = <&intc>;
+ interrupts = <3>;
+ };
+
+ gpio@600 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ compatible = "mtk,mt7628-gpio", "mtk,mt7621-gpio";
+ reg = <0x600 0x100>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+
+ gpio0: bank@0 {
+ reg = <0>;
+ compatible = "mtk,mt7621-gpio-bank";
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+
+ gpio1: bank@1 {
+ reg = <1>;
+ compatible = "mtk,mt7621-gpio-bank";
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+
+ gpio2: bank@2 {
+ reg = <2>;
+ compatible = "mtk,mt7621-gpio-bank";
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+
+ i2c@900 {
+ compatible = "mediatek,mt7628-i2c";
+ reg = <0x900 0x100>;
+
+ resets = <&rstctrl 16>;
+ reset-names = "i2c";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c_pins>;
+ };
+
+ i2s@a00 {
+ compatible = "ralink,mt7620a-i2s";
+ reg = <0xa00 0x100>;
+
+ resets = <&rstctrl 17>;
+ reset-names = "i2s";
+
+ interrupt-parent = <&intc>;
+ interrupts = <10>;
+
+ dmas = <&gdma 2>,
+ <&gdma 3>;
+ dma-names = "tx", "rx";
+
+ status = "disabled";
+ };
+
+ spi@b00 {
+ compatible = "ralink,mt7621-spi";
+ reg = <0xb00 0x100>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_pins>;
+
+ status = "disabled";
+ };
+
+ uartlite@c00 {
+ compatible = "ns16550a";
+ reg = <0xc00 0x100>;
+
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ no-loopback-test;
+
+ resets = <&rstctrl 12>;
+ reset-names = "uartl";
+
+ interrupt-parent = <&intc>;
+ interrupts = <20>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_pins>;
+ };
+
+ uart1@d00 {
+ compatible = "ns16550a";
+ reg = <0xd00 0x100>;
+
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ no-loopback-test;
+
+ resets = <&rstctrl 19>;
+ reset-names = "uart1";
+
+ interrupt-parent = <&intc>;
+ interrupts = <21>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart1_pins>;
+
+ status = "disabled";
+ };
+
+ uart2@e00 {
+ compatible = "ns16550a";
+ reg = <0xe00 0x100>;
+
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ no-loopback-test;
+
+ resets = <&rstctrl 20>;
+ reset-names = "uart2";
+
+ interrupt-parent = <&intc>;
+ interrupts = <22>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart2_pins>;
+
+ status = "disabled";
+ };
+
+ pwm@5000 {
+ compatible = "mediatek,mt7628-pwm";
+ reg = <0x5000 0x1000>;
+
+ resets = <&rstctrl 31>;
+ reset-names = "pwm";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pwm0_pins>, <&pwm1_pins>;
+
+ status = "disabled";
+ };
+
+ pcm@2000 {
+ compatible = "ralink,mt7620a-pcm";
+ reg = <0x2000 0x800>;
+
+ resets = <&rstctrl 11>;
+ reset-names = "pcm";
+
+ interrupt-parent = <&intc>;
+ interrupts = <4>;
+
+ status = "disabled";
+ };
+
+ gdma: gdma@2800 {
+ compatible = "ralink,mt7620a-gdma", "ralink,rt2880-gdma";
+ reg = <0x2800 0x800>;
+
+ resets = <&rstctrl 14>;
+ reset-names = "dma";
+
+ interrupt-parent = <&intc>;
+ interrupts = <7>;
+
+ #dma-cells = <1>;
+ #dma-channels = <16>;
+ #dma-requests = <16>;
+
+ status = "disabled";
+ };
+ };
+
+ pinctrl {
+ compatible = "ralink,rt2880-pinmux";
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinctrl0 {
+ };
+
+ spi_pins: spi {
+ spi {
+ ralink,group = "spi";
+ ralink,function = "spi";
+ };
+ };
+
+ spi_cs1_pins: spi_cs1 {
+ spi_cs1 {
+ ralink,group = "spi cs1";
+ ralink,function = "spi cs1";
+ };
+ };
+
+ i2c_pins: i2c {
+ i2c {
+ ralink,group = "i2c";
+ ralink,function = "i2c";
+ };
+ };
+
+ uart0_pins: uartlite {
+ uartlite {
+ ralink,group = "uart0";
+ ralink,function = "uart0";
+ };
+ };
+
+ uart1_pins: uart1 {
+ uart1 {
+ ralink,group = "uart1";
+ ralink,function = "uart1";
+ };
+ };
+
+ uart2_pins: uart2 {
+ uart2 {
+ ralink,group = "uart2";
+ ralink,function = "uart2";
+ };
+ };
+
+ sdxc_pins: sdxc {
+ sdxc {
+ ralink,group = "sdmode";
+ ralink,function = "sdxc";
+ };
+ };
+
+ pwm0_pins: pwm0 {
+ pwm0 {
+ ralink,group = "pwm0";
+ ralink,function = "pwm0";
+ };
+ };
+
+ pwm1_pins: pwm1 {
+ pwm1 {
+ ralink,group = "pwm1";
+ ralink,function = "pwm1";
+ };
+ };
+
+ pcm_i2s_pins: i2s {
+ i2s {
+ ralink,group = "i2s";
+ ralink,function = "pcm";
+ };
+ };
+ };
+
+ rstctrl: rstctrl {
+ compatible = "ralink,mt7620a-reset", "ralink,rt2880-reset";
+ #reset-cells = <1>;
+ };
+
+ usbphy: usbphy@10120000 {
+ compatible = "ralink,mt7628an-usbphy", "mediatek,mt7620-usbphy";
+ reg = <0x10120000 4000>;
+ #phy-cells = <1>;
+
+ resets = <&rstctrl 22 &rstctrl 25>;
+ reset-names = "host", "device";
+ };
+
+ sdhci@10130000 {
+ compatible = "ralink,mt7620-sdhci";
+ reg = <0x10130000 4000>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <14>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdxc_pins>;
+
+ status = "disabled";
+ };
+
+ ehci@101c0000 {
+ compatible = "generic-ehci";
+ reg = <0x101c0000 0x1000>;
+
+ phys = <&usbphy 1>;
+ phy-names = "usb";
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+ };
+
+ ohci@101c1000 {
+ compatible = "generic-ohci";
+ reg = <0x101c1000 0x1000>;
+
+ phys = <&usbphy 1>;
+ phy-names = "usb";
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+ };
+
+ ethernet@10100000 {
+ compatible = "ralink,rt5350-eth";
+ reg = <0x10100000 10000>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <5>;
+
+ resets = <&rstctrl 21 &rstctrl 23>;
+ reset-names = "fe", "esw";
+
+ mediatek,switch = <&esw>;
+ };
+
+ esw: esw@10110000 {
+ compatible = "ralink,rt3050-esw";
+ reg = <0x10110000 8000>;
+
+ resets = <&rstctrl 23>;
+ reset-names = "esw";
+
+ interrupt-parent = <&intc>;
+ interrupts = <17>;
+ };
+
+ pcie@10140000 {
+ compatible = "mediatek,mt7620-pci";
+ reg = <0x10140000 0x100
+ 0x10142000 0x100>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ resets = <&rstctrl 26>;
+ reset-names = "pcie0";
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <4>;
+
+ status = "disabled";
+
+ device_type = "pci";
+
+ bus-range = <0 255>;
+ ranges = <
+ 0x02000000 0 0x00000000 0x20000000 0 0x10000000 /* pci memory */
+ 0x01000000 0 0x00000000 0x10160000 0 0x00010000 /* io space */
+ >;
+
+ pcie-bridge {
+ reg = <0x0000 0 0 0 0>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ };
+ };
+
+ wmac: wmac@10300000 {
+ compatible = "mediatek,mt7628-wmac";
+ reg = <0x10300000 100000>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <6>;
+
+ status = "disabled";
+
+ mediatek,mtd-eeprom = <&factory 0x0000>;
+ mediatek,5ghz = <0>;
+ };
+};
+
+#include <fbsd-mt7628an.dtsi>
diff --git a/sys/gnu/dts/mips/rt2880.dtsi b/sys/gnu/dts/mips/rt2880.dtsi
new file mode 100644
index 0000000000000..5642f2552cee8
--- /dev/null
+++ b/sys/gnu/dts/mips/rt2880.dtsi
@@ -0,0 +1,196 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "ralink,rt2880-soc";
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips24KEc";
+ };
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ cpuintc: cpuintc@0 {
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ interrupt-controller;
+ compatible = "mti,cpu-interrupt-controller";
+ };
+
+ palmbus@300000 {
+ compatible = "palmbus";
+ reg = <0x300000 0x200000>;
+ ranges = <0x0 0x300000 0x1FFFFF>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ sysc@0 {
+ compatible = "ralink,rt2880-sysc";
+ reg = <0x000 0x100>;
+ };
+
+ timer@100 {
+ compatible = "ralink,rt2880-timer";
+ reg = <0x100 0x20>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+
+ status = "disabled";
+ };
+
+ watchdog@120 {
+ compatible = "ralink,rt2880-wdt";
+ reg = <0x120 0x10>;
+ };
+
+ intc: intc@200 {
+ compatible = "ralink,rt2880-intc";
+ reg = <0x200 0x100>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <2>;
+ };
+
+ memc@300 {
+ compatible = "ralink,rt2880-memc";
+ reg = <0x300 0x100>;
+ };
+
+ gpio0: gpio@600 {
+ compatible = "ralink,rt2880-gpio";
+ reg = <0x600 0x34>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <0>;
+ ralink,num-gpios = <24>;
+ ralink,register-map = [ 00 04 08 0c
+ 20 24 28 2c
+ 30 34 ];
+ };
+
+ gpio1: gpio@638 {
+ compatible = "ralink,rt2880-gpio";
+ reg = <0x638 0x24>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <24>;
+ ralink,num-gpios = <16>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ gpio2: gpio@660 {
+ compatible = "ralink,rt2880-gpio";
+ reg = <0x660 0x24>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <40>;
+ ralink,num-gpios = <32>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ uartlite@c00 {
+ compatible = "ralink,rt2880-uart", "ns16550a";
+ reg = <0xc00 0x100>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <8>;
+
+ reg-shift = <2>;
+ };
+ };
+
+ pinctrl {
+ compatible = "ralink,rt2880-pinmux";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinctrl0 {
+ sdram {
+ ralink,group = "sdram";
+ ralink,function = "sdram";
+ };
+ };
+
+ spi_pins: spi {
+ spi {
+ ralink,group = "spi";
+ ralink,function = "spi";
+ };
+ };
+
+ uartlite_pins: uartlite {
+ uart {
+ ralink,group = "uartlite";
+ ralink,function = "uartlite";
+ };
+ };
+ };
+
+ rstctrl: rstctrl {
+ compatible = "ralink,rt2880-reset";
+ #reset-cells = <1>;
+ };
+
+ ethernet@400000 {
+ compatible = "ralink,rt2880-eth";
+ reg = <0x00400000 10000>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "fe";
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <5>;
+
+ status = "disabled";
+
+ port@0 {
+ compatible = "ralink,rt2880-port", "mediatek,eth-port";
+ reg = <0>;
+ };
+
+ mdio-bus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+ };
+ };
+
+ wmac@480000 {
+ compatible = "ralink,rt2880-wmac";
+ reg = <0x480000 40000>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <6>;
+
+ ralink,eeprom = "soc_wmac.eeprom";
+ };
+};
+
+#include <fbsd-rt2880.dtsi>
diff --git a/sys/gnu/dts/mips/rt3050.dtsi b/sys/gnu/dts/mips/rt3050.dtsi
new file mode 100644
index 0000000000000..04e67f33ebfbb
--- /dev/null
+++ b/sys/gnu/dts/mips/rt3050.dtsi
@@ -0,0 +1,265 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "ralink,rt3050-soc", "ralink,rt3052-soc", "ralink,rt3350-soc";
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips24KEc";
+ };
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ aliases {
+ spi0 = &spi0;
+ };
+
+ cpuintc: cpuintc@0 {
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ interrupt-controller;
+ compatible = "mti,cpu-interrupt-controller";
+ };
+
+ palmbus@10000000 {
+ compatible = "palmbus";
+ reg = <0x10000000 0x200000>;
+ ranges = <0x0 0x10000000 0x1FFFFF>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ sysc@0 {
+ compatible = "ralink,rt3050-sysc";
+ reg = <0x0 0x100>;
+ };
+
+ timer@100 {
+ compatible = "ralink,rt3050-timer", "ralink,rt2880-timer";
+ reg = <0x100 0x20>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+ };
+
+ watchdog@120 {
+ compatible = "ralink,rt3050-wdt", "ralink,rt2880-wdt";
+ reg = <0x120 0x10>;
+
+ resets = <&rstctrl 8>;
+ reset-names = "wdt";
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+ };
+
+ intc: intc@200 {
+ compatible = "ralink,rt3050-intc", "ralink,rt2880-intc";
+ reg = <0x200 0x100>;
+
+ resets = <&rstctrl 19>;
+ reset-names = "intc";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <2>;
+ };
+
+ memc@300 {
+ compatible = "ralink,rt3050-memc";
+ reg = <0x300 0x100>;
+
+ resets = <&rstctrl 20>;
+ reset-names = "mc";
+
+ interrupt-parent = <&intc>;
+ interrupts = <3>;
+ };
+
+ uart@500 {
+ compatible = "ralink,rt3050-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0x500 0x100>;
+
+ resets = <&rstctrl 12>;
+ reset-names = "uart";
+
+ interrupt-parent = <&intc>;
+ interrupts = <5>;
+
+ reg-shift = <2>;
+
+ status = "disabled";
+ };
+
+ gpio0: gpio@600 {
+ compatible = "ralink,rt3050-gpio", "ralink,rt2880-gpio";
+ reg = <0x600 0x34>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <0>;
+ ralink,num-gpios = <24>;
+ ralink,register-map = [ 00 04 08 0c
+ 20 24 28 2c
+ 30 34 ];
+
+ resets = <&rstctrl 13>;
+ reset-names = "pio";
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+ };
+
+ gpio1: gpio@638 {
+ compatible = "ralink,rt3050-gpio", "ralink,rt2880-gpio";
+ reg = <0x638 0x24>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <24>;
+ ralink,num-gpios = <16>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ gpio2: gpio@660 {
+ compatible = "ralink,rt3050-gpio", "ralink,rt2880-gpio";
+ reg = <0x660 0x24>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <40>;
+ ralink,num-gpios = <12>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ spi0: spi@b00 {
+ compatible = "ralink,rt3050-spi", "ralink,rt2880-spi";
+ reg = <0xb00 0x100>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_pins>;
+
+ status = "disabled";
+ };
+
+ uartlite@c00 {
+ compatible = "ralink,rt3050-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0xc00 0x100>;
+
+ resets = <&rstctrl 19>;
+ reset-names = "uartl";
+
+ interrupt-parent = <&intc>;
+ interrupts = <12>;
+
+ reg-shift = <2>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&uartlite_pins>;
+ };
+ };
+
+ pinctrl {
+ compatible = "ralink,rt2880-pinmux";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinctrl0 {
+ sdram {
+ ralink,group = "sdram";
+ ralink,function = "sdram";
+ };
+ };
+
+ spi_pins: spi {
+ spi {
+ ralink,group = "spi";
+ ralink,function = "spi";
+ };
+ };
+
+ uartlite_pins: uartlite {
+ uart {
+ ralink,group = "uartlite";
+ ralink,function = "uartlite";
+ };
+ };
+ };
+
+ rstctrl: rstctrl {
+ compatible = "ralink,rt3050-reset", "ralink,rt2880-reset";
+ #reset-cells = <1>;
+ };
+
+ ethernet@10100000 {
+ compatible = "ralink,rt3050-eth";
+ reg = <0x10100000 10000>;
+
+ resets = <&rstctrl 21>;
+ reset-names = "fe";
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <5>;
+
+ mediatek,switch = <&esw>;
+ };
+
+ esw: esw@10110000 {
+ compatible = "ralink,rt3050-esw";
+ reg = <0x10110000 8000>;
+
+ resets = <&rstctrl 23>;
+ reset-names = "esw";
+
+ interrupt-parent = <&intc>;
+ interrupts = <17>;
+ };
+
+ wmac@10180000 {
+ compatible = "ralink,rt3050-wmac", "ralink,rt2880-wmac";
+ reg = <0x10180000 40000>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <6>;
+
+ ralink,eeprom = "soc_wmac.eeprom";
+ };
+
+ otg@101c0000 {
+ compatible = "ralink,rt3050-otg", "snps,dwc2";
+ reg = <0x101c0000 40000>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+
+ resets = <&rstctrl 22>;
+ reset-names = "otg";
+
+ status = "disabled";
+ };
+};
+
+#include <fbsd-rt3050.dtsi>
diff --git a/sys/gnu/dts/mips/rt3352.dtsi b/sys/gnu/dts/mips/rt3352.dtsi
new file mode 100644
index 0000000000000..a57e4c00e4dd9
--- /dev/null
+++ b/sys/gnu/dts/mips/rt3352.dtsi
@@ -0,0 +1,293 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "ralink,rt3352-soc";
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips24KEc";
+ };
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ cpuintc: cpuintc@0 {
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ interrupt-controller;
+ compatible = "mti,cpu-interrupt-controller";
+ };
+
+ aliases {
+ spi0 = &spi0;
+ spi1 = &spi1;
+ };
+
+ palmbus@10000000 {
+ compatible = "palmbus";
+ reg = <0x10000000 0x200000>;
+ ranges = <0x0 0x10000000 0x1FFFFF>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ sysc@0 {
+ compatible = "ralink,rt3352-sysc", "ralink,rt3050-sysc";
+ reg = <0x0 0x100>;
+ };
+
+ timer@100 {
+ compatible = "ralink,rt3352-timer", "ralink,rt2880-timer";
+ reg = <0x100 0x20>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+ };
+
+ watchdog@120 {
+ compatible = "ralink,rt3352-wdt", "ralink,rt2880-wdt";
+ reg = <0x120 0x10>;
+
+ resets = <&rstctrl 8>;
+ reset-names = "wdt";
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+ };
+
+ intc: intc@200 {
+ compatible = "ralink,rt3352-intc", "ralink,rt2880-intc";
+ reg = <0x200 0x100>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <2>;
+ };
+
+ memc@300 {
+ compatible = "ralink,rt3352-memc", "ralink,rt3050-memc";
+ reg = <0x300 0x100>;
+
+ resets = <&rstctrl 20>;
+ reset-names = "mc";
+
+ interrupt-parent = <&intc>;
+ interrupts = <3>;
+ };
+
+ uart@500 {
+ compatible = "ralink,rt3352-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0x500 0x100>;
+
+ resets = <&rstctrl 12>;
+ reset-names = "uart";
+
+ interrupt-parent = <&intc>;
+ interrupts = <5>;
+
+ reg-shift = <2>;
+
+ status = "disabled";
+ };
+
+ gpio0: gpio@600 {
+ compatible = "ralink,rt3352-gpio", "ralink,rt2880-gpio";
+ reg = <0x600 0x34>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <0>;
+ ralink,num-gpios = <24>;
+ ralink,register-map = [ 00 04 08 0c
+ 20 24 28 2c
+ 30 34 ];
+ resets = <&rstctrl 13>;
+ reset-names = "pio";
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+ };
+
+ gpio1: gpio@638 {
+ compatible = "ralink,rt3352-gpio", "ralink,rt2880-gpio";
+ reg = <0x638 0x24>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <24>;
+ ralink,num-gpios = <16>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ gpio2: gpio@660 {
+ compatible = "ralink,rt3352-gpio", "ralink,rt2880-gpio";
+ reg = <0x660 0x24>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <40>;
+ ralink,num-gpios = <6>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ spi0: spi@b00 {
+ compatible = "ralink,rt3352-spi", "ralink,rt2880-spi";
+ reg = <0xb00 0x40>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_pins>;
+
+ status = "disabled";
+ };
+
+ spi1: spi@b40 {
+ compatible = "ralink,rt3352-spi", "ralink,rt2880-spi";
+ reg = <0xb40 0x60>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_cs1>;
+
+ status = "disabled";
+ };
+
+ uartlite@c00 {
+ compatible = "ralink,rt3352-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0xc00 0x100>;
+
+ resets = <&rstctrl 19>;
+ reset-names = "uartl";
+
+ interrupt-parent = <&intc>;
+ interrupts = <12>;
+
+ reg-shift = <2>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&uartlite_pins>;
+ };
+ };
+
+ pinctrl {
+ compatible = "ralink,rt2880-pinmux";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinctrl0 {
+ };
+
+ spi_pins: spi {
+ spi {
+ ralink,group = "spi";
+ ralink,function = "spi";
+ };
+ };
+
+ spi_cs1: spi1 {
+ spi1 {
+ ralink,group = "spi_cs1";
+ ralink,function = "spi_cs1";
+ };
+ };
+
+ uartlite_pins: uartlite {
+ uart {
+ ralink,group = "uartlite";
+ ralink,function = "uartlite";
+ };
+ };
+ };
+
+ rstctrl: rstctrl {
+ compatible = "ralink,rt3352-reset", "ralink,rt2880-reset";
+ #reset-cells = <1>;
+ };
+
+ ethernet@10100000 {
+ compatible = "ralink,rt3352-eth", "ralink,rt3050-eth";
+ reg = <0x10100000 10000>;
+
+ resets = <&rstctrl 21>;
+ reset-names = "fe";
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <5>;
+
+ mediatek,switch = <&esw>;
+ };
+
+ esw: esw@10110000 {
+ compatible = "ralink,rt3352-esw", "ralink,rt3050-esw";
+ reg = <0x10110000 8000>;
+
+ resets = <&rstctrl 23>;
+ reset-names = "esw";
+
+ interrupt-parent = <&intc>;
+ interrupts = <17>;
+ };
+
+ usbphy {
+ compatible = "ralink,rt3352-usbphy";
+
+ resets = <&rstctrl 22 &rstctrl 25>;
+ reset-names = "host", "device";
+ };
+
+ wmac@10180000 {
+ compatible = "ralink,rt3352-wmac", "ralink,rt2880-wmac";
+ reg = <0x10180000 40000>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <6>;
+
+ ralink,eeprom = "soc_wmac.eeprom";
+ };
+
+ ehci@101c0000 {
+ compatible = "generic-ehci";
+ reg = <0x101c0000 0x1000>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+
+ status = "disabled";
+ };
+
+ ohci@101c1000 {
+ compatible = "generic-ohci";
+ reg = <0x101c1000 0x1000>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+
+ status = "disabled";
+ };
+};
+
+#include <fbsd-rt3352.dtsi>
diff --git a/sys/gnu/dts/mips/rt3883.dtsi b/sys/gnu/dts/mips/rt3883.dtsi
new file mode 100644
index 0000000000000..4eceae6e99509
--- /dev/null
+++ b/sys/gnu/dts/mips/rt3883.dtsi
@@ -0,0 +1,405 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "ralink,rt3883-soc";
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips74Kc";
+ };
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ aliases {
+ spi0 = &spi0;
+ spi1 = &spi1;
+ };
+
+ cpuintc: cpuintc@0 {
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ interrupt-controller;
+ compatible = "mti,cpu-interrupt-controller";
+ };
+
+ palmbus@10000000 {
+ compatible = "palmbus";
+ reg = <0x10000000 0x200000>;
+ ranges = <0x0 0x10000000 0x1FFFFF>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ sysc@0 {
+ compatible = "ralink,rt3883-sysc", "ralink,rt3050-sysc";
+ reg = <0x0 0x100>;
+ };
+
+ timer@100 {
+ compatible = "ralink,rt3883-timer", "ralink,rt2880-timer";
+ reg = <0x100 0x20>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+ };
+
+ watchdog@120 {
+ compatible = "ralink,rt3883-wdt", "ralink,rt2880-wdt";
+ reg = <0x120 0x10>;
+
+ resets = <&rstctrl 8>;
+ reset-names = "wdt";
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+ };
+
+ intc: intc@200 {
+ compatible = "ralink,rt3883-intc", "ralink,rt2880-intc";
+ reg = <0x200 0x100>;
+
+ resets = <&rstctrl 19>;
+ reset-names = "intc";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <2>;
+ };
+
+ memc@300 {
+ compatible = "ralink,rt3883-memc", "ralink,rt3050-memc";
+ reg = <0x300 0x100>;
+
+ resets = <&rstctrl 20>;
+ reset-names = "mc";
+
+ interrupt-parent = <&intc>;
+ interrupts = <3>;
+ };
+
+ uart@500 {
+ compatible = "ralink,rt3883-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0x500 0x100>;
+
+ resets = <&rstctrl 12>;
+ reset-names = "uart";
+
+ interrupt-parent = <&intc>;
+ interrupts = <5>;
+
+ reg-shift = <2>;
+
+ status = "disabled";
+ };
+
+ gpio0: gpio@600 {
+ compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
+ reg = <0x600 0x34>;
+
+ resets = <&rstctrl 13>;
+ reset-names = "pio";
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <0>;
+ ralink,num-gpios = <24>;
+ ralink,register-map = [ 00 04 08 0c
+ 20 24 28 2c
+ 30 34 ];
+ };
+
+ gpio1: gpio@638 {
+ compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
+ reg = <0x638 0x24>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <24>;
+ ralink,num-gpios = <16>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ gpio2: gpio@660 {
+ compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
+ reg = <0x660 0x24>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <40>;
+ ralink,num-gpios = <32>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ gpio3: gpio@688 {
+ compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
+ reg = <0x688 0x24>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <72>;
+ ralink,num-gpios = <24>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ spi0: spi@b00 {
+ compatible = "ralink,rt3883-spi", "ralink,rt2880-spi";
+ reg = <0xb00 0x40>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_pins>;
+
+ status = "disabled";
+ };
+
+ spi1: spi@b40 {
+ compatible = "ralink,rt3883-spi", "ralink,rt2880-spi";
+ reg = <0xb40 0x60>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_cs1>;
+
+ status = "disabled";
+ };
+
+ uartlite@c00 {
+ compatible = "ralink,rt3883-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0xc00 0x100>;
+
+ resets = <&rstctrl 19>;
+ reset-names = "uartl";
+
+ interrupt-parent = <&intc>;
+ interrupts = <12>;
+
+ reg-shift = <2>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&uartlite_pins>;
+ };
+ };
+
+ pinctrl {
+ compatible = "ralink,rt2880-pinmux";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinctrl0 {
+ };
+
+ spi_pins: spi {
+ spi {
+ ralink,group = "spi";
+ ralink,function = "spi";
+ };
+ };
+
+ spi_cs1: spi1 {
+ spi1 {
+ ralink,group = "spi_cs1";
+ ralink,function = "spi_cs1";
+ };
+ };
+
+ uartlite_pins: uartlite {
+ uart {
+ ralink,group = "uartlite";
+ ralink,function = "uartlite";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ compatible = "ralink,rt3883-eth";
+ reg = <0x10100000 10000>;
+
+ resets = <&rstctrl 21>;
+ reset-names = "fe";
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <5>;
+
+ port@0 {
+ compatible = "ralink,rt3883-port", "mediatek,eth-port";
+ reg = <0>;
+ };
+
+ mdio-bus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+ };
+ };
+
+ rstctrl: rstctrl {
+ compatible = "ralink,rt3883-reset", "ralink,rt2880-reset";
+ #reset-cells = <1>;
+ };
+
+ pci@10140000 {
+ compatible = "ralink,rt3883-pci";
+ reg = <0x10140000 0x20000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges; /* direct mapping */
+
+ status = "disabled";
+
+ pciintc: interrupt-controller {
+ interrupt-controller;
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <4>;
+ };
+
+ host-bridge {
+ #address-cells = <3>;
+ #size-cells = <2>;
+ #interrupt-cells = <1>;
+
+ device_type = "pci";
+
+ bus-range = <0 255>;
+ ranges = <
+ 0x02000000 0 0x00000000 0x20000000 0 0x10000000 /* pci memory */
+ 0x01000000 0 0x00000000 0x10160000 0 0x00010000 /* io space */
+ >;
+
+ interrupt-map-mask = <0xf800 0 0 7>;
+ interrupt-map = <
+ /* IDSEL 17 */
+ 0x8800 0 0 1 &pciintc 18
+ 0x8800 0 0 2 &pciintc 18
+ 0x8800 0 0 3 &pciintc 18
+ 0x8800 0 0 4 &pciintc 18
+ /* IDSEL 18 */
+ 0x9000 0 0 1 &pciintc 19
+ 0x9000 0 0 2 &pciintc 19
+ 0x9000 0 0 3 &pciintc 19
+ 0x9000 0 0 4 &pciintc 19
+ >;
+
+ pci-bridge@1 {
+ reg = <0x0800 0 0 0 0>;
+ device_type = "pci";
+ #interrupt-cells = <1>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ status = "disabled";
+
+ ralink,pci-slot = <1>;
+
+ interrupt-map-mask = <0x0 0 0 0>;
+ interrupt-map = <0x0 0 0 0 &pciintc 20>;
+ };
+
+ pci-slot@17 {
+ reg = <0x8800 0 0 0 0>;
+ device_type = "pci";
+ #interrupt-cells = <1>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ ralink,pci-slot = <17>;
+
+ status = "disabled";
+ };
+
+ pci-slot@18 {
+ reg = <0x9000 0 0 0 0>;
+ device_type = "pci";
+ #interrupt-cells = <1>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ ralink,pci-slot = <18>;
+
+ status = "disabled";
+ };
+ };
+ };
+
+ usbphy: usbphy {
+ compatible = "ralink,rt3352-usbphy";
+ #phy-cells = <1>;
+
+ resets = <&rstctrl 22 &rstctrl 25>;
+ reset-names = "host", "device";
+ };
+
+ wmac@10180000 {
+ compatible = "ralink,rt3883-wmac", "ralink,rt2880-wmac";
+ reg = <0x10180000 40000>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <6>;
+
+ ralink,eeprom = "soc_wmac.eeprom";
+ };
+
+ ehci@101c0000 {
+ compatible = "generic-ehci";
+ reg = <0x101c0000 0x1000>;
+
+ phys = <&usbphy 1>;
+ phy-names = "usb";
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+
+ status = "disabled";
+ };
+
+ ohci@101c1000 {
+ compatible = "generic-ohci";
+ reg = <0x101c1000 0x1000>;
+
+ phys = <&usbphy 1>;
+ phy-names = "usb";
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+
+ status = "disabled";
+ };
+};
+
+#include <fbsd-rt3883.dtsi>
diff --git a/sys/gnu/dts/mips/rt5350.dtsi b/sys/gnu/dts/mips/rt5350.dtsi
new file mode 100644
index 0000000000000..db24601cf3096
--- /dev/null
+++ b/sys/gnu/dts/mips/rt5350.dtsi
@@ -0,0 +1,334 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "ralink,rt5350-soc";
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips24KEc";
+ };
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600";
+ };
+
+ cpuintc: cpuintc@0 {
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ interrupt-controller;
+ compatible = "mti,cpu-interrupt-controller";
+ };
+
+ aliases {
+ spi0 = &spi0;
+ spi1 = &spi1;
+ };
+
+ palmbus@10000000 {
+ compatible = "palmbus";
+ reg = <0x10000000 0x200000>;
+ ranges = <0x0 0x10000000 0x1FFFFF>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ sysc@0 {
+ compatible = "ralink,rt5350-sysc", "ralink,rt3050-sysc";
+ reg = <0x0 0x100>;
+ };
+
+ timer@100 {
+ compatible = "ralink,rt5350-timer", "ralink,rt2880-timer";
+ reg = <0x100 0x20>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+ };
+
+ watchdog@120 {
+ compatible = "ralink,rt5350-wdt", "ralink,rt2880-wdt";
+ reg = <0x120 0x10>;
+
+ resets = <&rstctrl 8>;
+ reset-names = "wdt";
+
+ interrupt-parent = <&intc>;
+ interrupts = <1>;
+ };
+
+ intc: intc@200 {
+ compatible = "ralink,rt5350-intc", "ralink,rt2880-intc";
+ reg = <0x200 0x100>;
+
+ resets = <&rstctrl 19>;
+ reset-names = "intc";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <2>;
+ };
+
+ memc@300 {
+ compatible = "ralink,rt5350-memc", "ralink,rt3050-memc";
+ reg = <0x300 0x100>;
+
+ resets = <&rstctrl 20>;
+ reset-names = "mc";
+
+ interrupt-parent = <&intc>;
+ interrupts = <3>;
+ };
+
+ uart@500 {
+ compatible = "ralink,rt5350-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0x500 0x100>;
+
+ resets = <&rstctrl 12>;
+ reset-names = "uart";
+
+ interrupt-parent = <&intc>;
+ interrupts = <5>;
+
+ reg-shift = <2>;
+
+ status = "disabled";
+ };
+
+ gpio0: gpio@600 {
+ compatible = "ralink,rt5350-gpio", "ralink,rt2880-gpio";
+ reg = <0x600 0x34>;
+
+ resets = <&rstctrl 13>;
+ reset-names = "pio";
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <0>;
+ ralink,num-gpios = <22>;
+ ralink,register-map = [ 00 04 08 0c
+ 20 24 28 2c
+ 30 34 ];
+ };
+
+ gpio1: gpio@660 {
+ compatible = "ralink,rt5350-gpio", "ralink,rt2880-gpio";
+ reg = <0x660 0x24>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <6>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ralink,gpio-base = <22>;
+ ralink,num-gpios = <6>;
+ ralink,register-map = [ 00 04 08 0c
+ 10 14 18 1c
+ 20 24 ];
+
+ status = "disabled";
+ };
+
+ i2c@900 {
+ compatible = "link,rt5350-i2c", "ralink,rt2880-i2c";
+ reg = <0x900 0x100>;
+
+ resets = <&rstctrl 16>;
+ reset-names = "i2c";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c_pins>;
+
+ status = "disabled";
+ };
+
+ spi0: spi@b00 {
+ compatible = "ralink,rt5350-spi", "ralink,rt2880-spi";
+ reg = <0xb00 0x40>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_pins>;
+
+ status = "disabled";
+ };
+
+ spi1: spi@b40 {
+ compatible = "ralink,rt5350-spi", "ralink,rt2880-spi";
+ reg = <0xb40 0x60>;
+
+ resets = <&rstctrl 18>;
+ reset-names = "spi";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_cs1>;
+
+ status = "disabled";
+ };
+
+ uartlite@c00 {
+ compatible = "ralink,rt5350-uart", "ralink,rt2880-uart", "ns16550a";
+ reg = <0xc00 0x100>;
+
+ resets = <&rstctrl 19>;
+ reset-names = "uartl";
+
+ interrupt-parent = <&intc>;
+ interrupts = <12>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&uartlite_pins>;
+
+ reg-shift = <2>;
+ };
+
+ systick@d00 {
+ compatible = "ralink,rt5350-systick", "ralink,cevt-systick";
+ reg = <0xd00 0x10>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <7>;
+ };
+ };
+
+ pinctrl {
+ compatible = "ralink,rt2880-pinmux";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinctrl0 {
+ };
+
+ spi_pins: spi {
+ spi {
+ ralink,group = "spi";
+ ralink,function = "spi";
+ };
+ };
+
+ i2c_pins: i2c {
+ i2c {
+ ralink,group = "i2c";
+ ralink,function = "i2c";
+ };
+ };
+
+ phy_led_pins: phy_led {
+ phy_led {
+ ralink,group = "led";
+ ralink,function = "led";
+ };
+ };
+
+ uartlite_pins: uartlite {
+ uart {
+ ralink,group = "uartlite";
+ ralink,function = "uartlite";
+ };
+ };
+
+ uartf_pins: uartf {
+ uartf {
+ ralink,group = "uartf";
+ ralink,function = "uartf";
+ };
+ };
+
+ spi_cs1: spi1 {
+ spi1 {
+ ralink,group = "spi_cs1";
+ ralink,function = "spi_cs1";
+ };
+ };
+ };
+
+ rstctrl: rstctrl {
+ compatible = "ralink,rt5350-reset", "ralink,rt2880-reset";
+ #reset-cells = <1>;
+ };
+
+ usbphy: usbphy {
+ compatible = "ralink,rt3352-usbphy";
+ #phy-cells = <1>;
+
+ resets = <&rstctrl 22 &rstctrl 25>;
+ reset-names = "host", "device";
+ };
+
+ ethernet@10100000 {
+ compatible = "ralink,rt5350-eth";
+ reg = <0x10100000 10000>;
+
+ resets = <&rstctrl 21 &rstctrl 23>;
+ reset-names = "fe", "esw";
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <5>;
+
+ mediatek,switch = <&esw>;
+ };
+
+ esw: esw@10110000 {
+ compatible = "ralink,rt3050-esw";
+ reg = <0x10110000 8000>;
+
+ resets = <&rstctrl 23>;
+ reset-names = "esw";
+
+ interrupt-parent = <&intc>;
+ interrupts = <17>;
+ };
+
+ wmac@10180000 {
+ compatible = "ralink,rt5350-wmac", "ralink,rt2880-wmac";
+ reg = <0x10180000 40000>;
+
+ interrupt-parent = <&cpuintc>;
+ interrupts = <6>;
+
+ ralink,eeprom = "soc_wmac.eeprom";
+ };
+
+ ehci@101c0000 {
+ compatible = "generic-ehci";
+ reg = <0x101c0000 0x1000>;
+
+ phys = <&usbphy 1>;
+ phy-names = "usb";
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+ };
+
+ ohci@101c1000 {
+ compatible = "generic-ohci";
+ reg = <0x101c1000 0x1000>;
+
+ phys = <&usbphy 1>;
+ phy-names = "usb";
+
+ interrupt-parent = <&intc>;
+ interrupts = <18>;
+ };
+};
+
+#include <fbsd-rt5350.dtsi>