aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/armada-370.dtsi19
-rw-r--r--arch/arm/boot/dts/armada-385-linksys-caiman.dts187
-rw-r--r--arch/arm/boot/dts/armada-385-linksys-cobra.dts187
-rw-r--r--arch/arm/boot/dts/armada-385-linksys-rango.dts203
-rw-r--r--arch/arm/boot/dts/armada-385-linksys-shelby.dts187
-rw-r--r--arch/arm/boot/dts/armada-385-linksys.dtsi362
-rw-r--r--arch/arm/boot/dts/armada-385-turris-omnia.dts2
-rw-r--r--arch/arm/boot/dts/armada-38x.dtsi16
-rw-r--r--arch/arm/boot/dts/armada-xp-98dx3236.dtsi4
-rw-r--r--arch/arm/boot/dts/armada-xp-98dx4251.dtsi1
-rw-r--r--arch/arm/boot/dts/armada-xp-linksys-mamba.dts8
-rw-r--r--arch/arm/boot/dts/armada-xp-mv78230.dtsi16
-rw-r--r--arch/arm/boot/dts/armada-xp-mv78260.dtsi19
-rw-r--r--arch/arm/boot/dts/armada-xp-mv78460.dtsi19
15 files changed, 768 insertions, 463 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 1e7ddf7e7258..f87854842d82 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -1008,6 +1008,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
1008 armada-385-db-ap.dtb \ 1008 armada-385-db-ap.dtb \
1009 armada-385-linksys-caiman.dtb \ 1009 armada-385-linksys-caiman.dtb \
1010 armada-385-linksys-cobra.dtb \ 1010 armada-385-linksys-cobra.dtb \
1011 armada-385-linksys-rango.dtb \
1011 armada-385-linksys-shelby.dtb \ 1012 armada-385-linksys-shelby.dtb \
1012 armada-385-synology-ds116.dtb \ 1013 armada-385-synology-ds116.dtb \
1013 armada-385-turris-omnia.dtb \ 1014 armada-385-turris-omnia.dtb \
diff --git a/arch/arm/boot/dts/armada-370.dtsi b/arch/arm/boot/dts/armada-370.dtsi
index cc011c8bc36b..f9cf1273f35e 100644
--- a/arch/arm/boot/dts/armada-370.dtsi
+++ b/arch/arm/boot/dts/armada-370.dtsi
@@ -137,29 +137,38 @@
137 }; 137 };
138 138
139 gpio0: gpio@18100 { 139 gpio0: gpio@18100 {
140 compatible = "marvell,orion-gpio"; 140 compatible = "marvell,armada-370-gpio",
141 reg = <0x18100 0x40>; 141 "marvell,orion-gpio";
142 reg = <0x18100 0x40>, <0x181c0 0x08>;
143 reg-names = "gpio", "pwm";
142 ngpios = <32>; 144 ngpios = <32>;
143 gpio-controller; 145 gpio-controller;
144 #gpio-cells = <2>; 146 #gpio-cells = <2>;
147 #pwm-cells = <2>;
145 interrupt-controller; 148 interrupt-controller;
146 #interrupt-cells = <2>; 149 #interrupt-cells = <2>;
147 interrupts = <82>, <83>, <84>, <85>; 150 interrupts = <82>, <83>, <84>, <85>;
151 clocks = <&coreclk 0>;
148 }; 152 };
149 153
150 gpio1: gpio@18140 { 154 gpio1: gpio@18140 {
151 compatible = "marvell,orion-gpio"; 155 compatible = "marvell,armada-370-gpio",
152 reg = <0x18140 0x40>; 156 "marvell,orion-gpio";
157 reg = <0x18140 0x40>, <0x181c8 0x08>;
158 reg-names = "gpio", "pwm";
153 ngpios = <32>; 159 ngpios = <32>;
154 gpio-controller; 160 gpio-controller;
155 #gpio-cells = <2>; 161 #gpio-cells = <2>;
162 #pwm-cells = <2>;
156 interrupt-controller; 163 interrupt-controller;
157 #interrupt-cells = <2>; 164 #interrupt-cells = <2>;
158 interrupts = <87>, <88>, <89>, <90>; 165 interrupts = <87>, <88>, <89>, <90>;
166 clocks = <&coreclk 0>;
159 }; 167 };
160 168
161 gpio2: gpio@18180 { 169 gpio2: gpio@18180 {
162 compatible = "marvell,orion-gpio"; 170 compatible = "marvell,armada-370-gpio",
171 "marvell,orion-gpio";
163 reg = <0x18180 0x40>; 172 reg = <0x18180 0x40>;
164 ngpios = <2>; 173 ngpios = <2>;
165 gpio-controller; 174 gpio-controller;
diff --git a/arch/arm/boot/dts/armada-385-linksys-caiman.dts b/arch/arm/boot/dts/armada-385-linksys-caiman.dts
index f3cee918d285..ee669ae61011 100644
--- a/arch/arm/boot/dts/armada-385-linksys-caiman.dts
+++ b/arch/arm/boot/dts/armada-385-linksys-caiman.dts
@@ -44,71 +44,128 @@
44 model = "Linksys WRT1200AC"; 44 model = "Linksys WRT1200AC";
45 compatible = "linksys,caiman", "linksys,armada385", "marvell,armada385", 45 compatible = "linksys,caiman", "linksys,armada385", "marvell,armada385",
46 "marvell,armada380"; 46 "marvell,armada380";
47};
48
49&expander0 {
50 wan_amber@0 {
51 label = "caiman:amber:wan";
52 reg = <0x0>;
53 };
54
55 wan_white@1 {
56 label = "caiman:white:wan";
57 reg = <0x1>;
58 };
59
60 wlan_2g@2 {
61 label = "caiman:white:wlan_2g";
62 reg = <0x2>;
63 };
64
65 wlan_5g@3 {
66 label = "caiman:white:wlan_5g";
67 reg = <0x3>;
68 };
69
70 usb2@5 {
71 label = "caiman:white:usb2";
72 reg = <0x5>;
73 };
74
75 usb3_1@6 {
76 label = "caiman:white:usb3_1";
77 reg = <0x6>;
78 };
79
80 usb3_2@7 {
81 label = "caiman:white:usb3_2";
82 reg = <0x7>;
83 };
84
85 wps_white@8 {
86 label = "caiman:white:wps";
87 reg = <0x8>;
88 };
89
90 wps_amber@9 {
91 label = "caiman:amber:wps";
92 reg = <0x9>;
93 };
94};
95
96&gpio_leds {
97 power {
98 label = "caiman:white:power";
99 };
100
101 sata {
102 label = "caiman:white:sata";
103 };
104};
105
106&nand {
107 /* 128MiB */
108
109 partition@0 {
110 label = "u-boot";
111 reg = <0x0000000 0x200000>; /* 2MiB */
112 read-only;
113 };
114
115 partition@100000 {
116 label = "u_env";
117 reg = <0x200000 0x40000>; /* 256KiB */
118 };
119
120 partition@140000 {
121 label = "s_env";
122 reg = <0x240000 0x40000>; /* 256KiB */
123 };
124
125 partition@900000 {
126 label = "devinfo";
127 reg = <0x900000 0x100000>; /* 1MiB */
128 read-only;
129 };
130
131 /* kernel1 overlaps with rootfs1 by design */
132 partition@a00000 {
133 label = "kernel1";
134 reg = <0xa00000 0x2800000>; /* 40MiB */
135 };
136
137 partition@1000000 {
138 label = "rootfs1";
139 reg = <0x1000000 0x2200000>; /* 34MiB */
140 };
141
142 /* kernel2 overlaps with rootfs2 by design */
143 partition@3200000 {
144 label = "kernel2";
145 reg = <0x3200000 0x2800000>; /* 40MiB */
146 };
147
148 partition@3800000 {
149 label = "rootfs2";
150 reg = <0x3800000 0x2200000>; /* 34MiB */
151 };
152
153 /*
154 * 38MiB, last MiB is for the BBT, not writable
155 */
156 partition@5a00000 {
157 label = "syscfg";
158 reg = <0x5a00000 0x2600000>;
159 };
47 160
48 soc { 161 /*
49 internal-regs{ 162 * Unused area between "s_env" and "devinfo".
50 i2c@11000 { 163 * Moved here because otherwise the renumbered
51 164 * partitions would break the bootloader
52 pca9635@68 { 165 * supplied bootargs
53 #address-cells = <1>; 166 */
54 #size-cells = <0>; 167 partition@180000 {
55 168 label = "unused_area";
56 wan_amber@0 { 169 reg = <0x280000 0x680000>; /* 6.5MiB */
57 label = "caiman:amber:wan";
58 reg = <0x0>;
59 };
60
61 wan_white@1 {
62 label = "caiman:white:wan";
63 reg = <0x1>;
64 };
65
66 wlan_2g@2 {
67 label = "caiman:white:wlan_2g";
68 reg = <0x2>;
69 };
70
71 wlan_5g@3 {
72 label = "caiman:white:wlan_5g";
73 reg = <0x3>;
74 };
75
76 usb2@5 {
77 label = "caiman:white:usb2";
78 reg = <0x5>;
79 };
80
81 usb3_1@6 {
82 label = "caiman:white:usb3_1";
83 reg = <0x6>;
84 };
85
86 usb3_2@7 {
87 label = "caiman:white:usb3_2";
88 reg = <0x7>;
89 };
90
91 wps_white@8 {
92 label = "caiman:white:wps";
93 reg = <0x8>;
94 };
95
96 wps_amber@9 {
97 label = "caiman:amber:wps";
98 reg = <0x9>;
99 };
100 };
101 };
102 };
103 };
104
105 gpio-leds {
106 power {
107 label = "caiman:white:power";
108 };
109
110 sata {
111 label = "caiman:white:sata";
112 };
113 }; 170 };
114}; 171};
diff --git a/arch/arm/boot/dts/armada-385-linksys-cobra.dts b/arch/arm/boot/dts/armada-385-linksys-cobra.dts
index 111071860559..5169ca89c55a 100644
--- a/arch/arm/boot/dts/armada-385-linksys-cobra.dts
+++ b/arch/arm/boot/dts/armada-385-linksys-cobra.dts
@@ -44,71 +44,128 @@
44 model = "Linksys WRT1900ACv2"; 44 model = "Linksys WRT1900ACv2";
45 compatible = "linksys,cobra", "linksys,armada385", "marvell,armada385", 45 compatible = "linksys,cobra", "linksys,armada385", "marvell,armada385",
46 "marvell,armada380"; 46 "marvell,armada380";
47};
48
49&expander0 {
50 wan_amber@0 {
51 label = "cobra:amber:wan";
52 reg = <0x0>;
53 };
54
55 wan_white@1 {
56 label = "cobra:white:wan";
57 reg = <0x1>;
58 };
59
60 wlan_2g@2 {
61 label = "cobra:white:wlan_2g";
62 reg = <0x2>;
63 };
64
65 wlan_5g@3 {
66 label = "cobra:white:wlan_5g";
67 reg = <0x3>;
68 };
69
70 usb2@5 {
71 label = "cobra:white:usb2";
72 reg = <0x5>;
73 };
74
75 usb3_1@6 {
76 label = "cobra:white:usb3_1";
77 reg = <0x6>;
78 };
79
80 usb3_2@7 {
81 label = "cobra:white:usb3_2";
82 reg = <0x7>;
83 };
84
85 wps_white@8 {
86 label = "cobra:white:wps";
87 reg = <0x8>;
88 };
89
90 wps_amber@9 {
91 label = "cobra:amber:wps";
92 reg = <0x9>;
93 };
94};
95
96&gpio_leds {
97 power {
98 label = "cobra:white:power";
99 };
100
101 sata {
102 label = "cobra:white:sata";
103 };
104};
105
106&nand {
107 /* 128MiB */
108
109 partition@0 {
110 label = "u-boot";
111 reg = <0x0000000 0x200000>; /* 2MiB */
112 read-only;
113 };
114
115 partition@100000 {
116 label = "u_env";
117 reg = <0x200000 0x40000>; /* 256KiB */
118 };
119
120 partition@140000 {
121 label = "s_env";
122 reg = <0x240000 0x40000>; /* 256KiB */
123 };
124
125 partition@900000 {
126 label = "devinfo";
127 reg = <0x900000 0x100000>; /* 1MiB */
128 read-only;
129 };
130
131 /* kernel1 overlaps with rootfs1 by design */
132 partition@a00000 {
133 label = "kernel1";
134 reg = <0xa00000 0x2800000>; /* 40MiB */
135 };
136
137 partition@1000000 {
138 label = "rootfs1";
139 reg = <0x1000000 0x2200000>; /* 34MiB */
140 };
141
142 /* kernel2 overlaps with rootfs2 by design */
143 partition@3200000 {
144 label = "kernel2";
145 reg = <0x3200000 0x2800000>; /* 40MiB */
146 };
147
148 partition@3800000 {
149 label = "rootfs2";
150 reg = <0x3800000 0x2200000>; /* 34MiB */
151 };
152
153 /*
154 * 38MiB, last MiB is for the BBT, not writable
155 */
156 partition@5a00000 {
157 label = "syscfg";
158 reg = <0x5a00000 0x2600000>;
159 };
47 160
48 soc { 161 /*
49 internal-regs{ 162 * Unused area between "s_env" and "devinfo".
50 i2c@11000 { 163 * Moved here because otherwise the renumbered
51 164 * partitions would break the bootloader
52 pca9635@68 { 165 * supplied bootargs
53 #address-cells = <1>; 166 */
54 #size-cells = <0>; 167 partition@180000 {
55 168 label = "unused_area";
56 wan_amber@0 { 169 reg = <0x280000 0x680000>; /* 6.5MiB */
57 label = "cobra:amber:wan";
58 reg = <0x0>;
59 };
60
61 wan_white@1 {
62 label = "cobra:white:wan";
63 reg = <0x1>;
64 };
65
66 wlan_2g@2 {
67 label = "cobra:white:wlan_2g";
68 reg = <0x2>;
69 };
70
71 wlan_5g@3 {
72 label = "cobra:white:wlan_5g";
73 reg = <0x3>;
74 };
75
76 usb2@5 {
77 label = "cobra:white:usb2";
78 reg = <0x5>;
79 };
80
81 usb3_1@6 {
82 label = "cobra:white:usb3_1";
83 reg = <0x6>;
84 };
85
86 usb3_2@7 {
87 label = "cobra:white:usb3_2";
88 reg = <0x7>;
89 };
90
91 wps_white@8 {
92 label = "cobra:white:wps";
93 reg = <0x8>;
94 };
95
96 wps_amber@9 {
97 label = "cobra:amber:wps";
98 reg = <0x9>;
99 };
100 };
101 };
102 };
103 };
104
105 gpio-leds {
106 power {
107 label = "cobra:white:power";
108 };
109
110 sata {
111 label = "cobra:white:sata";
112 };
113 }; 170 };
114}; 171};
diff --git a/arch/arm/boot/dts/armada-385-linksys-rango.dts b/arch/arm/boot/dts/armada-385-linksys-rango.dts
new file mode 100644
index 000000000000..da8a0f3d432b
--- /dev/null
+++ b/arch/arm/boot/dts/armada-385-linksys-rango.dts
@@ -0,0 +1,203 @@
1/*
2 * Device Tree file for the Linksys WRT3200ACM (Rango)
3 *
4 * Copyright (C) 2016 Imre Kaloz <kaloz@openwrt.org>
5 *
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 *
12 * a) This file is licensed under the terms of the GNU General Public
13 * License version 2. This program is licensed "as is" without
14 * any warranty of any kind, whether express or implied.
15 *
16 * Or, alternatively,
17 *
18 * b) Permission is hereby granted, free of charge, to any person
19 * obtaining a copy of this software and associated documentation
20 * files (the "Software"), to deal in the Software without
21 * restriction, including without limitation the rights to use,
22 * copy, modify, merge, publish, distribute, sublicense, and/or
23 * sell copies of the Software, and to permit persons to whom the
24 * Software is furnished to do so, subject to the following
25 * conditions:
26 *
27 * The above copyright notice and this permission notice shall be
28 * included in all copies or substantial portions of the Software.
29 *
30 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
31 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
32 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
33 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
34 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
35 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
36 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
37 * OTHER DEALINGS IN THE SOFTWARE.
38 */
39
40/dts-v1/;
41#include <dt-bindings/gpio/gpio.h>
42#include <dt-bindings/input/input.h>
43#include "armada-385-linksys.dtsi"
44
45/ {
46 model = "Linksys WRT3200ACM";
47 compatible = "linksys,rango", "linksys,armada385", "marvell,armada385",
48 "marvell,armada380";
49};
50
51&expander0 {
52 wan_amber@0 {
53 label = "rango:amber:wan";
54 reg = <0x0>;
55 };
56
57 wan_white@1 {
58 label = "rango:white:wan";
59 reg = <0x1>;
60 };
61
62 usb2@5 {
63 label = "rango:white:usb2";
64 reg = <0x5>;
65 };
66
67 usb3_1@6 {
68 label = "rango:white:usb3_1";
69 reg = <0x6>;
70 };
71
72 usb3_2@7 {
73 label = "rango:white:usb3_2";
74 reg = <0x7>;
75 };
76
77 wps_white@8 {
78 label = "rango:white:wps";
79 reg = <0x8>;
80 };
81
82 wps_amber@9 {
83 label = "rango:amber:wps";
84 reg = <0x9>;
85 };
86};
87
88&gpio_leds {
89 power {
90 gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
91 label = "rango:white:power";
92 };
93
94 sata {
95 gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
96 label = "rango:white:sata";
97 };
98
99 wlan_2g {
100 gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
101 label = "rango:white:wlan_2g";
102 };
103
104 wlan_5g {
105 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
106 label = "rango:white:wlan_5g";
107 };
108};
109
110&gpio_leds_pins {
111 marvell,pins = "mpp21", "mpp45", "mpp46", "mpp56";
112};
113
114&nand {
115 /* AMD/Spansion S34ML02G2 256MiB, OEM Layout */
116
117 partition@0 {
118 label = "u-boot";
119 reg = <0x0000000 0x200000>; /* 2MiB */
120 read-only;
121 };
122
123 partition@200000 {
124 label = "u_env";
125 reg = <0x200000 0x20000>; /* 128KiB */
126 };
127
128 partition@220000 {
129 label = "s_env";
130 reg = <0x220000 0x40000>; /* 256KiB */
131 };
132
133 partition@7e0000 {
134 label = "devinfo";
135 reg = <0x7e0000 0x40000>; /* 256KiB */
136 read-only;
137 };
138
139 partition@820000 {
140 label = "sysdiag";
141 reg = <0x820000 0x1e0000>; /* 1920KiB */
142 read-only;
143 };
144
145 /* kernel1 overlaps with rootfs1 by design */
146 partition@a00000 {
147 label = "kernel1";
148 reg = <0xa00000 0x5000000>; /* 80MiB */
149 };
150
151 partition@1000000 {
152 label = "rootfs1";
153 reg = <0x1000000 0x4a00000>; /* 74MiB */
154 };
155
156 /* kernel2 overlaps with rootfs2 by design */
157 partition@5a00000 {
158 label = "kernel2";
159 reg = <0x5a00000 0x5000000>; /* 80MiB */
160 };
161
162 partition@6000000 {
163 label = "rootfs2";
164 reg = <0x6000000 0x4a00000>; /* 74MiB */
165 };
166
167 /*
168 * 86MiB, last MiB is for the BBT, not writable
169 */
170 partition@aa00000 {
171 label = "syscfg";
172 reg = <0xaa00000 0x5600000>;
173 };
174
175 /*
176 * Unused area between "s_env" and "devinfo".
177 * Moved here because otherwise the renumbered
178 * partitions would break the bootloader
179 * supplied bootargs
180 */
181 partition@180000 {
182 label = "unused_area";
183 reg = <0x260000 0x5c0000>; /* 5.75MiB */
184 };
185};
186
187&sdhci {
188 pinctrl-names = "default";
189 pinctrl-0 = <&sdhci_pins>;
190 no-1-8-v;
191 non-removable;
192 wp-inverted;
193 bus-width = <8>;
194 status = "okay";
195};
196
197&usb3_1_vbus {
198 gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
199};
200
201&usb3_1_vbus_pins {
202 marvell,pins = "mpp44";
203};
diff --git a/arch/arm/boot/dts/armada-385-linksys-shelby.dts b/arch/arm/boot/dts/armada-385-linksys-shelby.dts
index c7a8ddd7f9a5..94aa35bc0bff 100644
--- a/arch/arm/boot/dts/armada-385-linksys-shelby.dts
+++ b/arch/arm/boot/dts/armada-385-linksys-shelby.dts
@@ -44,71 +44,128 @@
44 model = "Linksys WRT1900ACS"; 44 model = "Linksys WRT1900ACS";
45 compatible = "linksys,shelby", "linksys,armada385", "marvell,armada385", 45 compatible = "linksys,shelby", "linksys,armada385", "marvell,armada385",
46 "marvell,armada380"; 46 "marvell,armada380";
47};
48
49&expander0 {
50 wan_amber@0 {
51 label = "shelby:amber:wan";
52 reg = <0x0>;
53 };
54
55 wan_white@1 {
56 label = "shelby:white:wan";
57 reg = <0x1>;
58 };
59
60 wlan_2g@2 {
61 label = "shelby:white:wlan_2g";
62 reg = <0x2>;
63 };
64
65 wlan_5g@3 {
66 label = "shelby:white:wlan_5g";
67 reg = <0x3>;
68 };
69
70 usb2@5 {
71 label = "shelby:white:usb2";
72 reg = <0x5>;
73 };
74
75 usb3_1@6 {
76 label = "shelby:white:usb3_1";
77 reg = <0x6>;
78 };
79
80 usb3_2@7 {
81 label = "shelby:white:usb3_2";
82 reg = <0x7>;
83 };
84
85 wps_white@8 {
86 label = "shelby:white:wps";
87 reg = <0x8>;
88 };
89
90 wps_amber@9 {
91 label = "shelby:amber:wps";
92 reg = <0x9>;
93 };
94};
95
96&gpio_leds {
97 power {
98 label = "shelby:white:power";
99 };
100
101 sata {
102 label = "shelby:white:sata";
103 };
104};
105
106&nand {
107 /* 128MiB */
108
109 partition@0 {
110 label = "u-boot";
111 reg = <0x0000000 0x200000>; /* 2MiB */
112 read-only;
113 };
114
115 partition@100000 {
116 label = "u_env";
117 reg = <0x200000 0x40000>; /* 256KiB */
118 };
119
120 partition@140000 {
121 label = "s_env";
122 reg = <0x240000 0x40000>; /* 256KiB */
123 };
124
125 partition@900000 {
126 label = "devinfo";
127 reg = <0x900000 0x100000>; /* 1MiB */
128 read-only;
129 };
130
131 /* kernel1 overlaps with rootfs1 by design */
132 partition@a00000 {
133 label = "kernel1";
134 reg = <0xa00000 0x2800000>; /* 40MiB */
135 };
136
137 partition@1000000 {
138 label = "rootfs1";
139 reg = <0x1000000 0x2200000>; /* 34MiB */
140 };
141
142 /* kernel2 overlaps with rootfs2 by design */
143 partition@3200000 {
144 label = "kernel2";
145 reg = <0x3200000 0x2800000>; /* 40MiB */
146 };
147
148 partition@3800000 {
149 label = "rootfs2";
150 reg = <0x3800000 0x2200000>; /* 34MiB */
151 };
152
153 /*
154 * 38MiB, last MiB is for the BBT, not writable
155 */
156 partition@5a00000 {
157 label = "syscfg";
158 reg = <0x5a00000 0x2600000>;
159 };
47 160
48 soc { 161 /*
49 internal-regs{ 162 * Unused area between "s_env" and "devinfo".
50 i2c@11000 { 163 * Moved here because otherwise the renumbered
51 164 * partitions would break the bootloader
52 pca9635@68 { 165 * supplied bootargs
53 #address-cells = <1>; 166 */
54 #size-cells = <0>; 167 partition@180000 {
55 168 label = "unused_area";
56 wan_amber@0 { 169 reg = <0x280000 0x680000>; /* 6.5MiB */
57 label = "shelby:amber:wan";
58 reg = <0x0>;
59 };
60
61 wan_white@1 {
62 label = "shelby:white:wan";
63 reg = <0x1>;
64 };
65
66 wlan_2g@2 {
67 label = "shelby:white:wlan_2g";
68 reg = <0x2>;
69 };
70
71 wlan_5g@3 {
72 label = "shelby:white:wlan_5g";
73 reg = <0x3>;
74 };
75
76 usb2@5 {
77 label = "shelby:white:usb2";
78 reg = <0x5>;
79 };
80
81 usb3_1@6 {
82 label = "shelby:white:usb3_1";
83 reg = <0x6>;
84 };
85
86 usb3_2@7 {
87 label = "shelby:white:usb3_2";
88 reg = <0x7>;
89 };
90
91 wps_white@8 {
92 label = "shelby:white:wps";
93 reg = <0x8>;
94 };
95
96 wps_amber@9 {
97 label = "shelby:amber:wps";
98 reg = <0x9>;
99 };
100 };
101 };
102 };
103 };
104
105 gpio-leds {
106 power {
107 label = "shelby:white:power";
108 };
109
110 sata {
111 label = "shelby:white:sata";
112 };
113 }; 170 };
114}; 171};
diff --git a/arch/arm/boot/dts/armada-385-linksys.dtsi b/arch/arm/boot/dts/armada-385-linksys.dtsi
index 2306c45685b1..e1f355ffc8f7 100644
--- a/arch/arm/boot/dts/armada-385-linksys.dtsi
+++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
@@ -52,7 +52,7 @@
52 52
53 memory { 53 memory {
54 device_type = "memory"; 54 device_type = "memory";
55 reg = <0x00000000 0x20000000>; /* 512 MB */ 55 reg = <0x00000000 0x20000000>; /* 512 MiB */
56 }; 56 };
57 57
58 soc { 58 soc {
@@ -61,255 +61,45 @@
61 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000 61 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
62 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000 62 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
63 MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>; 63 MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
64
65 internal-regs {
66 i2c@11000 {
67 pinctrl-names = "default";
68 pinctrl-0 = <&i2c0_pins>;
69 status = "okay";
70
71 tmp421@4c {
72 compatible = "ti,tmp421";
73 reg = <0x4c>;
74 };
75
76 pca9635@68 {
77 #address-cells = <1>;
78 #size-cells = <0>;
79 compatible = "nxp,pca9635";
80 reg = <0x68>;
81 };
82 };
83
84 /* J10: VCC, NC, RX, NC, TX, GND */
85 serial@12000 {
86 status = "okay";
87 };
88
89 ethernet@70000 {
90 status = "okay";
91 phy-mode = "rgmii-id";
92 buffer-manager = <&bm>;
93 bm,pool-long = <2>;
94 bm,pool-short = <3>;
95 fixed-link {
96 speed = <1000>;
97 full-duplex;
98 };
99 };
100
101 ethernet@34000 {
102 status = "okay";
103 phy-mode = "sgmii";
104 buffer-manager = <&bm>;
105 bm,pool-long = <0>;
106 bm,pool-short = <1>;
107 fixed-link {
108 speed = <1000>;
109 full-duplex;
110 };
111 };
112
113 mdio@72004 {
114 status = "okay";
115
116 switch@0 {
117 compatible = "marvell,mv88e6085";
118 #address-cells = <1>;
119 #size-cells = <0>;
120 reg = <0>;
121
122 ports {
123 #address-cells = <1>;
124 #size-cells = <0>;
125
126 port@0 {
127 reg = <0>;
128 label = "lan4";
129 };
130
131 port@1 {
132 reg = <1>;
133 label = "lan3";
134 };
135
136 port@2 {
137 reg = <2>;
138 label = "lan2";
139 };
140
141 port@3 {
142 reg = <3>;
143 label = "lan1";
144 };
145
146 port@4 {
147 reg = <4>;
148 label = "wan";
149 };
150
151 port@5 {
152 reg = <5>;
153 label = "cpu";
154 ethernet = <&eth2>;
155
156 fixed-link {
157 speed = <1000>;
158 full-duplex;
159 };
160 };
161 };
162 };
163 };
164
165 sata@a8000 {
166 status = "okay";
167 };
168
169 bm@c8000 {
170 status = "okay";
171 };
172
173 /* USB part of the eSATA/USB 2.0 port */
174 usb@58000 {
175 status = "okay";
176 };
177
178 usb3@f8000 {
179 status = "okay";
180 usb-phy = <&usb3_phy>;
181 };
182
183 flash@d0000 {
184 status = "okay";
185 num-cs = <1>;
186 marvell,nand-keep-config;
187 marvell,nand-enable-arbiter;
188 nand-on-flash-bbt;
189
190 partition@0 {
191 label = "u-boot";
192 reg = <0x0000000 0x200000>; /* 2MB */
193 read-only;
194 };
195
196 partition@100000 {
197 label = "u_env";
198 reg = <0x200000 0x40000>; /* 256KB */
199 };
200
201 partition@140000 {
202 label = "s_env";
203 reg = <0x240000 0x40000>; /* 256KB */
204 };
205
206 partition@900000 {
207 label = "devinfo";
208 reg = <0x900000 0x100000>; /* 1MB */
209 read-only;
210 };
211
212 /* kernel1 overlaps with rootfs1 by design */
213 partition@a00000 {
214 label = "kernel1";
215 reg = <0xa00000 0x2800000>; /* 40MB */
216 };
217
218 partition@1000000 {
219 label = "rootfs1";
220 reg = <0x1000000 0x2200000>; /* 34MB */
221 };
222
223 /* kernel2 overlaps with rootfs2 by design */
224 partition@3200000 {
225 label = "kernel2";
226 reg = <0x3200000 0x2800000>; /* 40MB */
227 };
228
229 partition@3800000 {
230 label = "rootfs2";
231 reg = <0x3800000 0x2200000>; /* 34MB */
232 };
233
234 /*
235 * 38MB, last MB is for the BBT, not writable
236 */
237 partition@5a00000 {
238 label = "syscfg";
239 reg = <0x5a00000 0x2600000>;
240 };
241
242 /*
243 * Unused area between "s_env" and "devinfo".
244 * Moved here because otherwise the renumbered
245 * partitions would break the bootloader
246 * supplied bootargs
247 */
248 partition@180000 {
249 label = "unused_area";
250 reg = <0x280000 0x680000>; /* 6.5MB */
251 };
252 };
253 };
254
255 bm-bppi {
256 status = "okay";
257 };
258
259 pcie-controller {
260 status = "okay";
261
262 pcie@1,0 {
263 /* Marvell 88W8864, 5GHz-only */
264 status = "okay";
265 };
266
267 pcie@2,0 {
268 /* Marvell 88W8864, 2GHz-only */
269 status = "okay";
270 };
271 };
272 }; 64 };
273 65
274 usb3_phy: usb3_phy { 66 usb3_1_phy: usb3_1-phy {
275 compatible = "usb-nop-xceiv"; 67 compatible = "usb-nop-xceiv";
276 vcc-supply = <&reg_xhci0_vbus>; 68 vcc-supply = <&usb3_1_vbus>;
277 }; 69 };
278 70
279 reg_xhci0_vbus: xhci0-vbus { 71 usb3_1_vbus: usb3_1-vbus {
280 compatible = "regulator-fixed"; 72 compatible = "regulator-fixed";
281 pinctrl-names = "default"; 73 pinctrl-names = "default";
282 pinctrl-0 = <&xhci0_vbus_pins>; 74 pinctrl-0 = <&usb3_1_vbus_pins>;
283 regulator-name = "xhci0-vbus"; 75 regulator-name = "usb3_1-vbus";
284 regulator-min-microvolt = <5000000>; 76 regulator-min-microvolt = <5000000>;
285 regulator-max-microvolt = <5000000>; 77 regulator-max-microvolt = <5000000>;
286 enable-active-high; 78 enable-active-high;
287 gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>; 79 gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>;
288 }; 80 };
289 81
290 gpio_keys { 82 gpio_keys: gpio-keys {
291 compatible = "gpio-keys"; 83 compatible = "gpio-keys";
292 #address-cells = <1>; 84 pinctrl-0 = <&gpio_keys_pins>;
293 #size-cells = <0>;
294 pinctrl-0 = <&keys_pin>;
295 pinctrl-names = "default"; 85 pinctrl-names = "default";
296 86
297 button@1 { 87 wps {
298 label = "WPS"; 88 label = "WPS";
299 linux,code = <KEY_WPS_BUTTON>; 89 linux,code = <KEY_WPS_BUTTON>;
300 gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; 90 gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
301 }; 91 };
302 92
303 button@2 { 93 reset {
304 label = "Factory Reset Button"; 94 label = "Factory Reset Button";
305 linux,code = <KEY_RESTART>; 95 linux,code = <KEY_RESTART>;
306 gpios = <&gpio0 29 GPIO_ACTIVE_LOW>; 96 gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
307 }; 97 };
308 }; 98 };
309 99
310 gpio-leds { 100 gpio_leds: gpio-leds {
311 compatible = "gpio-leds"; 101 compatible = "gpio-leds";
312 pinctrl-0 = <&power_led_pin &sata_led_pin>; 102 pinctrl-0 = <&gpio_leds_pins>;
313 pinctrl-names = "default"; 103 pinctrl-names = "default";
314 104
315 power { 105 power {
@@ -323,21 +113,83 @@
323 linux,default-trigger = "disk-activity"; 113 linux,default-trigger = "disk-activity";
324 }; 114 };
325 }; 115 };
116};
326 117
327 dsa@0 { 118&ahci0 {
328 status = "disabled"; 119 status = "okay";
120};
121
122&bm {
123 status = "okay";
124};
329 125
330 compatible = "marvell,dsa"; 126&bm_bppi {
331 #address-cells = <2>; 127 status = "okay";
128};
129
130&eth0 {
131 status = "okay";
132 phy-mode = "rgmii-id";
133 buffer-manager = <&bm>;
134 bm,pool-long = <0>;
135 bm,pool-short = <1>;
136 fixed-link {
137 speed = <1000>;
138 full-duplex;
139 };
140};
141
142&eth2 {
143 status = "okay";
144 phy-mode = "sgmii";
145 buffer-manager = <&bm>;
146 bm,pool-long = <2>;
147 bm,pool-short = <3>;
148 fixed-link {
149 speed = <1000>;
150 full-duplex;
151 };
152};
153
154&i2c0 {
155 pinctrl-names = "default";
156 pinctrl-0 = <&i2c0_pins>;
157 status = "okay";
158
159 tmp421@4c {
160 compatible = "ti,tmp421";
161 reg = <0x4c>;
162 };
163
164 expander0: pca9635@68 {
165 #address-cells = <1>;
332 #size-cells = <0>; 166 #size-cells = <0>;
167 compatible = "nxp,pca9635";
168 reg = <0x68>;
169 };
170};
171
172&nand {
173 /* 128MiB or 256MiB */
174 status = "okay";
175 num-cs = <1>;
176 marvell,nand-keep-config;
177 marvell,nand-enable-arbiter;
178 nand-on-flash-bbt;
179};
333 180
334 dsa,ethernet = <&eth2>; 181&mdio {
335 dsa,mii-bus = <&mdio>; 182 status = "okay";
336 183
337 switch@0 { 184 switch@0 {
185 compatible = "marvell,mv88e6085";
186 #address-cells = <1>;
187 #size-cells = <0>;
188 reg = <0>;
189
190 ports {
338 #address-cells = <1>; 191 #address-cells = <1>;
339 #size-cells = <0>; 192 #size-cells = <0>;
340 reg = <0x0 0>; /* MDIO address 0, switch 0 in tree */
341 193
342 port@0 { 194 port@0 {
343 reg = <0>; 195 reg = <0>;
@@ -367,28 +219,45 @@
367 port@5 { 219 port@5 {
368 reg = <5>; 220 reg = <5>;
369 label = "cpu"; 221 label = "cpu";
222 ethernet = <&eth2>;
223
224 fixed-link {
225 speed = <1000>;
226 full-duplex;
227 };
370 }; 228 };
371 }; 229 };
372 }; 230 };
373}; 231};
374 232
233&pciec {
234 status = "okay";
235};
236
237&pcie1 {
238 /* Marvell 88W8864, 5GHz-only */
239 status = "okay";
240};
241
242&pcie2 {
243 /* Marvell 88W8864, 2GHz-only */
244 status = "okay";
245};
246
375&pinctrl { 247&pinctrl {
376 keys_pin: keys-pin { 248 gpio_keys_pins: gpio-keys-pins {
249 /* mpp24: wps, mpp29: reset */
377 marvell,pins = "mpp24", "mpp29"; 250 marvell,pins = "mpp24", "mpp29";
378 marvell,function = "gpio"; 251 marvell,function = "gpio";
379 }; 252 };
380 253
381 power_led_pin: power-led-pin { 254 gpio_leds_pins: gpio-leds-pins {
382 marvell,pins = "mpp55"; 255 /* mpp54: sata, mpp55: power */
383 marvell,function = "gpio"; 256 marvell,pins = "mpp54", "mpp55";
384 };
385
386 sata_led_pin: sata-led-pin {
387 marvell,pins = "mpp54";
388 marvell,function = "gpio"; 257 marvell,function = "gpio";
389 }; 258 };
390 259
391 xhci0_vbus_pins: xhci0-vbus-pins { 260 usb3_1_vbus_pins: usb3_1-vbus-pins {
392 marvell,pins = "mpp50"; 261 marvell,pins = "mpp50";
393 marvell,function = "gpio"; 262 marvell,function = "gpio";
394 }; 263 };
@@ -397,3 +266,18 @@
397&spi0 { 266&spi0 {
398 status = "disabled"; 267 status = "disabled";
399}; 268};
269
270&uart0 {
271 /* J10: VCC, NC, RX, NC, TX, GND */
272 status = "okay";
273};
274
275&usb0 {
276 /* USB part of the eSATA/USB 2.0 port */
277 status = "okay";
278};
279
280&usb3_1 {
281 status = "okay";
282 usb-phy = <&usb3_1_phy>;
283};
diff --git a/arch/arm/boot/dts/armada-385-turris-omnia.dts b/arch/arm/boot/dts/armada-385-turris-omnia.dts
index 28eede180e4f..be16ce39fb3d 100644
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -171,7 +171,7 @@
171 /* leds device (in STM32F0) at address 0x2b */ 171 /* leds device (in STM32F0) at address 0x2b */
172 172
173 eeprom@54 { 173 eeprom@54 {
174 compatible = "at,24c64"; 174 compatible = "atmel,24c64";
175 reg = <0x54>; 175 reg = <0x54>;
176 176
177 /* The EEPROM contains data for bootloader. 177 /* The EEPROM contains data for bootloader.
diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
index 8b165c31de1e..af31f5d6c0e5 100644
--- a/arch/arm/boot/dts/armada-38x.dtsi
+++ b/arch/arm/boot/dts/armada-38x.dtsi
@@ -312,31 +312,39 @@
312 }; 312 };
313 313
314 gpio0: gpio@18100 { 314 gpio0: gpio@18100 {
315 compatible = "marvell,orion-gpio"; 315 compatible = "marvell,armada-370-gpio",
316 reg = <0x18100 0x40>; 316 "marvell,orion-gpio";
317 reg = <0x18100 0x40>, <0x181c0 0x08>;
318 reg-names = "gpio", "pwm";
317 ngpios = <32>; 319 ngpios = <32>;
318 gpio-controller; 320 gpio-controller;
319 #gpio-cells = <2>; 321 #gpio-cells = <2>;
322 #pwm-cells = <2>;
320 interrupt-controller; 323 interrupt-controller;
321 #interrupt-cells = <2>; 324 #interrupt-cells = <2>;
322 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 325 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
323 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 326 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
324 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 327 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
325 <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 328 <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
329 clocks = <&coreclk 0>;
326 }; 330 };
327 331
328 gpio1: gpio@18140 { 332 gpio1: gpio@18140 {
329 compatible = "marvell,orion-gpio"; 333 compatible = "marvell,armada-370-gpio",
330 reg = <0x18140 0x40>; 334 "marvell,orion-gpio";
335 reg = <0x18140 0x40>, <0x181c8 0x08>;
336 reg-names = "gpio", "pwm";
331 ngpios = <28>; 337 ngpios = <28>;
332 gpio-controller; 338 gpio-controller;
333 #gpio-cells = <2>; 339 #gpio-cells = <2>;
340 #pwm-cells = <2>;
334 interrupt-controller; 341 interrupt-controller;
335 #interrupt-cells = <2>; 342 #interrupt-cells = <2>;
336 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 343 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
337 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 344 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
338 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 345 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
339 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 346 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
347 clocks = <&coreclk 0>;
340 }; 348 };
341 349
342 systemc: system-controller@18200 { 350 systemc: system-controller@18200 {
diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
index 84cc232a29e9..be22ec5236ac 100644
--- a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
+++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
@@ -311,6 +311,10 @@
311 reg = <0x20a00 0x2d0>, <0x21070 0x58>; 311 reg = <0x20a00 0x2d0>, <0x21070 0x58>;
312}; 312};
313 313
314&rtc {
315 status = "disabled";
316};
317
314&timer { 318&timer {
315 compatible = "marvell,armada-xp-timer"; 319 compatible = "marvell,armada-xp-timer";
316 clocks = <&coreclk 2>, <&refclk>; 320 clocks = <&coreclk 2>, <&refclk>;
diff --git a/arch/arm/boot/dts/armada-xp-98dx4251.dtsi b/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
index 51de91b31a9d..bc9f824020eb 100644
--- a/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
+++ b/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
@@ -87,4 +87,5 @@
87 87
88&pp0 { 88&pp0 {
89 compatible = "marvell,prestera-98dx4251"; 89 compatible = "marvell,prestera-98dx4251";
90 interrupts = <33>, <34>, <35>, <36>;
90}; 91};
diff --git a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
index 9efcf59c9b44..6d705f518254 100644
--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
@@ -308,13 +308,11 @@
308 }; 308 };
309 }; 309 };
310 310
311 gpio_fan { 311 pwm_fan {
312 /* SUNON HA4010V4-0000-C99 */ 312 /* SUNON HA4010V4-0000-C99 */
313 compatible = "gpio-fan";
314 gpios = <&gpio0 24 0>;
315 313
316 gpio-fan,speed-map = <0 0 314 compatible = "pwm-fan";
317 4500 1>; 315 pwms = <&gpio0 24 4000>;
318 }; 316 };
319 317
320 dsa { 318 dsa {
diff --git a/arch/arm/boot/dts/armada-xp-mv78230.dtsi b/arch/arm/boot/dts/armada-xp-mv78230.dtsi
index 07c5090ecd29..9f25814077f2 100644
--- a/arch/arm/boot/dts/armada-xp-mv78230.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78230.dtsi
@@ -202,25 +202,33 @@
202 202
203 internal-regs { 203 internal-regs {
204 gpio0: gpio@18100 { 204 gpio0: gpio@18100 {
205 compatible = "marvell,orion-gpio"; 205 compatible = "marvell,armada-370-gpio",
206 reg = <0x18100 0x40>; 206 "marvell,orion-gpio";
207 reg = <0x18100 0x40>, <0x181c0 0x08>;
208 reg-names = "gpio", "pwm";
207 ngpios = <32>; 209 ngpios = <32>;
208 gpio-controller; 210 gpio-controller;
209 #gpio-cells = <2>; 211 #gpio-cells = <2>;
212 #pwm-cells = <2>;
210 interrupt-controller; 213 interrupt-controller;
211 #interrupt-cells = <2>; 214 #interrupt-cells = <2>;
212 interrupts = <82>, <83>, <84>, <85>; 215 interrupts = <82>, <83>, <84>, <85>;
216 clocks = <&coreclk 0>;
213 }; 217 };
214 218
215 gpio1: gpio@18140 { 219 gpio1: gpio@18140 {
216 compatible = "marvell,orion-gpio"; 220 compatible = "marvell,armada-370-gpio",
217 reg = <0x18140 0x40>; 221 "marvell,orion-gpio";
222 reg = <0x18140 0x40>, <0x181c8 0x08>;
223 reg-names = "gpio", "pwm";
218 ngpios = <17>; 224 ngpios = <17>;
219 gpio-controller; 225 gpio-controller;
220 #gpio-cells = <2>; 226 #gpio-cells = <2>;
227 #pwm-cells = <2>;
221 interrupt-controller; 228 interrupt-controller;
222 #interrupt-cells = <2>; 229 #interrupt-cells = <2>;
223 interrupts = <87>, <88>, <89>; 230 interrupts = <87>, <88>, <89>;
231 clocks = <&coreclk 0>;
224 }; 232 };
225 }; 233 };
226 }; 234 };
diff --git a/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/arch/arm/boot/dts/armada-xp-mv78260.dtsi
index 64e936ae7b22..2bfe07aebf1a 100644
--- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi
@@ -285,29 +285,38 @@
285 285
286 internal-regs { 286 internal-regs {
287 gpio0: gpio@18100 { 287 gpio0: gpio@18100 {
288 compatible = "marvell,orion-gpio"; 288 compatible = "marvell,armada-370-gpio",
289 reg = <0x18100 0x40>; 289 "marvell,orion-gpio";
290 reg = <0x18100 0x40>, <0x181c0 0x08>;
291 reg-names = "gpio", "pwm";
290 ngpios = <32>; 292 ngpios = <32>;
291 gpio-controller; 293 gpio-controller;
292 #gpio-cells = <2>; 294 #gpio-cells = <2>;
295 #pwm-cells = <2>;
293 interrupt-controller; 296 interrupt-controller;
294 #interrupt-cells = <2>; 297 #interrupt-cells = <2>;
295 interrupts = <82>, <83>, <84>, <85>; 298 interrupts = <82>, <83>, <84>, <85>;
299 clocks = <&coreclk 0>;
296 }; 300 };
297 301
298 gpio1: gpio@18140 { 302 gpio1: gpio@18140 {
299 compatible = "marvell,orion-gpio"; 303 compatible = "marvell,armada-370-gpio",
300 reg = <0x18140 0x40>; 304 "marvell,orion-gpio";
305 reg = <0x18140 0x40>, <0x181c8 0x08>;
306 reg-names = "gpio", "pwm";
301 ngpios = <32>; 307 ngpios = <32>;
302 gpio-controller; 308 gpio-controller;
303 #gpio-cells = <2>; 309 #gpio-cells = <2>;
310 #pwm-cells = <2>;
304 interrupt-controller; 311 interrupt-controller;
305 #interrupt-cells = <2>; 312 #interrupt-cells = <2>;
306 interrupts = <87>, <88>, <89>, <90>; 313 interrupts = <87>, <88>, <89>, <90>;
314 clocks = <&coreclk 0>;
307 }; 315 };
308 316
309 gpio2: gpio@18180 { 317 gpio2: gpio@18180 {
310 compatible = "marvell,orion-gpio"; 318 compatible = "marvell,armada-370-gpio",
319 "marvell,orion-gpio";
311 reg = <0x18180 0x40>; 320 reg = <0x18180 0x40>;
312 ngpios = <3>; 321 ngpios = <3>;
313 gpio-controller; 322 gpio-controller;
diff --git a/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/arch/arm/boot/dts/armada-xp-mv78460.dtsi
index d1383dde43eb..6c33935f7074 100644
--- a/arch/arm/boot/dts/armada-xp-mv78460.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78460.dtsi
@@ -323,29 +323,38 @@
323 323
324 internal-regs { 324 internal-regs {
325 gpio0: gpio@18100 { 325 gpio0: gpio@18100 {
326 compatible = "marvell,orion-gpio"; 326 compatible = "marvell,armada-370-gpio",
327 reg = <0x18100 0x40>; 327 "marvell,orion-gpio";
328 reg = <0x18100 0x40>, <0x181c0 0x08>;
329 reg-names = "gpio", "pwm";
328 ngpios = <32>; 330 ngpios = <32>;
329 gpio-controller; 331 gpio-controller;
330 #gpio-cells = <2>; 332 #gpio-cells = <2>;
333 #pwm-cells = <2>;
331 interrupt-controller; 334 interrupt-controller;
332 #interrupt-cells = <2>; 335 #interrupt-cells = <2>;
333 interrupts = <82>, <83>, <84>, <85>; 336 interrupts = <82>, <83>, <84>, <85>;
337 clocks = <&coreclk 0>;
334 }; 338 };
335 339
336 gpio1: gpio@18140 { 340 gpio1: gpio@18140 {
337 compatible = "marvell,orion-gpio"; 341 compatible = "marvell,armada-370-gpio",
338 reg = <0x18140 0x40>; 342 "marvell,orion-gpio";
343 reg = <0x18140 0x40>, <0x181c8 0x08>;
344 reg-names = "gpio", "pwm";
339 ngpios = <32>; 345 ngpios = <32>;
340 gpio-controller; 346 gpio-controller;
341 #gpio-cells = <2>; 347 #gpio-cells = <2>;
348 #pwm-cells = <2>;
342 interrupt-controller; 349 interrupt-controller;
343 #interrupt-cells = <2>; 350 #interrupt-cells = <2>;
344 interrupts = <87>, <88>, <89>, <90>; 351 interrupts = <87>, <88>, <89>, <90>;
352 clocks = <&coreclk 0>;
345 }; 353 };
346 354
347 gpio2: gpio@18180 { 355 gpio2: gpio@18180 {
348 compatible = "marvell,orion-gpio"; 356 compatible = "marvell,armada-370-gpio",
357 "marvell,orion-gpio";
349 reg = <0x18180 0x40>; 358 reg = <0x18180 0x40>;
350 ngpios = <3>; 359 ngpios = <3>;
351 gpio-controller; 360 gpio-controller;