xref: /arm-trusted-firmware/fdts/n1sdp.dtsi (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu// SPDX-License-Identifier: (GPL-2.0 or BSD-3-Clause)
2*91f16700Schasinglulu/*
3*91f16700Schasinglulu * Copyright (c) 2019-2020, Arm Limited.
4*91f16700Schasinglulu */
5*91f16700Schasinglulu
6*91f16700Schasinglulu#include <dt-bindings/interrupt-controller/arm-gic.h>
7*91f16700Schasinglulu
8*91f16700Schasinglulu/ {
9*91f16700Schasinglulu	interrupt-parent = <&gic>;
10*91f16700Schasinglulu	#address-cells = <2>;
11*91f16700Schasinglulu	#size-cells = <2>;
12*91f16700Schasinglulu
13*91f16700Schasinglulu	cpus {
14*91f16700Schasinglulu		#address-cells = <2>;
15*91f16700Schasinglulu		#size-cells = <0>;
16*91f16700Schasinglulu
17*91f16700Schasinglulu		cpu0@0 {
18*91f16700Schasinglulu			compatible = "arm,neoverse-n1";
19*91f16700Schasinglulu			reg = <0x0 0x0>;
20*91f16700Schasinglulu			device_type = "cpu";
21*91f16700Schasinglulu			enable-method = "psci";
22*91f16700Schasinglulu			numa-node-id = <0>;
23*91f16700Schasinglulu		};
24*91f16700Schasinglulu		cpu1@100 {
25*91f16700Schasinglulu			compatible = "arm,neoverse-n1";
26*91f16700Schasinglulu			reg = <0x0 0x100>;
27*91f16700Schasinglulu			device_type = "cpu";
28*91f16700Schasinglulu			enable-method = "psci";
29*91f16700Schasinglulu			numa-node-id = <0>;
30*91f16700Schasinglulu		};
31*91f16700Schasinglulu		cpu2@10000 {
32*91f16700Schasinglulu			compatible = "arm,neoverse-n1";
33*91f16700Schasinglulu			reg = <0x0 0x10000>;
34*91f16700Schasinglulu			device_type = "cpu";
35*91f16700Schasinglulu			enable-method = "psci";
36*91f16700Schasinglulu			numa-node-id = <0>;
37*91f16700Schasinglulu		};
38*91f16700Schasinglulu		cpu3@10100 {
39*91f16700Schasinglulu			compatible = "arm,neoverse-n1";
40*91f16700Schasinglulu			reg = <0x0 0x10100>;
41*91f16700Schasinglulu			device_type = "cpu";
42*91f16700Schasinglulu			enable-method = "psci";
43*91f16700Schasinglulu			numa-node-id = <0>;
44*91f16700Schasinglulu		};
45*91f16700Schasinglulu	};
46*91f16700Schasinglulu
47*91f16700Schasinglulu	pmu {
48*91f16700Schasinglulu		compatible = "arm,armv8-pmuv3";
49*91f16700Schasinglulu		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
50*91f16700Schasinglulu	};
51*91f16700Schasinglulu
52*91f16700Schasinglulu	spe-pmu {
53*91f16700Schasinglulu		compatible = "arm,statistical-profiling-extension-v1";
54*91f16700Schasinglulu		interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH>;
55*91f16700Schasinglulu	};
56*91f16700Schasinglulu
57*91f16700Schasinglulu	psci {
58*91f16700Schasinglulu		compatible = "arm,psci-0.2";
59*91f16700Schasinglulu		method = "smc";
60*91f16700Schasinglulu	};
61*91f16700Schasinglulu
62*91f16700Schasinglulu	timer {
63*91f16700Schasinglulu		compatible = "arm,armv8-timer";
64*91f16700Schasinglulu		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
65*91f16700Schasinglulu			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
66*91f16700Schasinglulu			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
67*91f16700Schasinglulu			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
68*91f16700Schasinglulu	};
69*91f16700Schasinglulu
70*91f16700Schasinglulu	soc_refclk100mhz: refclk100mhz {
71*91f16700Schasinglulu		compatible = "fixed-clock";
72*91f16700Schasinglulu		#clock-cells = <0>;
73*91f16700Schasinglulu		clock-frequency = <100000000>;
74*91f16700Schasinglulu		clock-output-names = "apb_pclk";
75*91f16700Schasinglulu	};
76*91f16700Schasinglulu
77*91f16700Schasinglulu	soc_uartclk:  uartclk {
78*91f16700Schasinglulu		compatible = "fixed-clock";
79*91f16700Schasinglulu		#clock-cells = <0>;
80*91f16700Schasinglulu		clock-frequency = <50000000>;
81*91f16700Schasinglulu		clock-output-names = "uartclk";
82*91f16700Schasinglulu	};
83*91f16700Schasinglulu
84*91f16700Schasinglulu	soc {
85*91f16700Schasinglulu		compatible = "arm,neoverse-n1-soc", "simple-bus";
86*91f16700Schasinglulu		#address-cells = <2>;
87*91f16700Schasinglulu		#size-cells = <2>;
88*91f16700Schasinglulu		ranges;
89*91f16700Schasinglulu
90*91f16700Schasinglulu		gic: interrupt-controller@30000000 {
91*91f16700Schasinglulu			compatible = "arm,gic-v3";
92*91f16700Schasinglulu			#address-cells = <2>;
93*91f16700Schasinglulu			#interrupt-cells = <3>;
94*91f16700Schasinglulu			#size-cells = <2>;
95*91f16700Schasinglulu			ranges;
96*91f16700Schasinglulu			interrupt-controller;
97*91f16700Schasinglulu			reg = <0x0 0x30000000 0 0x10000>,	/* GICD */
98*91f16700Schasinglulu				<0x0 0x300c0000 0 0x80000>;	/* GICR */
99*91f16700Schasinglulu
100*91f16700Schasinglulu			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
101*91f16700Schasinglulu
102*91f16700Schasinglulu			its1: its@30040000 {
103*91f16700Schasinglulu				compatible = "arm,gic-v3-its";
104*91f16700Schasinglulu				msi-controller;
105*91f16700Schasinglulu				#msi-cells = <1>;
106*91f16700Schasinglulu				reg = <0x0 0x30040000 0x0 0x20000>;
107*91f16700Schasinglulu			};
108*91f16700Schasinglulu
109*91f16700Schasinglulu			its2: its@30060000 {
110*91f16700Schasinglulu				compatible = "arm,gic-v3-its";
111*91f16700Schasinglulu				msi-controller;
112*91f16700Schasinglulu				#msi-cells = <1>;
113*91f16700Schasinglulu				reg = <0x0 0x30060000 0x0 0x20000>;
114*91f16700Schasinglulu			};
115*91f16700Schasinglulu
116*91f16700Schasinglulu			its_ccix: its@30080000 {
117*91f16700Schasinglulu				compatible = "arm,gic-v3-its";
118*91f16700Schasinglulu				msi-controller;
119*91f16700Schasinglulu				#msi-cells = <1>;
120*91f16700Schasinglulu				reg = <0x0 0x30080000 0x0 0x20000>;
121*91f16700Schasinglulu			};
122*91f16700Schasinglulu
123*91f16700Schasinglulu			its_pcie: its@300a0000 {
124*91f16700Schasinglulu				compatible = "arm,gic-v3-its";
125*91f16700Schasinglulu				msi-controller;
126*91f16700Schasinglulu				#msi-cells = <1>;
127*91f16700Schasinglulu				reg = <0x0 0x300a0000 0x0 0x20000>;
128*91f16700Schasinglulu			};
129*91f16700Schasinglulu		};
130*91f16700Schasinglulu
131*91f16700Schasinglulu		smmu_ccix: iommu@4f000000 {
132*91f16700Schasinglulu			compatible = "arm,smmu-v3";
133*91f16700Schasinglulu			reg = <0 0x4f000000 0 0x40000>;
134*91f16700Schasinglulu			interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING>,
135*91f16700Schasinglulu					<GIC_SPI 229 IRQ_TYPE_EDGE_RISING>,
136*91f16700Schasinglulu					<GIC_SPI 230 IRQ_TYPE_EDGE_RISING>;
137*91f16700Schasinglulu			interrupt-names = "eventq", "cmdq-sync", "gerror";
138*91f16700Schasinglulu			msi-parent = <&its1 0>;
139*91f16700Schasinglulu			#iommu-cells = <1>;
140*91f16700Schasinglulu			dma-coherent;
141*91f16700Schasinglulu		};
142*91f16700Schasinglulu
143*91f16700Schasinglulu		smmu_pcie: iommu@4f400000 {
144*91f16700Schasinglulu			compatible = "arm,smmu-v3";
145*91f16700Schasinglulu			reg = <0 0x4f400000 0 0x40000>;
146*91f16700Schasinglulu			interrupts = <GIC_SPI 235 IRQ_TYPE_EDGE_RISING>,
147*91f16700Schasinglulu					<GIC_SPI 236 IRQ_TYPE_EDGE_RISING>,
148*91f16700Schasinglulu					<GIC_SPI 237 IRQ_TYPE_EDGE_RISING>;
149*91f16700Schasinglulu			interrupt-names = "eventq", "cmdq-sync", "gerror";
150*91f16700Schasinglulu			msi-parent = <&its2 0>;
151*91f16700Schasinglulu			#iommu-cells = <1>;
152*91f16700Schasinglulu			dma-coherent;
153*91f16700Schasinglulu		};
154*91f16700Schasinglulu
155*91f16700Schasinglulu		pcie_ctlr: pcie@70000000 {
156*91f16700Schasinglulu			compatible = "arm,n1sdp-pcie";
157*91f16700Schasinglulu			device_type = "pci";
158*91f16700Schasinglulu			reg = <0 0x70000000 0 0x1200000>;
159*91f16700Schasinglulu			bus-range = <0 17>;
160*91f16700Schasinglulu			linux,pci-domain = <0>;
161*91f16700Schasinglulu			#address-cells = <3>;
162*91f16700Schasinglulu			#size-cells = <2>;
163*91f16700Schasinglulu			dma-coherent;
164*91f16700Schasinglulu			ranges = <0x01000000 0x00 0x00000000 0x00 0x75200000 0x00 0x00010000>,
165*91f16700Schasinglulu				 <0x02000000 0x00 0x71200000 0x00 0x71200000 0x00 0x04000000>,
166*91f16700Schasinglulu				 <0x42000000 0x09 0x00000000 0x09 0x00000000 0x20 0x00000000>;
167*91f16700Schasinglulu			#interrupt-cells = <1>;
168*91f16700Schasinglulu			interrupt-map-mask = <0 0 0 7>;
169*91f16700Schasinglulu			interrupt-map = <0 0 0 1 &gic 0 0 0 169 IRQ_TYPE_LEVEL_HIGH>,
170*91f16700Schasinglulu				<0 0 0 2 &gic 0 0 0 170 IRQ_TYPE_LEVEL_HIGH>,
171*91f16700Schasinglulu				<0 0 0 3 &gic 0 0 0 171 IRQ_TYPE_LEVEL_HIGH>,
172*91f16700Schasinglulu				<0 0 0 4 &gic 0 0 0 172 IRQ_TYPE_LEVEL_HIGH>;
173*91f16700Schasinglulu			msi-map = <0 &its_pcie 0 0x10000>;
174*91f16700Schasinglulu			iommu-map = <0 &smmu_pcie 0 0x10000>;
175*91f16700Schasinglulu			status = "disabled";
176*91f16700Schasinglulu		};
177*91f16700Schasinglulu
178*91f16700Schasinglulu		ccix_pcie_ctlr: pcie@68000000 {
179*91f16700Schasinglulu			compatible = "arm,n1sdp-pcie";
180*91f16700Schasinglulu			device_type = "pci";
181*91f16700Schasinglulu			reg = <0 0x68000000 0 0x1200000>;
182*91f16700Schasinglulu			bus-range = <0 17>;
183*91f16700Schasinglulu			linux,pci-domain = <1>;
184*91f16700Schasinglulu			#address-cells = <3>;
185*91f16700Schasinglulu			#size-cells = <2>;
186*91f16700Schasinglulu			dma-coherent;
187*91f16700Schasinglulu			ranges = <0x01000000 0x00 0x00000000 0x00 0x6d200000 0x00 0x00010000>,
188*91f16700Schasinglulu				 <0x02000000 0x00 0x69200000 0x00 0x69200000 0x00 0x04000000>,
189*91f16700Schasinglulu				 <0x42000000 0x29 0x00000000 0x29 0x00000000 0x20 0x00000000>;
190*91f16700Schasinglulu			#interrupt-cells = <1>;
191*91f16700Schasinglulu			interrupt-map-mask = <0 0 0 7>;
192*91f16700Schasinglulu			interrupt-map = <0 0 0 1 &gic 0 0 0 201 IRQ_TYPE_LEVEL_HIGH>,
193*91f16700Schasinglulu				<0 0 0 2 &gic 0 0 0 202 IRQ_TYPE_LEVEL_HIGH>,
194*91f16700Schasinglulu				<0 0 0 3 &gic 0 0 0 203 IRQ_TYPE_LEVEL_HIGH>,
195*91f16700Schasinglulu				<0 0 0 4 &gic 0 0 0 204 IRQ_TYPE_LEVEL_HIGH>;
196*91f16700Schasinglulu			msi-map = <0 &its_ccix 0 0x10000>;
197*91f16700Schasinglulu			iommu-map = <0 &smmu_ccix 0 0x10000>;
198*91f16700Schasinglulu			status = "disabled";
199*91f16700Schasinglulu		};
200*91f16700Schasinglulu
201*91f16700Schasinglulu		soc_uart0: serial@2a400000 {
202*91f16700Schasinglulu			compatible = "arm,pl011", "arm,primecell";
203*91f16700Schasinglulu			reg = <0x0 0x2a400000 0x0 0x1000>;
204*91f16700Schasinglulu			interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
205*91f16700Schasinglulu			clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
206*91f16700Schasinglulu			clock-names = "uartclk", "apb_pclk";
207*91f16700Schasinglulu			status = "disabled";
208*91f16700Schasinglulu		};
209*91f16700Schasinglulu	};
210*91f16700Schasinglulu};
211