1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Device Tree Include file for Marvell Armada 375 family SoC
4*724ba675SRob Herring *
5*724ba675SRob Herring * Copyright (C) 2014 Marvell
6*724ba675SRob Herring *
7*724ba675SRob Herring * Gregory CLEMENT <gregory.clement@free-electrons.com>
8*724ba675SRob Herring * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
9*724ba675SRob Herring */
10*724ba675SRob Herring
11*724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h>
12*724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h>
13*724ba675SRob Herring#include <dt-bindings/phy/phy.h>
14*724ba675SRob Herring
15*724ba675SRob Herring#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
16*724ba675SRob Herring
17*724ba675SRob Herring/ {
18*724ba675SRob Herring	#address-cells = <1>;
19*724ba675SRob Herring	#size-cells = <1>;
20*724ba675SRob Herring
21*724ba675SRob Herring	model = "Marvell Armada 375 family SoC";
22*724ba675SRob Herring	compatible = "marvell,armada375";
23*724ba675SRob Herring
24*724ba675SRob Herring	aliases {
25*724ba675SRob Herring		gpio0 = &gpio0;
26*724ba675SRob Herring		gpio1 = &gpio1;
27*724ba675SRob Herring		gpio2 = &gpio2;
28*724ba675SRob Herring		serial0 = &uart0;
29*724ba675SRob Herring		serial1 = &uart1;
30*724ba675SRob Herring	};
31*724ba675SRob Herring
32*724ba675SRob Herring	clocks {
33*724ba675SRob Herring		/* 1 GHz fixed main PLL */
34*724ba675SRob Herring		mainpll: mainpll {
35*724ba675SRob Herring			compatible = "fixed-clock";
36*724ba675SRob Herring			#clock-cells = <0>;
37*724ba675SRob Herring			clock-frequency = <1000000000>;
38*724ba675SRob Herring		};
39*724ba675SRob Herring		/* 25 MHz reference crystal */
40*724ba675SRob Herring		refclk: oscillator {
41*724ba675SRob Herring			compatible = "fixed-clock";
42*724ba675SRob Herring			#clock-cells = <0>;
43*724ba675SRob Herring			clock-frequency = <25000000>;
44*724ba675SRob Herring		};
45*724ba675SRob Herring	};
46*724ba675SRob Herring
47*724ba675SRob Herring	cpus {
48*724ba675SRob Herring		#address-cells = <1>;
49*724ba675SRob Herring		#size-cells = <0>;
50*724ba675SRob Herring		enable-method = "marvell,armada-375-smp";
51*724ba675SRob Herring
52*724ba675SRob Herring		cpu0: cpu@0 {
53*724ba675SRob Herring			device_type = "cpu";
54*724ba675SRob Herring			compatible = "arm,cortex-a9";
55*724ba675SRob Herring			reg = <0>;
56*724ba675SRob Herring		};
57*724ba675SRob Herring		cpu1: cpu@1 {
58*724ba675SRob Herring			device_type = "cpu";
59*724ba675SRob Herring			compatible = "arm,cortex-a9";
60*724ba675SRob Herring			reg = <1>;
61*724ba675SRob Herring		};
62*724ba675SRob Herring	};
63*724ba675SRob Herring
64*724ba675SRob Herring	pmu {
65*724ba675SRob Herring		compatible = "arm,cortex-a9-pmu";
66*724ba675SRob Herring		interrupts-extended = <&mpic 3>;
67*724ba675SRob Herring	};
68*724ba675SRob Herring
69*724ba675SRob Herring	soc {
70*724ba675SRob Herring		compatible = "marvell,armada375-mbus", "simple-bus";
71*724ba675SRob Herring		#address-cells = <2>;
72*724ba675SRob Herring		#size-cells = <1>;
73*724ba675SRob Herring		controller = <&mbusc>;
74*724ba675SRob Herring		interrupt-parent = <&gic>;
75*724ba675SRob Herring		pcie-mem-aperture = <0xe0000000 0x8000000>;
76*724ba675SRob Herring		pcie-io-aperture  = <0xe8000000 0x100000>;
77*724ba675SRob Herring
78*724ba675SRob Herring		bootrom {
79*724ba675SRob Herring			compatible = "marvell,bootrom";
80*724ba675SRob Herring			reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>;
81*724ba675SRob Herring		};
82*724ba675SRob Herring
83*724ba675SRob Herring		devbus_bootcs: devbus-bootcs {
84*724ba675SRob Herring			compatible = "marvell,mvebu-devbus";
85*724ba675SRob Herring			reg = <MBUS_ID(0xf0, 0x01) 0x10400 0x8>;
86*724ba675SRob Herring			ranges = <0 MBUS_ID(0x01, 0x2f) 0 0xffffffff>;
87*724ba675SRob Herring			#address-cells = <1>;
88*724ba675SRob Herring			#size-cells = <1>;
89*724ba675SRob Herring			clocks = <&coreclk 0>;
90*724ba675SRob Herring			status = "disabled";
91*724ba675SRob Herring		};
92*724ba675SRob Herring
93*724ba675SRob Herring		devbus_cs0: devbus-cs0 {
94*724ba675SRob Herring			compatible = "marvell,mvebu-devbus";
95*724ba675SRob Herring			reg = <MBUS_ID(0xf0, 0x01) 0x10408 0x8>;
96*724ba675SRob Herring			ranges = <0 MBUS_ID(0x01, 0x3e) 0 0xffffffff>;
97*724ba675SRob Herring			#address-cells = <1>;
98*724ba675SRob Herring			#size-cells = <1>;
99*724ba675SRob Herring			clocks = <&coreclk 0>;
100*724ba675SRob Herring			status = "disabled";
101*724ba675SRob Herring		};
102*724ba675SRob Herring
103*724ba675SRob Herring		devbus_cs1: devbus-cs1 {
104*724ba675SRob Herring			compatible = "marvell,mvebu-devbus";
105*724ba675SRob Herring			reg = <MBUS_ID(0xf0, 0x01) 0x10410 0x8>;
106*724ba675SRob Herring			ranges = <0 MBUS_ID(0x01, 0x3d) 0 0xffffffff>;
107*724ba675SRob Herring			#address-cells = <1>;
108*724ba675SRob Herring			#size-cells = <1>;
109*724ba675SRob Herring			clocks = <&coreclk 0>;
110*724ba675SRob Herring			status = "disabled";
111*724ba675SRob Herring		};
112*724ba675SRob Herring
113*724ba675SRob Herring		devbus_cs2: devbus-cs2 {
114*724ba675SRob Herring			compatible = "marvell,mvebu-devbus";
115*724ba675SRob Herring			reg = <MBUS_ID(0xf0, 0x01) 0x10418 0x8>;
116*724ba675SRob Herring			ranges = <0 MBUS_ID(0x01, 0x3b) 0 0xffffffff>;
117*724ba675SRob Herring			#address-cells = <1>;
118*724ba675SRob Herring			#size-cells = <1>;
119*724ba675SRob Herring			clocks = <&coreclk 0>;
120*724ba675SRob Herring			status = "disabled";
121*724ba675SRob Herring		};
122*724ba675SRob Herring
123*724ba675SRob Herring		devbus_cs3: devbus-cs3 {
124*724ba675SRob Herring			compatible = "marvell,mvebu-devbus";
125*724ba675SRob Herring			reg = <MBUS_ID(0xf0, 0x01) 0x10420 0x8>;
126*724ba675SRob Herring			ranges = <0 MBUS_ID(0x01, 0x37) 0 0xffffffff>;
127*724ba675SRob Herring			#address-cells = <1>;
128*724ba675SRob Herring			#size-cells = <1>;
129*724ba675SRob Herring			clocks = <&coreclk 0>;
130*724ba675SRob Herring			status = "disabled";
131*724ba675SRob Herring		};
132*724ba675SRob Herring
133*724ba675SRob Herring		internal-regs {
134*724ba675SRob Herring			compatible = "simple-bus";
135*724ba675SRob Herring			#address-cells = <1>;
136*724ba675SRob Herring			#size-cells = <1>;
137*724ba675SRob Herring			ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
138*724ba675SRob Herring
139*724ba675SRob Herring			L2: cache-controller@8000 {
140*724ba675SRob Herring				compatible = "arm,pl310-cache";
141*724ba675SRob Herring				reg = <0x8000 0x1000>;
142*724ba675SRob Herring				cache-unified;
143*724ba675SRob Herring				cache-level = <2>;
144*724ba675SRob Herring				arm,double-linefill-incr = <0>;
145*724ba675SRob Herring				arm,double-linefill-wrap = <0>;
146*724ba675SRob Herring				arm,double-linefill = <0>;
147*724ba675SRob Herring				prefetch-data = <1>;
148*724ba675SRob Herring			};
149*724ba675SRob Herring
150*724ba675SRob Herring			scu: scu@c000 {
151*724ba675SRob Herring				compatible = "arm,cortex-a9-scu";
152*724ba675SRob Herring				reg = <0xc000 0x58>;
153*724ba675SRob Herring			};
154*724ba675SRob Herring
155*724ba675SRob Herring			timer0: timer@c600 {
156*724ba675SRob Herring				compatible = "arm,cortex-a9-twd-timer";
157*724ba675SRob Herring				reg = <0xc600 0x20>;
158*724ba675SRob Herring				interrupts = <GIC_PPI 13 (IRQ_TYPE_EDGE_RISING | GIC_CPU_MASK_SIMPLE(2))>;
159*724ba675SRob Herring				clocks = <&coreclk 2>;
160*724ba675SRob Herring			};
161*724ba675SRob Herring
162*724ba675SRob Herring			gic: interrupt-controller@d000 {
163*724ba675SRob Herring				compatible = "arm,cortex-a9-gic";
164*724ba675SRob Herring				#interrupt-cells = <3>;
165*724ba675SRob Herring				#size-cells = <0>;
166*724ba675SRob Herring				interrupt-controller;
167*724ba675SRob Herring				reg = <0xd000 0x1000>,
168*724ba675SRob Herring				      <0xc100 0x100>;
169*724ba675SRob Herring			};
170*724ba675SRob Herring
171*724ba675SRob Herring			mdio: mdio@c0054 {
172*724ba675SRob Herring				#address-cells = <1>;
173*724ba675SRob Herring				#size-cells = <0>;
174*724ba675SRob Herring				compatible = "marvell,orion-mdio";
175*724ba675SRob Herring				reg = <0xc0054 0x4>;
176*724ba675SRob Herring				clocks = <&gateclk 19>;
177*724ba675SRob Herring			};
178*724ba675SRob Herring
179*724ba675SRob Herring			/* Network controller */
180*724ba675SRob Herring			ethernet: ethernet@f0000 {
181*724ba675SRob Herring				#address-cells = <1>;
182*724ba675SRob Herring				#size-cells = <0>;
183*724ba675SRob Herring				compatible = "marvell,armada-375-pp2";
184*724ba675SRob Herring				reg = <0xf0000 0xa000>, /* Packet Processor regs */
185*724ba675SRob Herring				      <0xc0000 0x3060>, /* LMS regs */
186*724ba675SRob Herring				      <0xc4000 0x100>,  /* eth0 regs */
187*724ba675SRob Herring				      <0xc5000 0x100>;  /* eth1 regs */
188*724ba675SRob Herring				clocks = <&gateclk 3>, <&gateclk 19>;
189*724ba675SRob Herring				clock-names = "pp_clk", "gop_clk";
190*724ba675SRob Herring				status = "disabled";
191*724ba675SRob Herring
192*724ba675SRob Herring				eth0: ethernet-port@0 {
193*724ba675SRob Herring					interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
194*724ba675SRob Herring					reg = <0>;
195*724ba675SRob Herring					port-id = <0>; /* For backward compatibility. */
196*724ba675SRob Herring					status = "disabled";
197*724ba675SRob Herring				};
198*724ba675SRob Herring
199*724ba675SRob Herring				eth1: ethernet-port@1 {
200*724ba675SRob Herring					interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
201*724ba675SRob Herring					reg = <1>;
202*724ba675SRob Herring					port-id = <1>; /* For backward compatibility. */
203*724ba675SRob Herring					status = "disabled";
204*724ba675SRob Herring				};
205*724ba675SRob Herring			};
206*724ba675SRob Herring
207*724ba675SRob Herring			rtc: rtc@10300 {
208*724ba675SRob Herring				compatible = "marvell,orion-rtc";
209*724ba675SRob Herring				reg = <0x10300 0x20>;
210*724ba675SRob Herring				interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
211*724ba675SRob Herring			};
212*724ba675SRob Herring
213*724ba675SRob Herring			spi0: spi@10600 {
214*724ba675SRob Herring				compatible = "marvell,armada-375-spi",
215*724ba675SRob Herring						"marvell,orion-spi";
216*724ba675SRob Herring				reg = <0x10600 0x50>;
217*724ba675SRob Herring				#address-cells = <1>;
218*724ba675SRob Herring				#size-cells = <0>;
219*724ba675SRob Herring				cell-index = <0>;
220*724ba675SRob Herring				interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
221*724ba675SRob Herring				clocks = <&coreclk 0>;
222*724ba675SRob Herring				status = "disabled";
223*724ba675SRob Herring			};
224*724ba675SRob Herring
225*724ba675SRob Herring			spi1: spi@10680 {
226*724ba675SRob Herring				compatible = "marvell,armada-375-spi",
227*724ba675SRob Herring						"marvell,orion-spi";
228*724ba675SRob Herring				reg = <0x10680 0x50>;
229*724ba675SRob Herring				#address-cells = <1>;
230*724ba675SRob Herring				#size-cells = <0>;
231*724ba675SRob Herring				cell-index = <1>;
232*724ba675SRob Herring				interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
233*724ba675SRob Herring				clocks = <&coreclk 0>;
234*724ba675SRob Herring				status = "disabled";
235*724ba675SRob Herring			};
236*724ba675SRob Herring
237*724ba675SRob Herring			i2c0: i2c@11000 {
238*724ba675SRob Herring				compatible = "marvell,mv64xxx-i2c";
239*724ba675SRob Herring				reg = <0x11000 0x20>;
240*724ba675SRob Herring				#address-cells = <1>;
241*724ba675SRob Herring				#size-cells = <0>;
242*724ba675SRob Herring				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
243*724ba675SRob Herring				clocks = <&coreclk 0>;
244*724ba675SRob Herring				status = "disabled";
245*724ba675SRob Herring			};
246*724ba675SRob Herring
247*724ba675SRob Herring			i2c1: i2c@11100 {
248*724ba675SRob Herring				compatible = "marvell,mv64xxx-i2c";
249*724ba675SRob Herring				reg = <0x11100 0x20>;
250*724ba675SRob Herring				#address-cells = <1>;
251*724ba675SRob Herring				#size-cells = <0>;
252*724ba675SRob Herring				interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
253*724ba675SRob Herring				clocks = <&coreclk 0>;
254*724ba675SRob Herring				status = "disabled";
255*724ba675SRob Herring			};
256*724ba675SRob Herring
257*724ba675SRob Herring			uart0: serial@12000 {
258*724ba675SRob Herring				compatible = "snps,dw-apb-uart";
259*724ba675SRob Herring				reg = <0x12000 0x100>;
260*724ba675SRob Herring				reg-shift = <2>;
261*724ba675SRob Herring				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
262*724ba675SRob Herring				reg-io-width = <1>;
263*724ba675SRob Herring				clocks = <&coreclk 0>;
264*724ba675SRob Herring				status = "disabled";
265*724ba675SRob Herring			};
266*724ba675SRob Herring
267*724ba675SRob Herring			uart1: serial@12100 {
268*724ba675SRob Herring				compatible = "snps,dw-apb-uart";
269*724ba675SRob Herring				reg = <0x12100 0x100>;
270*724ba675SRob Herring				reg-shift = <2>;
271*724ba675SRob Herring				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
272*724ba675SRob Herring				reg-io-width = <1>;
273*724ba675SRob Herring				clocks = <&coreclk 0>;
274*724ba675SRob Herring				status = "disabled";
275*724ba675SRob Herring			};
276*724ba675SRob Herring
277*724ba675SRob Herring			pinctrl: pinctrl@18000 {
278*724ba675SRob Herring				compatible = "marvell,mv88f6720-pinctrl";
279*724ba675SRob Herring				reg = <0x18000 0x24>;
280*724ba675SRob Herring
281*724ba675SRob Herring				i2c0_pins: i2c0-pins {
282*724ba675SRob Herring					marvell,pins = "mpp14",  "mpp15";
283*724ba675SRob Herring					marvell,function = "i2c0";
284*724ba675SRob Herring				};
285*724ba675SRob Herring
286*724ba675SRob Herring				i2c1_pins: i2c1-pins {
287*724ba675SRob Herring					marvell,pins = "mpp61",  "mpp62";
288*724ba675SRob Herring					marvell,function = "i2c1";
289*724ba675SRob Herring				};
290*724ba675SRob Herring
291*724ba675SRob Herring				nand_pins: nand-pins {
292*724ba675SRob Herring					marvell,pins = "mpp0", "mpp1", "mpp2",
293*724ba675SRob Herring						"mpp3", "mpp4", "mpp5",
294*724ba675SRob Herring						"mpp6", "mpp7", "mpp8",
295*724ba675SRob Herring						"mpp9", "mpp10", "mpp11",
296*724ba675SRob Herring						"mpp12", "mpp13";
297*724ba675SRob Herring					marvell,function = "nand";
298*724ba675SRob Herring				};
299*724ba675SRob Herring
300*724ba675SRob Herring				sdio_pins: sdio-pins {
301*724ba675SRob Herring					marvell,pins = "mpp24",  "mpp25", "mpp26",
302*724ba675SRob Herring						     "mpp27", "mpp28", "mpp29";
303*724ba675SRob Herring					marvell,function = "sd";
304*724ba675SRob Herring				};
305*724ba675SRob Herring
306*724ba675SRob Herring				spi0_pins: spi0-pins {
307*724ba675SRob Herring					marvell,pins = "mpp0",  "mpp1", "mpp4",
308*724ba675SRob Herring						     "mpp5", "mpp8", "mpp9";
309*724ba675SRob Herring					marvell,function = "spi0";
310*724ba675SRob Herring				};
311*724ba675SRob Herring			};
312*724ba675SRob Herring
313*724ba675SRob Herring			gpio0: gpio@18100 {
314*724ba675SRob Herring				compatible = "marvell,orion-gpio";
315*724ba675SRob Herring				reg = <0x18100 0x40>;
316*724ba675SRob Herring				ngpios = <32>;
317*724ba675SRob Herring				gpio-controller;
318*724ba675SRob Herring				#gpio-cells = <2>;
319*724ba675SRob Herring				interrupt-controller;
320*724ba675SRob Herring				#interrupt-cells = <2>;
321*724ba675SRob Herring				interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
322*724ba675SRob Herring					     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
323*724ba675SRob Herring					     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
324*724ba675SRob Herring					     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
325*724ba675SRob Herring			};
326*724ba675SRob Herring
327*724ba675SRob Herring			gpio1: gpio@18140 {
328*724ba675SRob Herring				compatible = "marvell,orion-gpio";
329*724ba675SRob Herring				reg = <0x18140 0x40>;
330*724ba675SRob Herring				ngpios = <32>;
331*724ba675SRob Herring				gpio-controller;
332*724ba675SRob Herring				#gpio-cells = <2>;
333*724ba675SRob Herring				interrupt-controller;
334*724ba675SRob Herring				#interrupt-cells = <2>;
335*724ba675SRob Herring				interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
336*724ba675SRob Herring					     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
337*724ba675SRob Herring					     <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
338*724ba675SRob Herring					     <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
339*724ba675SRob Herring			};
340*724ba675SRob Herring
341*724ba675SRob Herring			gpio2: gpio@18180 {
342*724ba675SRob Herring				compatible = "marvell,orion-gpio";
343*724ba675SRob Herring				reg = <0x18180 0x40>;
344*724ba675SRob Herring				ngpios = <3>;
345*724ba675SRob Herring				gpio-controller;
346*724ba675SRob Herring				#gpio-cells = <2>;
347*724ba675SRob Herring				interrupt-controller;
348*724ba675SRob Herring				#interrupt-cells = <2>;
349*724ba675SRob Herring				interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
350*724ba675SRob Herring			};
351*724ba675SRob Herring
352*724ba675SRob Herring			systemc: system-controller@18200 {
353*724ba675SRob Herring				compatible = "marvell,armada-375-system-controller";
354*724ba675SRob Herring				reg = <0x18200 0x100>;
355*724ba675SRob Herring			};
356*724ba675SRob Herring
357*724ba675SRob Herring			gateclk: clock-gating-control@18220 {
358*724ba675SRob Herring				compatible = "marvell,armada-375-gating-clock";
359*724ba675SRob Herring				reg = <0x18220 0x4>;
360*724ba675SRob Herring				clocks = <&coreclk 0>;
361*724ba675SRob Herring				#clock-cells = <1>;
362*724ba675SRob Herring			};
363*724ba675SRob Herring
364*724ba675SRob Herring			usbcluster: usb-cluster@18400 {
365*724ba675SRob Herring				compatible = "marvell,armada-375-usb-cluster";
366*724ba675SRob Herring				reg = <0x18400 0x4>;
367*724ba675SRob Herring				#phy-cells = <1>;
368*724ba675SRob Herring			};
369*724ba675SRob Herring
370*724ba675SRob Herring			mbusc: mbus-controller@20000 {
371*724ba675SRob Herring				compatible = "marvell,mbus-controller";
372*724ba675SRob Herring				reg = <0x20000 0x100>, <0x20180 0x20>;
373*724ba675SRob Herring			};
374*724ba675SRob Herring
375*724ba675SRob Herring			mpic: interrupt-controller@20a00 {
376*724ba675SRob Herring				compatible = "marvell,mpic";
377*724ba675SRob Herring				reg = <0x20a00 0x2d0>, <0x21070 0x58>;
378*724ba675SRob Herring				#interrupt-cells = <1>;
379*724ba675SRob Herring				#size-cells = <1>;
380*724ba675SRob Herring				interrupt-controller;
381*724ba675SRob Herring				msi-controller;
382*724ba675SRob Herring				interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
383*724ba675SRob Herring			};
384*724ba675SRob Herring
385*724ba675SRob Herring			timer1: timer@20300 {
386*724ba675SRob Herring				compatible = "marvell,armada-375-timer", "marvell,armada-370-timer";
387*724ba675SRob Herring				reg = <0x20300 0x30>, <0x21040 0x30>;
388*724ba675SRob Herring				interrupts-extended = <&gic  GIC_SPI  8 IRQ_TYPE_LEVEL_HIGH>,
389*724ba675SRob Herring						      <&gic  GIC_SPI  9 IRQ_TYPE_LEVEL_HIGH>,
390*724ba675SRob Herring						      <&gic  GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
391*724ba675SRob Herring						      <&gic  GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
392*724ba675SRob Herring						      <&mpic 5>,
393*724ba675SRob Herring						      <&mpic 6>;
394*724ba675SRob Herring				clocks = <&coreclk 0>, <&refclk>;
395*724ba675SRob Herring				clock-names = "nbclk", "fixed";
396*724ba675SRob Herring			};
397*724ba675SRob Herring
398*724ba675SRob Herring			watchdog: watchdog@20300 {
399*724ba675SRob Herring				compatible = "marvell,armada-375-wdt";
400*724ba675SRob Herring				reg = <0x20300 0x34>, <0x20704 0x4>, <0x18254 0x4>;
401*724ba675SRob Herring				clocks = <&coreclk 0>, <&refclk>;
402*724ba675SRob Herring				clock-names = "nbclk", "fixed";
403*724ba675SRob Herring			};
404*724ba675SRob Herring
405*724ba675SRob Herring			cpurst: cpurst@20800 {
406*724ba675SRob Herring				compatible = "marvell,armada-370-cpu-reset";
407*724ba675SRob Herring				reg = <0x20800 0x10>;
408*724ba675SRob Herring			};
409*724ba675SRob Herring
410*724ba675SRob Herring			coherencyfab: coherency-fabric@21010 {
411*724ba675SRob Herring				compatible = "marvell,armada-375-coherency-fabric";
412*724ba675SRob Herring				reg = <0x21010 0x1c>;
413*724ba675SRob Herring			};
414*724ba675SRob Herring
415*724ba675SRob Herring			usb0: usb@50000 {
416*724ba675SRob Herring				compatible = "marvell,orion-ehci";
417*724ba675SRob Herring				reg = <0x50000 0x500>;
418*724ba675SRob Herring				interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
419*724ba675SRob Herring				clocks = <&gateclk 18>;
420*724ba675SRob Herring				phys = <&usbcluster PHY_TYPE_USB2>;
421*724ba675SRob Herring				phy-names = "usb";
422*724ba675SRob Herring				status = "disabled";
423*724ba675SRob Herring			};
424*724ba675SRob Herring
425*724ba675SRob Herring			usb1: usb@54000 {
426*724ba675SRob Herring				compatible = "marvell,orion-ehci";
427*724ba675SRob Herring				reg = <0x54000 0x500>;
428*724ba675SRob Herring				interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
429*724ba675SRob Herring				clocks = <&gateclk 26>;
430*724ba675SRob Herring				status = "disabled";
431*724ba675SRob Herring			};
432*724ba675SRob Herring
433*724ba675SRob Herring			usb2: usb@58000 {
434*724ba675SRob Herring				compatible = "marvell,armada-375-xhci";
435*724ba675SRob Herring				reg = <0x58000 0x20000>,<0x5b880 0x80>;
436*724ba675SRob Herring				interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
437*724ba675SRob Herring				clocks = <&gateclk 16>;
438*724ba675SRob Herring				phys = <&usbcluster PHY_TYPE_USB3>;
439*724ba675SRob Herring				phy-names = "usb";
440*724ba675SRob Herring				status = "disabled";
441*724ba675SRob Herring			};
442*724ba675SRob Herring
443*724ba675SRob Herring			xor0: xor@60800 {
444*724ba675SRob Herring				compatible = "marvell,orion-xor";
445*724ba675SRob Herring				reg = <0x60800 0x100
446*724ba675SRob Herring				       0x60A00 0x100>;
447*724ba675SRob Herring				clocks = <&gateclk 22>;
448*724ba675SRob Herring				status = "okay";
449*724ba675SRob Herring
450*724ba675SRob Herring				xor00 {
451*724ba675SRob Herring					interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
452*724ba675SRob Herring					dmacap,memcpy;
453*724ba675SRob Herring					dmacap,xor;
454*724ba675SRob Herring				};
455*724ba675SRob Herring				xor01 {
456*724ba675SRob Herring					interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
457*724ba675SRob Herring					dmacap,memcpy;
458*724ba675SRob Herring					dmacap,xor;
459*724ba675SRob Herring					dmacap,memset;
460*724ba675SRob Herring				};
461*724ba675SRob Herring			};
462*724ba675SRob Herring
463*724ba675SRob Herring			xor1: xor@60900 {
464*724ba675SRob Herring				compatible = "marvell,orion-xor";
465*724ba675SRob Herring				reg = <0x60900 0x100
466*724ba675SRob Herring				       0x60b00 0x100>;
467*724ba675SRob Herring				clocks = <&gateclk 23>;
468*724ba675SRob Herring				status = "okay";
469*724ba675SRob Herring
470*724ba675SRob Herring				xor10 {
471*724ba675SRob Herring					interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
472*724ba675SRob Herring					dmacap,memcpy;
473*724ba675SRob Herring					dmacap,xor;
474*724ba675SRob Herring				};
475*724ba675SRob Herring				xor11 {
476*724ba675SRob Herring					interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
477*724ba675SRob Herring					dmacap,memcpy;
478*724ba675SRob Herring					dmacap,xor;
479*724ba675SRob Herring					dmacap,memset;
480*724ba675SRob Herring				};
481*724ba675SRob Herring			};
482*724ba675SRob Herring
483*724ba675SRob Herring			cesa: crypto@90000 {
484*724ba675SRob Herring				compatible = "marvell,armada-375-crypto";
485*724ba675SRob Herring				reg = <0x90000 0x10000>;
486*724ba675SRob Herring				reg-names = "regs";
487*724ba675SRob Herring				interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
488*724ba675SRob Herring					     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
489*724ba675SRob Herring				clocks = <&gateclk 30>, <&gateclk 31>,
490*724ba675SRob Herring					 <&gateclk 28>, <&gateclk 29>;
491*724ba675SRob Herring				clock-names = "cesa0", "cesa1",
492*724ba675SRob Herring					      "cesaz0", "cesaz1";
493*724ba675SRob Herring				marvell,crypto-srams = <&crypto_sram0>,
494*724ba675SRob Herring						       <&crypto_sram1>;
495*724ba675SRob Herring				marvell,crypto-sram-size = <0x800>;
496*724ba675SRob Herring			};
497*724ba675SRob Herring
498*724ba675SRob Herring			sata: sata@a0000 {
499*724ba675SRob Herring				compatible = "marvell,armada-370-sata";
500*724ba675SRob Herring				reg = <0xa0000 0x5000>;
501*724ba675SRob Herring				interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
502*724ba675SRob Herring				clocks = <&gateclk 14>, <&gateclk 20>;
503*724ba675SRob Herring				clock-names = "0", "1";
504*724ba675SRob Herring				status = "disabled";
505*724ba675SRob Herring			};
506*724ba675SRob Herring
507*724ba675SRob Herring			nand_controller: nand-controller@d0000 {
508*724ba675SRob Herring				compatible = "marvell,armada370-nand-controller";
509*724ba675SRob Herring				reg = <0xd0000 0x54>;
510*724ba675SRob Herring				#address-cells = <1>;
511*724ba675SRob Herring				#size-cells = <0>;
512*724ba675SRob Herring				interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
513*724ba675SRob Herring				clocks = <&gateclk 11>;
514*724ba675SRob Herring				status = "disabled";
515*724ba675SRob Herring			};
516*724ba675SRob Herring
517*724ba675SRob Herring			sdio: mvsdio@d4000 {
518*724ba675SRob Herring				compatible = "marvell,orion-sdio";
519*724ba675SRob Herring				reg = <0xd4000 0x200>;
520*724ba675SRob Herring				interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
521*724ba675SRob Herring				clocks = <&gateclk 17>;
522*724ba675SRob Herring				bus-width = <4>;
523*724ba675SRob Herring				cap-sdio-irq;
524*724ba675SRob Herring				cap-sd-highspeed;
525*724ba675SRob Herring				cap-mmc-highspeed;
526*724ba675SRob Herring				status = "disabled";
527*724ba675SRob Herring			};
528*724ba675SRob Herring
529*724ba675SRob Herring			thermal: thermal@e8078 {
530*724ba675SRob Herring				compatible = "marvell,armada375-thermal";
531*724ba675SRob Herring				reg = <0xe8078 0x4>, <0xe807c 0x8>;
532*724ba675SRob Herring				status = "okay";
533*724ba675SRob Herring			};
534*724ba675SRob Herring
535*724ba675SRob Herring			coreclk: mvebu-sar@e8204 {
536*724ba675SRob Herring				compatible = "marvell,armada-375-core-clock";
537*724ba675SRob Herring				reg = <0xe8204 0x04>;
538*724ba675SRob Herring				#clock-cells = <1>;
539*724ba675SRob Herring			};
540*724ba675SRob Herring
541*724ba675SRob Herring			coredivclk: corediv-clock@e8250 {
542*724ba675SRob Herring				compatible = "marvell,armada-375-corediv-clock";
543*724ba675SRob Herring				reg = <0xe8250 0xc>;
544*724ba675SRob Herring				#clock-cells = <1>;
545*724ba675SRob Herring				clocks = <&mainpll>;
546*724ba675SRob Herring				clock-output-names = "nand";
547*724ba675SRob Herring			};
548*724ba675SRob Herring		};
549*724ba675SRob Herring
550*724ba675SRob Herring		pciec: pcie@82000000 {
551*724ba675SRob Herring			compatible = "marvell,armada-370-pcie";
552*724ba675SRob Herring			status = "disabled";
553*724ba675SRob Herring			device_type = "pci";
554*724ba675SRob Herring
555*724ba675SRob Herring			#address-cells = <3>;
556*724ba675SRob Herring			#size-cells = <2>;
557*724ba675SRob Herring
558*724ba675SRob Herring			msi-parent = <&mpic>;
559*724ba675SRob Herring			bus-range = <0x00 0xff>;
560*724ba675SRob Herring
561*724ba675SRob Herring			ranges =
562*724ba675SRob Herring			       <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000
563*724ba675SRob Herring				0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000
564*724ba675SRob Herring				0x82000000 0x1 0       MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0 MEM */
565*724ba675SRob Herring				0x81000000 0x1 0       MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0 IO  */
566*724ba675SRob Herring				0x82000000 0x2 0       MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 1 MEM */
567*724ba675SRob Herring				0x81000000 0x2 0       MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 1 IO  */>;
568*724ba675SRob Herring
569*724ba675SRob Herring			pcie0: pcie@1,0 {
570*724ba675SRob Herring				device_type = "pci";
571*724ba675SRob Herring				assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
572*724ba675SRob Herring				reg = <0x0800 0 0 0 0>;
573*724ba675SRob Herring				#address-cells = <3>;
574*724ba675SRob Herring				#size-cells = <2>;
575*724ba675SRob Herring				interrupt-names = "intx";
576*724ba675SRob Herring				interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
577*724ba675SRob Herring				#interrupt-cells = <1>;
578*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
579*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x1 0 1 0>;
580*724ba675SRob Herring				bus-range = <0x00 0xff>;
581*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
582*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie0_intc 0>,
583*724ba675SRob Herring						<0 0 0 2 &pcie0_intc 1>,
584*724ba675SRob Herring						<0 0 0 3 &pcie0_intc 2>,
585*724ba675SRob Herring						<0 0 0 4 &pcie0_intc 3>;
586*724ba675SRob Herring				marvell,pcie-port = <0>;
587*724ba675SRob Herring				marvell,pcie-lane = <0>;
588*724ba675SRob Herring				clocks = <&gateclk 5>;
589*724ba675SRob Herring				status = "disabled";
590*724ba675SRob Herring
591*724ba675SRob Herring				pcie0_intc: interrupt-controller {
592*724ba675SRob Herring					interrupt-controller;
593*724ba675SRob Herring					#interrupt-cells = <1>;
594*724ba675SRob Herring				};
595*724ba675SRob Herring			};
596*724ba675SRob Herring
597*724ba675SRob Herring			pcie1: pcie@2,0 {
598*724ba675SRob Herring				device_type = "pci";
599*724ba675SRob Herring				assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
600*724ba675SRob Herring				reg = <0x1000 0 0 0 0>;
601*724ba675SRob Herring				#address-cells = <3>;
602*724ba675SRob Herring				#size-cells = <2>;
603*724ba675SRob Herring				interrupt-names = "intx";
604*724ba675SRob Herring				interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
605*724ba675SRob Herring				#interrupt-cells = <1>;
606*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
607*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x2 0 1 0>;
608*724ba675SRob Herring				bus-range = <0x00 0xff>;
609*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
610*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie1_intc 0>,
611*724ba675SRob Herring						<0 0 0 2 &pcie1_intc 1>,
612*724ba675SRob Herring						<0 0 0 3 &pcie1_intc 2>,
613*724ba675SRob Herring						<0 0 0 4 &pcie1_intc 3>;
614*724ba675SRob Herring				marvell,pcie-port = <0>;
615*724ba675SRob Herring				marvell,pcie-lane = <1>;
616*724ba675SRob Herring				clocks = <&gateclk 6>;
617*724ba675SRob Herring				status = "disabled";
618*724ba675SRob Herring
619*724ba675SRob Herring				pcie1_intc: interrupt-controller {
620*724ba675SRob Herring					interrupt-controller;
621*724ba675SRob Herring					#interrupt-cells = <1>;
622*724ba675SRob Herring				};
623*724ba675SRob Herring			};
624*724ba675SRob Herring
625*724ba675SRob Herring		};
626*724ba675SRob Herring
627*724ba675SRob Herring		crypto_sram0: sa-sram0 {
628*724ba675SRob Herring			compatible = "mmio-sram";
629*724ba675SRob Herring			reg = <MBUS_ID(0x09, 0x09) 0 0x800>;
630*724ba675SRob Herring			clocks = <&gateclk 30>;
631*724ba675SRob Herring			#address-cells = <1>;
632*724ba675SRob Herring			#size-cells = <1>;
633*724ba675SRob Herring			ranges = <0 MBUS_ID(0x09, 0x09) 0 0x800>;
634*724ba675SRob Herring		};
635*724ba675SRob Herring
636*724ba675SRob Herring		crypto_sram1: sa-sram1 {
637*724ba675SRob Herring			compatible = "mmio-sram";
638*724ba675SRob Herring			reg = <MBUS_ID(0x09, 0x05) 0 0x800>;
639*724ba675SRob Herring			clocks = <&gateclk 31>;
640*724ba675SRob Herring			#address-cells = <1>;
641*724ba675SRob Herring			#size-cells = <1>;
642*724ba675SRob Herring			ranges = <0 MBUS_ID(0x09, 0x05) 0 0x800>;
643*724ba675SRob Herring		};
644*724ba675SRob Herring	};
645*724ba675SRob Herring};
646