blob: fb5640bbd93c75e240b971f999db8483608e9275 [file] [log] [blame]
Chris Packham3c265bb2019-02-16 11:48:58 +13001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
Stefan Roese39a230a2015-08-31 07:33:57 +02002/*
3 * Device Tree Include file for Marvell Armada XP family SoC
4 *
5 * Copyright (C) 2012 Marvell
6 *
7 * Lior Amsalem <alior@marvell.com>
8 * Gregory CLEMENT <gregory.clement@free-electrons.com>
9 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10 * Ben Dooks <ben.dooks@codethink.co.uk>
11 *
Stefan Roese39a230a2015-08-31 07:33:57 +020012 * Contains definitions specific to the Armada XP SoC that are not
13 * common to all Armada SoCs.
14 */
15
16#include "armada-370-xp.dtsi"
17
18/ {
Chris Packham3c265bb2019-02-16 11:48:58 +130019 #address-cells = <2>;
20 #size-cells = <2>;
21
Stefan Roese39a230a2015-08-31 07:33:57 +020022 model = "Marvell Armada XP family SoC";
23 compatible = "marvell,armadaxp", "marvell,armada-370-xp";
24
25 aliases {
26 serial2 = &uart2;
27 serial3 = &uart3;
28 };
29
30 soc {
31 compatible = "marvell,armadaxp-mbus", "simple-bus";
Stefan Roese09a54c02015-11-20 13:51:57 +010032 u-boot,dm-pre-reloc;
Stefan Roese39a230a2015-08-31 07:33:57 +020033
34 bootrom {
35 compatible = "marvell,bootrom";
36 reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>;
37 };
38
39 internal-regs {
Chris Packham3c265bb2019-02-16 11:48:58 +130040 sdramc: sdramc@1400 {
Stefan Roese39a230a2015-08-31 07:33:57 +020041 compatible = "marvell,armada-xp-sdram-controller";
42 reg = <0x1400 0x500>;
43 };
44
Chris Packham3c265bb2019-02-16 11:48:58 +130045 L2: l2-cache@8000 {
Stefan Roese39a230a2015-08-31 07:33:57 +020046 compatible = "marvell,aurora-system-cache";
47 reg = <0x08000 0x1000>;
48 cache-id-part = <0x100>;
49 cache-level = <2>;
50 cache-unified;
51 wt-override;
52 };
53
Stefan Roese39a230a2015-08-31 07:33:57 +020054 uart2: serial@12200 {
55 compatible = "snps,dw-apb-uart";
56 pinctrl-0 = <&uart2_pins>;
57 pinctrl-names = "default";
58 reg = <0x12200 0x100>;
59 reg-shift = <2>;
60 interrupts = <43>;
61 reg-io-width = <1>;
62 clocks = <&coreclk 0>;
63 status = "disabled";
64 };
65
66 uart3: serial@12300 {
67 compatible = "snps,dw-apb-uart";
68 pinctrl-0 = <&uart3_pins>;
69 pinctrl-names = "default";
70 reg = <0x12300 0x100>;
71 reg-shift = <2>;
72 interrupts = <44>;
73 reg-io-width = <1>;
74 clocks = <&coreclk 0>;
75 status = "disabled";
76 };
77
Chris Packham3c265bb2019-02-16 11:48:58 +130078 systemc: system-controller@18200 {
Stefan Roese39a230a2015-08-31 07:33:57 +020079 compatible = "marvell,armada-370-xp-system-controller";
80 reg = <0x18200 0x500>;
Pali Rohár35e29e82021-12-21 12:20:18 +010081 #reset-cells = <2>;
Stefan Roese39a230a2015-08-31 07:33:57 +020082 };
83
84 gateclk: clock-gating-control@18220 {
85 compatible = "marvell,armada-xp-gating-clock";
86 reg = <0x18220 0x4>;
87 clocks = <&coreclk 0>;
88 #clock-cells = <1>;
89 };
90
91 coreclk: mvebu-sar@18230 {
92 compatible = "marvell,armada-xp-core-clock";
93 reg = <0x18230 0x08>;
94 #clock-cells = <1>;
95 };
96
Chris Packham3c265bb2019-02-16 11:48:58 +130097 thermal: thermal@182b0 {
Stefan Roese39a230a2015-08-31 07:33:57 +020098 compatible = "marvell,armadaxp-thermal";
99 reg = <0x182b0 0x4
100 0x184d0 0x4>;
101 status = "okay";
102 };
103
104 cpuclk: clock-complex@18700 {
105 #clock-cells = <1>;
106 compatible = "marvell,armada-xp-cpu-clock";
107 reg = <0x18700 0x24>, <0x1c054 0x10>;
108 clocks = <&coreclk 1>;
109 };
110
Chris Packham3c265bb2019-02-16 11:48:58 +1300111 cpu-config@21000 {
112 compatible = "marvell,armada-xp-cpu-config";
113 reg = <0x21000 0x8>;
Stefan Roese39a230a2015-08-31 07:33:57 +0200114 };
115
116 eth2: ethernet@30000 {
117 compatible = "marvell,armada-xp-neta";
118 reg = <0x30000 0x4000>;
119 interrupts = <12>;
120 clocks = <&gateclk 2>;
121 status = "disabled";
122 };
123
Chris Packham3c265bb2019-02-16 11:48:58 +1300124 usb2: usb@52000 {
Stefan Roese39a230a2015-08-31 07:33:57 +0200125 compatible = "marvell,orion-ehci";
126 reg = <0x52000 0x500>;
127 interrupts = <47>;
128 clocks = <&gateclk 20>;
129 status = "disabled";
130 };
131
Chris Packham3c265bb2019-02-16 11:48:58 +1300132 xor1: xor@60900 {
Stefan Roese39a230a2015-08-31 07:33:57 +0200133 compatible = "marvell,orion-xor";
134 reg = <0x60900 0x100
135 0x60b00 0x100>;
136 clocks = <&gateclk 22>;
137 status = "okay";
138
139 xor10 {
140 interrupts = <51>;
141 dmacap,memcpy;
142 dmacap,xor;
143 };
144 xor11 {
145 interrupts = <52>;
146 dmacap,memcpy;
147 dmacap,xor;
148 dmacap,memset;
149 };
150 };
151
152 ethernet@70000 {
153 compatible = "marvell,armada-xp-neta";
154 };
155
156 ethernet@74000 {
157 compatible = "marvell,armada-xp-neta";
158 };
159
Chris Packham3c265bb2019-02-16 11:48:58 +1300160 cesa: crypto@90000 {
161 compatible = "marvell,armada-xp-crypto";
162 reg = <0x90000 0x10000>;
163 reg-names = "regs";
164 interrupts = <48>, <49>;
165 clocks = <&gateclk 23>, <&gateclk 23>;
166 clock-names = "cesa0", "cesa1";
167 marvell,crypto-srams = <&crypto_sram0>,
168 <&crypto_sram1>;
169 marvell,crypto-sram-size = <0x800>;
170 };
171
172 bm: bm@c0000 {
173 compatible = "marvell,armada-380-neta-bm";
174 reg = <0xc0000 0xac>;
175 clocks = <&gateclk 13>;
176 internal-mem = <&bm_bppi>;
177 status = "disabled";
178 };
179
180 xor0: xor@f0900 {
Stefan Roese39a230a2015-08-31 07:33:57 +0200181 compatible = "marvell,orion-xor";
182 reg = <0xF0900 0x100
183 0xF0B00 0x100>;
184 clocks = <&gateclk 28>;
185 status = "okay";
186
187 xor00 {
188 interrupts = <94>;
189 dmacap,memcpy;
190 dmacap,xor;
191 };
192 xor01 {
193 interrupts = <95>;
194 dmacap,memcpy;
195 dmacap,xor;
196 dmacap,memset;
197 };
198 };
199 };
Chris Packham3c265bb2019-02-16 11:48:58 +1300200
201 crypto_sram0: sa-sram0 {
202 compatible = "mmio-sram";
203 reg = <MBUS_ID(0x09, 0x09) 0 0x800>;
204 clocks = <&gateclk 23>;
205 #address-cells = <1>;
206 #size-cells = <1>;
207 ranges = <0 MBUS_ID(0x09, 0x09) 0 0x800>;
208 };
209
210 crypto_sram1: sa-sram1 {
211 compatible = "mmio-sram";
212 reg = <MBUS_ID(0x09, 0x05) 0 0x800>;
213 clocks = <&gateclk 23>;
214 #address-cells = <1>;
215 #size-cells = <1>;
216 ranges = <0 MBUS_ID(0x09, 0x05) 0 0x800>;
217 };
218
219 bm_bppi: bm-bppi {
220 compatible = "mmio-sram";
221 reg = <MBUS_ID(0x0c, 0x04) 0 0x100000>;
222 ranges = <0 MBUS_ID(0x0c, 0x04) 0 0x100000>;
223 #address-cells = <1>;
224 #size-cells = <1>;
225 clocks = <&gateclk 13>;
226 no-memory-wc;
227 status = "disabled";
228 };
Stefan Roese39a230a2015-08-31 07:33:57 +0200229 };
230
231 clocks {
232 /* 25 MHz reference crystal */
233 refclk: oscillator {
234 compatible = "fixed-clock";
235 #clock-cells = <0>;
236 clock-frequency = <25000000>;
237 };
238 };
239};
240
Chris Packham3c265bb2019-02-16 11:48:58 +1300241&i2c0 {
242 compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
243 reg = <0x11000 0x100>;
244};
245
246&i2c1 {
247 compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
248 reg = <0x11100 0x100>;
249};
250
251&mpic {
252 reg = <0x20a00 0x2d0>, <0x21070 0x58>;
253};
254
255&timer {
256 compatible = "marvell,armada-xp-timer";
257 clocks = <&coreclk 2>, <&refclk>;
258 clock-names = "nbclk", "fixed";
259};
260
261&watchdog {
262 compatible = "marvell,armada-xp-wdt";
263 clocks = <&coreclk 2>, <&refclk>;
264 clock-names = "nbclk", "fixed";
265};
266
267&cpurst {
268 reg = <0x20800 0x20>;
269};
270
271&usb0 {
272 clocks = <&gateclk 18>;
273};
274
275&usb1 {
276 clocks = <&gateclk 19>;
277};
278
Stefan Roese39a230a2015-08-31 07:33:57 +0200279&pinctrl {
280 ge0_gmii_pins: ge0-gmii-pins {
281 marvell,pins =
282 "mpp0", "mpp1", "mpp2", "mpp3",
283 "mpp4", "mpp5", "mpp6", "mpp7",
284 "mpp8", "mpp9", "mpp10", "mpp11",
285 "mpp12", "mpp13", "mpp14", "mpp15",
286 "mpp16", "mpp17", "mpp18", "mpp19",
287 "mpp20", "mpp21", "mpp22", "mpp23";
288 marvell,function = "ge0";
289 };
290
291 ge0_rgmii_pins: ge0-rgmii-pins {
292 marvell,pins =
293 "mpp0", "mpp1", "mpp2", "mpp3",
294 "mpp4", "mpp5", "mpp6", "mpp7",
295 "mpp8", "mpp9", "mpp10", "mpp11";
296 marvell,function = "ge0";
297 };
298
299 ge1_rgmii_pins: ge1-rgmii-pins {
300 marvell,pins =
301 "mpp12", "mpp13", "mpp14", "mpp15",
302 "mpp16", "mpp17", "mpp18", "mpp19",
303 "mpp20", "mpp21", "mpp22", "mpp23";
304 marvell,function = "ge1";
305 };
306
307 sdio_pins: sdio-pins {
308 marvell,pins = "mpp30", "mpp31", "mpp32",
309 "mpp33", "mpp34", "mpp35";
310 marvell,function = "sd0";
311 };
312
313 spi0_pins: spi0-pins {
314 marvell,pins = "mpp36", "mpp37",
315 "mpp38", "mpp39";
316 marvell,function = "spi0";
317 };
318
Chris Packham3c265bb2019-02-16 11:48:58 +1300319 spi1_pins: spi1-pins {
320 marvell,pins = "mpp13", "mpp14",
321 "mpp16", "mpp17";
322 marvell,function = "spi1";
323 };
324
Stefan Roese39a230a2015-08-31 07:33:57 +0200325 uart2_pins: uart2-pins {
326 marvell,pins = "mpp42", "mpp43";
327 marvell,function = "uart2";
328 };
329
330 uart3_pins: uart3-pins {
331 marvell,pins = "mpp44", "mpp45";
332 marvell,function = "uart3";
333 };
334};
Chris Packham3c265bb2019-02-16 11:48:58 +1300335
336&spi0 {
337 compatible = "marvell,armada-xp-spi", "marvell,orion-spi";
338 pinctrl-0 = <&spi0_pins>;
339 pinctrl-names = "default";
340};
341
342&spi1 {
343 compatible = "marvell,armada-xp-spi", "marvell,orion-spi";
344 pinctrl-0 = <&spi1_pins>;
345 pinctrl-names = "default";
346};