xref: /aosp_15_r20/external/arm-trusted-firmware/fdts/tc.dts (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong Park/*
2*54fd6939SJiyong Park * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
3*54fd6939SJiyong Park *
4*54fd6939SJiyong Park * SPDX-License-Identifier: BSD-3-Clause
5*54fd6939SJiyong Park */
6*54fd6939SJiyong Park
7*54fd6939SJiyong Park/dts-v1/;
8*54fd6939SJiyong Park
9*54fd6939SJiyong Park/ {
10*54fd6939SJiyong Park	compatible = "arm,tc";
11*54fd6939SJiyong Park	interrupt-parent = <&gic>;
12*54fd6939SJiyong Park	#address-cells = <2>;
13*54fd6939SJiyong Park	#size-cells = <2>;
14*54fd6939SJiyong Park
15*54fd6939SJiyong Park	aliases {
16*54fd6939SJiyong Park		serial0 = &soc_uart0;
17*54fd6939SJiyong Park	};
18*54fd6939SJiyong Park
19*54fd6939SJiyong Park	chosen {
20*54fd6939SJiyong Park		bootargs = "console=ttyAMA0 debug user_debug=31 earlycon=pl011,0x7ff80000 loglevel=9 androidboot.hardware=total_compute androidboot.boot_devices=1c050000.mmci ip=dhcp androidboot.selinux=permissive allow_mismatched_32bit_el0";
21*54fd6939SJiyong Park		stdout-path = "serial0:115200n8";
22*54fd6939SJiyong Park	};
23*54fd6939SJiyong Park
24*54fd6939SJiyong Park	cpus {
25*54fd6939SJiyong Park		#address-cells = <1>;
26*54fd6939SJiyong Park		#size-cells = <0>;
27*54fd6939SJiyong Park
28*54fd6939SJiyong Park		cpu-map {
29*54fd6939SJiyong Park			cluster0 {
30*54fd6939SJiyong Park				core0 {
31*54fd6939SJiyong Park					cpu = <&CPU0>;
32*54fd6939SJiyong Park				};
33*54fd6939SJiyong Park				core1 {
34*54fd6939SJiyong Park					cpu = <&CPU1>;
35*54fd6939SJiyong Park				};
36*54fd6939SJiyong Park				core2 {
37*54fd6939SJiyong Park					cpu = <&CPU2>;
38*54fd6939SJiyong Park				};
39*54fd6939SJiyong Park				core3 {
40*54fd6939SJiyong Park					cpu = <&CPU3>;
41*54fd6939SJiyong Park				};
42*54fd6939SJiyong Park				core4 {
43*54fd6939SJiyong Park					cpu = <&CPU4>;
44*54fd6939SJiyong Park				};
45*54fd6939SJiyong Park				core5 {
46*54fd6939SJiyong Park					cpu = <&CPU5>;
47*54fd6939SJiyong Park				};
48*54fd6939SJiyong Park				core6 {
49*54fd6939SJiyong Park					cpu = <&CPU6>;
50*54fd6939SJiyong Park				};
51*54fd6939SJiyong Park				core7 {
52*54fd6939SJiyong Park					cpu = <&CPU7>;
53*54fd6939SJiyong Park				};
54*54fd6939SJiyong Park			};
55*54fd6939SJiyong Park		};
56*54fd6939SJiyong Park
57*54fd6939SJiyong Park		/*
58*54fd6939SJiyong Park		 * The timings below are just to demonstrate working cpuidle.
59*54fd6939SJiyong Park		 * These values may be inaccurate.
60*54fd6939SJiyong Park		 */
61*54fd6939SJiyong Park		idle-states {
62*54fd6939SJiyong Park			entry-method = "arm,psci";
63*54fd6939SJiyong Park
64*54fd6939SJiyong Park			CPU_SLEEP_0: cpu-sleep-0 {
65*54fd6939SJiyong Park				compatible = "arm,idle-state";
66*54fd6939SJiyong Park				arm,psci-suspend-param = <0x0010000>;
67*54fd6939SJiyong Park				local-timer-stop;
68*54fd6939SJiyong Park				entry-latency-us = <300>;
69*54fd6939SJiyong Park				exit-latency-us = <1200>;
70*54fd6939SJiyong Park				min-residency-us = <2000>;
71*54fd6939SJiyong Park			};
72*54fd6939SJiyong Park			CLUSTER_SLEEP_0: cluster-sleep-0 {
73*54fd6939SJiyong Park				compatible = "arm,idle-state";
74*54fd6939SJiyong Park				arm,psci-suspend-param = <0x1010000>;
75*54fd6939SJiyong Park				local-timer-stop;
76*54fd6939SJiyong Park				entry-latency-us = <400>;
77*54fd6939SJiyong Park				exit-latency-us = <1200>;
78*54fd6939SJiyong Park				min-residency-us = <2500>;
79*54fd6939SJiyong Park			};
80*54fd6939SJiyong Park		};
81*54fd6939SJiyong Park
82*54fd6939SJiyong Park		amus {
83*54fd6939SJiyong Park			amu: amu-0 {
84*54fd6939SJiyong Park				#address-cells = <1>;
85*54fd6939SJiyong Park				#size-cells = <0>;
86*54fd6939SJiyong Park
87*54fd6939SJiyong Park				mpmm_gear0: counter@0 {
88*54fd6939SJiyong Park					reg = <0>;
89*54fd6939SJiyong Park
90*54fd6939SJiyong Park					enable-at-el3;
91*54fd6939SJiyong Park				};
92*54fd6939SJiyong Park
93*54fd6939SJiyong Park				mpmm_gear1: counter@1 {
94*54fd6939SJiyong Park					reg = <1>;
95*54fd6939SJiyong Park
96*54fd6939SJiyong Park					enable-at-el3;
97*54fd6939SJiyong Park				};
98*54fd6939SJiyong Park
99*54fd6939SJiyong Park				mpmm_gear2: counter@2 {
100*54fd6939SJiyong Park					reg = <2>;
101*54fd6939SJiyong Park
102*54fd6939SJiyong Park					enable-at-el3;
103*54fd6939SJiyong Park				};
104*54fd6939SJiyong Park			};
105*54fd6939SJiyong Park		};
106*54fd6939SJiyong Park
107*54fd6939SJiyong Park		CPU0:cpu@0 {
108*54fd6939SJiyong Park			device_type = "cpu";
109*54fd6939SJiyong Park			compatible = "arm,armv8";
110*54fd6939SJiyong Park			reg = <0x0>;
111*54fd6939SJiyong Park			enable-method = "psci";
112*54fd6939SJiyong Park			clocks = <&scmi_dvfs 0>;
113*54fd6939SJiyong Park			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
114*54fd6939SJiyong Park			capacity-dmips-mhz = <406>;
115*54fd6939SJiyong Park			amu = <&amu>;
116*54fd6939SJiyong Park			supports-mpmm;
117*54fd6939SJiyong Park		};
118*54fd6939SJiyong Park
119*54fd6939SJiyong Park		CPU1:cpu@100 {
120*54fd6939SJiyong Park			device_type = "cpu";
121*54fd6939SJiyong Park			compatible = "arm,armv8";
122*54fd6939SJiyong Park			reg = <0x100>;
123*54fd6939SJiyong Park			enable-method = "psci";
124*54fd6939SJiyong Park			clocks = <&scmi_dvfs 0>;
125*54fd6939SJiyong Park			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
126*54fd6939SJiyong Park			capacity-dmips-mhz = <406>;
127*54fd6939SJiyong Park			amu = <&amu>;
128*54fd6939SJiyong Park			supports-mpmm;
129*54fd6939SJiyong Park		};
130*54fd6939SJiyong Park
131*54fd6939SJiyong Park		CPU2:cpu@200 {
132*54fd6939SJiyong Park			device_type = "cpu";
133*54fd6939SJiyong Park			compatible = "arm,armv8";
134*54fd6939SJiyong Park			reg = <0x200>;
135*54fd6939SJiyong Park			enable-method = "psci";
136*54fd6939SJiyong Park			clocks = <&scmi_dvfs 0>;
137*54fd6939SJiyong Park			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
138*54fd6939SJiyong Park			capacity-dmips-mhz = <406>;
139*54fd6939SJiyong Park			amu = <&amu>;
140*54fd6939SJiyong Park			supports-mpmm;
141*54fd6939SJiyong Park		};
142*54fd6939SJiyong Park
143*54fd6939SJiyong Park		CPU3:cpu@300 {
144*54fd6939SJiyong Park			device_type = "cpu";
145*54fd6939SJiyong Park			compatible = "arm,armv8";
146*54fd6939SJiyong Park			reg = <0x300>;
147*54fd6939SJiyong Park			enable-method = "psci";
148*54fd6939SJiyong Park			clocks = <&scmi_dvfs 0>;
149*54fd6939SJiyong Park			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
150*54fd6939SJiyong Park			capacity-dmips-mhz = <406>;
151*54fd6939SJiyong Park			amu = <&amu>;
152*54fd6939SJiyong Park			supports-mpmm;
153*54fd6939SJiyong Park		};
154*54fd6939SJiyong Park
155*54fd6939SJiyong Park		CPU4:cpu@400 {
156*54fd6939SJiyong Park			device_type = "cpu";
157*54fd6939SJiyong Park			compatible = "arm,armv8";
158*54fd6939SJiyong Park			reg = <0x400>;
159*54fd6939SJiyong Park			enable-method = "psci";
160*54fd6939SJiyong Park			clocks = <&scmi_dvfs 1>;
161*54fd6939SJiyong Park			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
162*54fd6939SJiyong Park			capacity-dmips-mhz = <912>;
163*54fd6939SJiyong Park			amu = <&amu>;
164*54fd6939SJiyong Park			supports-mpmm;
165*54fd6939SJiyong Park		};
166*54fd6939SJiyong Park
167*54fd6939SJiyong Park		CPU5:cpu@500 {
168*54fd6939SJiyong Park			device_type = "cpu";
169*54fd6939SJiyong Park			compatible = "arm,armv8";
170*54fd6939SJiyong Park			reg = <0x500>;
171*54fd6939SJiyong Park			enable-method = "psci";
172*54fd6939SJiyong Park			clocks = <&scmi_dvfs 1>;
173*54fd6939SJiyong Park			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
174*54fd6939SJiyong Park			capacity-dmips-mhz = <912>;
175*54fd6939SJiyong Park			amu = <&amu>;
176*54fd6939SJiyong Park			supports-mpmm;
177*54fd6939SJiyong Park		};
178*54fd6939SJiyong Park
179*54fd6939SJiyong Park		CPU6:cpu@600 {
180*54fd6939SJiyong Park			device_type = "cpu";
181*54fd6939SJiyong Park			compatible = "arm,armv8";
182*54fd6939SJiyong Park			reg = <0x600>;
183*54fd6939SJiyong Park			enable-method = "psci";
184*54fd6939SJiyong Park			clocks = <&scmi_dvfs 1>;
185*54fd6939SJiyong Park			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
186*54fd6939SJiyong Park			capacity-dmips-mhz = <912>;
187*54fd6939SJiyong Park			amu = <&amu>;
188*54fd6939SJiyong Park			supports-mpmm;
189*54fd6939SJiyong Park		};
190*54fd6939SJiyong Park
191*54fd6939SJiyong Park		CPU7:cpu@700 {
192*54fd6939SJiyong Park			device_type = "cpu";
193*54fd6939SJiyong Park			compatible = "arm,armv8";
194*54fd6939SJiyong Park			reg = <0x700>;
195*54fd6939SJiyong Park			enable-method = "psci";
196*54fd6939SJiyong Park			clocks = <&scmi_dvfs 2>;
197*54fd6939SJiyong Park			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
198*54fd6939SJiyong Park			capacity-dmips-mhz = <1024>;
199*54fd6939SJiyong Park			amu = <&amu>;
200*54fd6939SJiyong Park			supports-mpmm;
201*54fd6939SJiyong Park		};
202*54fd6939SJiyong Park
203*54fd6939SJiyong Park	};
204*54fd6939SJiyong Park
205*54fd6939SJiyong Park	reserved-memory {
206*54fd6939SJiyong Park		#address-cells = <2>;
207*54fd6939SJiyong Park		#size-cells = <2>;
208*54fd6939SJiyong Park		ranges;
209*54fd6939SJiyong Park
210*54fd6939SJiyong Park		optee@0xfce00000 {
211*54fd6939SJiyong Park			reg = <0x00000000 0xfce00000 0 0x00200000>;
212*54fd6939SJiyong Park			no-map;
213*54fd6939SJiyong Park		};
214*54fd6939SJiyong Park	};
215*54fd6939SJiyong Park
216*54fd6939SJiyong Park	psci {
217*54fd6939SJiyong Park		compatible = "arm,psci-1.0", "arm,psci-0.2";
218*54fd6939SJiyong Park		method = "smc";
219*54fd6939SJiyong Park	};
220*54fd6939SJiyong Park
221*54fd6939SJiyong Park	sram: sram@6000000 {
222*54fd6939SJiyong Park		compatible = "mmio-sram";
223*54fd6939SJiyong Park		reg = <0x0 0x06000000 0x0 0x8000>;
224*54fd6939SJiyong Park
225*54fd6939SJiyong Park		#address-cells = <1>;
226*54fd6939SJiyong Park		#size-cells = <1>;
227*54fd6939SJiyong Park		ranges = <0 0x0 0x06000000 0x8000>;
228*54fd6939SJiyong Park
229*54fd6939SJiyong Park		cpu_scp_scmi_mem: scp-shmem@0 {
230*54fd6939SJiyong Park			compatible = "arm,scmi-shmem";
231*54fd6939SJiyong Park			reg = <0x0 0x80>;
232*54fd6939SJiyong Park		};
233*54fd6939SJiyong Park	};
234*54fd6939SJiyong Park
235*54fd6939SJiyong Park	mbox_db_rx: mhu@45010000 {
236*54fd6939SJiyong Park		compatible = "arm,mhuv2-rx","arm,primecell";
237*54fd6939SJiyong Park		reg = <0x0 0x45010000 0x0 0x1000>;
238*54fd6939SJiyong Park		clocks = <&soc_refclk100mhz>;
239*54fd6939SJiyong Park		clock-names = "apb_pclk";
240*54fd6939SJiyong Park		#mbox-cells = <2>;
241*54fd6939SJiyong Park		interrupts = <0 317 4>;
242*54fd6939SJiyong Park		interrupt-names = "mhu_rx";
243*54fd6939SJiyong Park		mhu-protocol = "doorbell";
244*54fd6939SJiyong Park		arm,mhuv2-protocols = <0 1>;
245*54fd6939SJiyong Park	};
246*54fd6939SJiyong Park
247*54fd6939SJiyong Park	mbox_db_tx: mhu@45000000 {
248*54fd6939SJiyong Park		compatible = "arm,mhuv2-tx","arm,primecell";
249*54fd6939SJiyong Park		reg = <0x0 0x45000000 0x0 0x1000>;
250*54fd6939SJiyong Park		clocks = <&soc_refclk100mhz>;
251*54fd6939SJiyong Park		clock-names = "apb_pclk";
252*54fd6939SJiyong Park		#mbox-cells = <2>;
253*54fd6939SJiyong Park		interrupt-names = "mhu_tx";
254*54fd6939SJiyong Park		mhu-protocol = "doorbell";
255*54fd6939SJiyong Park		arm,mhuv2-protocols = <0 1>;
256*54fd6939SJiyong Park	};
257*54fd6939SJiyong Park
258*54fd6939SJiyong Park	scmi {
259*54fd6939SJiyong Park		compatible = "arm,scmi";
260*54fd6939SJiyong Park		mbox-names = "tx", "rx";
261*54fd6939SJiyong Park		mboxes = <&mbox_db_tx 0 0 &mbox_db_rx 0 0 >;
262*54fd6939SJiyong Park		shmem = <&cpu_scp_scmi_mem &cpu_scp_scmi_mem>;
263*54fd6939SJiyong Park		#address-cells = <1>;
264*54fd6939SJiyong Park		#size-cells = <0>;
265*54fd6939SJiyong Park
266*54fd6939SJiyong Park		scmi_dvfs: protocol@13 {
267*54fd6939SJiyong Park			reg = <0x13>;
268*54fd6939SJiyong Park			#clock-cells = <1>;
269*54fd6939SJiyong Park		};
270*54fd6939SJiyong Park
271*54fd6939SJiyong Park		scmi_clk: protocol@14 {
272*54fd6939SJiyong Park			reg = <0x14>;
273*54fd6939SJiyong Park			#clock-cells = <1>;
274*54fd6939SJiyong Park		};
275*54fd6939SJiyong Park	};
276*54fd6939SJiyong Park
277*54fd6939SJiyong Park	gic: interrupt-controller@2c010000 {
278*54fd6939SJiyong Park		compatible = "arm,gic-600", "arm,gic-v3";
279*54fd6939SJiyong Park		#address-cells = <2>;
280*54fd6939SJiyong Park		#interrupt-cells = <3>;
281*54fd6939SJiyong Park		#size-cells = <2>;
282*54fd6939SJiyong Park		ranges;
283*54fd6939SJiyong Park		interrupt-controller;
284*54fd6939SJiyong Park		reg = <0x0 0x30000000 0 0x10000>, /* GICD */
285*54fd6939SJiyong Park		      <0x0 0x30080000 0 0x200000>; /* GICR */
286*54fd6939SJiyong Park		interrupts = <0x1 0x9 0x4>;
287*54fd6939SJiyong Park	};
288*54fd6939SJiyong Park
289*54fd6939SJiyong Park	timer {
290*54fd6939SJiyong Park		compatible = "arm,armv8-timer";
291*54fd6939SJiyong Park		interrupts = <0x1 13 0x8>,
292*54fd6939SJiyong Park			     <0x1 14 0x8>,
293*54fd6939SJiyong Park			     <0x1 11 0x8>,
294*54fd6939SJiyong Park			     <0x1 10 0x8>;
295*54fd6939SJiyong Park	};
296*54fd6939SJiyong Park
297*54fd6939SJiyong Park	soc_refclk100mhz: refclk100mhz {
298*54fd6939SJiyong Park		compatible = "fixed-clock";
299*54fd6939SJiyong Park		#clock-cells = <0>;
300*54fd6939SJiyong Park		clock-frequency = <100000000>;
301*54fd6939SJiyong Park		clock-output-names = "apb_pclk";
302*54fd6939SJiyong Park	};
303*54fd6939SJiyong Park
304*54fd6939SJiyong Park	soc_refclk60mhz: refclk60mhz {
305*54fd6939SJiyong Park		compatible = "fixed-clock";
306*54fd6939SJiyong Park		#clock-cells = <0>;
307*54fd6939SJiyong Park		clock-frequency = <60000000>;
308*54fd6939SJiyong Park		clock-output-names = "iofpga_clk";
309*54fd6939SJiyong Park	};
310*54fd6939SJiyong Park
311*54fd6939SJiyong Park	soc_uartclk:  uartclk {
312*54fd6939SJiyong Park		compatible = "fixed-clock";
313*54fd6939SJiyong Park		#clock-cells = <0>;
314*54fd6939SJiyong Park		clock-frequency = <50000000>;
315*54fd6939SJiyong Park		clock-output-names = "uartclk";
316*54fd6939SJiyong Park	};
317*54fd6939SJiyong Park
318*54fd6939SJiyong Park	soc_uart0: uart@7ff80000 {
319*54fd6939SJiyong Park		compatible = "arm,pl011", "arm,primecell";
320*54fd6939SJiyong Park		reg = <0x0 0x7ff80000 0x0 0x1000>;
321*54fd6939SJiyong Park		interrupts = <0x0 116 0x4>;
322*54fd6939SJiyong Park		clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
323*54fd6939SJiyong Park		clock-names = "uartclk", "apb_pclk";
324*54fd6939SJiyong Park		status = "okay";
325*54fd6939SJiyong Park	};
326*54fd6939SJiyong Park
327*54fd6939SJiyong Park	vencoder {
328*54fd6939SJiyong Park		compatible = "drm,virtual-encoder";
329*54fd6939SJiyong Park
330*54fd6939SJiyong Park		port {
331*54fd6939SJiyong Park			vencoder_in: endpoint {
332*54fd6939SJiyong Park				remote-endpoint = <&dp_pl0_out0>;
333*54fd6939SJiyong Park			};
334*54fd6939SJiyong Park		};
335*54fd6939SJiyong Park
336*54fd6939SJiyong Park		display-timings {
337*54fd6939SJiyong Park			panel-timing {
338*54fd6939SJiyong Park				clock-frequency = <25175000>;
339*54fd6939SJiyong Park				hactive = <640>;
340*54fd6939SJiyong Park				vactive = <480>;
341*54fd6939SJiyong Park				hfront-porch = <16>;
342*54fd6939SJiyong Park				hback-porch = <48>;
343*54fd6939SJiyong Park				hsync-len = <96>;
344*54fd6939SJiyong Park				vfront-porch = <10>;
345*54fd6939SJiyong Park				vback-porch = <33>;
346*54fd6939SJiyong Park				vsync-len = <2>;
347*54fd6939SJiyong Park			};
348*54fd6939SJiyong Park		};
349*54fd6939SJiyong Park
350*54fd6939SJiyong Park	};
351*54fd6939SJiyong Park
352*54fd6939SJiyong Park	hdlcd: hdlcd@7ff60000 {
353*54fd6939SJiyong Park		compatible = "arm,hdlcd";
354*54fd6939SJiyong Park		reg = <0x0 0x7ff60000 0x0 0x1000>;
355*54fd6939SJiyong Park		interrupts = <0x0 117 0x4>;
356*54fd6939SJiyong Park		clocks = <&fake_hdlcd_clk>;
357*54fd6939SJiyong Park		clock-names = "pxlclk";
358*54fd6939SJiyong Park		status = "disabled";
359*54fd6939SJiyong Park
360*54fd6939SJiyong Park		port {
361*54fd6939SJiyong Park			hdlcd_out: endpoint {
362*54fd6939SJiyong Park				remote-endpoint = <&vencoder_in>;
363*54fd6939SJiyong Park			};
364*54fd6939SJiyong Park		};
365*54fd6939SJiyong Park	};
366*54fd6939SJiyong Park
367*54fd6939SJiyong Park	fake_hdlcd_clk: fake-hdlcd-clk {
368*54fd6939SJiyong Park		compatible = "fixed-clock";
369*54fd6939SJiyong Park		#clock-cells = <0>;
370*54fd6939SJiyong Park		clock-frequency = <25175000>;
371*54fd6939SJiyong Park		clock-output-names = "pxlclk";
372*54fd6939SJiyong Park	};
373*54fd6939SJiyong Park
374*54fd6939SJiyong Park	ethernet@18000000 {
375*54fd6939SJiyong Park		compatible = "smsc,lan91c111";
376*54fd6939SJiyong Park		reg = <0x0 0x18000000 0x0 0x10000>;
377*54fd6939SJiyong Park		interrupts = <0 109 4>;
378*54fd6939SJiyong Park	};
379*54fd6939SJiyong Park
380*54fd6939SJiyong Park	kmi@1c060000 {
381*54fd6939SJiyong Park		compatible = "arm,pl050", "arm,primecell";
382*54fd6939SJiyong Park		reg = <0x0 0x001c060000 0x0 0x1000>;
383*54fd6939SJiyong Park		interrupts = <0 197 4>;
384*54fd6939SJiyong Park		clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
385*54fd6939SJiyong Park		clock-names = "KMIREFCLK", "apb_pclk";
386*54fd6939SJiyong Park	};
387*54fd6939SJiyong Park
388*54fd6939SJiyong Park	kmi@1c070000 {
389*54fd6939SJiyong Park		compatible = "arm,pl050", "arm,primecell";
390*54fd6939SJiyong Park		reg = <0x0 0x001c070000 0x0 0x1000>;
391*54fd6939SJiyong Park		interrupts = <0 103 4>;
392*54fd6939SJiyong Park		clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
393*54fd6939SJiyong Park		clock-names = "KMIREFCLK", "apb_pclk";
394*54fd6939SJiyong Park	};
395*54fd6939SJiyong Park
396*54fd6939SJiyong Park	bp_clock24mhz: clock24mhz {
397*54fd6939SJiyong Park		compatible = "fixed-clock";
398*54fd6939SJiyong Park		#clock-cells = <0>;
399*54fd6939SJiyong Park		clock-frequency = <24000000>;
400*54fd6939SJiyong Park		clock-output-names = "bp:clock24mhz";
401*54fd6939SJiyong Park	};
402*54fd6939SJiyong Park
403*54fd6939SJiyong Park	virtio_block@1c130000 {
404*54fd6939SJiyong Park		compatible = "virtio,mmio";
405*54fd6939SJiyong Park		reg = <0x0 0x1c130000 0x0 0x200>;
406*54fd6939SJiyong Park		interrupts = <0 204 4>;
407*54fd6939SJiyong Park	};
408*54fd6939SJiyong Park
409*54fd6939SJiyong Park	sysreg: sysreg@1c010000 {
410*54fd6939SJiyong Park		compatible = "arm,vexpress-sysreg";
411*54fd6939SJiyong Park		reg = <0x0 0x001c010000 0x0 0x1000>;
412*54fd6939SJiyong Park		gpio-controller;
413*54fd6939SJiyong Park		#gpio-cells = <2>;
414*54fd6939SJiyong Park	};
415*54fd6939SJiyong Park
416*54fd6939SJiyong Park	fixed_3v3: v2m-3v3 {
417*54fd6939SJiyong Park		compatible = "regulator-fixed";
418*54fd6939SJiyong Park		regulator-name = "3V3";
419*54fd6939SJiyong Park		regulator-min-microvolt = <3300000>;
420*54fd6939SJiyong Park		regulator-max-microvolt = <3300000>;
421*54fd6939SJiyong Park		regulator-always-on;
422*54fd6939SJiyong Park	};
423*54fd6939SJiyong Park
424*54fd6939SJiyong Park	mmci@1c050000 {
425*54fd6939SJiyong Park		compatible = "arm,pl180", "arm,primecell";
426*54fd6939SJiyong Park		reg = <0x0 0x001c050000 0x0 0x1000>;
427*54fd6939SJiyong Park		interrupts = <0 107 0x4>,
428*54fd6939SJiyong Park			     <0 108 0x4>;
429*54fd6939SJiyong Park		cd-gpios = <&sysreg 0 0>;
430*54fd6939SJiyong Park		wp-gpios = <&sysreg 1 0>;
431*54fd6939SJiyong Park		bus-width = <8>;
432*54fd6939SJiyong Park		max-frequency = <12000000>;
433*54fd6939SJiyong Park		vmmc-supply = <&fixed_3v3>;
434*54fd6939SJiyong Park		clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
435*54fd6939SJiyong Park		clock-names = "mclk", "apb_pclk";
436*54fd6939SJiyong Park	};
437*54fd6939SJiyong Park
438*54fd6939SJiyong Park	dp0: display@2cc00000 {
439*54fd6939SJiyong Park		#address-cells = <1>;
440*54fd6939SJiyong Park		#size-cells = <0>;
441*54fd6939SJiyong Park		compatible = "arm,mali-d71";
442*54fd6939SJiyong Park		reg = <0 0x2cc00000 0 0x20000>;
443*54fd6939SJiyong Park		interrupts = <0 69 4>;
444*54fd6939SJiyong Park		interrupt-names = "DPU";
445*54fd6939SJiyong Park		clocks = <&scmi_clk 0>;
446*54fd6939SJiyong Park		clock-names = "aclk";
447*54fd6939SJiyong Park		pl0: pipeline@0 {
448*54fd6939SJiyong Park			reg = <0>;
449*54fd6939SJiyong Park			clocks = <&scmi_clk 1>;
450*54fd6939SJiyong Park			clock-names = "pxclk";
451*54fd6939SJiyong Park			pl_id = <0>;
452*54fd6939SJiyong Park			ports {
453*54fd6939SJiyong Park				#address-cells = <1>;
454*54fd6939SJiyong Park				#size-cells = <0>;
455*54fd6939SJiyong Park				port@0 {
456*54fd6939SJiyong Park					reg = <0>;
457*54fd6939SJiyong Park					dp_pl0_out0: endpoint {
458*54fd6939SJiyong Park						remote-endpoint = <&vencoder_in>;
459*54fd6939SJiyong Park					};
460*54fd6939SJiyong Park				};
461*54fd6939SJiyong Park			};
462*54fd6939SJiyong Park		};
463*54fd6939SJiyong Park
464*54fd6939SJiyong Park		pl1: pipeline@1 {
465*54fd6939SJiyong Park			reg = <1>;
466*54fd6939SJiyong Park			clocks = <&scmi_clk 2>;
467*54fd6939SJiyong Park			clock-names = "pxclk";
468*54fd6939SJiyong Park			pl_id = <1>;
469*54fd6939SJiyong Park			ports {
470*54fd6939SJiyong Park				#address-cells = <1>;
471*54fd6939SJiyong Park				#size-cells = <0>;
472*54fd6939SJiyong Park				port@0 {
473*54fd6939SJiyong Park					reg = <0>;
474*54fd6939SJiyong Park				};
475*54fd6939SJiyong Park			};
476*54fd6939SJiyong Park		};
477*54fd6939SJiyong Park	};
478*54fd6939SJiyong Park
479*54fd6939SJiyong Park};
480