1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Device Tree Include file for Marvell Armada XP family SoC
4*724ba675SRob Herring *
5*724ba675SRob Herring * Copyright (C) 2012 Marvell
6*724ba675SRob Herring *
7*724ba675SRob Herring * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
8*724ba675SRob Herring *
9*724ba675SRob Herring * Contains definitions specific to the Armada XP MV78230 SoC that are not
10*724ba675SRob Herring * common to all Armada XP SoCs.
11*724ba675SRob Herring */
12*724ba675SRob Herring
13*724ba675SRob Herring#include "armada-xp.dtsi"
14*724ba675SRob Herring
15*724ba675SRob Herring/ {
16*724ba675SRob Herring	model = "Marvell Armada XP MV78230 SoC";
17*724ba675SRob Herring	compatible = "marvell,armadaxp-mv78230", "marvell,armadaxp", "marvell,armada-370-xp";
18*724ba675SRob Herring
19*724ba675SRob Herring	aliases {
20*724ba675SRob Herring		gpio0 = &gpio0;
21*724ba675SRob Herring		gpio1 = &gpio1;
22*724ba675SRob Herring	};
23*724ba675SRob Herring
24*724ba675SRob Herring	cpus {
25*724ba675SRob Herring		#address-cells = <1>;
26*724ba675SRob Herring		#size-cells = <0>;
27*724ba675SRob Herring		enable-method = "marvell,armada-xp-smp";
28*724ba675SRob Herring
29*724ba675SRob Herring		cpu@0 {
30*724ba675SRob Herring			device_type = "cpu";
31*724ba675SRob Herring			compatible = "marvell,sheeva-v7";
32*724ba675SRob Herring			reg = <0>;
33*724ba675SRob Herring			clocks = <&cpuclk 0>;
34*724ba675SRob Herring			clock-latency = <1000000>;
35*724ba675SRob Herring		};
36*724ba675SRob Herring
37*724ba675SRob Herring		cpu@1 {
38*724ba675SRob Herring			device_type = "cpu";
39*724ba675SRob Herring			compatible = "marvell,sheeva-v7";
40*724ba675SRob Herring			reg = <1>;
41*724ba675SRob Herring			clocks = <&cpuclk 1>;
42*724ba675SRob Herring			clock-latency = <1000000>;
43*724ba675SRob Herring		};
44*724ba675SRob Herring	};
45*724ba675SRob Herring
46*724ba675SRob Herring	soc {
47*724ba675SRob Herring		/*
48*724ba675SRob Herring		 * MV78230 has 2 PCIe units Gen2.0: One unit can be
49*724ba675SRob Herring		 * configured as x4 or quad x1 lanes. One unit is
50*724ba675SRob Herring		 * x1 only.
51*724ba675SRob Herring		 */
52*724ba675SRob Herring		pciec: pcie@82000000 {
53*724ba675SRob Herring			compatible = "marvell,armada-xp-pcie";
54*724ba675SRob Herring			status = "disabled";
55*724ba675SRob Herring			device_type = "pci";
56*724ba675SRob Herring
57*724ba675SRob Herring			#address-cells = <3>;
58*724ba675SRob Herring			#size-cells = <2>;
59*724ba675SRob Herring
60*724ba675SRob Herring			msi-parent = <&mpic>;
61*724ba675SRob Herring			bus-range = <0x00 0xff>;
62*724ba675SRob Herring
63*724ba675SRob Herring			ranges =
64*724ba675SRob Herring			       <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000   /* Port 0.0 registers */
65*724ba675SRob Herring				0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000   /* Port 0.1 registers */
66*724ba675SRob Herring				0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000   /* Port 0.2 registers */
67*724ba675SRob Herring				0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000   /* Port 0.3 registers */
68*724ba675SRob Herring				0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000   /* Port 1.0 registers */
69*724ba675SRob Herring				0x82000000 0x1 0       MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
70*724ba675SRob Herring				0x81000000 0x1 0       MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO  */
71*724ba675SRob Herring				0x82000000 0x2 0       MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */
72*724ba675SRob Herring				0x81000000 0x2 0       MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 0.1 IO  */
73*724ba675SRob Herring				0x82000000 0x3 0       MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 0.2 MEM */
74*724ba675SRob Herring				0x81000000 0x3 0       MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO  */
75*724ba675SRob Herring				0x82000000 0x4 0       MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */
76*724ba675SRob Herring				0x81000000 0x4 0       MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO  */
77*724ba675SRob Herring				0x82000000 0x5 0       MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
78*724ba675SRob Herring				0x81000000 0x5 0       MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO  */>;
79*724ba675SRob Herring
80*724ba675SRob Herring			pcie1: pcie@1,0 {
81*724ba675SRob Herring				device_type = "pci";
82*724ba675SRob Herring				assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
83*724ba675SRob Herring				reg = <0x0800 0 0 0 0>;
84*724ba675SRob Herring				#address-cells = <3>;
85*724ba675SRob Herring				#size-cells = <2>;
86*724ba675SRob Herring				interrupt-names = "intx";
87*724ba675SRob Herring				interrupts-extended = <&mpic 58>;
88*724ba675SRob Herring				#interrupt-cells = <1>;
89*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
90*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x1 0 1 0>;
91*724ba675SRob Herring				bus-range = <0x00 0xff>;
92*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
93*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie1_intc 0>,
94*724ba675SRob Herring						<0 0 0 2 &pcie1_intc 1>,
95*724ba675SRob Herring						<0 0 0 3 &pcie1_intc 2>,
96*724ba675SRob Herring						<0 0 0 4 &pcie1_intc 3>;
97*724ba675SRob Herring				marvell,pcie-port = <0>;
98*724ba675SRob Herring				marvell,pcie-lane = <0>;
99*724ba675SRob Herring				clocks = <&gateclk 5>;
100*724ba675SRob Herring				status = "disabled";
101*724ba675SRob Herring
102*724ba675SRob Herring				pcie1_intc: interrupt-controller {
103*724ba675SRob Herring					interrupt-controller;
104*724ba675SRob Herring					#interrupt-cells = <1>;
105*724ba675SRob Herring				};
106*724ba675SRob Herring			};
107*724ba675SRob Herring
108*724ba675SRob Herring			pcie2: pcie@2,0 {
109*724ba675SRob Herring				device_type = "pci";
110*724ba675SRob Herring				assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
111*724ba675SRob Herring				reg = <0x1000 0 0 0 0>;
112*724ba675SRob Herring				#address-cells = <3>;
113*724ba675SRob Herring				#size-cells = <2>;
114*724ba675SRob Herring				interrupt-names = "intx";
115*724ba675SRob Herring				interrupts-extended = <&mpic 59>;
116*724ba675SRob Herring				#interrupt-cells = <1>;
117*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
118*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x2 0 1 0>;
119*724ba675SRob Herring				bus-range = <0x00 0xff>;
120*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
121*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie2_intc 0>,
122*724ba675SRob Herring						<0 0 0 2 &pcie2_intc 1>,
123*724ba675SRob Herring						<0 0 0 3 &pcie2_intc 2>,
124*724ba675SRob Herring						<0 0 0 4 &pcie2_intc 3>;
125*724ba675SRob Herring				marvell,pcie-port = <0>;
126*724ba675SRob Herring				marvell,pcie-lane = <1>;
127*724ba675SRob Herring				clocks = <&gateclk 6>;
128*724ba675SRob Herring				status = "disabled";
129*724ba675SRob Herring
130*724ba675SRob Herring				pcie2_intc: interrupt-controller {
131*724ba675SRob Herring					interrupt-controller;
132*724ba675SRob Herring					#interrupt-cells = <1>;
133*724ba675SRob Herring				};
134*724ba675SRob Herring			};
135*724ba675SRob Herring
136*724ba675SRob Herring			pcie3: pcie@3,0 {
137*724ba675SRob Herring				device_type = "pci";
138*724ba675SRob Herring				assigned-addresses = <0x82001800 0 0x48000 0 0x2000>;
139*724ba675SRob Herring				reg = <0x1800 0 0 0 0>;
140*724ba675SRob Herring				#address-cells = <3>;
141*724ba675SRob Herring				#size-cells = <2>;
142*724ba675SRob Herring				interrupt-names = "intx";
143*724ba675SRob Herring				interrupts-extended = <&mpic 60>;
144*724ba675SRob Herring				#interrupt-cells = <1>;
145*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
146*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x3 0 1 0>;
147*724ba675SRob Herring				bus-range = <0x00 0xff>;
148*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
149*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie3_intc 0>,
150*724ba675SRob Herring						<0 0 0 2 &pcie3_intc 1>,
151*724ba675SRob Herring						<0 0 0 3 &pcie3_intc 2>,
152*724ba675SRob Herring						<0 0 0 4 &pcie3_intc 3>;
153*724ba675SRob Herring				marvell,pcie-port = <0>;
154*724ba675SRob Herring				marvell,pcie-lane = <2>;
155*724ba675SRob Herring				clocks = <&gateclk 7>;
156*724ba675SRob Herring				status = "disabled";
157*724ba675SRob Herring
158*724ba675SRob Herring				pcie3_intc: interrupt-controller {
159*724ba675SRob Herring					interrupt-controller;
160*724ba675SRob Herring					#interrupt-cells = <1>;
161*724ba675SRob Herring				};
162*724ba675SRob Herring			};
163*724ba675SRob Herring
164*724ba675SRob Herring			pcie4: pcie@4,0 {
165*724ba675SRob Herring				device_type = "pci";
166*724ba675SRob Herring				assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>;
167*724ba675SRob Herring				reg = <0x2000 0 0 0 0>;
168*724ba675SRob Herring				#address-cells = <3>;
169*724ba675SRob Herring				#size-cells = <2>;
170*724ba675SRob Herring				interrupt-names = "intx";
171*724ba675SRob Herring				interrupts-extended = <&mpic 61>;
172*724ba675SRob Herring				#interrupt-cells = <1>;
173*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
174*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x4 0 1 0>;
175*724ba675SRob Herring				bus-range = <0x00 0xff>;
176*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
177*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie4_intc 0>,
178*724ba675SRob Herring						<0 0 0 2 &pcie4_intc 1>,
179*724ba675SRob Herring						<0 0 0 3 &pcie4_intc 2>,
180*724ba675SRob Herring						<0 0 0 4 &pcie4_intc 3>;
181*724ba675SRob Herring				marvell,pcie-port = <0>;
182*724ba675SRob Herring				marvell,pcie-lane = <3>;
183*724ba675SRob Herring				clocks = <&gateclk 8>;
184*724ba675SRob Herring				status = "disabled";
185*724ba675SRob Herring
186*724ba675SRob Herring				pcie4_intc: interrupt-controller {
187*724ba675SRob Herring					interrupt-controller;
188*724ba675SRob Herring					#interrupt-cells = <1>;
189*724ba675SRob Herring				};
190*724ba675SRob Herring			};
191*724ba675SRob Herring
192*724ba675SRob Herring			pcie5: pcie@5,0 {
193*724ba675SRob Herring				device_type = "pci";
194*724ba675SRob Herring				assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
195*724ba675SRob Herring				reg = <0x2800 0 0 0 0>;
196*724ba675SRob Herring				#address-cells = <3>;
197*724ba675SRob Herring				#size-cells = <2>;
198*724ba675SRob Herring				interrupt-names = "intx";
199*724ba675SRob Herring				interrupts-extended = <&mpic 62>;
200*724ba675SRob Herring				#interrupt-cells = <1>;
201*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0
202*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x5 0 1 0>;
203*724ba675SRob Herring				bus-range = <0x00 0xff>;
204*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
205*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie5_intc 0>,
206*724ba675SRob Herring						<0 0 0 2 &pcie5_intc 1>,
207*724ba675SRob Herring						<0 0 0 3 &pcie5_intc 2>,
208*724ba675SRob Herring						<0 0 0 4 &pcie5_intc 3>;
209*724ba675SRob Herring				marvell,pcie-port = <1>;
210*724ba675SRob Herring				marvell,pcie-lane = <0>;
211*724ba675SRob Herring				clocks = <&gateclk 9>;
212*724ba675SRob Herring				status = "disabled";
213*724ba675SRob Herring
214*724ba675SRob Herring				pcie5_intc: interrupt-controller {
215*724ba675SRob Herring					interrupt-controller;
216*724ba675SRob Herring					#interrupt-cells = <1>;
217*724ba675SRob Herring				};
218*724ba675SRob Herring			};
219*724ba675SRob Herring		};
220*724ba675SRob Herring
221*724ba675SRob Herring		internal-regs {
222*724ba675SRob Herring			gpio0: gpio@18100 {
223*724ba675SRob Herring				compatible = "marvell,armada-370-gpio",
224*724ba675SRob Herring					     "marvell,orion-gpio";
225*724ba675SRob Herring				reg = <0x18100 0x40>, <0x181c0 0x08>;
226*724ba675SRob Herring				reg-names = "gpio", "pwm";
227*724ba675SRob Herring				ngpios = <32>;
228*724ba675SRob Herring				gpio-controller;
229*724ba675SRob Herring				#gpio-cells = <2>;
230*724ba675SRob Herring				#pwm-cells = <2>;
231*724ba675SRob Herring				interrupt-controller;
232*724ba675SRob Herring				#interrupt-cells = <2>;
233*724ba675SRob Herring				interrupts = <82>, <83>, <84>, <85>;
234*724ba675SRob Herring				clocks = <&coreclk 0>;
235*724ba675SRob Herring			};
236*724ba675SRob Herring
237*724ba675SRob Herring			gpio1: gpio@18140 {
238*724ba675SRob Herring				compatible = "marvell,armada-370-gpio",
239*724ba675SRob Herring					     "marvell,orion-gpio";
240*724ba675SRob Herring				reg = <0x18140 0x40>, <0x181c8 0x08>;
241*724ba675SRob Herring				reg-names = "gpio", "pwm";
242*724ba675SRob Herring				ngpios = <17>;
243*724ba675SRob Herring				gpio-controller;
244*724ba675SRob Herring				#gpio-cells = <2>;
245*724ba675SRob Herring				#pwm-cells = <2>;
246*724ba675SRob Herring				interrupt-controller;
247*724ba675SRob Herring				#interrupt-cells = <2>;
248*724ba675SRob Herring				interrupts = <87>, <88>, <89>;
249*724ba675SRob Herring				clocks = <&coreclk 0>;
250*724ba675SRob Herring			};
251*724ba675SRob Herring		};
252*724ba675SRob Herring	};
253*724ba675SRob Herring};
254*724ba675SRob Herring
255*724ba675SRob Herring&pinctrl {
256*724ba675SRob Herring	compatible = "marvell,mv78230-pinctrl";
257*724ba675SRob Herring};
258