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