1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Device Tree Include file for Marvell Armada 385 SoC.
4*724ba675SRob Herring *
5*724ba675SRob Herring * Copyright (C) 2014 Marvell
6*724ba675SRob Herring *
7*724ba675SRob Herring * Lior Amsalem <alior@marvell.com>
8*724ba675SRob Herring * Gregory CLEMENT <gregory.clement@free-electrons.com>
9*724ba675SRob Herring * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10*724ba675SRob Herring */
11*724ba675SRob Herring
12*724ba675SRob Herring#include "armada-38x.dtsi"
13*724ba675SRob Herring
14*724ba675SRob Herring/ {
15*724ba675SRob Herring	model = "Marvell Armada 385 family SoC";
16*724ba675SRob Herring	compatible = "marvell,armada385", "marvell,armada380";
17*724ba675SRob Herring
18*724ba675SRob Herring	cpus {
19*724ba675SRob Herring		#address-cells = <1>;
20*724ba675SRob Herring		#size-cells = <0>;
21*724ba675SRob Herring		enable-method = "marvell,armada-380-smp";
22*724ba675SRob Herring
23*724ba675SRob Herring		cpu@0 {
24*724ba675SRob Herring			device_type = "cpu";
25*724ba675SRob Herring			compatible = "arm,cortex-a9";
26*724ba675SRob Herring			reg = <0>;
27*724ba675SRob Herring		};
28*724ba675SRob Herring		cpu@1 {
29*724ba675SRob Herring			device_type = "cpu";
30*724ba675SRob Herring			compatible = "arm,cortex-a9";
31*724ba675SRob Herring			reg = <1>;
32*724ba675SRob Herring		};
33*724ba675SRob Herring	};
34*724ba675SRob Herring
35*724ba675SRob Herring	soc {
36*724ba675SRob Herring		pciec: pcie {
37*724ba675SRob Herring			compatible = "marvell,armada-370-pcie";
38*724ba675SRob Herring			status = "disabled";
39*724ba675SRob Herring			device_type = "pci";
40*724ba675SRob Herring
41*724ba675SRob Herring			#address-cells = <3>;
42*724ba675SRob Herring			#size-cells = <2>;
43*724ba675SRob Herring
44*724ba675SRob Herring			msi-parent = <&mpic>;
45*724ba675SRob Herring			bus-range = <0x00 0xff>;
46*724ba675SRob Herring
47*724ba675SRob Herring			ranges =
48*724ba675SRob Herring			       <0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000
49*724ba675SRob Herring				0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000
50*724ba675SRob Herring				0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000
51*724ba675SRob Herring				0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000
52*724ba675SRob Herring				0x82000000 0x1 0     MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 0 MEM */
53*724ba675SRob Herring				0x81000000 0x1 0     MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 0 IO  */
54*724ba675SRob Herring				0x82000000 0x2 0     MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 1 MEM */
55*724ba675SRob Herring				0x81000000 0x2 0     MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 1 IO  */
56*724ba675SRob Herring				0x82000000 0x3 0     MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 2 MEM */
57*724ba675SRob Herring				0x81000000 0x3 0     MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 2 IO  */
58*724ba675SRob Herring				0x82000000 0x4 0     MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 3 MEM */
59*724ba675SRob Herring				0x81000000 0x4 0     MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 3 IO  */>;
60*724ba675SRob Herring
61*724ba675SRob Herring			/*
62*724ba675SRob Herring			 * This port can be either x4 or x1. When
63*724ba675SRob Herring			 * configured in x4 by the bootloader, then
64*724ba675SRob Herring			 * pcie@4,0 is not available.
65*724ba675SRob Herring			 */
66*724ba675SRob Herring			pcie1: pcie@1,0 {
67*724ba675SRob Herring				device_type = "pci";
68*724ba675SRob Herring				assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
69*724ba675SRob Herring				reg = <0x0800 0 0 0 0>;
70*724ba675SRob Herring				#address-cells = <3>;
71*724ba675SRob Herring				#size-cells = <2>;
72*724ba675SRob Herring				interrupt-names = "intx";
73*724ba675SRob Herring				interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
74*724ba675SRob Herring				#interrupt-cells = <1>;
75*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
76*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x1 0 1 0>;
77*724ba675SRob Herring				bus-range = <0x00 0xff>;
78*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
79*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie1_intc 0>,
80*724ba675SRob Herring						<0 0 0 2 &pcie1_intc 1>,
81*724ba675SRob Herring						<0 0 0 3 &pcie1_intc 2>,
82*724ba675SRob Herring						<0 0 0 4 &pcie1_intc 3>;
83*724ba675SRob Herring				marvell,pcie-port = <0>;
84*724ba675SRob Herring				marvell,pcie-lane = <0>;
85*724ba675SRob Herring				clocks = <&gateclk 8>;
86*724ba675SRob Herring				status = "disabled";
87*724ba675SRob Herring				pcie1_intc: interrupt-controller {
88*724ba675SRob Herring					interrupt-controller;
89*724ba675SRob Herring					#interrupt-cells = <1>;
90*724ba675SRob Herring				};
91*724ba675SRob Herring			};
92*724ba675SRob Herring
93*724ba675SRob Herring			/* x1 port */
94*724ba675SRob Herring			pcie2: pcie@2,0 {
95*724ba675SRob Herring				device_type = "pci";
96*724ba675SRob Herring				assigned-addresses = <0x82001000 0 0x40000 0 0x2000>;
97*724ba675SRob Herring				reg = <0x1000 0 0 0 0>;
98*724ba675SRob Herring				#address-cells = <3>;
99*724ba675SRob Herring				#size-cells = <2>;
100*724ba675SRob Herring				interrupt-names = "intx";
101*724ba675SRob Herring				interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
102*724ba675SRob Herring				#interrupt-cells = <1>;
103*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
104*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x2 0 1 0>;
105*724ba675SRob Herring				bus-range = <0x00 0xff>;
106*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
107*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie2_intc 0>,
108*724ba675SRob Herring						<0 0 0 2 &pcie2_intc 1>,
109*724ba675SRob Herring						<0 0 0 3 &pcie2_intc 2>,
110*724ba675SRob Herring						<0 0 0 4 &pcie2_intc 3>;
111*724ba675SRob Herring				marvell,pcie-port = <1>;
112*724ba675SRob Herring				marvell,pcie-lane = <0>;
113*724ba675SRob Herring				clocks = <&gateclk 5>;
114*724ba675SRob Herring				status = "disabled";
115*724ba675SRob Herring				pcie2_intc: interrupt-controller {
116*724ba675SRob Herring					interrupt-controller;
117*724ba675SRob Herring					#interrupt-cells = <1>;
118*724ba675SRob Herring				};
119*724ba675SRob Herring			};
120*724ba675SRob Herring
121*724ba675SRob Herring			/* x1 port */
122*724ba675SRob Herring			pcie3: pcie@3,0 {
123*724ba675SRob Herring				device_type = "pci";
124*724ba675SRob Herring				assigned-addresses = <0x82001800 0 0x44000 0 0x2000>;
125*724ba675SRob Herring				reg = <0x1800 0 0 0 0>;
126*724ba675SRob Herring				#address-cells = <3>;
127*724ba675SRob Herring				#size-cells = <2>;
128*724ba675SRob Herring				interrupt-names = "intx";
129*724ba675SRob Herring				interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
130*724ba675SRob Herring				#interrupt-cells = <1>;
131*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
132*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x3 0 1 0>;
133*724ba675SRob Herring				bus-range = <0x00 0xff>;
134*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
135*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie3_intc 0>,
136*724ba675SRob Herring						<0 0 0 2 &pcie3_intc 1>,
137*724ba675SRob Herring						<0 0 0 3 &pcie3_intc 2>,
138*724ba675SRob Herring						<0 0 0 4 &pcie3_intc 3>;
139*724ba675SRob Herring				marvell,pcie-port = <2>;
140*724ba675SRob Herring				marvell,pcie-lane = <0>;
141*724ba675SRob Herring				clocks = <&gateclk 6>;
142*724ba675SRob Herring				status = "disabled";
143*724ba675SRob Herring				pcie3_intc: interrupt-controller {
144*724ba675SRob Herring					interrupt-controller;
145*724ba675SRob Herring					#interrupt-cells = <1>;
146*724ba675SRob Herring				};
147*724ba675SRob Herring			};
148*724ba675SRob Herring
149*724ba675SRob Herring			/*
150*724ba675SRob Herring			 * x1 port only available when pcie@1,0 is
151*724ba675SRob Herring			 * configured as a x1 port
152*724ba675SRob Herring			 */
153*724ba675SRob Herring			pcie4: pcie@4,0 {
154*724ba675SRob Herring				device_type = "pci";
155*724ba675SRob Herring				assigned-addresses = <0x82002000 0 0x48000 0 0x2000>;
156*724ba675SRob Herring				reg = <0x2000 0 0 0 0>;
157*724ba675SRob Herring				#address-cells = <3>;
158*724ba675SRob Herring				#size-cells = <2>;
159*724ba675SRob Herring				interrupt-names = "intx";
160*724ba675SRob Herring				interrupts-extended = <&gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
161*724ba675SRob Herring				#interrupt-cells = <1>;
162*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
163*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x4 0 1 0>;
164*724ba675SRob Herring				bus-range = <0x00 0xff>;
165*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
166*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie4_intc 0>,
167*724ba675SRob Herring						<0 0 0 2 &pcie4_intc 1>,
168*724ba675SRob Herring						<0 0 0 3 &pcie4_intc 2>,
169*724ba675SRob Herring						<0 0 0 4 &pcie4_intc 3>;
170*724ba675SRob Herring				marvell,pcie-port = <3>;
171*724ba675SRob Herring				marvell,pcie-lane = <0>;
172*724ba675SRob Herring				clocks = <&gateclk 7>;
173*724ba675SRob Herring				status = "disabled";
174*724ba675SRob Herring				pcie4_intc: interrupt-controller {
175*724ba675SRob Herring					interrupt-controller;
176*724ba675SRob Herring					#interrupt-cells = <1>;
177*724ba675SRob Herring				};
178*724ba675SRob Herring			};
179*724ba675SRob Herring		};
180*724ba675SRob Herring	};
181*724ba675SRob Herring};
182*724ba675SRob Herring
183*724ba675SRob Herring&pinctrl {
184*724ba675SRob Herring	compatible = "marvell,mv88f6820-pinctrl";
185*724ba675SRob Herring};
186