1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Device Tree Include file for Marvell Armada 380 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 380 family SoC";
16*724ba675SRob Herring	compatible = "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	};
29*724ba675SRob Herring
30*724ba675SRob Herring	soc {
31*724ba675SRob Herring		internal-regs {
32*724ba675SRob Herring			pinctrl@18000 {
33*724ba675SRob Herring				compatible = "marvell,mv88f6810-pinctrl";
34*724ba675SRob Herring			};
35*724ba675SRob Herring		};
36*724ba675SRob Herring
37*724ba675SRob Herring		pcie {
38*724ba675SRob Herring			compatible = "marvell,armada-370-pcie";
39*724ba675SRob Herring			status = "disabled";
40*724ba675SRob Herring			device_type = "pci";
41*724ba675SRob Herring
42*724ba675SRob Herring			#address-cells = <3>;
43*724ba675SRob Herring			#size-cells = <2>;
44*724ba675SRob Herring
45*724ba675SRob Herring			msi-parent = <&mpic>;
46*724ba675SRob Herring			bus-range = <0x00 0xff>;
47*724ba675SRob Herring
48*724ba675SRob Herring			ranges =
49*724ba675SRob Herring			       <0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000
50*724ba675SRob Herring				0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000
51*724ba675SRob Herring				0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000
52*724ba675SRob Herring				0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000
53*724ba675SRob Herring				0x82000000 0x1 0     MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 0 MEM */
54*724ba675SRob Herring				0x81000000 0x1 0     MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 0 IO  */
55*724ba675SRob Herring				0x82000000 0x2 0     MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 1 MEM */
56*724ba675SRob Herring				0x81000000 0x2 0     MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 1 IO  */
57*724ba675SRob Herring				0x82000000 0x3 0     MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 2 MEM */
58*724ba675SRob Herring				0x81000000 0x3 0     MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 2 IO  */>;
59*724ba675SRob Herring
60*724ba675SRob Herring			/* x1 port */
61*724ba675SRob Herring			pcie@1,0 {
62*724ba675SRob Herring				device_type = "pci";
63*724ba675SRob Herring				assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
64*724ba675SRob Herring				reg = <0x0800 0 0 0 0>;
65*724ba675SRob Herring				#address-cells = <3>;
66*724ba675SRob Herring				#size-cells = <2>;
67*724ba675SRob Herring				interrupt-names = "intx";
68*724ba675SRob Herring				interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
69*724ba675SRob Herring				#interrupt-cells = <1>;
70*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
71*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x1 0 1 0>;
72*724ba675SRob Herring				bus-range = <0x00 0xff>;
73*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
74*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie1_intc 0>,
75*724ba675SRob Herring						<0 0 0 2 &pcie1_intc 1>,
76*724ba675SRob Herring						<0 0 0 3 &pcie1_intc 2>,
77*724ba675SRob Herring						<0 0 0 4 &pcie1_intc 3>;
78*724ba675SRob Herring				marvell,pcie-port = <0>;
79*724ba675SRob Herring				marvell,pcie-lane = <0>;
80*724ba675SRob Herring				clocks = <&gateclk 8>;
81*724ba675SRob Herring				status = "disabled";
82*724ba675SRob Herring
83*724ba675SRob Herring				pcie1_intc: interrupt-controller {
84*724ba675SRob Herring					interrupt-controller;
85*724ba675SRob Herring					#interrupt-cells = <1>;
86*724ba675SRob Herring				};
87*724ba675SRob Herring			};
88*724ba675SRob Herring
89*724ba675SRob Herring			/* x1 port */
90*724ba675SRob Herring			pcie@2,0 {
91*724ba675SRob Herring				device_type = "pci";
92*724ba675SRob Herring				assigned-addresses = <0x82001000 0 0x40000 0 0x2000>;
93*724ba675SRob Herring				reg = <0x1000 0 0 0 0>;
94*724ba675SRob Herring				#address-cells = <3>;
95*724ba675SRob Herring				#size-cells = <2>;
96*724ba675SRob Herring				interrupt-names = "intx";
97*724ba675SRob Herring				interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
98*724ba675SRob Herring				#interrupt-cells = <1>;
99*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
100*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x2 0 1 0>;
101*724ba675SRob Herring				bus-range = <0x00 0xff>;
102*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
103*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie2_intc 0>,
104*724ba675SRob Herring						<0 0 0 2 &pcie2_intc 1>,
105*724ba675SRob Herring						<0 0 0 3 &pcie2_intc 2>,
106*724ba675SRob Herring						<0 0 0 4 &pcie2_intc 3>;
107*724ba675SRob Herring				marvell,pcie-port = <1>;
108*724ba675SRob Herring				marvell,pcie-lane = <0>;
109*724ba675SRob Herring				clocks = <&gateclk 5>;
110*724ba675SRob Herring				status = "disabled";
111*724ba675SRob Herring
112*724ba675SRob Herring				pcie2_intc: interrupt-controller {
113*724ba675SRob Herring					interrupt-controller;
114*724ba675SRob Herring					#interrupt-cells = <1>;
115*724ba675SRob Herring				};
116*724ba675SRob Herring			};
117*724ba675SRob Herring
118*724ba675SRob Herring			/* x1 port */
119*724ba675SRob Herring			pcie@3,0 {
120*724ba675SRob Herring				device_type = "pci";
121*724ba675SRob Herring				assigned-addresses = <0x82001800 0 0x44000 0 0x2000>;
122*724ba675SRob Herring				reg = <0x1800 0 0 0 0>;
123*724ba675SRob Herring				#address-cells = <3>;
124*724ba675SRob Herring				#size-cells = <2>;
125*724ba675SRob Herring				interrupt-names = "intx";
126*724ba675SRob Herring				interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
127*724ba675SRob Herring				#interrupt-cells = <1>;
128*724ba675SRob Herring				ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
129*724ba675SRob Herring					  0x81000000 0 0 0x81000000 0x3 0 1 0>;
130*724ba675SRob Herring				bus-range = <0x00 0xff>;
131*724ba675SRob Herring				interrupt-map-mask = <0 0 0 7>;
132*724ba675SRob Herring				interrupt-map = <0 0 0 1 &pcie3_intc 0>,
133*724ba675SRob Herring						<0 0 0 2 &pcie3_intc 1>,
134*724ba675SRob Herring						<0 0 0 3 &pcie3_intc 2>,
135*724ba675SRob Herring						<0 0 0 4 &pcie3_intc 3>;
136*724ba675SRob Herring				marvell,pcie-port = <2>;
137*724ba675SRob Herring				marvell,pcie-lane = <0>;
138*724ba675SRob Herring				clocks = <&gateclk 6>;
139*724ba675SRob Herring				status = "disabled";
140*724ba675SRob Herring
141*724ba675SRob Herring				pcie3_intc: interrupt-controller {
142*724ba675SRob Herring					interrupt-controller;
143*724ba675SRob Herring					#interrupt-cells = <1>;
144*724ba675SRob Herring				};
145*724ba675SRob Herring			};
146*724ba675SRob Herring		};
147*724ba675SRob Herring	};
148*724ba675SRob Herring};
149