xref: /linux/arch/arm/boot/dts/marvell/mmp3.dtsi (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0+ OR MIT
2*724ba675SRob Herring/*
3*724ba675SRob Herring *  Copyright (C) 2019 Lubomir Rintel <lkundrak@v3.sk>
4*724ba675SRob Herring */
5*724ba675SRob Herring
6*724ba675SRob Herring#include <dt-bindings/clock/marvell,mmp2.h>
7*724ba675SRob Herring#include <dt-bindings/power/marvell,mmp2.h>
8*724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h>
9*724ba675SRob Herring
10*724ba675SRob Herring/ {
11*724ba675SRob Herring	#address-cells = <1>;
12*724ba675SRob Herring	#size-cells = <1>;
13*724ba675SRob Herring
14*724ba675SRob Herring	cpus {
15*724ba675SRob Herring		#address-cells = <1>;
16*724ba675SRob Herring		#size-cells = <0>;
17*724ba675SRob Herring		enable-method = "marvell,mmp3-smp";
18*724ba675SRob Herring
19*724ba675SRob Herring		cpu@0 {
20*724ba675SRob Herring			compatible = "marvell,pj4b";
21*724ba675SRob Herring			device_type = "cpu";
22*724ba675SRob Herring			next-level-cache = <&l2>;
23*724ba675SRob Herring			reg = <0>;
24*724ba675SRob Herring		};
25*724ba675SRob Herring
26*724ba675SRob Herring		cpu@1 {
27*724ba675SRob Herring			compatible = "marvell,pj4b";
28*724ba675SRob Herring			device_type = "cpu";
29*724ba675SRob Herring			next-level-cache = <&l2>;
30*724ba675SRob Herring			reg = <1>;
31*724ba675SRob Herring		};
32*724ba675SRob Herring	};
33*724ba675SRob Herring
34*724ba675SRob Herring	soc {
35*724ba675SRob Herring		#address-cells = <1>;
36*724ba675SRob Herring		#size-cells = <1>;
37*724ba675SRob Herring		compatible = "simple-bus";
38*724ba675SRob Herring		interrupt-parent = <&gic>;
39*724ba675SRob Herring		ranges;
40*724ba675SRob Herring
41*724ba675SRob Herring		axi@d4200000 {
42*724ba675SRob Herring			compatible = "simple-bus";
43*724ba675SRob Herring			#address-cells = <1>;
44*724ba675SRob Herring			#size-cells = <1>;
45*724ba675SRob Herring			reg = <0xd4200000 0x00200000>;
46*724ba675SRob Herring			ranges;
47*724ba675SRob Herring
48*724ba675SRob Herring			interrupt-controller@d4282000 {
49*724ba675SRob Herring				compatible = "marvell,mmp3-intc";
50*724ba675SRob Herring				interrupt-controller;
51*724ba675SRob Herring				#interrupt-cells = <1>;
52*724ba675SRob Herring				reg = <0xd4282000 0x1000>,
53*724ba675SRob Herring				      <0xd4284000 0x100>;
54*724ba675SRob Herring				mrvl,intc-nr-irqs = <64>;
55*724ba675SRob Herring			};
56*724ba675SRob Herring
57*724ba675SRob Herring			pmic_mux: interrupt-controller@d4282150 {
58*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
59*724ba675SRob Herring				interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
60*724ba675SRob Herring				interrupt-controller;
61*724ba675SRob Herring				#interrupt-cells = <1>;
62*724ba675SRob Herring				reg = <0x150 0x4>, <0x168 0x4>;
63*724ba675SRob Herring				reg-names = "mux status", "mux mask";
64*724ba675SRob Herring				mrvl,intc-nr-irqs = <4>;
65*724ba675SRob Herring			};
66*724ba675SRob Herring
67*724ba675SRob Herring			rtc_mux: interrupt-controller@d4282154 {
68*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
69*724ba675SRob Herring				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
70*724ba675SRob Herring				interrupt-controller;
71*724ba675SRob Herring				#interrupt-cells = <1>;
72*724ba675SRob Herring				reg = <0x154 0x4>, <0x16c 0x4>;
73*724ba675SRob Herring				reg-names = "mux status", "mux mask";
74*724ba675SRob Herring				mrvl,intc-nr-irqs = <2>;
75*724ba675SRob Herring			};
76*724ba675SRob Herring
77*724ba675SRob Herring			hsi3_mux: interrupt-controller@d42821bc {
78*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
79*724ba675SRob Herring				interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
80*724ba675SRob Herring				interrupt-controller;
81*724ba675SRob Herring				#interrupt-cells = <1>;
82*724ba675SRob Herring				reg = <0x1bc 0x4>, <0x1a4 0x4>;
83*724ba675SRob Herring				reg-names = "mux status", "mux mask";
84*724ba675SRob Herring				mrvl,intc-nr-irqs = <3>;
85*724ba675SRob Herring			};
86*724ba675SRob Herring
87*724ba675SRob Herring			gpu_mux: interrupt-controller@d42821c0 {
88*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
89*724ba675SRob Herring				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
90*724ba675SRob Herring				interrupt-controller;
91*724ba675SRob Herring				#interrupt-cells = <1>;
92*724ba675SRob Herring				reg = <0x1c0 0x4>, <0x1a8 0x4>;
93*724ba675SRob Herring				reg-names = "mux status", "mux mask";
94*724ba675SRob Herring				mrvl,intc-nr-irqs = <3>;
95*724ba675SRob Herring			};
96*724ba675SRob Herring
97*724ba675SRob Herring			twsi_mux: interrupt-controller@d4282158 {
98*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
99*724ba675SRob Herring				interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
100*724ba675SRob Herring				interrupt-controller;
101*724ba675SRob Herring				#interrupt-cells = <1>;
102*724ba675SRob Herring				reg = <0x158 0x4>, <0x170 0x4>;
103*724ba675SRob Herring				reg-names = "mux status", "mux mask";
104*724ba675SRob Herring				mrvl,intc-nr-irqs = <5>;
105*724ba675SRob Herring			};
106*724ba675SRob Herring
107*724ba675SRob Herring			hsi2_mux: interrupt-controller@d42821c4 {
108*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
109*724ba675SRob Herring				interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
110*724ba675SRob Herring				interrupt-controller;
111*724ba675SRob Herring				#interrupt-cells = <1>;
112*724ba675SRob Herring				reg = <0x1c4 0x4>, <0x1ac 0x4>;
113*724ba675SRob Herring				reg-names = "mux status", "mux mask";
114*724ba675SRob Herring				mrvl,intc-nr-irqs = <2>;
115*724ba675SRob Herring			};
116*724ba675SRob Herring
117*724ba675SRob Herring			dxo_mux: interrupt-controller@d42821c8 {
118*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
119*724ba675SRob Herring				interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
120*724ba675SRob Herring				interrupt-controller;
121*724ba675SRob Herring				#interrupt-cells = <1>;
122*724ba675SRob Herring				reg = <0x1c8 0x4>, <0x1b0 0x4>;
123*724ba675SRob Herring				reg-names = "mux status", "mux mask";
124*724ba675SRob Herring				mrvl,intc-nr-irqs = <2>;
125*724ba675SRob Herring			};
126*724ba675SRob Herring
127*724ba675SRob Herring			misc1_mux: interrupt-controller@d428215c {
128*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
129*724ba675SRob Herring				interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
130*724ba675SRob Herring				interrupt-controller;
131*724ba675SRob Herring				#interrupt-cells = <1>;
132*724ba675SRob Herring				reg = <0x15c 0x4>, <0x174 0x4>;
133*724ba675SRob Herring				reg-names = "mux status", "mux mask";
134*724ba675SRob Herring				mrvl,intc-nr-irqs = <31>;
135*724ba675SRob Herring			};
136*724ba675SRob Herring
137*724ba675SRob Herring			ci_mux: interrupt-controller@d42821cc {
138*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
139*724ba675SRob Herring				interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
140*724ba675SRob Herring				interrupt-controller;
141*724ba675SRob Herring				#interrupt-cells = <1>;
142*724ba675SRob Herring				reg = <0x1cc 0x4>, <0x1b4 0x4>;
143*724ba675SRob Herring				reg-names = "mux status", "mux mask";
144*724ba675SRob Herring				mrvl,intc-nr-irqs = <2>;
145*724ba675SRob Herring			};
146*724ba675SRob Herring
147*724ba675SRob Herring			ssp_mux: interrupt-controller@d4282160 {
148*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
149*724ba675SRob Herring				interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
150*724ba675SRob Herring				interrupt-controller;
151*724ba675SRob Herring				#interrupt-cells = <1>;
152*724ba675SRob Herring				reg = <0x160 0x4>, <0x178 0x4>;
153*724ba675SRob Herring				reg-names = "mux status", "mux mask";
154*724ba675SRob Herring				mrvl,intc-nr-irqs = <2>;
155*724ba675SRob Herring			};
156*724ba675SRob Herring
157*724ba675SRob Herring			hsi1_mux: interrupt-controller@d4282184 {
158*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
159*724ba675SRob Herring				interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
160*724ba675SRob Herring				interrupt-controller;
161*724ba675SRob Herring				#interrupt-cells = <1>;
162*724ba675SRob Herring				reg = <0x184 0x4>, <0x17c 0x4>;
163*724ba675SRob Herring				reg-names = "mux status", "mux mask";
164*724ba675SRob Herring				mrvl,intc-nr-irqs = <4>;
165*724ba675SRob Herring			};
166*724ba675SRob Herring
167*724ba675SRob Herring			misc2_mux: interrupt-controller@d4282188 {
168*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
169*724ba675SRob Herring				interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
170*724ba675SRob Herring				interrupt-controller;
171*724ba675SRob Herring				#interrupt-cells = <1>;
172*724ba675SRob Herring				reg = <0x188 0x4>, <0x180 0x4>;
173*724ba675SRob Herring				reg-names = "mux status", "mux mask";
174*724ba675SRob Herring				mrvl,intc-nr-irqs = <20>;
175*724ba675SRob Herring			};
176*724ba675SRob Herring
177*724ba675SRob Herring			hsi0_mux: interrupt-controller@d42821d0 {
178*724ba675SRob Herring				compatible = "mrvl,mmp2-mux-intc";
179*724ba675SRob Herring				interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
180*724ba675SRob Herring				interrupt-controller;
181*724ba675SRob Herring				#interrupt-cells = <1>;
182*724ba675SRob Herring				reg = <0x1d0 0x4>, <0x1b8 0x4>;
183*724ba675SRob Herring				reg-names = "mux status", "mux mask";
184*724ba675SRob Herring				mrvl,intc-nr-irqs = <5>;
185*724ba675SRob Herring			};
186*724ba675SRob Herring
187*724ba675SRob Herring			usb_otg_phy0: usb-phy@d4207000 {
188*724ba675SRob Herring				compatible = "marvell,mmp3-usb-phy";
189*724ba675SRob Herring				reg = <0xd4207000 0x40>;
190*724ba675SRob Herring				#phy-cells = <0>;
191*724ba675SRob Herring				status = "disabled";
192*724ba675SRob Herring			};
193*724ba675SRob Herring
194*724ba675SRob Herring			usb_otg0: usb@d4208000 {
195*724ba675SRob Herring				compatible = "marvell,pxau2o-ehci";
196*724ba675SRob Herring				reg = <0xd4208000 0x200>;
197*724ba675SRob Herring				interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
198*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_USB>;
199*724ba675SRob Herring				clock-names = "USBCLK";
200*724ba675SRob Herring				phys = <&usb_otg_phy0>;
201*724ba675SRob Herring				phy-names = "usb";
202*724ba675SRob Herring				status = "disabled";
203*724ba675SRob Herring			};
204*724ba675SRob Herring
205*724ba675SRob Herring			hsic_phy0: usb-phy@f0001800 {
206*724ba675SRob Herring				compatible = "marvell,mmp3-hsic-phy";
207*724ba675SRob Herring				reg = <0xf0001800 0x40>;
208*724ba675SRob Herring				#phy-cells = <0>;
209*724ba675SRob Herring				status = "disabled";
210*724ba675SRob Herring			};
211*724ba675SRob Herring
212*724ba675SRob Herring			hsic0: usb@f0001000 {
213*724ba675SRob Herring				compatible = "marvell,pxau2o-ehci";
214*724ba675SRob Herring				reg = <0xf0001000 0x200>;
215*724ba675SRob Herring				interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
216*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_USBHSIC0>;
217*724ba675SRob Herring				clock-names = "USBCLK";
218*724ba675SRob Herring				phys = <&hsic_phy0>;
219*724ba675SRob Herring				phy-names = "usb";
220*724ba675SRob Herring				phy_type = "hsic";
221*724ba675SRob Herring				#address-cells = <0x01>;
222*724ba675SRob Herring				#size-cells = <0x00>;
223*724ba675SRob Herring				status = "disabled";
224*724ba675SRob Herring			};
225*724ba675SRob Herring
226*724ba675SRob Herring			hsic_phy1: usb-phy@f0002800 {
227*724ba675SRob Herring				compatible = "marvell,mmp3-hsic-phy";
228*724ba675SRob Herring				reg = <0xf0002800 0x40>;
229*724ba675SRob Herring				#phy-cells = <0>;
230*724ba675SRob Herring				status = "disabled";
231*724ba675SRob Herring			};
232*724ba675SRob Herring
233*724ba675SRob Herring			hsic1: usb@f0002000 {
234*724ba675SRob Herring				compatible = "marvell,pxau2o-ehci";
235*724ba675SRob Herring				reg = <0xf0002000 0x200>;
236*724ba675SRob Herring				interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
237*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_USBHSIC1>;
238*724ba675SRob Herring				clock-names = "USBCLK";
239*724ba675SRob Herring				phys = <&hsic_phy1>;
240*724ba675SRob Herring				phy-names = "usb";
241*724ba675SRob Herring				phy_type = "hsic";
242*724ba675SRob Herring				#address-cells = <0x01>;
243*724ba675SRob Herring				#size-cells = <0x00>;
244*724ba675SRob Herring				status = "disabled";
245*724ba675SRob Herring			};
246*724ba675SRob Herring
247*724ba675SRob Herring			mmc1: mmc@d4280000 {
248*724ba675SRob Herring				compatible = "mrvl,pxav3-mmc";
249*724ba675SRob Herring				reg = <0xd4280000 0x120>;
250*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_SDH0>;
251*724ba675SRob Herring				clock-names = "io";
252*724ba675SRob Herring				interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
253*724ba675SRob Herring				status = "disabled";
254*724ba675SRob Herring			};
255*724ba675SRob Herring
256*724ba675SRob Herring			mmc2: mmc@d4280800 {
257*724ba675SRob Herring				compatible = "mrvl,pxav3-mmc";
258*724ba675SRob Herring				reg = <0xd4280800 0x120>;
259*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_SDH1>;
260*724ba675SRob Herring				clock-names = "io";
261*724ba675SRob Herring				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
262*724ba675SRob Herring				status = "disabled";
263*724ba675SRob Herring			};
264*724ba675SRob Herring
265*724ba675SRob Herring			mmc3: mmc@d4281000 {
266*724ba675SRob Herring				compatible = "mrvl,pxav3-mmc";
267*724ba675SRob Herring				reg = <0xd4281000 0x120>;
268*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_SDH2>;
269*724ba675SRob Herring				clock-names = "io";
270*724ba675SRob Herring				interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
271*724ba675SRob Herring				status = "disabled";
272*724ba675SRob Herring			};
273*724ba675SRob Herring
274*724ba675SRob Herring			mmc4: mmc@d4281800 {
275*724ba675SRob Herring				compatible = "mrvl,pxav3-mmc";
276*724ba675SRob Herring				reg = <0xd4281800 0x120>;
277*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_SDH3>;
278*724ba675SRob Herring				clock-names = "io";
279*724ba675SRob Herring				interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
280*724ba675SRob Herring				status = "disabled";
281*724ba675SRob Herring			};
282*724ba675SRob Herring
283*724ba675SRob Herring			mmc5: mmc@d4217000 {
284*724ba675SRob Herring				compatible = "mrvl,pxav3-mmc";
285*724ba675SRob Herring				reg = <0xd4217000 0x120>;
286*724ba675SRob Herring				clocks = <&soc_clocks MMP3_CLK_SDH4>;
287*724ba675SRob Herring				clock-names = "io";
288*724ba675SRob Herring				interrupt-parent = <&hsi1_mux>;
289*724ba675SRob Herring				interrupts = <0>;
290*724ba675SRob Herring				status = "disabled";
291*724ba675SRob Herring			};
292*724ba675SRob Herring
293*724ba675SRob Herring			camera0: camera@d420a000 {
294*724ba675SRob Herring				compatible = "marvell,mmp2-ccic";
295*724ba675SRob Herring				reg = <0xd420a000 0x800>;
296*724ba675SRob Herring				interrupts = <1>;
297*724ba675SRob Herring				interrupt-parent = <&ci_mux>;
298*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_CCIC0>;
299*724ba675SRob Herring				clock-names = "axi";
300*724ba675SRob Herring				power-domains = <&soc_clocks MMP3_POWER_DOMAIN_CAMERA>;
301*724ba675SRob Herring				#clock-cells = <0>;
302*724ba675SRob Herring				clock-output-names = "mclk";
303*724ba675SRob Herring				status = "disabled";
304*724ba675SRob Herring			};
305*724ba675SRob Herring
306*724ba675SRob Herring			camera1: camera@d420a800 {
307*724ba675SRob Herring				compatible = "marvell,mmp2-ccic";
308*724ba675SRob Herring				reg = <0xd420a800 0x800>;
309*724ba675SRob Herring				interrupts = <2>;
310*724ba675SRob Herring				interrupt-parent = <&ci_mux>;
311*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_CCIC1>;
312*724ba675SRob Herring				clock-names = "axi";
313*724ba675SRob Herring				power-domains = <&soc_clocks MMP3_POWER_DOMAIN_CAMERA>;
314*724ba675SRob Herring				#clock-cells = <0>;
315*724ba675SRob Herring				clock-output-names = "mclk";
316*724ba675SRob Herring				status = "disabled";
317*724ba675SRob Herring			};
318*724ba675SRob Herring
319*724ba675SRob Herring			gpu_3d: gpu@d420d000 {
320*724ba675SRob Herring				compatible = "vivante,gc";
321*724ba675SRob Herring				reg = <0xd420d000 0x2000>;
322*724ba675SRob Herring				interrupt-parent = <&gpu_mux>;
323*724ba675SRob Herring				interrupts = <0>;
324*724ba675SRob Herring				status = "disabled";
325*724ba675SRob Herring				clocks = <&soc_clocks MMP3_CLK_GPU_3D>,
326*724ba675SRob Herring					 <&soc_clocks MMP3_CLK_GPU_BUS>;
327*724ba675SRob Herring				clock-names = "core", "bus";
328*724ba675SRob Herring				power-domains = <&soc_clocks MMP2_POWER_DOMAIN_GPU>;
329*724ba675SRob Herring			};
330*724ba675SRob Herring
331*724ba675SRob Herring			gpu_2d: gpu@d420f000 {
332*724ba675SRob Herring				compatible = "vivante,gc";
333*724ba675SRob Herring				reg = <0xd420f000 0x2000>;
334*724ba675SRob Herring				interrupt-parent = <&gpu_mux>;
335*724ba675SRob Herring				interrupts = <2>;
336*724ba675SRob Herring				status = "disabled";
337*724ba675SRob Herring				clocks = <&soc_clocks MMP3_CLK_GPU_2D>,
338*724ba675SRob Herring					 <&soc_clocks MMP3_CLK_GPU_BUS>;
339*724ba675SRob Herring				clock-names = "core", "bus";
340*724ba675SRob Herring				power-domains = <&soc_clocks MMP2_POWER_DOMAIN_GPU>;
341*724ba675SRob Herring			};
342*724ba675SRob Herring		};
343*724ba675SRob Herring
344*724ba675SRob Herring		apb@d4000000 {
345*724ba675SRob Herring			compatible = "simple-bus";
346*724ba675SRob Herring			#address-cells = <1>;
347*724ba675SRob Herring			#size-cells = <1>;
348*724ba675SRob Herring			reg = <0xd4000000 0x00200000>;
349*724ba675SRob Herring			ranges;
350*724ba675SRob Herring
351*724ba675SRob Herring			timer: timer@d4014000 {
352*724ba675SRob Herring				compatible = "mrvl,mmp-timer";
353*724ba675SRob Herring				reg = <0xd4014000 0x100>;
354*724ba675SRob Herring				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
355*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_TIMER>;
356*724ba675SRob Herring			};
357*724ba675SRob Herring
358*724ba675SRob Herring			uart1: serial@d4030000 {
359*724ba675SRob Herring				compatible = "mrvl,mmp-uart", "intel,xscale-uart";
360*724ba675SRob Herring				reg = <0xd4030000 0x1000>;
361*724ba675SRob Herring				interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
362*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_UART0>;
363*724ba675SRob Herring				resets = <&soc_clocks MMP2_CLK_UART0>;
364*724ba675SRob Herring				reg-shift = <2>;
365*724ba675SRob Herring				status = "disabled";
366*724ba675SRob Herring			};
367*724ba675SRob Herring
368*724ba675SRob Herring			uart2: serial@d4017000 {
369*724ba675SRob Herring				compatible = "mrvl,mmp-uart", "intel,xscale-uart";
370*724ba675SRob Herring				reg = <0xd4017000 0x1000>;
371*724ba675SRob Herring				interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
372*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_UART1>;
373*724ba675SRob Herring				resets = <&soc_clocks MMP2_CLK_UART1>;
374*724ba675SRob Herring				reg-shift = <2>;
375*724ba675SRob Herring				status = "disabled";
376*724ba675SRob Herring			};
377*724ba675SRob Herring
378*724ba675SRob Herring			uart3: serial@d4018000 {
379*724ba675SRob Herring				compatible = "mrvl,mmp-uart", "intel,xscale-uart";
380*724ba675SRob Herring				reg = <0xd4018000 0x1000>;
381*724ba675SRob Herring				interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
382*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_UART2>;
383*724ba675SRob Herring				resets = <&soc_clocks MMP2_CLK_UART2>;
384*724ba675SRob Herring				reg-shift = <2>;
385*724ba675SRob Herring				status = "disabled";
386*724ba675SRob Herring			};
387*724ba675SRob Herring
388*724ba675SRob Herring			uart4: serial@d4016000 {
389*724ba675SRob Herring				compatible = "mrvl,mmp-uart", "intel,xscale-uart";
390*724ba675SRob Herring				reg = <0xd4016000 0x1000>;
391*724ba675SRob Herring				interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
392*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_UART3>;
393*724ba675SRob Herring				resets = <&soc_clocks MMP2_CLK_UART3>;
394*724ba675SRob Herring				reg-shift = <2>;
395*724ba675SRob Herring				status = "disabled";
396*724ba675SRob Herring			};
397*724ba675SRob Herring
398*724ba675SRob Herring			gpio: gpio@d4019000 {
399*724ba675SRob Herring				compatible = "marvell,mmp2-gpio";
400*724ba675SRob Herring				#address-cells = <1>;
401*724ba675SRob Herring				#size-cells = <1>;
402*724ba675SRob Herring				reg = <0xd4019000 0x1000>;
403*724ba675SRob Herring				gpio-controller;
404*724ba675SRob Herring				#gpio-cells = <2>;
405*724ba675SRob Herring				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
406*724ba675SRob Herring				interrupt-names = "gpio_mux";
407*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_GPIO>;
408*724ba675SRob Herring				resets = <&soc_clocks MMP2_CLK_GPIO>;
409*724ba675SRob Herring				interrupt-controller;
410*724ba675SRob Herring				#interrupt-cells = <2>;
411*724ba675SRob Herring				ranges;
412*724ba675SRob Herring
413*724ba675SRob Herring				gcb0: gpio@d4019000 {
414*724ba675SRob Herring					reg = <0xd4019000 0x4>;
415*724ba675SRob Herring				};
416*724ba675SRob Herring
417*724ba675SRob Herring				gcb1: gpio@d4019004 {
418*724ba675SRob Herring					reg = <0xd4019004 0x4>;
419*724ba675SRob Herring				};
420*724ba675SRob Herring
421*724ba675SRob Herring				gcb2: gpio@d4019008 {
422*724ba675SRob Herring					reg = <0xd4019008 0x4>;
423*724ba675SRob Herring				};
424*724ba675SRob Herring
425*724ba675SRob Herring				gcb3: gpio@d4019100 {
426*724ba675SRob Herring					reg = <0xd4019100 0x4>;
427*724ba675SRob Herring				};
428*724ba675SRob Herring
429*724ba675SRob Herring				gcb4: gpio@d4019104 {
430*724ba675SRob Herring					reg = <0xd4019104 0x4>;
431*724ba675SRob Herring				};
432*724ba675SRob Herring
433*724ba675SRob Herring				gcb5: gpio@d4019108 {
434*724ba675SRob Herring					reg = <0xd4019108 0x4>;
435*724ba675SRob Herring				};
436*724ba675SRob Herring			};
437*724ba675SRob Herring
438*724ba675SRob Herring			twsi1: i2c@d4011000 {
439*724ba675SRob Herring				compatible = "mrvl,mmp-twsi";
440*724ba675SRob Herring				reg = <0xd4011000 0x70>;
441*724ba675SRob Herring				interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
442*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_TWSI0>;
443*724ba675SRob Herring				resets = <&soc_clocks MMP2_CLK_TWSI0>;
444*724ba675SRob Herring				#address-cells = <1>;
445*724ba675SRob Herring				#size-cells = <0>;
446*724ba675SRob Herring				mrvl,i2c-fast-mode;
447*724ba675SRob Herring				status = "disabled";
448*724ba675SRob Herring			};
449*724ba675SRob Herring
450*724ba675SRob Herring			twsi2: i2c@d4031000 {
451*724ba675SRob Herring				compatible = "mrvl,mmp-twsi";
452*724ba675SRob Herring				reg = <0xd4031000 0x70>;
453*724ba675SRob Herring				interrupt-parent = <&twsi_mux>;
454*724ba675SRob Herring				interrupts = <0>;
455*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_TWSI1>;
456*724ba675SRob Herring				resets = <&soc_clocks MMP2_CLK_TWSI1>;
457*724ba675SRob Herring				#address-cells = <1>;
458*724ba675SRob Herring				#size-cells = <0>;
459*724ba675SRob Herring				status = "disabled";
460*724ba675SRob Herring			};
461*724ba675SRob Herring
462*724ba675SRob Herring			twsi3: i2c@d4032000 {
463*724ba675SRob Herring				compatible = "mrvl,mmp-twsi";
464*724ba675SRob Herring				reg = <0xd4032000 0x70>;
465*724ba675SRob Herring				interrupt-parent = <&twsi_mux>;
466*724ba675SRob Herring				interrupts = <1>;
467*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_TWSI2>;
468*724ba675SRob Herring				resets = <&soc_clocks MMP2_CLK_TWSI2>;
469*724ba675SRob Herring				#address-cells = <1>;
470*724ba675SRob Herring				#size-cells = <0>;
471*724ba675SRob Herring				status = "disabled";
472*724ba675SRob Herring			};
473*724ba675SRob Herring
474*724ba675SRob Herring			twsi4: i2c@d4033000 {
475*724ba675SRob Herring				compatible = "mrvl,mmp-twsi";
476*724ba675SRob Herring				reg = <0xd4033000 0x70>;
477*724ba675SRob Herring				interrupt-parent = <&twsi_mux>;
478*724ba675SRob Herring				interrupts = <2>;
479*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_TWSI3>;
480*724ba675SRob Herring				resets = <&soc_clocks MMP2_CLK_TWSI3>;
481*724ba675SRob Herring				#address-cells = <1>;
482*724ba675SRob Herring				#size-cells = <0>;
483*724ba675SRob Herring				status = "disabled";
484*724ba675SRob Herring			};
485*724ba675SRob Herring
486*724ba675SRob Herring
487*724ba675SRob Herring			twsi5: i2c@d4033800 {
488*724ba675SRob Herring				compatible = "mrvl,mmp-twsi";
489*724ba675SRob Herring				reg = <0xd4033800 0x70>;
490*724ba675SRob Herring				interrupt-parent = <&twsi_mux>;
491*724ba675SRob Herring				interrupts = <3>;
492*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_TWSI4>;
493*724ba675SRob Herring				resets = <&soc_clocks MMP2_CLK_TWSI4>;
494*724ba675SRob Herring				#address-cells = <1>;
495*724ba675SRob Herring				#size-cells = <0>;
496*724ba675SRob Herring				status = "disabled";
497*724ba675SRob Herring			};
498*724ba675SRob Herring
499*724ba675SRob Herring			twsi6: i2c@d4034000 {
500*724ba675SRob Herring				compatible = "mrvl,mmp-twsi";
501*724ba675SRob Herring				reg = <0xd4034000 0x70>;
502*724ba675SRob Herring				interrupt-parent = <&twsi_mux>;
503*724ba675SRob Herring				interrupts = <4>;
504*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_TWSI5>;
505*724ba675SRob Herring				resets = <&soc_clocks MMP2_CLK_TWSI5>;
506*724ba675SRob Herring				#address-cells = <1>;
507*724ba675SRob Herring				#size-cells = <0>;
508*724ba675SRob Herring				status = "disabled";
509*724ba675SRob Herring			};
510*724ba675SRob Herring
511*724ba675SRob Herring			rtc: rtc@d4010000 {
512*724ba675SRob Herring				compatible = "mrvl,mmp-rtc";
513*724ba675SRob Herring				reg = <0xd4010000 0x1000>;
514*724ba675SRob Herring				interrupts = <1>, <0>;
515*724ba675SRob Herring				interrupt-names = "rtc 1Hz", "rtc alarm";
516*724ba675SRob Herring				interrupt-parent = <&rtc_mux>;
517*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_RTC>;
518*724ba675SRob Herring				resets = <&soc_clocks MMP2_CLK_RTC>;
519*724ba675SRob Herring				status = "disabled";
520*724ba675SRob Herring			};
521*724ba675SRob Herring
522*724ba675SRob Herring			ssp1: spi@d4035000 {
523*724ba675SRob Herring				compatible = "marvell,mmp2-ssp";
524*724ba675SRob Herring				reg = <0xd4035000 0x1000>;
525*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_SSP0>;
526*724ba675SRob Herring				interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
527*724ba675SRob Herring				#address-cells = <1>;
528*724ba675SRob Herring				#size-cells = <0>;
529*724ba675SRob Herring				status = "disabled";
530*724ba675SRob Herring			};
531*724ba675SRob Herring
532*724ba675SRob Herring			ssp2: spi@d4036000 {
533*724ba675SRob Herring				compatible = "marvell,mmp2-ssp";
534*724ba675SRob Herring				reg = <0xd4036000 0x1000>;
535*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_SSP1>;
536*724ba675SRob Herring				interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
537*724ba675SRob Herring				#address-cells = <1>;
538*724ba675SRob Herring				#size-cells = <0>;
539*724ba675SRob Herring				status = "disabled";
540*724ba675SRob Herring			};
541*724ba675SRob Herring
542*724ba675SRob Herring			ssp3: spi@d4037000 {
543*724ba675SRob Herring				compatible = "marvell,mmp2-ssp";
544*724ba675SRob Herring				reg = <0xd4037000 0x1000>;
545*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_SSP2>;
546*724ba675SRob Herring				interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
547*724ba675SRob Herring				#address-cells = <1>;
548*724ba675SRob Herring				#size-cells = <0>;
549*724ba675SRob Herring				status = "disabled";
550*724ba675SRob Herring			};
551*724ba675SRob Herring
552*724ba675SRob Herring			ssp4: spi@d4039000 {
553*724ba675SRob Herring				compatible = "marvell,mmp2-ssp";
554*724ba675SRob Herring				reg = <0xd4039000 0x1000>;
555*724ba675SRob Herring				clocks = <&soc_clocks MMP2_CLK_SSP3>;
556*724ba675SRob Herring				interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
557*724ba675SRob Herring				#address-cells = <1>;
558*724ba675SRob Herring				#size-cells = <0>;
559*724ba675SRob Herring				status = "disabled";
560*724ba675SRob Herring			};
561*724ba675SRob Herring		};
562*724ba675SRob Herring
563*724ba675SRob Herring		l2: cache-controller@d0020000 {
564*724ba675SRob Herring			compatible = "marvell,tauros3-cache", "arm,pl310-cache";
565*724ba675SRob Herring			reg = <0xd0020000 0x1000>;
566*724ba675SRob Herring			cache-unified;
567*724ba675SRob Herring			cache-level = <2>;
568*724ba675SRob Herring		};
569*724ba675SRob Herring
570*724ba675SRob Herring		soc_clocks: clocks@d4050000 {
571*724ba675SRob Herring			compatible = "marvell,mmp3-clock";
572*724ba675SRob Herring			reg = <0xd4050000 0x2000>,
573*724ba675SRob Herring			      <0xd4282800 0x400>,
574*724ba675SRob Herring			      <0xd4015000 0x1000>;
575*724ba675SRob Herring			reg-names = "mpmu", "apmu", "apbc";
576*724ba675SRob Herring			#clock-cells = <1>;
577*724ba675SRob Herring			#reset-cells = <1>;
578*724ba675SRob Herring			#power-domain-cells = <1>;
579*724ba675SRob Herring		};
580*724ba675SRob Herring
581*724ba675SRob Herring		snoop-control-unit@e0000000 {
582*724ba675SRob Herring			compatible = "arm,arm11mp-scu";
583*724ba675SRob Herring			reg = <0xe0000000 0x100>;
584*724ba675SRob Herring		};
585*724ba675SRob Herring
586*724ba675SRob Herring		gic: interrupt-controller@e0001000 {
587*724ba675SRob Herring			compatible = "arm,arm11mp-gic";
588*724ba675SRob Herring			interrupt-controller;
589*724ba675SRob Herring			#interrupt-cells = <3>;
590*724ba675SRob Herring			reg = <0xe0001000 0x1000>,
591*724ba675SRob Herring			      <0xe0000100 0x100>;
592*724ba675SRob Herring		};
593*724ba675SRob Herring
594*724ba675SRob Herring		local-timer@e0000600 {
595*724ba675SRob Herring			compatible = "arm,arm11mp-twd-timer";
596*724ba675SRob Herring			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
597*724ba675SRob Herring						  IRQ_TYPE_EDGE_RISING)>;
598*724ba675SRob Herring			reg = <0xe0000600 0x20>;
599*724ba675SRob Herring		};
600*724ba675SRob Herring
601*724ba675SRob Herring		watchdog@e0000620 {
602*724ba675SRob Herring			compatible = "arm,arm11mp-twd-wdt";
603*724ba675SRob Herring			reg = <0xe0000620 0x20>;
604*724ba675SRob Herring			interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
605*724ba675SRob Herring						  IRQ_TYPE_EDGE_RISING)>;
606*724ba675SRob Herring		};
607*724ba675SRob Herring	};
608*724ba675SRob Herring};
609