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@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@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@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@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	funnel@220c0000 { /* cluster0 funnel */
293		compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
294		reg = <0 0x220c0000 0 0x1000>;
295
296		clocks = <&soc_smc50mhz>;
297		clock-names = "apb_pclk";
298		power-domains = <&scpi_devpd 0>;
299		out-ports {
300			port {
301				cluster0_funnel_out_port: endpoint {
302					remote-endpoint = <&main_funnel_in_port0>;
303				};
304			};
305		};
306
307		in-ports {
308			#address-cells = <1>;
309			#size-cells = <0>;
310
311			port@0 {
312				reg = <0>;
313				cluster0_funnel_in_port0: endpoint {
314					remote-endpoint = <&cluster0_etm0_out_port>;
315				};
316			};
317
318			port@1 {
319				reg = <1>;
320				cluster0_funnel_in_port1: endpoint {
321					remote-endpoint = <&cluster0_etm1_out_port>;
322				};
323			};
324		};
325	};
326
327	cpu_debug1: cpu-debug@22110000 {
328		compatible = "arm,coresight-cpu-debug", "arm,primecell";
329		reg = <0x0 0x22110000 0x0 0x1000>;
330
331		clocks = <&soc_smc50mhz>;
332		clock-names = "apb_pclk";
333		power-domains = <&scpi_devpd 0>;
334	};
335
336	etm1: etm@22140000 {
337		compatible = "arm,coresight-etm4x", "arm,primecell";
338		reg = <0 0x22140000 0 0x1000>;
339
340		clocks = <&soc_smc50mhz>;
341		clock-names = "apb_pclk";
342		power-domains = <&scpi_devpd 0>;
343		out-ports {
344			port {
345				cluster0_etm1_out_port: endpoint {
346					remote-endpoint = <&cluster0_funnel_in_port1>;
347				};
348			};
349		};
350	};
351
352	cpu_debug2: cpu-debug@23010000 {
353		compatible = "arm,coresight-cpu-debug", "arm,primecell";
354		reg = <0x0 0x23010000 0x0 0x1000>;
355
356		clocks = <&soc_smc50mhz>;
357		clock-names = "apb_pclk";
358		power-domains = <&scpi_devpd 0>;
359	};
360
361	etm2: etm@23040000 {
362		compatible = "arm,coresight-etm4x", "arm,primecell";
363		reg = <0 0x23040000 0 0x1000>;
364
365		clocks = <&soc_smc50mhz>;
366		clock-names = "apb_pclk";
367		power-domains = <&scpi_devpd 0>;
368		out-ports {
369			port {
370				cluster1_etm0_out_port: endpoint {
371					remote-endpoint = <&cluster1_funnel_in_port0>;
372				};
373			};
374		};
375	};
376
377	funnel@230c0000 { /* cluster1 funnel */
378		compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
379		reg = <0 0x230c0000 0 0x1000>;
380
381		clocks = <&soc_smc50mhz>;
382		clock-names = "apb_pclk";
383		power-domains = <&scpi_devpd 0>;
384		out-ports {
385			port {
386				cluster1_funnel_out_port: endpoint {
387					remote-endpoint = <&main_funnel_in_port1>;
388				};
389			};
390		};
391
392		in-ports {
393			#address-cells = <1>;
394			#size-cells = <0>;
395
396			port@0 {
397				reg = <0>;
398				cluster1_funnel_in_port0: endpoint {
399					remote-endpoint = <&cluster1_etm0_out_port>;
400				};
401			};
402
403			port@1 {
404				reg = <1>;
405				cluster1_funnel_in_port1: endpoint {
406					remote-endpoint = <&cluster1_etm1_out_port>;
407				};
408			};
409			port@2 {
410				reg = <2>;
411				cluster1_funnel_in_port2: endpoint {
412					remote-endpoint = <&cluster1_etm2_out_port>;
413				};
414			};
415			port@3 {
416				reg = <3>;
417				cluster1_funnel_in_port3: endpoint {
418					remote-endpoint = <&cluster1_etm3_out_port>;
419				};
420			};
421		};
422	};
423
424	cpu_debug3: cpu-debug@23110000 {
425		compatible = "arm,coresight-cpu-debug", "arm,primecell";
426		reg = <0x0 0x23110000 0x0 0x1000>;
427
428		clocks = <&soc_smc50mhz>;
429		clock-names = "apb_pclk";
430		power-domains = <&scpi_devpd 0>;
431	};
432
433	etm3: etm@23140000 {
434		compatible = "arm,coresight-etm4x", "arm,primecell";
435		reg = <0 0x23140000 0 0x1000>;
436
437		clocks = <&soc_smc50mhz>;
438		clock-names = "apb_pclk";
439		power-domains = <&scpi_devpd 0>;
440		out-ports {
441			port {
442				cluster1_etm1_out_port: endpoint {
443					remote-endpoint = <&cluster1_funnel_in_port1>;
444				};
445			};
446		};
447	};
448
449	cpu_debug4: cpu-debug@23210000 {
450		compatible = "arm,coresight-cpu-debug", "arm,primecell";
451		reg = <0x0 0x23210000 0x0 0x1000>;
452
453		clocks = <&soc_smc50mhz>;
454		clock-names = "apb_pclk";
455		power-domains = <&scpi_devpd 0>;
456	};
457
458	etm4: etm@23240000 {
459		compatible = "arm,coresight-etm4x", "arm,primecell";
460		reg = <0 0x23240000 0 0x1000>;
461
462		clocks = <&soc_smc50mhz>;
463		clock-names = "apb_pclk";
464		power-domains = <&scpi_devpd 0>;
465		out-ports {
466			port {
467				cluster1_etm2_out_port: endpoint {
468					remote-endpoint = <&cluster1_funnel_in_port2>;
469				};
470			};
471		};
472	};
473
474	cpu_debug5: cpu-debug@23310000 {
475		compatible = "arm,coresight-cpu-debug", "arm,primecell";
476		reg = <0x0 0x23310000 0x0 0x1000>;
477
478		clocks = <&soc_smc50mhz>;
479		clock-names = "apb_pclk";
480		power-domains = <&scpi_devpd 0>;
481	};
482
483	etm5: etm@23340000 {
484		compatible = "arm,coresight-etm4x", "arm,primecell";
485		reg = <0 0x23340000 0 0x1000>;
486
487		clocks = <&soc_smc50mhz>;
488		clock-names = "apb_pclk";
489		power-domains = <&scpi_devpd 0>;
490		out-ports {
491			port {
492				cluster1_etm3_out_port: endpoint {
493					remote-endpoint = <&cluster1_funnel_in_port3>;
494				};
495			};
496		};
497	};
498
499	gpu: gpu@2d000000 {
500		compatible = "arm,juno-mali", "arm,mali-t624";
501		reg = <0 0x2d000000 0 0x10000>;
502		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
503			     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
504			     <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
505		interrupt-names = "job", "mmu", "gpu";
506		clocks = <&scpi_dvfs 2>;
507		power-domains = <&scpi_devpd 1>;
508		dma-coherent;
509		/* The SMMU is only really of interest to bare-metal hypervisors */
510		/* iommus = <&smmu_gpu 0>; */
511		status = "disabled";
512	};
513
514	sram: sram@2e000000 {
515		compatible = "arm,juno-sram-ns", "mmio-sram";
516		reg = <0x0 0x2e000000 0x0 0x8000>;
517
518		#address-cells = <1>;
519		#size-cells = <1>;
520		ranges = <0 0x0 0x2e000000 0x8000>;
521
522		cpu_scp_lpri: scp-sram@0 {
523			compatible = "arm,juno-scp-shmem";
524			reg = <0x0 0x200>;
525		};
526
527		cpu_scp_hpri: scp-sram@200 {
528			compatible = "arm,juno-scp-shmem";
529			reg = <0x200 0x200>;
530		};
531	};
532
533	pcie_ctlr: pcie@40000000 {
534		compatible = "arm,juno-r1-pcie", "plda,xpressrich3-axi", "pci-host-ecam-generic";
535		device_type = "pci";
536		reg = <0 0x40000000 0 0x10000000>;	/* ECAM config space */
537		bus-range = <0 255>;
538		linux,pci-domain = <0>;
539		#address-cells = <3>;
540		#size-cells = <2>;
541		dma-coherent;
542		ranges = <0x01000000 0x00 0x00000000 0x00 0x5f800000 0x0 0x00800000>,
543			 <0x02000000 0x00 0x50000000 0x00 0x50000000 0x0 0x08000000>,
544			 <0x42000000 0x40 0x00000000 0x40 0x00000000 0x1 0x00000000>;
545		/* Standard AXI Translation entries as programmed by EDK2 */
546		dma-ranges = <0x02000000 0x0 0x2c1c0000 0x0 0x2c1c0000 0x0 0x00040000>,
547			     <0x02000000 0x0 0x80000000 0x0 0x80000000 0x0 0x80000000>,
548			     <0x43000000 0x8 0x00000000 0x8 0x00000000 0x2 0x00000000>;
549		#interrupt-cells = <1>;
550		interrupt-map-mask = <0 0 0 7>;
551		interrupt-map = <0 0 0 1 &gic 0 GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
552				<0 0 0 2 &gic 0 GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
553				<0 0 0 3 &gic 0 GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
554				<0 0 0 4 &gic 0 GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
555		msi-parent = <&v2m_0>;
556		status = "disabled";
557		iommu-map-mask = <0x0>;	/* RC has no means to output PCI RID */
558		iommu-map = <0x0 &smmu_pcie 0x0 0x1>;
559	};
560
561	scpi {
562		compatible = "arm,scpi";
563		mboxes = <&mailbox 1>;
564		shmem = <&cpu_scp_hpri>;
565
566		clocks {
567			compatible = "arm,scpi-clocks";
568
569			scpi_dvfs: clocks-0 {
570				compatible = "arm,scpi-dvfs-clocks";
571				#clock-cells = <1>;
572				clock-indices = <0>, <1>, <2>;
573				clock-output-names = "atlclk", "aplclk","gpuclk";
574			};
575			scpi_clk: clocks-1 {
576				compatible = "arm,scpi-variable-clocks";
577				#clock-cells = <1>;
578				clock-indices = <3>;
579				clock-output-names = "pxlclk";
580			};
581		};
582
583		scpi_devpd: power-controller {
584			compatible = "arm,scpi-power-domains";
585			num-domains = <2>;
586			#power-domain-cells = <1>;
587		};
588
589		scpi_sensors0: sensors {
590			compatible = "arm,scpi-sensors";
591			#thermal-sensor-cells = <1>;
592		};
593	};
594
595	thermal-zones {
596		pmic {
597			polling-delay = <1000>;
598			polling-delay-passive = <100>;
599			thermal-sensors = <&scpi_sensors0 0>;
600		};
601
602		soc {
603			polling-delay = <1000>;
604			polling-delay-passive = <100>;
605			thermal-sensors = <&scpi_sensors0 3>;
606		};
607
608		big_cluster_thermal_zone: big-cluster {
609			polling-delay = <1000>;
610			polling-delay-passive = <100>;
611			thermal-sensors = <&scpi_sensors0 21>;
612			status = "disabled";
613		};
614
615		little_cluster_thermal_zone: little-cluster {
616			polling-delay = <1000>;
617			polling-delay-passive = <100>;
618			thermal-sensors = <&scpi_sensors0 22>;
619			status = "disabled";
620		};
621
622		gpu0_thermal_zone: gpu0 {
623			polling-delay = <1000>;
624			polling-delay-passive = <100>;
625			thermal-sensors = <&scpi_sensors0 23>;
626			status = "disabled";
627		};
628
629		gpu1_thermal_zone: gpu1 {
630			polling-delay = <1000>;
631			polling-delay-passive = <100>;
632			thermal-sensors = <&scpi_sensors0 24>;
633			status = "disabled";
634		};
635	};
636
637	smmu_dma: iommu@7fb00000 {
638		compatible = "arm,mmu-401", "arm,smmu-v1";
639		reg = <0x0 0x7fb00000 0x0 0x10000>;
640		interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
641			     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
642		#iommu-cells = <1>;
643		#global-interrupts = <1>;
644		dma-coherent;
645	};
646
647	smmu_hdlcd1: iommu@7fb10000 {
648		compatible = "arm,mmu-401", "arm,smmu-v1";
649		reg = <0x0 0x7fb10000 0x0 0x10000>;
650		interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
651			     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
652		#iommu-cells = <1>;
653		#global-interrupts = <1>;
654	};
655
656	smmu_hdlcd0: iommu@7fb20000 {
657		compatible = "arm,mmu-401", "arm,smmu-v1";
658		reg = <0x0 0x7fb20000 0x0 0x10000>;
659		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
660			     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
661		#iommu-cells = <1>;
662		#global-interrupts = <1>;
663	};
664
665	smmu_usb: iommu@7fb30000 {
666		compatible = "arm,mmu-401", "arm,smmu-v1";
667		reg = <0x0 0x7fb30000 0x0 0x10000>;
668		interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
669			     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
670		#iommu-cells = <1>;
671		#global-interrupts = <1>;
672		dma-coherent;
673	};
674
675	dma@7ff00000 {
676		compatible = "arm,pl330", "arm,primecell";
677		reg = <0x0 0x7ff00000 0 0x1000>;
678		#dma-cells = <1>;
679		#dma-channels = <8>;
680		#dma-requests = <32>;
681		interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
682			     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
683			     <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
684			     <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
685			     <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
686			     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
687			     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
688			     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
689			     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
690		iommus = <&smmu_dma 0>,
691			 <&smmu_dma 1>,
692			 <&smmu_dma 2>,
693			 <&smmu_dma 3>,
694			 <&smmu_dma 4>,
695			 <&smmu_dma 5>,
696			 <&smmu_dma 6>,
697			 <&smmu_dma 7>,
698			 <&smmu_dma 8>;
699		clocks = <&soc_faxiclk>;
700		clock-names = "apb_pclk";
701	};
702
703	hdlcd@7ff50000 {
704		compatible = "arm,hdlcd";
705		reg = <0 0x7ff50000 0 0x1000>;
706		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
707		iommus = <&smmu_hdlcd1 0>;
708		clocks = <&scpi_clk 3>;
709		clock-names = "pxlclk";
710
711		port {
712			hdlcd1_output: endpoint {
713				remote-endpoint = <&tda998x_1_input>;
714			};
715		};
716	};
717
718	hdlcd@7ff60000 {
719		compatible = "arm,hdlcd";
720		reg = <0 0x7ff60000 0 0x1000>;
721		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
722		iommus = <&smmu_hdlcd0 0>;
723		clocks = <&scpi_clk 3>;
724		clock-names = "pxlclk";
725
726		port {
727			hdlcd0_output: endpoint {
728				remote-endpoint = <&tda998x_0_input>;
729			};
730		};
731	};
732
733	soc_uart0: serial@7ff80000 {
734		compatible = "arm,pl011", "arm,primecell";
735		reg = <0x0 0x7ff80000 0x0 0x1000>;
736		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
737		clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
738		clock-names = "uartclk", "apb_pclk";
739	};
740
741	i2c@7ffa0000 {
742		compatible = "snps,designware-i2c";
743		reg = <0x0 0x7ffa0000 0x0 0x1000>;
744		#address-cells = <1>;
745		#size-cells = <0>;
746		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
747		clock-frequency = <400000>;
748		i2c-sda-hold-time-ns = <500>;
749		clocks = <&soc_smc50mhz>;
750
751		hdmi-transmitter@70 {
752			compatible = "nxp,tda998x";
753			reg = <0x70>;
754			port {
755				tda998x_0_input: endpoint {
756					remote-endpoint = <&hdlcd0_output>;
757				};
758			};
759		};
760
761		hdmi-transmitter@71 {
762			compatible = "nxp,tda998x";
763			reg = <0x71>;
764			port {
765				tda998x_1_input: endpoint {
766					remote-endpoint = <&hdlcd1_output>;
767				};
768			};
769		};
770	};
771
772	usb@7ffb0000 {
773		compatible = "generic-ohci";
774		reg = <0x0 0x7ffb0000 0x0 0x10000>;
775		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
776		iommus = <&smmu_usb 0>;
777		clocks = <&soc_usb48mhz>;
778	};
779
780	usb@7ffc0000 {
781		compatible = "generic-ehci";
782		reg = <0x0 0x7ffc0000 0x0 0x10000>;
783		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
784		iommus = <&smmu_usb 0>;
785		clocks = <&soc_usb48mhz>;
786	};
787
788	memory-controller@7ffd0000 {
789		compatible = "arm,pl354", "arm,primecell";
790		reg = <0 0x7ffd0000 0 0x1000>;
791		interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
792			     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
793		clocks = <&soc_smc50mhz>;
794		clock-names = "apb_pclk";
795	};
796
797	memory@80000000 {
798		device_type = "memory";
799		/* last 16MB of the first memory area is reserved for secure world use by firmware */
800		reg = <0x00000000 0x80000000 0x0 0x7f000000>,
801		      <0x00000008 0x80000000 0x1 0x80000000>;
802	};
803
804	bus@8000000 {
805		#interrupt-cells = <1>;
806		interrupt-map-mask = <0 0 15>;
807		interrupt-map = <0 0  0 &gic 0 GIC_SPI  68 IRQ_TYPE_LEVEL_HIGH>,
808				<0 0  1 &gic 0 GIC_SPI  69 IRQ_TYPE_LEVEL_HIGH>,
809				<0 0  2 &gic 0 GIC_SPI  70 IRQ_TYPE_LEVEL_HIGH>,
810				<0 0  3 &gic 0 GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
811				<0 0  4 &gic 0 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
812				<0 0  5 &gic 0 GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
813				<0 0  6 &gic 0 GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
814				<0 0  7 &gic 0 GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
815				<0 0  8 &gic 0 GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
816				<0 0  9 &gic 0 GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
817				<0 0 10 &gic 0 GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
818				<0 0 11 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
819				<0 0 12 &gic 0 GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
820	};
821
822	site2: tlx-bus@60000000 {
823		compatible = "simple-bus";
824		#address-cells = <1>;
825		#size-cells = <1>;
826		ranges = <0 0 0x60000000 0x10000000>;
827		#interrupt-cells = <1>;
828		interrupt-map-mask = <0 0>;
829		interrupt-map = <0 0 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
830	};
831};
832