xref: /linux/arch/arm64/boot/dts/xilinx/zynqmp.dtsi (revision 6589b3d76db2d6adbf8f2084c303fb24252a0dc6)
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * dts file for Xilinx ZynqMP
4 *
5 * (C) Copyright 2014 - 2021, Xilinx, Inc.
6 *
7 * Michal Simek <michal.simek@amd.com>
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
13 */
14
15#include <dt-bindings/dma/xlnx-zynqmp-dpdma.h>
16#include <dt-bindings/gpio/gpio.h>
17#include <dt-bindings/interrupt-controller/arm-gic.h>
18#include <dt-bindings/interrupt-controller/irq.h>
19#include <dt-bindings/power/xlnx-zynqmp-power.h>
20#include <dt-bindings/reset/xlnx-zynqmp-resets.h>
21#include <dt-bindings/thermal/thermal.h>
22
23/ {
24	compatible = "xlnx,zynqmp";
25	#address-cells = <2>;
26	#size-cells = <2>;
27
28	options {
29		u-boot {
30			compatible = "u-boot,config";
31			bootscr-address = /bits/ 64 <0x20000000>;
32		};
33	};
34
35	cpus {
36		#address-cells = <1>;
37		#size-cells = <0>;
38
39		cpu0: cpu@0 {
40			#cooling-cells = <2>;
41			compatible = "arm,cortex-a53";
42			device_type = "cpu";
43			enable-method = "psci";
44			operating-points-v2 = <&cpu_opp_table>;
45			reg = <0x0>;
46			cpu-idle-states = <&CPU_SLEEP_0>;
47			next-level-cache = <&L2>;
48		};
49
50		cpu1: cpu@1 {
51			#cooling-cells = <2>;
52			compatible = "arm,cortex-a53";
53			device_type = "cpu";
54			enable-method = "psci";
55			reg = <0x1>;
56			operating-points-v2 = <&cpu_opp_table>;
57			cpu-idle-states = <&CPU_SLEEP_0>;
58			next-level-cache = <&L2>;
59		};
60
61		cpu2: cpu@2 {
62			#cooling-cells = <2>;
63			compatible = "arm,cortex-a53";
64			device_type = "cpu";
65			enable-method = "psci";
66			reg = <0x2>;
67			operating-points-v2 = <&cpu_opp_table>;
68			cpu-idle-states = <&CPU_SLEEP_0>;
69			next-level-cache = <&L2>;
70		};
71
72		cpu3: cpu@3 {
73			#cooling-cells = <2>;
74			compatible = "arm,cortex-a53";
75			device_type = "cpu";
76			enable-method = "psci";
77			reg = <0x3>;
78			operating-points-v2 = <&cpu_opp_table>;
79			cpu-idle-states = <&CPU_SLEEP_0>;
80			next-level-cache = <&L2>;
81		};
82
83		L2: l2-cache {
84			compatible = "cache";
85			cache-level = <2>;
86			cache-unified;
87		};
88
89		idle-states {
90			entry-method = "psci";
91
92			CPU_SLEEP_0: cpu-sleep-0 {
93				compatible = "arm,idle-state";
94				arm,psci-suspend-param = <0x40000000>;
95				local-timer-stop;
96				entry-latency-us = <300>;
97				exit-latency-us = <600>;
98				min-residency-us = <10000>;
99			};
100		};
101	};
102
103	cpu_opp_table: opp-table-cpu {
104		compatible = "operating-points-v2";
105		opp-shared;
106		opp-1200000000 {
107			opp-hz = /bits/ 64 <1200000000>;
108			opp-microvolt = <1000000>;
109			clock-latency-ns = <500000>;
110		};
111		opp-600000000 {
112			opp-hz = /bits/ 64 <600000000>;
113			opp-microvolt = <1000000>;
114			clock-latency-ns = <500000>;
115		};
116		opp-400000000 {
117			opp-hz = /bits/ 64 <400000000>;
118			opp-microvolt = <1000000>;
119			clock-latency-ns = <500000>;
120		};
121		opp-300000000 {
122			opp-hz = /bits/ 64 <300000000>;
123			opp-microvolt = <1000000>;
124			clock-latency-ns = <500000>;
125		};
126	};
127
128	reserved-memory {
129		#address-cells = <2>;
130		#size-cells = <2>;
131		ranges;
132
133		rproc_0_fw_image: memory@3ed00000 {
134			no-map;
135			reg = <0x0 0x3ed00000 0x0 0x40000>;
136		};
137
138		rproc_1_fw_image: memory@3ef00000 {
139			no-map;
140			reg = <0x0 0x3ef00000 0x0 0x40000>;
141		};
142	};
143
144	zynqmp_ipi: zynqmp-ipi {
145		bootph-all;
146		compatible = "xlnx,zynqmp-ipi-mailbox";
147		interrupt-parent = <&gic>;
148		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
149		xlnx,ipi-id = <0>;
150		#address-cells = <2>;
151		#size-cells = <2>;
152		ranges;
153
154		ipi_mailbox_pmu1: mailbox@ff9905c0 {
155			bootph-all;
156			compatible = "xlnx,zynqmp-ipi-dest-mailbox";
157			reg = <0x0 0xff9905c0 0x0 0x20>,
158			      <0x0 0xff9905e0 0x0 0x20>,
159			      <0x0 0xff990e80 0x0 0x20>,
160			      <0x0 0xff990ea0 0x0 0x20>;
161			reg-names = "local_request_region",
162				    "local_response_region",
163				    "remote_request_region",
164				    "remote_response_region";
165			#mbox-cells = <1>;
166			xlnx,ipi-id = <4>;
167		};
168	};
169
170	dcc: dcc {
171		compatible = "arm,dcc";
172		status = "disabled";
173		bootph-all;
174	};
175
176	pmu {
177		compatible = "arm,cortex-a53-pmu";
178		interrupt-parent = <&gic>;
179		interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
180			     <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
181			     <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
182			     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
183		interrupt-affinity = <&cpu0>,
184				     <&cpu1>,
185				     <&cpu2>,
186				     <&cpu3>;
187	};
188
189	psci {
190		compatible = "arm,psci-1.0", "arm,psci-0.2";
191		method = "smc";
192	};
193
194	firmware {
195		zynqmp_firmware: zynqmp-firmware {
196			compatible = "xlnx,zynqmp-firmware";
197			#power-domain-cells = <1>;
198			method = "smc";
199			bootph-all;
200
201			zynqmp_power: power-management {
202				bootph-all;
203				compatible = "xlnx,zynqmp-power";
204				interrupt-parent = <&gic>;
205				interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
206				mboxes = <&ipi_mailbox_pmu1 0>, <&ipi_mailbox_pmu1 1>;
207				mbox-names = "tx", "rx";
208			};
209
210			soc-nvmem {
211				compatible = "xlnx,zynqmp-nvmem-fw";
212				nvmem-layout {
213					compatible = "fixed-layout";
214					#address-cells = <1>;
215					#size-cells = <1>;
216
217					soc_revision: soc-revision@0 {
218						reg = <0x0 0x4>;
219					};
220					/* efuse access */
221					efuse_dna: efuse-dna@c {
222						reg = <0xc 0xc>;
223					};
224					efuse_usr0: efuse-usr0@20 {
225						reg = <0x20 0x4>;
226					};
227					efuse_usr1: efuse-usr1@24 {
228						reg = <0x24 0x4>;
229					};
230					efuse_usr2: efuse-usr2@28 {
231						reg = <0x28 0x4>;
232					};
233					efuse_usr3: efuse-usr3@2c {
234						reg = <0x2c 0x4>;
235					};
236					efuse_usr4: efuse-usr4@30 {
237						reg = <0x30 0x4>;
238					};
239					efuse_usr5: efuse-usr5@34 {
240						reg = <0x34 0x4>;
241					};
242					efuse_usr6: efuse-usr6@38 {
243						reg = <0x38 0x4>;
244					};
245					efuse_usr7: efuse-usr7@3c {
246						reg = <0x3c 0x4>;
247					};
248					efuse_miscusr: efuse-miscusr@40 {
249						reg = <0x40 0x4>;
250					};
251					efuse_chash: efuse-chash@50 {
252						reg = <0x50 0x4>;
253					};
254					efuse_pufmisc: efuse-pufmisc@54 {
255						reg = <0x54 0x4>;
256					};
257					efuse_sec: efuse-sec@58 {
258						reg = <0x58 0x4>;
259					};
260					efuse_spkid: efuse-spkid@5c {
261						reg = <0x5c 0x4>;
262					};
263					efuse_aeskey: efuse-aeskey@60 {
264						reg = <0x60 0x20>;
265					};
266					efuse_ppk0hash: efuse-ppk0hash@a0 {
267						reg = <0xa0 0x30>;
268					};
269					efuse_ppk1hash: efuse-ppk1hash@d0 {
270						reg = <0xd0 0x30>;
271					};
272					efuse_pufuser: efuse-pufuser@100 {
273						reg = <0x100 0x7F>;
274					};
275				};
276			};
277
278			zynqmp_pcap: pcap {
279				compatible = "xlnx,zynqmp-pcap-fpga";
280			};
281
282			xlnx_aes: zynqmp-aes {
283				compatible = "xlnx,zynqmp-aes";
284			};
285
286			zynqmp_reset: reset-controller {
287				compatible = "xlnx,zynqmp-reset";
288				#reset-cells = <1>;
289			};
290
291			pinctrl0: pinctrl {
292				compatible = "xlnx,zynqmp-pinctrl";
293				status = "disabled";
294			};
295
296			modepin_gpio: gpio {
297				compatible = "xlnx,zynqmp-gpio-modepin";
298				gpio-controller;
299				#gpio-cells = <2>;
300			};
301		};
302	};
303
304	timer {
305		compatible = "arm,armv8-timer";
306		interrupt-parent = <&gic>;
307		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
308			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
309			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
310			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
311	};
312
313	fpga_full: fpga-region {
314		compatible = "fpga-region";
315		fpga-mgr = <&zynqmp_pcap>;
316		#address-cells = <2>;
317		#size-cells = <2>;
318		ranges;
319	};
320
321	rproc_lockstep: remoteproc@ffe00000 {
322		compatible = "xlnx,zynqmp-r5fss";
323		xlnx,cluster-mode = <1>;
324		xlnx,tcm-mode = <1>;
325
326		#address-cells = <2>;
327		#size-cells = <2>;
328
329		ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x10000>,
330			 <0x0 0x20000 0x0 0xffe20000 0x0 0x10000>,
331			 <0x0 0x10000 0x0 0xffe10000 0x0 0x10000>,
332			 <0x0 0x30000 0x0 0xffe30000 0x0 0x10000>;
333
334		r5f@0 {
335			compatible = "xlnx,zynqmp-r5f";
336			reg = <0x0 0x0 0x0 0x10000>,
337			      <0x0 0x20000 0x0 0x10000>,
338			      <0x0 0x10000 0x0 0x10000>,
339			      <0x0 0x30000 0x0 0x10000>;
340			reg-names = "atcm0", "btcm0", "atcm1", "btcm1";
341			power-domains = <&zynqmp_firmware PD_RPU_0>,
342					<&zynqmp_firmware PD_R5_0_ATCM>,
343					<&zynqmp_firmware PD_R5_0_BTCM>,
344					<&zynqmp_firmware PD_R5_1_ATCM>,
345					<&zynqmp_firmware PD_R5_1_BTCM>;
346			memory-region = <&rproc_0_fw_image>;
347		};
348
349		r5f@1 {
350			compatible = "xlnx,zynqmp-r5f";
351			reg = <0x1 0x0 0x0 0x10000>, <0x1 0x20000 0x0 0x10000>;
352			reg-names = "atcm0", "btcm0";
353			power-domains = <&zynqmp_firmware PD_RPU_1>,
354					<&zynqmp_firmware PD_R5_1_ATCM>,
355					<&zynqmp_firmware PD_R5_1_BTCM>;
356			memory-region = <&rproc_1_fw_image>;
357		};
358	};
359
360	rproc_split: remoteproc-split@ffe00000 {
361		status = "disabled";
362		compatible = "xlnx,zynqmp-r5fss";
363		xlnx,cluster-mode = <0>;
364		xlnx,tcm-mode = <0>;
365
366		#address-cells = <2>;
367		#size-cells = <2>;
368
369		ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x10000>,
370			 <0x0 0x20000 0x0 0xffe20000 0x0 0x10000>,
371			 <0x1 0x0 0x0 0xffe90000 0x0 0x10000>,
372			 <0x1 0x20000 0x0 0xffeb0000 0x0 0x10000>;
373
374		r5f@0 {
375			compatible = "xlnx,zynqmp-r5f";
376			reg = <0x0 0x0 0x0 0x10000>, <0x0 0x20000 0x0 0x10000>;
377			reg-names = "atcm0", "btcm0";
378			power-domains = <&zynqmp_firmware PD_RPU_0>,
379					<&zynqmp_firmware PD_R5_0_ATCM>,
380					<&zynqmp_firmware PD_R5_0_BTCM>;
381			memory-region = <&rproc_0_fw_image>;
382		};
383
384		r5f@1 {
385			compatible = "xlnx,zynqmp-r5f";
386			reg = <0x1 0x0 0x0 0x10000>, <0x1 0x20000 0x0 0x10000>;
387			reg-names = "atcm0", "btcm0";
388			power-domains = <&zynqmp_firmware PD_RPU_1>,
389					<&zynqmp_firmware PD_R5_1_ATCM>,
390					<&zynqmp_firmware PD_R5_1_BTCM>;
391			memory-region = <&rproc_1_fw_image>;
392		};
393	};
394
395	ams {
396		compatible = "iio-hwmon";
397		io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>,
398			<&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>,
399			<&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>,
400			<&xilinx_ams 9>, <&xilinx_ams 10>, <&xilinx_ams 11>,
401			<&xilinx_ams 12>, <&xilinx_ams 13>, <&xilinx_ams 14>,
402			<&xilinx_ams 15>, <&xilinx_ams 16>, <&xilinx_ams 17>,
403			<&xilinx_ams 18>, <&xilinx_ams 19>, <&xilinx_ams 20>,
404			<&xilinx_ams 21>, <&xilinx_ams 22>, <&xilinx_ams 23>,
405			<&xilinx_ams 24>, <&xilinx_ams 25>, <&xilinx_ams 26>,
406			<&xilinx_ams 27>, <&xilinx_ams 28>, <&xilinx_ams 29>;
407	};
408
409
410	tsens_apu: thermal-sensor-apu {
411		compatible = "generic-adc-thermal";
412		#thermal-sensor-cells = <0>;
413		io-channels = <&xilinx_ams 7>;
414		io-channel-names = "sensor-channel";
415	};
416
417	tsens_rpu: thermal-sensor-rpu {
418		compatible = "generic-adc-thermal";
419		#thermal-sensor-cells = <0>;
420		io-channels = <&xilinx_ams 8>;
421		io-channel-names = "sensor-channel";
422	};
423
424	tsens_pl: thermal-sensor-pl {
425		compatible = "generic-adc-thermal";
426		#thermal-sensor-cells = <0>;
427		io-channels = <&xilinx_ams 20>;
428		io-channel-names = "sensor-channel";
429	};
430
431	thermal-zones {
432		apu-thermal {
433			polling-delay-passive = <1000>;
434			polling-delay = <5000>;
435			thermal-sensors = <&tsens_apu>;
436
437			trips {
438				apu_passive: passive {
439					temperature = <93000>;
440					hysteresis = <3500>;
441					type = "passive";
442				};
443
444				apu_critical: critical {
445					temperature = <96500>;
446					hysteresis = <3500>;
447					type = "critical";
448				};
449			};
450
451			cooling-maps {
452				map {
453					trip = <&apu_passive>;
454					cooling-device =
455						<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
456						<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
457						<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
458						<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
459				};
460			};
461		};
462
463		rpu-thermal {
464			polling-delay = <10000>;
465			thermal-sensors = <&tsens_rpu>;
466
467			trips {
468				critical {
469					temperature = <96500>;
470					hysteresis = <3500>;
471					type = "critical";
472				};
473			};
474		};
475
476		pl-thermal {
477			polling-delay = <10000>;
478			thermal-sensors = <&tsens_pl>;
479
480			trips {
481				critical {
482					temperature = <96500>;
483					hysteresis = <3500>;
484					type = "critical";
485				};
486			};
487		};
488	};
489
490	amba: axi {
491		compatible = "simple-bus";
492		bootph-all;
493		#address-cells = <2>;
494		#size-cells = <2>;
495		ranges;
496
497		can0: can@ff060000 {
498			compatible = "xlnx,zynq-can-1.0";
499			status = "disabled";
500			clock-names = "can_clk", "pclk";
501			reg = <0x0 0xff060000 0x0 0x1000>;
502			interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
503			interrupt-parent = <&gic>;
504			tx-fifo-depth = <0x40>;
505			rx-fifo-depth = <0x40>;
506			resets = <&zynqmp_reset ZYNQMP_RESET_CAN0>;
507			power-domains = <&zynqmp_firmware PD_CAN_0>;
508		};
509
510		can1: can@ff070000 {
511			compatible = "xlnx,zynq-can-1.0";
512			status = "disabled";
513			clock-names = "can_clk", "pclk";
514			reg = <0x0 0xff070000 0x0 0x1000>;
515			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
516			interrupt-parent = <&gic>;
517			tx-fifo-depth = <0x40>;
518			rx-fifo-depth = <0x40>;
519			resets = <&zynqmp_reset ZYNQMP_RESET_CAN1>;
520			power-domains = <&zynqmp_firmware PD_CAN_1>;
521		};
522
523		cci: cci@fd6e0000 {
524			compatible = "arm,cci-400";
525			status = "disabled";
526			reg = <0x0 0xfd6e0000 0x0 0x9000>;
527			ranges = <0x0 0x0 0xfd6e0000 0x10000>;
528			#address-cells = <1>;
529			#size-cells = <1>;
530
531			pmu@9000 {
532				compatible = "arm,cci-400-pmu,r1";
533				reg = <0x9000 0x5000>;
534				interrupt-parent = <&gic>;
535				interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
536					     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
537					     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
538					     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
539					     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
540			};
541		};
542
543		cpu0_debug: debug@fec10000 {
544			compatible = "arm,coresight-cpu-debug", "arm,primecell";
545			reg = <0x0 0xfec10000 0x0 0x1000>;
546			clock-names = "apb_pclk";
547			cpu = <&cpu0>;
548			status = "disabled";
549		};
550
551		cpu1_debug: debug@fed10000 {
552			compatible = "arm,coresight-cpu-debug", "arm,primecell";
553			reg = <0x0 0xfed10000 0x0 0x1000>;
554			clock-names = "apb_pclk";
555			cpu = <&cpu1>;
556			status = "disabled";
557		};
558
559		cpu2_debug: debug@fee10000 {
560			compatible = "arm,coresight-cpu-debug", "arm,primecell";
561			reg = <0x0 0xfee10000 0x0 0x1000>;
562			clock-names = "apb_pclk";
563			cpu = <&cpu2>;
564			status = "disabled";
565		};
566
567		cpu3_debug: debug@fef10000 {
568			compatible = "arm,coresight-cpu-debug", "arm,primecell";
569			reg = <0x0 0xfef10000 0x0 0x1000>;
570			clock-names = "apb_pclk";
571			cpu = <&cpu3>;
572			status = "disabled";
573		};
574
575		/* GDMA */
576		fpd_dma_chan1: dma-controller@fd500000 {
577			status = "disabled";
578			compatible = "xlnx,zynqmp-dma-1.0";
579			reg = <0x0 0xfd500000 0x0 0x1000>;
580			interrupt-parent = <&gic>;
581			interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
582			clock-names = "clk_main", "clk_apb";
583			#dma-cells = <1>;
584			xlnx,bus-width = <128>;
585			/* iommus = <&smmu 0x14e8>; */
586			power-domains = <&zynqmp_firmware PD_GDMA>;
587		};
588
589		fpd_dma_chan2: dma-controller@fd510000 {
590			status = "disabled";
591			compatible = "xlnx,zynqmp-dma-1.0";
592			reg = <0x0 0xfd510000 0x0 0x1000>;
593			interrupt-parent = <&gic>;
594			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
595			clock-names = "clk_main", "clk_apb";
596			#dma-cells = <1>;
597			xlnx,bus-width = <128>;
598			/* iommus = <&smmu 0x14e9>; */
599			power-domains = <&zynqmp_firmware PD_GDMA>;
600		};
601
602		fpd_dma_chan3: dma-controller@fd520000 {
603			status = "disabled";
604			compatible = "xlnx,zynqmp-dma-1.0";
605			reg = <0x0 0xfd520000 0x0 0x1000>;
606			interrupt-parent = <&gic>;
607			interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
608			clock-names = "clk_main", "clk_apb";
609			#dma-cells = <1>;
610			xlnx,bus-width = <128>;
611			/* iommus = <&smmu 0x14ea>; */
612			power-domains = <&zynqmp_firmware PD_GDMA>;
613		};
614
615		fpd_dma_chan4: dma-controller@fd530000 {
616			status = "disabled";
617			compatible = "xlnx,zynqmp-dma-1.0";
618			reg = <0x0 0xfd530000 0x0 0x1000>;
619			interrupt-parent = <&gic>;
620			interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
621			clock-names = "clk_main", "clk_apb";
622			#dma-cells = <1>;
623			xlnx,bus-width = <128>;
624			/* iommus = <&smmu 0x14eb>; */
625			power-domains = <&zynqmp_firmware PD_GDMA>;
626		};
627
628		fpd_dma_chan5: dma-controller@fd540000 {
629			status = "disabled";
630			compatible = "xlnx,zynqmp-dma-1.0";
631			reg = <0x0 0xfd540000 0x0 0x1000>;
632			interrupt-parent = <&gic>;
633			interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
634			clock-names = "clk_main", "clk_apb";
635			#dma-cells = <1>;
636			xlnx,bus-width = <128>;
637			/* iommus = <&smmu 0x14ec>; */
638			power-domains = <&zynqmp_firmware PD_GDMA>;
639		};
640
641		fpd_dma_chan6: dma-controller@fd550000 {
642			status = "disabled";
643			compatible = "xlnx,zynqmp-dma-1.0";
644			reg = <0x0 0xfd550000 0x0 0x1000>;
645			interrupt-parent = <&gic>;
646			interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
647			clock-names = "clk_main", "clk_apb";
648			#dma-cells = <1>;
649			xlnx,bus-width = <128>;
650			/* iommus = <&smmu 0x14ed>; */
651			power-domains = <&zynqmp_firmware PD_GDMA>;
652		};
653
654		fpd_dma_chan7: dma-controller@fd560000 {
655			status = "disabled";
656			compatible = "xlnx,zynqmp-dma-1.0";
657			reg = <0x0 0xfd560000 0x0 0x1000>;
658			interrupt-parent = <&gic>;
659			interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
660			clock-names = "clk_main", "clk_apb";
661			#dma-cells = <1>;
662			xlnx,bus-width = <128>;
663			/* iommus = <&smmu 0x14ee>; */
664			power-domains = <&zynqmp_firmware PD_GDMA>;
665		};
666
667		fpd_dma_chan8: dma-controller@fd570000 {
668			status = "disabled";
669			compatible = "xlnx,zynqmp-dma-1.0";
670			reg = <0x0 0xfd570000 0x0 0x1000>;
671			interrupt-parent = <&gic>;
672			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
673			clock-names = "clk_main", "clk_apb";
674			#dma-cells = <1>;
675			xlnx,bus-width = <128>;
676			/* iommus = <&smmu 0x14ef>; */
677			power-domains = <&zynqmp_firmware PD_GDMA>;
678		};
679
680		gic: interrupt-controller@f9010000 {
681			compatible = "arm,gic-400";
682			#interrupt-cells = <3>;
683			reg = <0x0 0xf9010000 0x0 0x10000>,
684			      <0x0 0xf9020000 0x0 0x20000>,
685			      <0x0 0xf9040000 0x0 0x20000>,
686			      <0x0 0xf9060000 0x0 0x20000>;
687			interrupt-controller;
688			interrupt-parent = <&gic>;
689			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
690		};
691
692		gpu: gpu@fd4b0000 {
693			status = "disabled";
694			compatible = "xlnx,zynqmp-mali", "arm,mali-400";
695			reg = <0x0 0xfd4b0000 0x0 0x10000>;
696			interrupt-parent = <&gic>;
697			interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
698				     <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
699				     <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
700				     <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
701				     <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
702				     <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
703			interrupt-names = "gp", "gpmmu", "pp0", "ppmmu0", "pp1", "ppmmu1";
704			clock-names = "bus", "core";
705			power-domains = <&zynqmp_firmware PD_GPU>;
706		};
707
708		/* LPDDMA default allows only secured access. inorder to enable
709		 * These dma channels, Users should ensure that these dma
710		 * Channels are allowed for non secure access.
711		 */
712		lpd_dma_chan1: dma-controller@ffa80000 {
713			status = "disabled";
714			compatible = "xlnx,zynqmp-dma-1.0";
715			reg = <0x0 0xffa80000 0x0 0x1000>;
716			interrupt-parent = <&gic>;
717			interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
718			clock-names = "clk_main", "clk_apb";
719			#dma-cells = <1>;
720			xlnx,bus-width = <64>;
721			/* iommus = <&smmu 0x868>; */
722			power-domains = <&zynqmp_firmware PD_ADMA>;
723		};
724
725		lpd_dma_chan2: dma-controller@ffa90000 {
726			status = "disabled";
727			compatible = "xlnx,zynqmp-dma-1.0";
728			reg = <0x0 0xffa90000 0x0 0x1000>;
729			interrupt-parent = <&gic>;
730			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
731			clock-names = "clk_main", "clk_apb";
732			#dma-cells = <1>;
733			xlnx,bus-width = <64>;
734			/* iommus = <&smmu 0x869>; */
735			power-domains = <&zynqmp_firmware PD_ADMA>;
736		};
737
738		lpd_dma_chan3: dma-controller@ffaa0000 {
739			status = "disabled";
740			compatible = "xlnx,zynqmp-dma-1.0";
741			reg = <0x0 0xffaa0000 0x0 0x1000>;
742			interrupt-parent = <&gic>;
743			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
744			clock-names = "clk_main", "clk_apb";
745			#dma-cells = <1>;
746			xlnx,bus-width = <64>;
747			/* iommus = <&smmu 0x86a>; */
748			power-domains = <&zynqmp_firmware PD_ADMA>;
749		};
750
751		lpd_dma_chan4: dma-controller@ffab0000 {
752			status = "disabled";
753			compatible = "xlnx,zynqmp-dma-1.0";
754			reg = <0x0 0xffab0000 0x0 0x1000>;
755			interrupt-parent = <&gic>;
756			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
757			clock-names = "clk_main", "clk_apb";
758			#dma-cells = <1>;
759			xlnx,bus-width = <64>;
760			/* iommus = <&smmu 0x86b>; */
761			power-domains = <&zynqmp_firmware PD_ADMA>;
762		};
763
764		lpd_dma_chan5: dma-controller@ffac0000 {
765			status = "disabled";
766			compatible = "xlnx,zynqmp-dma-1.0";
767			reg = <0x0 0xffac0000 0x0 0x1000>;
768			interrupt-parent = <&gic>;
769			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
770			clock-names = "clk_main", "clk_apb";
771			#dma-cells = <1>;
772			xlnx,bus-width = <64>;
773			/* iommus = <&smmu 0x86c>; */
774			power-domains = <&zynqmp_firmware PD_ADMA>;
775		};
776
777		lpd_dma_chan6: dma-controller@ffad0000 {
778			status = "disabled";
779			compatible = "xlnx,zynqmp-dma-1.0";
780			reg = <0x0 0xffad0000 0x0 0x1000>;
781			interrupt-parent = <&gic>;
782			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
783			clock-names = "clk_main", "clk_apb";
784			#dma-cells = <1>;
785			xlnx,bus-width = <64>;
786			/* iommus = <&smmu 0x86d>; */
787			power-domains = <&zynqmp_firmware PD_ADMA>;
788		};
789
790		lpd_dma_chan7: dma-controller@ffae0000 {
791			status = "disabled";
792			compatible = "xlnx,zynqmp-dma-1.0";
793			reg = <0x0 0xffae0000 0x0 0x1000>;
794			interrupt-parent = <&gic>;
795			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
796			clock-names = "clk_main", "clk_apb";
797			#dma-cells = <1>;
798			xlnx,bus-width = <64>;
799			/* iommus = <&smmu 0x86e>; */
800			power-domains = <&zynqmp_firmware PD_ADMA>;
801		};
802
803		lpd_dma_chan8: dma-controller@ffaf0000 {
804			status = "disabled";
805			compatible = "xlnx,zynqmp-dma-1.0";
806			reg = <0x0 0xffaf0000 0x0 0x1000>;
807			interrupt-parent = <&gic>;
808			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
809			clock-names = "clk_main", "clk_apb";
810			#dma-cells = <1>;
811			xlnx,bus-width = <64>;
812			/* iommus = <&smmu 0x86f>; */
813			power-domains = <&zynqmp_firmware PD_ADMA>;
814		};
815
816		mc: memory-controller@fd070000 {
817			compatible = "xlnx,zynqmp-ddrc-2.40a";
818			reg = <0x0 0xfd070000 0x0 0x30000>;
819			interrupt-parent = <&gic>;
820			interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
821		};
822
823		nand0: nand-controller@ff100000 {
824			compatible = "xlnx,zynqmp-nand-controller", "arasan,nfc-v3p10";
825			status = "disabled";
826			reg = <0x0 0xff100000 0x0 0x1000>;
827			clock-names = "controller", "bus";
828			interrupt-parent = <&gic>;
829			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
830			#address-cells = <1>;
831			#size-cells = <0>;
832			/* iommus = <&smmu 0x872>; */
833			power-domains = <&zynqmp_firmware PD_NAND>;
834		};
835
836		gem0: ethernet@ff0b0000 {
837			compatible = "xlnx,zynqmp-gem", "cdns,gem";
838			status = "disabled";
839			interrupt-parent = <&gic>;
840			interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
841				     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
842			reg = <0x0 0xff0b0000 0x0 0x1000>;
843			clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
844			/* iommus = <&smmu 0x874>; */
845			power-domains = <&zynqmp_firmware PD_ETH_0>;
846			resets = <&zynqmp_reset ZYNQMP_RESET_GEM0>;
847			reset-names = "gem0_rst";
848		};
849
850		gem1: ethernet@ff0c0000 {
851			compatible = "xlnx,zynqmp-gem", "cdns,gem";
852			status = "disabled";
853			interrupt-parent = <&gic>;
854			interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
855				     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
856			reg = <0x0 0xff0c0000 0x0 0x1000>;
857			clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
858			/* iommus = <&smmu 0x875>; */
859			power-domains = <&zynqmp_firmware PD_ETH_1>;
860			resets = <&zynqmp_reset ZYNQMP_RESET_GEM1>;
861			reset-names = "gem1_rst";
862		};
863
864		gem2: ethernet@ff0d0000 {
865			compatible = "xlnx,zynqmp-gem", "cdns,gem";
866			status = "disabled";
867			interrupt-parent = <&gic>;
868			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
869				     <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
870			reg = <0x0 0xff0d0000 0x0 0x1000>;
871			clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
872			/* iommus = <&smmu 0x876>; */
873			power-domains = <&zynqmp_firmware PD_ETH_2>;
874			resets = <&zynqmp_reset ZYNQMP_RESET_GEM2>;
875			reset-names = "gem2_rst";
876		};
877
878		gem3: ethernet@ff0e0000 {
879			compatible = "xlnx,zynqmp-gem", "cdns,gem";
880			status = "disabled";
881			interrupt-parent = <&gic>;
882			interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
883				     <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
884			reg = <0x0 0xff0e0000 0x0 0x1000>;
885			clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
886			/* iommus = <&smmu 0x877>; */
887			power-domains = <&zynqmp_firmware PD_ETH_3>;
888			resets = <&zynqmp_reset ZYNQMP_RESET_GEM3>;
889			reset-names = "gem3_rst";
890		};
891
892		gpio: gpio@ff0a0000 {
893			compatible = "xlnx,zynqmp-gpio-1.0";
894			status = "disabled";
895			#gpio-cells = <0x2>;
896			gpio-controller;
897			interrupt-parent = <&gic>;
898			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
899			interrupt-controller;
900			#interrupt-cells = <2>;
901			reg = <0x0 0xff0a0000 0x0 0x1000>;
902			power-domains = <&zynqmp_firmware PD_GPIO>;
903		};
904
905		i2c0: i2c@ff020000 {
906			compatible = "cdns,i2c-r1p14";
907			status = "disabled";
908			interrupt-parent = <&gic>;
909			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
910			clock-frequency = <400000>;
911			reg = <0x0 0xff020000 0x0 0x1000>;
912			#address-cells = <1>;
913			#size-cells = <0>;
914			power-domains = <&zynqmp_firmware PD_I2C_0>;
915		};
916
917		i2c1: i2c@ff030000 {
918			compatible = "cdns,i2c-r1p14";
919			status = "disabled";
920			interrupt-parent = <&gic>;
921			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
922			clock-frequency = <400000>;
923			reg = <0x0 0xff030000 0x0 0x1000>;
924			#address-cells = <1>;
925			#size-cells = <0>;
926			power-domains = <&zynqmp_firmware PD_I2C_1>;
927		};
928
929		ocm: memory-controller@ff960000 {
930			compatible = "xlnx,zynqmp-ocmc-1.0";
931			reg = <0x0 0xff960000 0x0 0x1000>;
932			interrupt-parent = <&gic>;
933			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
934		};
935
936		pcie: pcie@fd0e0000 {
937			compatible = "xlnx,nwl-pcie-2.11";
938			status = "disabled";
939			#address-cells = <3>;
940			#size-cells = <2>;
941			#interrupt-cells = <1>;
942			msi-controller;
943			device_type = "pci";
944			interrupt-parent = <&gic>;
945			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
946				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
947				     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
948				     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,	/* MSI_1 [63...32] */
949				     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;	/* MSI_0 [31...0] */
950			interrupt-names = "misc", "dummy", "intx",
951					  "msi1", "msi0";
952			msi-parent = <&pcie>;
953			reg = <0x0 0xfd0e0000 0x0 0x1000>,
954			      <0x0 0xfd480000 0x0 0x1000>,
955			      <0x80 0x00000000 0x0 0x10000000>;
956			reg-names = "breg", "pcireg", "cfg";
957			ranges = <0x02000000 0x00000000 0xe0000000 0x00000000 0xe0000000 0x00000000 0x10000000>,/* non-prefetchable memory */
958				 <0x43000000 0x00000006 0x00000000 0x00000006 0x00000000 0x00000002 0x00000000>;/* prefetchable memory */
959			bus-range = <0x00 0xff>;
960			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
961			interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc 0x1>,
962					<0x0 0x0 0x0 0x2 &pcie_intc 0x2>,
963					<0x0 0x0 0x0 0x3 &pcie_intc 0x3>,
964					<0x0 0x0 0x0 0x4 &pcie_intc 0x4>;
965			/* iommus = <&smmu 0x4d0>; */
966			power-domains = <&zynqmp_firmware PD_PCIE>;
967			pcie_intc: legacy-interrupt-controller {
968				interrupt-controller;
969				#address-cells = <0>;
970				#interrupt-cells = <1>;
971			};
972		};
973
974		qspi: spi@ff0f0000 {
975			bootph-all;
976			compatible = "xlnx,zynqmp-qspi-1.0";
977			status = "disabled";
978			clock-names = "ref_clk", "pclk";
979			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
980			interrupt-parent = <&gic>;
981			num-cs = <1>;
982			reg = <0x0 0xff0f0000 0x0 0x1000>,
983			      <0x0 0xc0000000 0x0 0x8000000>;
984			#address-cells = <1>;
985			#size-cells = <0>;
986			/* iommus = <&smmu 0x873>; */
987			power-domains = <&zynqmp_firmware PD_QSPI>;
988		};
989
990		psgtr: phy@fd400000 {
991			compatible = "xlnx,zynqmp-psgtr-v1.1";
992			status = "disabled";
993			reg = <0x0 0xfd400000 0x0 0x40000>,
994			      <0x0 0xfd3d0000 0x0 0x1000>;
995			reg-names = "serdes", "siou";
996			#phy-cells = <4>;
997		};
998
999		rtc: rtc@ffa60000 {
1000			compatible = "xlnx,zynqmp-rtc";
1001			status = "disabled";
1002			reg = <0x0 0xffa60000 0x0 0x100>;
1003			interrupt-parent = <&gic>;
1004			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
1005				     <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
1006			interrupt-names = "alarm", "sec";
1007			calibration = <0x7FFF>;
1008		};
1009
1010		sata: ahci@fd0c0000 {
1011			compatible = "ceva,ahci-1v84";
1012			status = "disabled";
1013			reg = <0x0 0xfd0c0000 0x0 0x2000>;
1014			interrupt-parent = <&gic>;
1015			interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
1016			power-domains = <&zynqmp_firmware PD_SATA>;
1017			resets = <&zynqmp_reset ZYNQMP_RESET_SATA>;
1018			/* iommus = <&smmu 0x4c0>, <&smmu 0x4c1>, <&smmu 0x4c2>, <&smmu 0x4c3>; */
1019		};
1020
1021		sdhci0: mmc@ff160000 {
1022			bootph-all;
1023			compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
1024			status = "disabled";
1025			interrupt-parent = <&gic>;
1026			interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1027			reg = <0x0 0xff160000 0x0 0x1000>;
1028			clock-names = "clk_xin", "clk_ahb";
1029			/* iommus = <&smmu 0x870>; */
1030			#clock-cells = <1>;
1031			clock-output-names = "clk_out_sd0", "clk_in_sd0";
1032			power-domains = <&zynqmp_firmware PD_SD_0>;
1033			resets = <&zynqmp_reset ZYNQMP_RESET_SDIO0>;
1034		};
1035
1036		sdhci1: mmc@ff170000 {
1037			bootph-all;
1038			compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
1039			status = "disabled";
1040			interrupt-parent = <&gic>;
1041			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
1042			reg = <0x0 0xff170000 0x0 0x1000>;
1043			clock-names = "clk_xin", "clk_ahb";
1044			/* iommus = <&smmu 0x871>; */
1045			#clock-cells = <1>;
1046			clock-output-names = "clk_out_sd1", "clk_in_sd1";
1047			power-domains = <&zynqmp_firmware PD_SD_1>;
1048			resets = <&zynqmp_reset ZYNQMP_RESET_SDIO1>;
1049		};
1050
1051		smmu: iommu@fd800000 {
1052			compatible = "arm,mmu-500";
1053			reg = <0x0 0xfd800000 0x0 0x20000>;
1054			#iommu-cells = <1>;
1055			status = "disabled";
1056			#global-interrupts = <1>;
1057			interrupt-parent = <&gic>;
1058			interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1059				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1060				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1061				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1062				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1063				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1064				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1065				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1066				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1067				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1068				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1069				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1070				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1071				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1072				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1073				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1074				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
1075		};
1076
1077		spi0: spi@ff040000 {
1078			compatible = "xlnx,zynqmp-spi-r1p6", "cdns,spi-r1p6";
1079			status = "disabled";
1080			interrupt-parent = <&gic>;
1081			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
1082			reg = <0x0 0xff040000 0x0 0x1000>;
1083			clock-names = "ref_clk", "pclk";
1084			#address-cells = <1>;
1085			#size-cells = <0>;
1086			power-domains = <&zynqmp_firmware PD_SPI_0>;
1087		};
1088
1089		spi1: spi@ff050000 {
1090			compatible = "xlnx,zynqmp-spi-r1p6", "cdns,spi-r1p6";
1091			status = "disabled";
1092			interrupt-parent = <&gic>;
1093			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
1094			reg = <0x0 0xff050000 0x0 0x1000>;
1095			clock-names = "ref_clk", "pclk";
1096			#address-cells = <1>;
1097			#size-cells = <0>;
1098			power-domains = <&zynqmp_firmware PD_SPI_1>;
1099		};
1100
1101		ttc0: timer@ff110000 {
1102			compatible = "cdns,ttc";
1103			status = "disabled";
1104			interrupt-parent = <&gic>;
1105			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
1106				     <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
1107				     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
1108			reg = <0x0 0xff110000 0x0 0x1000>;
1109			timer-width = <32>;
1110			power-domains = <&zynqmp_firmware PD_TTC_0>;
1111		};
1112
1113		ttc1: timer@ff120000 {
1114			compatible = "cdns,ttc";
1115			status = "disabled";
1116			interrupt-parent = <&gic>;
1117			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
1118				     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
1119				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
1120			reg = <0x0 0xff120000 0x0 0x1000>;
1121			timer-width = <32>;
1122			power-domains = <&zynqmp_firmware PD_TTC_1>;
1123		};
1124
1125		ttc2: timer@ff130000 {
1126			compatible = "cdns,ttc";
1127			status = "disabled";
1128			interrupt-parent = <&gic>;
1129			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
1130				     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
1131				     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
1132			reg = <0x0 0xff130000 0x0 0x1000>;
1133			timer-width = <32>;
1134			power-domains = <&zynqmp_firmware PD_TTC_2>;
1135		};
1136
1137		ttc3: timer@ff140000 {
1138			compatible = "cdns,ttc";
1139			status = "disabled";
1140			interrupt-parent = <&gic>;
1141			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
1142				     <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
1143				     <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
1144			reg = <0x0 0xff140000 0x0 0x1000>;
1145			timer-width = <32>;
1146			power-domains = <&zynqmp_firmware PD_TTC_3>;
1147		};
1148
1149		uart0: serial@ff000000 {
1150			bootph-all;
1151			compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12";
1152			status = "disabled";
1153			interrupt-parent = <&gic>;
1154			interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
1155			reg = <0x0 0xff000000 0x0 0x1000>;
1156			clock-names = "uart_clk", "pclk";
1157			power-domains = <&zynqmp_firmware PD_UART_0>;
1158			resets = <&zynqmp_reset ZYNQMP_RESET_UART0>;
1159		};
1160
1161		uart1: serial@ff010000 {
1162			bootph-all;
1163			compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12";
1164			status = "disabled";
1165			interrupt-parent = <&gic>;
1166			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
1167			reg = <0x0 0xff010000 0x0 0x1000>;
1168			clock-names = "uart_clk", "pclk";
1169			power-domains = <&zynqmp_firmware PD_UART_1>;
1170			resets = <&zynqmp_reset ZYNQMP_RESET_UART1>;
1171		};
1172
1173		usb0: usb@ff9d0000 {
1174			#address-cells = <2>;
1175			#size-cells = <2>;
1176			status = "disabled";
1177			compatible = "xlnx,zynqmp-dwc3";
1178			reg = <0x0 0xff9d0000 0x0 0x100>;
1179			clock-names = "bus_clk", "ref_clk";
1180			power-domains = <&zynqmp_firmware PD_USB_0>;
1181			resets = <&zynqmp_reset ZYNQMP_RESET_USB0_CORERESET>,
1182				 <&zynqmp_reset ZYNQMP_RESET_USB0_HIBERRESET>,
1183				 <&zynqmp_reset ZYNQMP_RESET_USB0_APB>;
1184			reset-names = "usb_crst", "usb_hibrst", "usb_apbrst";
1185			reset-gpios = <&modepin_gpio 1 GPIO_ACTIVE_LOW>;
1186			ranges;
1187
1188			dwc3_0: usb@fe200000 {
1189				compatible = "snps,dwc3";
1190				status = "disabled";
1191				reg = <0x0 0xfe200000 0x0 0x40000>;
1192				interrupt-parent = <&gic>;
1193				interrupt-names = "host", "peripheral", "otg", "wakeup";
1194				interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
1195					     <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
1196					     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
1197					     <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1198				clock-names = "ref";
1199				/* iommus = <&smmu 0x860>; */
1200				snps,quirk-frame-length-adjustment = <0x20>;
1201				snps,resume-hs-terminations;
1202				/* dma-coherent; */
1203			};
1204		};
1205
1206		usb1: usb@ff9e0000 {
1207			#address-cells = <2>;
1208			#size-cells = <2>;
1209			status = "disabled";
1210			compatible = "xlnx,zynqmp-dwc3";
1211			reg = <0x0 0xff9e0000 0x0 0x100>;
1212			clock-names = "bus_clk", "ref_clk";
1213			power-domains = <&zynqmp_firmware PD_USB_1>;
1214			resets = <&zynqmp_reset ZYNQMP_RESET_USB1_CORERESET>,
1215				 <&zynqmp_reset ZYNQMP_RESET_USB1_HIBERRESET>,
1216				 <&zynqmp_reset ZYNQMP_RESET_USB1_APB>;
1217			reset-names = "usb_crst", "usb_hibrst", "usb_apbrst";
1218			ranges;
1219
1220			dwc3_1: usb@fe300000 {
1221				compatible = "snps,dwc3";
1222				status = "disabled";
1223				reg = <0x0 0xfe300000 0x0 0x40000>;
1224				interrupt-parent = <&gic>;
1225				interrupt-names = "host", "peripheral", "otg", "wakeup";
1226				interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
1227					     <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
1228					     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
1229					     <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
1230				clock-names = "ref";
1231				/* iommus = <&smmu 0x861>; */
1232				snps,quirk-frame-length-adjustment = <0x20>;
1233				snps,resume-hs-terminations;
1234				/* dma-coherent; */
1235			};
1236		};
1237
1238		watchdog0: watchdog@fd4d0000 {
1239			compatible = "cdns,wdt-r1p2";
1240			status = "disabled";
1241			interrupt-parent = <&gic>;
1242			interrupts = <GIC_SPI 113 IRQ_TYPE_EDGE_RISING>;
1243			reg = <0x0 0xfd4d0000 0x0 0x1000>;
1244			timeout-sec = <60>;
1245			reset-on-timeout;
1246		};
1247
1248		lpd_watchdog: watchdog@ff150000 {
1249			compatible = "cdns,wdt-r1p2";
1250			status = "disabled";
1251			interrupt-parent = <&gic>;
1252			interrupts = <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>;
1253			reg = <0x0 0xff150000 0x0 0x1000>;
1254			timeout-sec = <10>;
1255		};
1256
1257		xilinx_ams: ams@ffa50000 {
1258			compatible = "xlnx,zynqmp-ams";
1259			interrupt-parent = <&gic>;
1260			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
1261			reg = <0x0 0xffa50000 0x0 0x800>;
1262			#address-cells = <1>;
1263			#size-cells = <1>;
1264			#io-channel-cells = <1>;
1265			ranges = <0 0 0xffa50800 0x800>;
1266
1267			ams_ps: ams-ps@0 {
1268				compatible = "xlnx,zynqmp-ams-ps";
1269				status = "disabled";
1270				reg = <0x0 0x400>;
1271			};
1272
1273			ams_pl: ams-pl@400 {
1274				compatible = "xlnx,zynqmp-ams-pl";
1275				status = "disabled";
1276				reg = <0x400 0x400>;
1277			};
1278		};
1279
1280		zynqmp_dpdma: dma-controller@fd4c0000 {
1281			compatible = "xlnx,zynqmp-dpdma";
1282			status = "disabled";
1283			reg = <0x0 0xfd4c0000 0x0 0x1000>;
1284			interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1285			interrupt-parent = <&gic>;
1286			clock-names = "axi_clk";
1287			power-domains = <&zynqmp_firmware PD_DP>;
1288			/* iommus = <&smmu 0xce4>; */
1289			#dma-cells = <1>;
1290		};
1291
1292		zynqmp_dpsub: display@fd4a0000 {
1293			bootph-all;
1294			compatible = "xlnx,zynqmp-dpsub-1.7";
1295			status = "disabled";
1296			reg = <0x0 0xfd4a0000 0x0 0x1000>,
1297			      <0x0 0xfd4aa000 0x0 0x1000>,
1298			      <0x0 0xfd4ab000 0x0 0x1000>,
1299			      <0x0 0xfd4ac000 0x0 0x1000>;
1300			reg-names = "dp", "blend", "av_buf", "aud";
1301			interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
1302			interrupt-parent = <&gic>;
1303			/* iommus = <&smmu 0xce3>; */
1304			clock-names = "dp_apb_clk", "dp_aud_clk",
1305				      "dp_vtc_pixel_clk_in";
1306			power-domains = <&zynqmp_firmware PD_DP>;
1307			resets = <&zynqmp_reset ZYNQMP_RESET_DP>;
1308			dma-names = "vid0", "vid1", "vid2", "gfx0",
1309				    "aud0", "aud1";
1310			dmas = <&zynqmp_dpdma ZYNQMP_DPDMA_VIDEO0>,
1311			       <&zynqmp_dpdma ZYNQMP_DPDMA_VIDEO1>,
1312			       <&zynqmp_dpdma ZYNQMP_DPDMA_VIDEO2>,
1313			       <&zynqmp_dpdma ZYNQMP_DPDMA_GRAPHICS>,
1314			       <&zynqmp_dpdma ZYNQMP_DPDMA_AUDIO0>,
1315			       <&zynqmp_dpdma ZYNQMP_DPDMA_AUDIO1>;
1316
1317			ports {
1318				#address-cells = <1>;
1319				#size-cells = <0>;
1320
1321				live_video: port@0 {
1322					reg = <0>;
1323				};
1324				live_gfx: port@1 {
1325					reg = <1>;
1326				};
1327				live_audio: port@2 {
1328					reg = <2>;
1329				};
1330				out_video: port@3 {
1331					reg = <3>;
1332				};
1333				out_audio: port@4 {
1334					reg = <4>;
1335				};
1336				out_dp: port@5 {
1337					reg = <5>;
1338				};
1339			};
1340		};
1341	};
1342};
1343