1// SPDX-License-Identifier: GPL-2.0
2#include "juno-clocks.dtsi"
3#include "juno-motherboard.dtsi"
4
5/ {
6	/*
7	 *  Devices shared by all Juno boards
8	 */
9
10	memtimer: timer@2a810000 {
11		compatible = "arm,armv7-timer-mem";
12		reg = <0x0 0x2a810000 0x0 0x10000>;
13		clock-frequency = <50000000>;
14		#address-cells = <1>;
15		#size-cells = <1>;
16		ranges = <0 0x0 0x2a820000 0x20000>;
17		status = "disabled";
18		frame@2a830000 {
19			frame-number = <1>;
20			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
21			reg = <0x10000 0x10000>;
22		};
23	};
24
25	mailbox: mhu@2b1f0000 {
26		compatible = "arm,mhu", "arm,primecell";
27		reg = <0x0 0x2b1f0000 0x0 0x1000>;
28		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
29			     <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
30		#mbox-cells = <1>;
31		clocks = <&soc_refclk100mhz>;
32		clock-names = "apb_pclk";
33	};
34
35	smmu_gpu: iommu@2b400000 {
36		compatible = "arm,mmu-400", "arm,smmu-v1";
37		reg = <0x0 0x2b400000 0x0 0x10000>;
38		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
39			     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
40		#iommu-cells = <1>;
41		#global-interrupts = <1>;
42		power-domains = <&scpi_devpd 1>;
43		dma-coherent;
44		status = "disabled";
45	};
46
47	smmu_pcie: iommu@2b500000 {
48		compatible = "arm,mmu-401", "arm,smmu-v1";
49		reg = <0x0 0x2b500000 0x0 0x10000>;
50		interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
51			     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
52		#iommu-cells = <1>;
53		#global-interrupts = <1>;
54		dma-coherent;
55		status = "disabled";
56	};
57
58	smmu_etr: iommu@2b600000 {
59		compatible = "arm,mmu-401", "arm,smmu-v1";
60		reg = <0x0 0x2b600000 0x0 0x10000>;
61		interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
62			     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
63		#iommu-cells = <1>;
64		#global-interrupts = <1>;
65		dma-coherent;
66		power-domains = <&scpi_devpd 0>;
67	};
68
69	gic: interrupt-controller@2c010000 {
70		compatible = "arm,gic-400", "arm,cortex-a15-gic";
71		reg = <0x0 0x2c010000 0 0x1000>,
72		      <0x0 0x2c02f000 0 0x2000>,
73		      <0x0 0x2c04f000 0 0x2000>,
74		      <0x0 0x2c06f000 0 0x2000>;
75		#address-cells = <1>;
76		#interrupt-cells = <3>;
77		#size-cells = <1>;
78		interrupt-controller;
79		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
80		ranges = <0 0 0x2c1c0000 0x40000>;
81
82		v2m_0: v2m@0 {
83			compatible = "arm,gic-v2m-frame";
84			msi-controller;
85			reg = <0 0x10000>;
86		};
87
88		v2m@10000 {
89			compatible = "arm,gic-v2m-frame";
90			msi-controller;
91			reg = <0x10000 0x10000>;
92		};
93
94		v2m@20000 {
95			compatible = "arm,gic-v2m-frame";
96			msi-controller;
97			reg = <0x20000 0x10000>;
98		};
99
100		v2m@30000 {
101			compatible = "arm,gic-v2m-frame";
102			msi-controller;
103			reg = <0x30000 0x10000>;
104		};
105	};
106
107	timer {
108		compatible = "arm,armv8-timer";
109		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
110			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
111			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
112			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
113	};
114
115	/*
116	 * Juno TRMs specify the size for these coresight components as 64K.
117	 * The actual size is just 4K though 64K is reserved. Access to the
118	 * unmapped reserved region results in a DECERR response.
119	 */
120	etf_sys0: etf@20010000 { /* etf0 */
121		compatible = "arm,coresight-tmc", "arm,primecell";
122		reg = <0 0x20010000 0 0x1000>;
123
124		clocks = <&soc_smc50mhz>;
125		clock-names = "apb_pclk";
126		power-domains = <&scpi_devpd 0>;
127
128		in-ports {
129			port {
130				etf0_in_port: endpoint {
131					remote-endpoint = <&main_funnel_out_port>;
132				};
133			};
134		};
135
136		out-ports {
137			port {
138				etf0_out_port: endpoint {
139				};
140			};
141		};
142	};
143
144	tpiu_sys: tpiu@20030000 {
145		compatible = "arm,coresight-tpiu", "arm,primecell";
146		reg = <0 0x20030000 0 0x1000>;
147
148		clocks = <&soc_smc50mhz>;
149		clock-names = "apb_pclk";
150		power-domains = <&scpi_devpd 0>;
151		in-ports {
152			port {
153				tpiu_in_port: endpoint {
154					remote-endpoint = <&replicator_out_port0>;
155				};
156			};
157		};
158	};
159
160	/* main funnel on Juno r0, cssys0 funnel on Juno r1/r2 as per TRM*/
161	main_funnel: funnel@20040000 {
162		compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
163		reg = <0 0x20040000 0 0x1000>;
164
165		clocks = <&soc_smc50mhz>;
166		clock-names = "apb_pclk";
167		power-domains = <&scpi_devpd 0>;
168
169		out-ports {
170			port {
171				main_funnel_out_port: endpoint {
172					remote-endpoint = <&etf0_in_port>;
173				};
174			};
175		};
176
177		main_funnel_in_ports: in-ports {
178			#address-cells = <1>;
179			#size-cells = <0>;
180
181			port@0 {
182				reg = <0>;
183				main_funnel_in_port0: endpoint {
184					remote-endpoint = <&cluster0_funnel_out_port>;
185				};
186			};
187
188			port@1 {
189				reg = <1>;
190				main_funnel_in_port1: endpoint {
191					remote-endpoint = <&cluster1_funnel_out_port>;
192				};
193			};
194		};
195	};
196
197	etr_sys: etr@20070000 {
198		compatible = "arm,coresight-tmc", "arm,primecell";
199		reg = <0 0x20070000 0 0x1000>;
200		iommus = <&smmu_etr 0>;
201
202		clocks = <&soc_smc50mhz>;
203		clock-names = "apb_pclk";
204		power-domains = <&scpi_devpd 0>;
205		arm,scatter-gather;
206		in-ports {
207			port {
208				etr_in_port: endpoint {
209					remote-endpoint = <&replicator_out_port1>;
210				};
211			};
212		};
213	};
214
215	stm_sys: stm@20100000 {
216		compatible = "arm,coresight-stm", "arm,primecell";
217		reg = <0 0x20100000 0 0x1000>,
218		      <0 0x28000000 0 0x1000000>;
219		reg-names = "stm-base", "stm-stimulus-base";
220
221		clocks = <&soc_smc50mhz>;
222		clock-names = "apb_pclk";
223		power-domains = <&scpi_devpd 0>;
224		out-ports {
225			port {
226				stm_out_port: endpoint {
227				};
228			};
229		};
230	};
231
232	replicator@20120000 {
233		compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
234		reg = <0 0x20120000 0 0x1000>;
235
236		clocks = <&soc_smc50mhz>;
237		clock-names = "apb_pclk";
238		power-domains = <&scpi_devpd 0>;
239
240		out-ports {
241			#address-cells = <1>;
242			#size-cells = <0>;
243
244			/* replicator output ports */
245			port@0 {
246				reg = <0>;
247				replicator_out_port0: endpoint {
248					remote-endpoint = <&tpiu_in_port>;
249				};
250			};
251
252			port@1 {
253				reg = <1>;
254				replicator_out_port1: endpoint {
255					remote-endpoint = <&etr_in_port>;
256				};
257			};
258		};
259		in-ports {
260			port {
261				replicator_in_port0: endpoint {
262				};
263			};
264		};
265	};
266
267	cpu_debug0: cpu-debug@22010000 {
268		compatible = "arm,coresight-cpu-debug", "arm,primecell";
269		reg = <0x0 0x22010000 0x0 0x1000>;
270
271		clocks = <&soc_smc50mhz>;
272		clock-names = "apb_pclk";
273		power-domains = <&scpi_devpd 0>;
274	};
275
276	etm0: etm@22040000 {
277		compatible = "arm,coresight-etm4x", "arm,primecell";
278		reg = <0 0x22040000 0 0x1000>;
279
280		clocks = <&soc_smc50mhz>;
281		clock-names = "apb_pclk";
282		power-domains = <&scpi_devpd 0>;
283		out-ports {
284			port {
285				cluster0_etm0_out_port: endpoint {
286					remote-endpoint = <&cluster0_funnel_in_port0>;
287				};
288			};
289		};
290	};
291
292	cti0: cti@22020000 {
293		compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
294			     "arm,primecell";
295		reg = <0 0x22020000 0 0x1000>;
296
297		clocks = <&soc_smc50mhz>;
298		clock-names = "apb_pclk";
299		power-domains = <&scpi_devpd 0>;
300
301		arm,cs-dev-assoc = <&etm0>;
302	};
303
304	funnel@220c0000 { /* cluster0 funnel */
305		compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
306		reg = <0 0x220c0000 0 0x1000>;
307
308		clocks = <&soc_smc50mhz>;
309		clock-names = "apb_pclk";
310		power-domains = <&scpi_devpd 0>;
311		out-ports {
312			port {
313				cluster0_funnel_out_port: endpoint {
314					remote-endpoint = <&main_funnel_in_port0>;
315				};
316			};
317		};
318
319		in-ports {
320			#address-cells = <1>;
321			#size-cells = <0>;
322
323			port@0 {
324				reg = <0>;
325				cluster0_funnel_in_port0: endpoint {
326					remote-endpoint = <&cluster0_etm0_out_port>;
327				};
328			};
329
330			port@1 {
331				reg = <1>;
332				cluster0_funnel_in_port1: endpoint {
333					remote-endpoint = <&cluster0_etm1_out_port>;
334				};
335			};
336		};
337	};
338
339	cpu_debug1: cpu-debug@22110000 {
340		compatible = "arm,coresight-cpu-debug", "arm,primecell";
341		reg = <0x0 0x22110000 0x0 0x1000>;
342
343		clocks = <&soc_smc50mhz>;
344		clock-names = "apb_pclk";
345		power-domains = <&scpi_devpd 0>;
346	};
347
348	etm1: etm@22140000 {
349		compatible = "arm,coresight-etm4x", "arm,primecell";
350		reg = <0 0x22140000 0 0x1000>;
351
352		clocks = <&soc_smc50mhz>;
353		clock-names = "apb_pclk";
354		power-domains = <&scpi_devpd 0>;
355		out-ports {
356			port {
357				cluster0_etm1_out_port: endpoint {
358					remote-endpoint = <&cluster0_funnel_in_port1>;
359				};
360			};
361		};
362	};
363
364	cti1: cti@22120000 {
365		compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
366			     "arm,primecell";
367		reg = <0 0x22120000 0 0x1000>;
368
369		clocks = <&soc_smc50mhz>;
370		clock-names = "apb_pclk";
371		power-domains = <&scpi_devpd 0>;
372
373		arm,cs-dev-assoc = <&etm1>;
374	};
375
376	cpu_debug2: cpu-debug@23010000 {
377		compatible = "arm,coresight-cpu-debug", "arm,primecell";
378		reg = <0x0 0x23010000 0x0 0x1000>;
379
380		clocks = <&soc_smc50mhz>;
381		clock-names = "apb_pclk";
382		power-domains = <&scpi_devpd 0>;
383	};
384
385	etm2: etm@23040000 {
386		compatible = "arm,coresight-etm4x", "arm,primecell";
387		reg = <0 0x23040000 0 0x1000>;
388
389		clocks = <&soc_smc50mhz>;
390		clock-names = "apb_pclk";
391		power-domains = <&scpi_devpd 0>;
392		out-ports {
393			port {
394				cluster1_etm0_out_port: endpoint {
395					remote-endpoint = <&cluster1_funnel_in_port0>;
396				};
397			};
398		};
399	};
400
401	cti2: cti@23020000 {
402		compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
403			     "arm,primecell";
404		reg = <0 0x23020000 0 0x1000>;
405
406		clocks = <&soc_smc50mhz>;
407		clock-names = "apb_pclk";
408		power-domains = <&scpi_devpd 0>;
409
410		arm,cs-dev-assoc = <&etm2>;
411	};
412
413	funnel@230c0000 { /* cluster1 funnel */
414		compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
415		reg = <0 0x230c0000 0 0x1000>;
416
417		clocks = <&soc_smc50mhz>;
418		clock-names = "apb_pclk";
419		power-domains = <&scpi_devpd 0>;
420		out-ports {
421			port {
422				cluster1_funnel_out_port: endpoint {
423					remote-endpoint = <&main_funnel_in_port1>;
424				};
425			};
426		};
427
428		in-ports {
429			#address-cells = <1>;
430			#size-cells = <0>;
431
432			port@0 {
433				reg = <0>;
434				cluster1_funnel_in_port0: endpoint {
435					remote-endpoint = <&cluster1_etm0_out_port>;
436				};
437			};
438
439			port@1 {
440				reg = <1>;
441				cluster1_funnel_in_port1: endpoint {
442					remote-endpoint = <&cluster1_etm1_out_port>;
443				};
444			};
445			port@2 {
446				reg = <2>;
447				cluster1_funnel_in_port2: endpoint {
448					remote-endpoint = <&cluster1_etm2_out_port>;
449				};
450			};
451			port@3 {
452				reg = <3>;
453				cluster1_funnel_in_port3: endpoint {
454					remote-endpoint = <&cluster1_etm3_out_port>;
455				};
456			};
457		};
458	};
459
460	cpu_debug3: cpu-debug@23110000 {
461		compatible = "arm,coresight-cpu-debug", "arm,primecell";
462		reg = <0x0 0x23110000 0x0 0x1000>;
463
464		clocks = <&soc_smc50mhz>;
465		clock-names = "apb_pclk";
466		power-domains = <&scpi_devpd 0>;
467	};
468
469	etm3: etm@23140000 {
470		compatible = "arm,coresight-etm4x", "arm,primecell";
471		reg = <0 0x23140000 0 0x1000>;
472
473		clocks = <&soc_smc50mhz>;
474		clock-names = "apb_pclk";
475		power-domains = <&scpi_devpd 0>;
476		out-ports {
477			port {
478				cluster1_etm1_out_port: endpoint {
479					remote-endpoint = <&cluster1_funnel_in_port1>;
480				};
481			};
482		};
483	};
484
485	cti3: cti@23120000 {
486		compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
487			     "arm,primecell";
488		reg = <0 0x23120000 0 0x1000>;
489
490		clocks = <&soc_smc50mhz>;
491		clock-names = "apb_pclk";
492		power-domains = <&scpi_devpd 0>;
493
494		arm,cs-dev-assoc = <&etm3>;
495	};
496
497	cpu_debug4: cpu-debug@23210000 {
498		compatible = "arm,coresight-cpu-debug", "arm,primecell";
499		reg = <0x0 0x23210000 0x0 0x1000>;
500
501		clocks = <&soc_smc50mhz>;
502		clock-names = "apb_pclk";
503		power-domains = <&scpi_devpd 0>;
504	};
505
506	etm4: etm@23240000 {
507		compatible = "arm,coresight-etm4x", "arm,primecell";
508		reg = <0 0x23240000 0 0x1000>;
509
510		clocks = <&soc_smc50mhz>;
511		clock-names = "apb_pclk";
512		power-domains = <&scpi_devpd 0>;
513		out-ports {
514			port {
515				cluster1_etm2_out_port: endpoint {
516					remote-endpoint = <&cluster1_funnel_in_port2>;
517				};
518			};
519		};
520	};
521
522	cti4: cti@23220000 {
523		compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
524			     "arm,primecell";
525		reg = <0 0x23220000 0 0x1000>;
526
527		clocks = <&soc_smc50mhz>;
528		clock-names = "apb_pclk";
529		power-domains = <&scpi_devpd 0>;
530
531		arm,cs-dev-assoc = <&etm4>;
532	};
533
534	cpu_debug5: cpu-debug@23310000 {
535		compatible = "arm,coresight-cpu-debug", "arm,primecell";
536		reg = <0x0 0x23310000 0x0 0x1000>;
537
538		clocks = <&soc_smc50mhz>;
539		clock-names = "apb_pclk";
540		power-domains = <&scpi_devpd 0>;
541	};
542
543	etm5: etm@23340000 {
544		compatible = "arm,coresight-etm4x", "arm,primecell";
545		reg = <0 0x23340000 0 0x1000>;
546
547		clocks = <&soc_smc50mhz>;
548		clock-names = "apb_pclk";
549		power-domains = <&scpi_devpd 0>;
550		out-ports {
551			port {
552				cluster1_etm3_out_port: endpoint {
553					remote-endpoint = <&cluster1_funnel_in_port3>;
554				};
555			};
556		};
557	};
558
559	cti5: cti@23320000 {
560		compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
561			     "arm,primecell";
562		reg = <0 0x23320000 0 0x1000>;
563
564		clocks = <&soc_smc50mhz>;
565		clock-names = "apb_pclk";
566		power-domains = <&scpi_devpd 0>;
567
568		arm,cs-dev-assoc = <&etm5>;
569	};
570
571	cti_sys0: cti@20020000 { /* sys_cti_0 */
572		compatible = "arm,coresight-cti", "arm,primecell";
573		reg = <0 0x20020000 0 0x1000>;
574
575		clocks = <&soc_smc50mhz>;
576		clock-names = "apb_pclk";
577		power-domains = <&scpi_devpd 0>;
578
579		#address-cells = <1>;
580		#size-cells = <0>;
581
582		trig-conns@0 {
583			reg = <0>;
584			arm,trig-in-sigs = <2 3>;
585			arm,trig-in-types = <SNK_FULL SNK_ACQCOMP>;
586			arm,trig-out-sigs = <0 1>;
587			arm,trig-out-types = <SNK_FLUSHIN SNK_TRIGIN>;
588			arm,cs-dev-assoc = <&etr_sys>;
589		};
590
591		trig-conns@1 {
592			reg = <1>;
593			arm,trig-in-sigs = <0 1>;
594			arm,trig-in-types = <SNK_FULL SNK_ACQCOMP>;
595			arm,trig-out-sigs = <7 6>;
596			arm,trig-out-types = <SNK_FLUSHIN SNK_TRIGIN>;
597			arm,cs-dev-assoc = <&etf_sys0>;
598		};
599
600		trig-conns@2 {
601			reg = <2>;
602			arm,trig-in-sigs = <4 5 6 7>;
603			arm,trig-in-types = <STM_TOUT_SPTE STM_TOUT_SW
604					   STM_TOUT_HETE STM_ASYNCOUT>;
605			arm,trig-out-sigs = <4 5>;
606			arm,trig-out-types = <STM_HWEVENT STM_HWEVENT>;
607			arm,cs-dev-assoc = <&stm_sys>;
608		};
609
610		trig-conns@3 {
611			reg = <3>;
612			arm,trig-out-sigs = <2 3>;
613			arm,trig-out-types = <SNK_FLUSHIN SNK_TRIGIN>;
614			arm,cs-dev-assoc = <&tpiu_sys>;
615		};
616	};
617
618	cti_sys1: cti@20110000 { /* sys_cti_1 */
619		compatible = "arm,coresight-cti", "arm,primecell";
620		reg = <0 0x20110000 0 0x1000>;
621
622		clocks = <&soc_smc50mhz>;
623		clock-names = "apb_pclk";
624		power-domains = <&scpi_devpd 0>;
625
626		#address-cells = <1>;
627		#size-cells = <0>;
628
629		trig-conns@0 {
630			reg = <0>;
631			arm,trig-in-sigs = <0>;
632			arm,trig-in-types = <GEN_INTREQ>;
633			arm,trig-out-sigs = <0>;
634			arm,trig-out-types = <GEN_HALTREQ>;
635			arm,trig-conn-name = "sys_profiler";
636		};
637
638		trig-conns@1 {
639			reg = <1>;
640			arm,trig-out-sigs = <2 3>;
641			arm,trig-out-types = <GEN_HALTREQ GEN_RESTARTREQ>;
642			arm,trig-conn-name = "watchdog";
643		};
644
645		trig-conns@2 {
646			reg = <2>;
647			arm,trig-out-sigs = <1 6>;
648			arm,trig-out-types = <GEN_HALTREQ GEN_RESTARTREQ>;
649			arm,trig-conn-name = "g_counter";
650		};
651	};
652
653	gpu: gpu@2d000000 {
654		compatible = "arm,juno-mali", "arm,mali-t624";
655		reg = <0 0x2d000000 0 0x10000>;
656		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
657			     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
658			     <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
659		interrupt-names = "job", "mmu", "gpu";
660		clocks = <&scpi_dvfs 2>;
661		power-domains = <&scpi_devpd 1>;
662		dma-coherent;
663		/* The SMMU is only really of interest to bare-metal hypervisors */
664		/* iommus = <&smmu_gpu 0>; */
665		status = "disabled";
666	};
667
668	sram: sram@2e000000 {
669		compatible = "arm,juno-sram-ns", "mmio-sram";
670		reg = <0x0 0x2e000000 0x0 0x8000>;
671
672		#address-cells = <1>;
673		#size-cells = <1>;
674		ranges = <0 0x0 0x2e000000 0x8000>;
675
676		cpu_scp_lpri: scp-sram@0 {
677			compatible = "arm,juno-scp-shmem";
678			reg = <0x0 0x200>;
679		};
680
681		cpu_scp_hpri: scp-sram@200 {
682			compatible = "arm,juno-scp-shmem";
683			reg = <0x200 0x200>;
684		};
685	};
686
687	pcie_ctlr: pcie@40000000 {
688		compatible = "arm,juno-r1-pcie", "plda,xpressrich3-axi", "pci-host-ecam-generic";
689		device_type = "pci";
690		reg = <0 0x40000000 0 0x10000000>;	/* ECAM config space */
691		bus-range = <0 255>;
692		linux,pci-domain = <0>;
693		#address-cells = <3>;
694		#size-cells = <2>;
695		dma-coherent;
696		ranges = <0x01000000 0x00 0x00000000 0x00 0x5f800000 0x0 0x00800000>,
697			 <0x02000000 0x00 0x50000000 0x00 0x50000000 0x0 0x08000000>,
698			 <0x42000000 0x40 0x00000000 0x40 0x00000000 0x1 0x00000000>;
699		/* Standard AXI Translation entries as programmed by EDK2 */
700		dma-ranges = <0x02000000 0x0 0x80000000 0x0 0x80000000 0x0 0x80000000>,
701			     <0x43000000 0x8 0x00000000 0x8 0x00000000 0x2 0x00000000>;
702		#interrupt-cells = <1>;
703		interrupt-map-mask = <0 0 0 7>;
704		interrupt-map = <0 0 0 1 &gic 0 GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
705				<0 0 0 2 &gic 0 GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
706				<0 0 0 3 &gic 0 GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
707				<0 0 0 4 &gic 0 GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
708		msi-parent = <&v2m_0>;
709		status = "disabled";
710		iommu-map-mask = <0x0>;	/* RC has no means to output PCI RID */
711		iommu-map = <0x0 &smmu_pcie 0x0 0x1>;
712	};
713
714	scpi {
715		compatible = "arm,scpi";
716		mboxes = <&mailbox 1>;
717		shmem = <&cpu_scp_hpri>;
718
719		clocks {
720			compatible = "arm,scpi-clocks";
721
722			scpi_dvfs: clocks-0 {
723				compatible = "arm,scpi-dvfs-clocks";
724				#clock-cells = <1>;
725				clock-indices = <0>, <1>, <2>;
726				clock-output-names = "atlclk", "aplclk","gpuclk";
727			};
728			scpi_clk: clocks-1 {
729				compatible = "arm,scpi-variable-clocks";
730				#clock-cells = <1>;
731				clock-indices = <3>;
732				clock-output-names = "pxlclk";
733			};
734		};
735
736		scpi_devpd: power-controller {
737			compatible = "arm,scpi-power-domains";
738			num-domains = <2>;
739			#power-domain-cells = <1>;
740		};
741
742		scpi_sensors0: sensors {
743			compatible = "arm,scpi-sensors";
744			#thermal-sensor-cells = <1>;
745		};
746	};
747
748	thermal-zones {
749		pmic {
750			polling-delay = <1000>;
751			polling-delay-passive = <100>;
752			thermal-sensors = <&scpi_sensors0 0>;
753		};
754
755		soc {
756			polling-delay = <1000>;
757			polling-delay-passive = <100>;
758			thermal-sensors = <&scpi_sensors0 3>;
759		};
760
761		big_cluster_thermal_zone: big-cluster {
762			polling-delay = <1000>;
763			polling-delay-passive = <100>;
764			thermal-sensors = <&scpi_sensors0 21>;
765			status = "disabled";
766		};
767
768		little_cluster_thermal_zone: little-cluster {
769			polling-delay = <1000>;
770			polling-delay-passive = <100>;
771			thermal-sensors = <&scpi_sensors0 22>;
772			status = "disabled";
773		};
774
775		gpu0_thermal_zone: gpu0 {
776			polling-delay = <1000>;
777			polling-delay-passive = <100>;
778			thermal-sensors = <&scpi_sensors0 23>;
779			status = "disabled";
780		};
781
782		gpu1_thermal_zone: gpu1 {
783			polling-delay = <1000>;
784			polling-delay-passive = <100>;
785			thermal-sensors = <&scpi_sensors0 24>;
786			status = "disabled";
787		};
788	};
789
790	smmu_dma: iommu@7fb00000 {
791		compatible = "arm,mmu-401", "arm,smmu-v1";
792		reg = <0x0 0x7fb00000 0x0 0x10000>;
793		interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
794			     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
795		#iommu-cells = <1>;
796		#global-interrupts = <1>;
797		dma-coherent;
798	};
799
800	smmu_hdlcd1: iommu@7fb10000 {
801		compatible = "arm,mmu-401", "arm,smmu-v1";
802		reg = <0x0 0x7fb10000 0x0 0x10000>;
803		interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
804			     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
805		#iommu-cells = <1>;
806		#global-interrupts = <1>;
807	};
808
809	smmu_hdlcd0: iommu@7fb20000 {
810		compatible = "arm,mmu-401", "arm,smmu-v1";
811		reg = <0x0 0x7fb20000 0x0 0x10000>;
812		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
813			     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
814		#iommu-cells = <1>;
815		#global-interrupts = <1>;
816	};
817
818	smmu_usb: iommu@7fb30000 {
819		compatible = "arm,mmu-401", "arm,smmu-v1";
820		reg = <0x0 0x7fb30000 0x0 0x10000>;
821		interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
822			     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
823		#iommu-cells = <1>;
824		#global-interrupts = <1>;
825		dma-coherent;
826	};
827
828	dma-controller@7ff00000 {
829		compatible = "arm,pl330", "arm,primecell";
830		reg = <0x0 0x7ff00000 0 0x1000>;
831		#dma-cells = <1>;
832		interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
833			     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
834			     <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
835			     <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
836			     <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
837			     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
838			     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
839			     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
840			     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
841		iommus = <&smmu_dma 0>,
842			 <&smmu_dma 1>,
843			 <&smmu_dma 2>,
844			 <&smmu_dma 3>,
845			 <&smmu_dma 4>,
846			 <&smmu_dma 5>,
847			 <&smmu_dma 6>,
848			 <&smmu_dma 7>,
849			 <&smmu_dma 8>;
850		clocks = <&soc_faxiclk>;
851		clock-names = "apb_pclk";
852	};
853
854	hdlcd@7ff50000 {
855		compatible = "arm,hdlcd";
856		reg = <0 0x7ff50000 0 0x1000>;
857		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
858		iommus = <&smmu_hdlcd1 0>;
859		clocks = <&scpi_clk 3>;
860		clock-names = "pxlclk";
861
862		port {
863			hdlcd1_output: endpoint {
864				remote-endpoint = <&tda998x_1_input>;
865			};
866		};
867	};
868
869	hdlcd@7ff60000 {
870		compatible = "arm,hdlcd";
871		reg = <0 0x7ff60000 0 0x1000>;
872		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
873		iommus = <&smmu_hdlcd0 0>;
874		clocks = <&scpi_clk 3>;
875		clock-names = "pxlclk";
876
877		port {
878			hdlcd0_output: endpoint {
879				remote-endpoint = <&tda998x_0_input>;
880			};
881		};
882	};
883
884	soc_uart0: serial@7ff80000 {
885		compatible = "arm,pl011", "arm,primecell";
886		reg = <0x0 0x7ff80000 0x0 0x1000>;
887		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
888		clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
889		clock-names = "uartclk", "apb_pclk";
890	};
891
892	i2c@7ffa0000 {
893		compatible = "snps,designware-i2c";
894		reg = <0x0 0x7ffa0000 0x0 0x1000>;
895		#address-cells = <1>;
896		#size-cells = <0>;
897		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
898		clock-frequency = <400000>;
899		i2c-sda-hold-time-ns = <500>;
900		clocks = <&soc_smc50mhz>;
901
902		hdmi-transmitter@70 {
903			compatible = "nxp,tda998x";
904			reg = <0x70>;
905			port {
906				tda998x_0_input: endpoint {
907					remote-endpoint = <&hdlcd0_output>;
908				};
909			};
910		};
911
912		hdmi-transmitter@71 {
913			compatible = "nxp,tda998x";
914			reg = <0x71>;
915			port {
916				tda998x_1_input: endpoint {
917					remote-endpoint = <&hdlcd1_output>;
918				};
919			};
920		};
921	};
922
923	usb@7ffb0000 {
924		compatible = "generic-ohci";
925		reg = <0x0 0x7ffb0000 0x0 0x10000>;
926		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
927		iommus = <&smmu_usb 0>;
928		clocks = <&soc_usb48mhz>;
929	};
930
931	usb@7ffc0000 {
932		compatible = "generic-ehci";
933		reg = <0x0 0x7ffc0000 0x0 0x10000>;
934		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
935		iommus = <&smmu_usb 0>;
936		clocks = <&soc_usb48mhz>;
937	};
938
939	memory-controller@7ffd0000 {
940		compatible = "arm,pl354", "arm,primecell";
941		reg = <0 0x7ffd0000 0 0x1000>;
942		interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
943			     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
944		clocks = <&soc_smc50mhz>;
945		clock-names = "apb_pclk";
946	};
947
948	memory@80000000 {
949		device_type = "memory";
950		/* last 16MB of the first memory area is reserved for secure world use by firmware */
951		reg = <0x00000000 0x80000000 0x0 0x7f000000>,
952		      <0x00000008 0x80000000 0x1 0x80000000>;
953	};
954
955	bus@8000000 {
956		#interrupt-cells = <1>;
957		interrupt-map-mask = <0 0 15>;
958		interrupt-map = <0 0  0 &gic 0 GIC_SPI  68 IRQ_TYPE_LEVEL_HIGH>,
959				<0 0  1 &gic 0 GIC_SPI  69 IRQ_TYPE_LEVEL_HIGH>,
960				<0 0  2 &gic 0 GIC_SPI  70 IRQ_TYPE_LEVEL_HIGH>,
961				<0 0  3 &gic 0 GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
962				<0 0  4 &gic 0 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
963				<0 0  5 &gic 0 GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
964				<0 0  6 &gic 0 GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
965				<0 0  7 &gic 0 GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
966				<0 0  8 &gic 0 GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
967				<0 0  9 &gic 0 GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
968				<0 0 10 &gic 0 GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
969				<0 0 11 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
970				<0 0 12 &gic 0 GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
971	};
972
973	site2: tlx-bus@60000000 {
974		compatible = "simple-bus";
975		#address-cells = <1>;
976		#size-cells = <1>;
977		ranges = <0 0 0x60000000 0x10000000>;
978		#interrupt-cells = <1>;
979		interrupt-map-mask = <0 0>;
980		interrupt-map = <0 0 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
981	};
982};
983