xref: /rk3399_ARM-atf/fdts/fvp-base-psci-common.dtsi (revision 589aaba46e1ea9fbbf8033b38e7ac56812e5dc23)
1*589aaba4SAndre Przywara/*
2*589aaba4SAndre Przywara * Copyright (c) 2017-2021, ARM Limited and Contributors. All rights reserved.
3*589aaba4SAndre Przywara *
4*589aaba4SAndre Przywara * SPDX-License-Identifier: BSD-3-Clause
5*589aaba4SAndre Przywara */
6*589aaba4SAndre Przywara
7*589aaba4SAndre Przywara#include <dt-bindings/interrupt-controller/arm-gic.h>
8*589aaba4SAndre Przywara#include <services/sdei_flags.h>
9*589aaba4SAndre Przywara
10*589aaba4SAndre Przywara#define LEVEL	0
11*589aaba4SAndre Przywara#define EDGE	2
12*589aaba4SAndre Przywara#define SDEI_NORMAL	0x70
13*589aaba4SAndre Przywara#define HIGHEST_SEC	0
14*589aaba4SAndre Przywara
15*589aaba4SAndre Przywara/ {
16*589aaba4SAndre Przywara	model = "FVP Base";
17*589aaba4SAndre Przywara	compatible = "arm,fvp-base", "arm,vexpress";
18*589aaba4SAndre Przywara	interrupt-parent = <&gic>;
19*589aaba4SAndre Przywara	#address-cells = <2>;
20*589aaba4SAndre Przywara	#size-cells = <2>;
21*589aaba4SAndre Przywara
22*589aaba4SAndre Przywara#if (ENABLE_RME == 1)
23*589aaba4SAndre Przywara	chosen { bootargs = "mem=1G console=ttyAMA0 earlycon=pl011,0x1c090000 root=/dev/vda ip=on";};
24*589aaba4SAndre Przywara#else
25*589aaba4SAndre Przywara	chosen {};
26*589aaba4SAndre Przywara#endif
27*589aaba4SAndre Przywara
28*589aaba4SAndre Przywara	aliases {
29*589aaba4SAndre Przywara		serial0 = &v2m_serial0;
30*589aaba4SAndre Przywara		serial1 = &v2m_serial1;
31*589aaba4SAndre Przywara		serial2 = &v2m_serial2;
32*589aaba4SAndre Przywara		serial3 = &v2m_serial3;
33*589aaba4SAndre Przywara	};
34*589aaba4SAndre Przywara
35*589aaba4SAndre Przywara	psci {
36*589aaba4SAndre Przywara		compatible = "arm,psci-1.0", "arm,psci-0.2";
37*589aaba4SAndre Przywara		method = "smc";
38*589aaba4SAndre Przywara		max-pwr-lvl = <2>;
39*589aaba4SAndre Przywara	};
40*589aaba4SAndre Przywara
41*589aaba4SAndre Przywara#if SDEI_IN_FCONF || SEC_INT_DESC_IN_FCONF
42*589aaba4SAndre Przywara	firmware {
43*589aaba4SAndre Przywara#if SDEI_IN_FCONF
44*589aaba4SAndre Przywara		sdei {
45*589aaba4SAndre Przywara			compatible = "arm,sdei-1.0";
46*589aaba4SAndre Przywara			method = "smc";
47*589aaba4SAndre Przywara			private_event_count = <3>;
48*589aaba4SAndre Przywara			shared_event_count = <3>;
49*589aaba4SAndre Przywara			/*
50*589aaba4SAndre Przywara			 * Each event descriptor has typically 3 fields:
51*589aaba4SAndre Przywara			 * 1. Event number
52*589aaba4SAndre Przywara			 * 2. Interrupt number the event is bound to or
53*589aaba4SAndre Przywara			 *    if event is dynamic, specified as SDEI_DYN_IRQ
54*589aaba4SAndre Przywara			 * 3. Bit map of event flags
55*589aaba4SAndre Przywara			 */
56*589aaba4SAndre Przywara			private_events =	<1000 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>,
57*589aaba4SAndre Przywara						<1001 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>,
58*589aaba4SAndre Przywara						<1002 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>;
59*589aaba4SAndre Przywara			shared_events =		<2000 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>,
60*589aaba4SAndre Przywara						<2001 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>,
61*589aaba4SAndre Przywara						<2002 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>;
62*589aaba4SAndre Przywara		};
63*589aaba4SAndre Przywara#endif /* SDEI_IN_FCONF */
64*589aaba4SAndre Przywara
65*589aaba4SAndre Przywara#if SEC_INT_DESC_IN_FCONF
66*589aaba4SAndre Przywara		sec_interrupts {
67*589aaba4SAndre Przywara			compatible = "arm,secure_interrupt_desc";
68*589aaba4SAndre Przywara			/* Number of G0 and G1 secure interrupts defined by the platform */
69*589aaba4SAndre Przywara			g0_intr_cnt = <2>;
70*589aaba4SAndre Przywara			g1s_intr_cnt = <9>;
71*589aaba4SAndre Przywara			/*
72*589aaba4SAndre Przywara			 * Define a list of Group 1 Secure and Group 0 interrupts as per GICv3
73*589aaba4SAndre Przywara			 * terminology. Each interrupt property descriptor has 3 fields:
74*589aaba4SAndre Przywara			 * 1. Interrupt number
75*589aaba4SAndre Przywara			 * 2. Interrupt priority
76*589aaba4SAndre Przywara			 * 3. Type of interrupt (Edge or Level configured)
77*589aaba4SAndre Przywara			 */
78*589aaba4SAndre Przywara			g0_intr_desc =	< 8 SDEI_NORMAL EDGE>,
79*589aaba4SAndre Przywara					<14 HIGHEST_SEC EDGE>;
80*589aaba4SAndre Przywara
81*589aaba4SAndre Przywara			g1s_intr_desc =	< 9 HIGHEST_SEC EDGE>,
82*589aaba4SAndre Przywara					<10 HIGHEST_SEC EDGE>,
83*589aaba4SAndre Przywara					<11 HIGHEST_SEC EDGE>,
84*589aaba4SAndre Przywara					<12 HIGHEST_SEC EDGE>,
85*589aaba4SAndre Przywara					<13 HIGHEST_SEC EDGE>,
86*589aaba4SAndre Przywara					<15 HIGHEST_SEC EDGE>,
87*589aaba4SAndre Przywara					<29 HIGHEST_SEC LEVEL>,
88*589aaba4SAndre Przywara					<56 HIGHEST_SEC LEVEL>,
89*589aaba4SAndre Przywara					<57 HIGHEST_SEC LEVEL>;
90*589aaba4SAndre Przywara		};
91*589aaba4SAndre Przywara#endif /* SEC_INT_DESC_IN_FCONF */
92*589aaba4SAndre Przywara	};
93*589aaba4SAndre Przywara#endif /* SDEI_IN_FCONF || SEC_INT_DESC_IN_FCONF */
94*589aaba4SAndre Przywara
95*589aaba4SAndre Przywara	cpus {
96*589aaba4SAndre Przywara		#address-cells = <2>;
97*589aaba4SAndre Przywara		#size-cells = <0>;
98*589aaba4SAndre Przywara
99*589aaba4SAndre Przywara		CPU_MAP
100*589aaba4SAndre Przywara
101*589aaba4SAndre Przywara		idle-states {
102*589aaba4SAndre Przywara			entry-method = "arm,psci";
103*589aaba4SAndre Przywara
104*589aaba4SAndre Przywara			CPU_SLEEP_0: cpu-sleep-0 {
105*589aaba4SAndre Przywara				compatible = "arm,idle-state";
106*589aaba4SAndre Przywara				local-timer-stop;
107*589aaba4SAndre Przywara				arm,psci-suspend-param = <0x0010000>;
108*589aaba4SAndre Przywara				entry-latency-us = <40>;
109*589aaba4SAndre Przywara				exit-latency-us = <100>;
110*589aaba4SAndre Przywara				min-residency-us = <150>;
111*589aaba4SAndre Przywara			};
112*589aaba4SAndre Przywara
113*589aaba4SAndre Przywara			CLUSTER_SLEEP_0: cluster-sleep-0 {
114*589aaba4SAndre Przywara				compatible = "arm,idle-state";
115*589aaba4SAndre Przywara				local-timer-stop;
116*589aaba4SAndre Przywara				arm,psci-suspend-param = <0x1010000>;
117*589aaba4SAndre Przywara				entry-latency-us = <500>;
118*589aaba4SAndre Przywara				exit-latency-us = <1000>;
119*589aaba4SAndre Przywara				min-residency-us = <2500>;
120*589aaba4SAndre Przywara			};
121*589aaba4SAndre Przywara		};
122*589aaba4SAndre Przywara
123*589aaba4SAndre Przywara		CPUS
124*589aaba4SAndre Przywara
125*589aaba4SAndre Przywara		L2_0: l2-cache0 {
126*589aaba4SAndre Przywara			compatible = "cache";
127*589aaba4SAndre Przywara		};
128*589aaba4SAndre Przywara	};
129*589aaba4SAndre Przywara
130*589aaba4SAndre Przywara	memory@80000000 {
131*589aaba4SAndre Przywara		device_type = "memory";
132*589aaba4SAndre Przywara#if (ENABLE_RME == 1)
133*589aaba4SAndre Przywara		reg = <0x00000000 0x80000000 0 0x7C000000>,
134*589aaba4SAndre Przywara		      <0x00000008 0x80000000 0 0x80000000>;
135*589aaba4SAndre Przywara#else
136*589aaba4SAndre Przywara		reg = <0x00000000 0x80000000 0 0x7F000000>,
137*589aaba4SAndre Przywara		      <0x00000008 0x80000000 0 0x80000000>;
138*589aaba4SAndre Przywara#endif
139*589aaba4SAndre Przywara	};
140*589aaba4SAndre Przywara
141*589aaba4SAndre Przywara	timer {
142*589aaba4SAndre Przywara		compatible = "arm,armv8-timer";
143*589aaba4SAndre Przywara		interrupts = <GIC_PPI 13
144*589aaba4SAndre Przywara				(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
145*589aaba4SAndre Przywara			     <GIC_PPI 14
146*589aaba4SAndre Przywara				(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
147*589aaba4SAndre Przywara			     <GIC_PPI 11
148*589aaba4SAndre Przywara				(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
149*589aaba4SAndre Przywara			     <GIC_PPI 10
150*589aaba4SAndre Przywara				(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
151*589aaba4SAndre Przywara		clock-frequency = <100000000>;
152*589aaba4SAndre Przywara	};
153*589aaba4SAndre Przywara
154*589aaba4SAndre Przywara	timer@2a810000 {
155*589aaba4SAndre Przywara			compatible = "arm,armv7-timer-mem";
156*589aaba4SAndre Przywara			reg = <0x0 0x2a810000 0x0 0x10000>;
157*589aaba4SAndre Przywara			clock-frequency = <100000000>;
158*589aaba4SAndre Przywara			#address-cells = <2>;
159*589aaba4SAndre Przywara			#size-cells = <2>;
160*589aaba4SAndre Przywara			ranges;
161*589aaba4SAndre Przywara			frame@2a830000 {
162*589aaba4SAndre Przywara				frame-number = <1>;
163*589aaba4SAndre Przywara				interrupts = <0 26 4>;
164*589aaba4SAndre Przywara				reg = <0x0 0x2a830000 0x0 0x10000>;
165*589aaba4SAndre Przywara			};
166*589aaba4SAndre Przywara	};
167*589aaba4SAndre Przywara
168*589aaba4SAndre Przywara	pmu {
169*589aaba4SAndre Przywara		compatible = "arm,armv8-pmuv3";
170*589aaba4SAndre Przywara		interrupts = <0 60 4>,
171*589aaba4SAndre Przywara			     <0 61 4>,
172*589aaba4SAndre Przywara			     <0 62 4>,
173*589aaba4SAndre Przywara			     <0 63 4>;
174*589aaba4SAndre Przywara	};
175*589aaba4SAndre Przywara
176*589aaba4SAndre Przywara	smb@0 {
177*589aaba4SAndre Przywara		compatible = "simple-bus";
178*589aaba4SAndre Przywara
179*589aaba4SAndre Przywara		#address-cells = <2>;
180*589aaba4SAndre Przywara		#size-cells = <1>;
181*589aaba4SAndre Przywara		ranges = <0 0 0 0x08000000 0x04000000>,
182*589aaba4SAndre Przywara			 <1 0 0 0x14000000 0x04000000>,
183*589aaba4SAndre Przywara			 <2 0 0 0x18000000 0x04000000>,
184*589aaba4SAndre Przywara			 <3 0 0 0x1c000000 0x04000000>,
185*589aaba4SAndre Przywara			 <4 0 0 0x0c000000 0x04000000>,
186*589aaba4SAndre Przywara			 <5 0 0 0x10000000 0x04000000>;
187*589aaba4SAndre Przywara
188*589aaba4SAndre Przywara		#interrupt-cells = <1>;
189*589aaba4SAndre Przywara		interrupt-map-mask = <0 0 63>;
190*589aaba4SAndre Przywara		interrupt-map = <0 0  0 &gic 0 GIC_SPI  0 IRQ_TYPE_LEVEL_HIGH>,
191*589aaba4SAndre Przywara				<0 0  1 &gic 0 GIC_SPI  1 IRQ_TYPE_LEVEL_HIGH>,
192*589aaba4SAndre Przywara				<0 0  2 &gic 0 GIC_SPI  2 IRQ_TYPE_LEVEL_HIGH>,
193*589aaba4SAndre Przywara				<0 0  3 &gic 0 GIC_SPI  3 IRQ_TYPE_LEVEL_HIGH>,
194*589aaba4SAndre Przywara				<0 0  4 &gic 0 GIC_SPI  4 IRQ_TYPE_LEVEL_HIGH>,
195*589aaba4SAndre Przywara				<0 0  5 &gic 0 GIC_SPI  5 IRQ_TYPE_LEVEL_HIGH>,
196*589aaba4SAndre Przywara				<0 0  6 &gic 0 GIC_SPI  6 IRQ_TYPE_LEVEL_HIGH>,
197*589aaba4SAndre Przywara				<0 0  7 &gic 0 GIC_SPI  7 IRQ_TYPE_LEVEL_HIGH>,
198*589aaba4SAndre Przywara				<0 0  8 &gic 0 GIC_SPI  8 IRQ_TYPE_LEVEL_HIGH>,
199*589aaba4SAndre Przywara				<0 0  9 &gic 0 GIC_SPI  9 IRQ_TYPE_LEVEL_HIGH>,
200*589aaba4SAndre Przywara				<0 0 10 &gic 0 GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
201*589aaba4SAndre Przywara				<0 0 11 &gic 0 GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
202*589aaba4SAndre Przywara				<0 0 12 &gic 0 GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
203*589aaba4SAndre Przywara				<0 0 13 &gic 0 GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
204*589aaba4SAndre Przywara				<0 0 14 &gic 0 GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
205*589aaba4SAndre Przywara				<0 0 15 &gic 0 GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
206*589aaba4SAndre Przywara				<0 0 16 &gic 0 GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
207*589aaba4SAndre Przywara				<0 0 17 &gic 0 GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
208*589aaba4SAndre Przywara				<0 0 18 &gic 0 GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
209*589aaba4SAndre Przywara				<0 0 19 &gic 0 GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
210*589aaba4SAndre Przywara				<0 0 20 &gic 0 GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
211*589aaba4SAndre Przywara				<0 0 21 &gic 0 GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
212*589aaba4SAndre Przywara				<0 0 22 &gic 0 GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
213*589aaba4SAndre Przywara				<0 0 23 &gic 0 GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
214*589aaba4SAndre Przywara				<0 0 24 &gic 0 GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
215*589aaba4SAndre Przywara				<0 0 25 &gic 0 GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
216*589aaba4SAndre Przywara				<0 0 26 &gic 0 GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
217*589aaba4SAndre Przywara				<0 0 27 &gic 0 GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
218*589aaba4SAndre Przywara				<0 0 28 &gic 0 GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
219*589aaba4SAndre Przywara				<0 0 29 &gic 0 GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
220*589aaba4SAndre Przywara				<0 0 30 &gic 0 GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
221*589aaba4SAndre Przywara				<0 0 31 &gic 0 GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
222*589aaba4SAndre Przywara				<0 0 32 &gic 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
223*589aaba4SAndre Przywara				<0 0 33 &gic 0 GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
224*589aaba4SAndre Przywara				<0 0 34 &gic 0 GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
225*589aaba4SAndre Przywara				<0 0 35 &gic 0 GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
226*589aaba4SAndre Przywara				<0 0 36 &gic 0 GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
227*589aaba4SAndre Przywara				<0 0 37 &gic 0 GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
228*589aaba4SAndre Przywara				<0 0 38 &gic 0 GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
229*589aaba4SAndre Przywara				<0 0 39 &gic 0 GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
230*589aaba4SAndre Przywara				<0 0 40 &gic 0 GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
231*589aaba4SAndre Przywara				<0 0 41 &gic 0 GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
232*589aaba4SAndre Przywara				<0 0 42 &gic 0 GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
233*589aaba4SAndre Przywara
234*589aaba4SAndre Przywara		#include "rtsm_ve-motherboard.dtsi"
235*589aaba4SAndre Przywara	};
236*589aaba4SAndre Przywara
237*589aaba4SAndre Przywara	panels {
238*589aaba4SAndre Przywara		panel {
239*589aaba4SAndre Przywara			compatible	= "panel";
240*589aaba4SAndre Przywara			mode		= "XVGA";
241*589aaba4SAndre Przywara			refresh		= <60>;
242*589aaba4SAndre Przywara			xres		= <1024>;
243*589aaba4SAndre Przywara			yres		= <768>;
244*589aaba4SAndre Przywara			pixclock	= <15748>;
245*589aaba4SAndre Przywara			left_margin	= <152>;
246*589aaba4SAndre Przywara			right_margin	= <48>;
247*589aaba4SAndre Przywara			upper_margin	= <23>;
248*589aaba4SAndre Przywara			lower_margin	= <3>;
249*589aaba4SAndre Przywara			hsync_len	= <104>;
250*589aaba4SAndre Przywara			vsync_len	= <4>;
251*589aaba4SAndre Przywara			sync		= <0>;
252*589aaba4SAndre Przywara			vmode		= "FB_VMODE_NONINTERLACED";
253*589aaba4SAndre Przywara			tim2		= "TIM2_BCD", "TIM2_IPC";
254*589aaba4SAndre Przywara			cntl		= "CNTL_LCDTFT", "CNTL_BGR", "CNTL_LCDVCOMP(1)";
255*589aaba4SAndre Przywara			caps		= "CLCD_CAP_5551", "CLCD_CAP_565", "CLCD_CAP_888";
256*589aaba4SAndre Przywara			bpp		= <16>;
257*589aaba4SAndre Przywara		};
258*589aaba4SAndre Przywara	};
259*589aaba4SAndre Przywara};
260