zynqmp.dtsi 24.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
/*
 * dts file for Xilinx ZynqMP
 *
 * (C) Copyright 2014 - 2015, Xilinx, Inc.
 *
 * Michal Simek <michal.simek@xilinx.com>
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */
/ {
	compatible = "xlnx,zynqmp";
	#address-cells = <2>;
13
	#size-cells = <2>;
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			compatible = "arm,cortex-a53", "arm,armv8";
			device_type = "cpu";
			enable-method = "psci";
			reg = <0x0>;
		};

		cpu@1 {
			compatible = "arm,cortex-a53", "arm,armv8";
			device_type = "cpu";
			enable-method = "psci";
			reg = <0x1>;
		};

		cpu@2 {
			compatible = "arm,cortex-a53", "arm,armv8";
			device_type = "cpu";
			enable-method = "psci";
			reg = <0x2>;
		};

		cpu@3 {
			compatible = "arm,cortex-a53", "arm,armv8";
			device_type = "cpu";
			enable-method = "psci";
			reg = <0x3>;
		};
	};

M
Michal Simek 已提交
48 49 50 51 52 53
	dcc: dcc {
		compatible = "arm,dcc";
		status = "disabled";
		u-boot,dm-pre-reloc;
	};

54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
	power-domains {
		compatible = "xlnx,zynqmp-genpd";

		pd_usb0: pd-usb0 {
			#power-domain-cells = <0x0>;
			pd-id = <0x16>;
		};

		pd_usb1: pd-usb1 {
			#power-domain-cells = <0x0>;
			pd-id = <0x17>;
		};

		pd_sata: pd-sata {
			#power-domain-cells = <0x0>;
			pd-id = <0x1c>;
		};

		pd_spi0: pd-spi0 {
			#power-domain-cells = <0x0>;
			pd-id = <0x23>;
		};

		pd_spi1: pd-spi1 {
			#power-domain-cells = <0x0>;
			pd-id = <0x24>;
		};

		pd_uart0: pd-uart0 {
			#power-domain-cells = <0x0>;
			pd-id = <0x21>;
		};

		pd_uart1: pd-uart1 {
			#power-domain-cells = <0x0>;
			pd-id = <0x22>;
		};

		pd_eth0: pd-eth0 {
			#power-domain-cells = <0x0>;
			pd-id = <0x1d>;
		};

		pd_eth1: pd-eth1 {
			#power-domain-cells = <0x0>;
			pd-id = <0x1e>;
		};

		pd_eth2: pd-eth2 {
			#power-domain-cells = <0x0>;
			pd-id = <0x1f>;
		};

		pd_eth3: pd-eth3 {
			#power-domain-cells = <0x0>;
			pd-id = <0x20>;
		};

		pd_i2c0: pd-i2c0 {
			#power-domain-cells = <0x0>;
			pd-id = <0x25>;
		};

		pd_i2c1: pd-i2c1 {
			#power-domain-cells = <0x0>;
			pd-id = <0x26>;
		};

		pd_dp: pd-dp {
			/* fixme: what to attach to */
			#power-domain-cells = <0x0>;
			pd-id = <0x29>;
		};

		pd_gdma: pd-gdma {
			#power-domain-cells = <0x0>;
			pd-id = <0x2a>;
		};

		pd_adma: pd-adma {
			#power-domain-cells = <0x0>;
			pd-id = <0x2b>;
		};

		pd_ttc0: pd-ttc0 {
			#power-domain-cells = <0x0>;
			pd-id = <0x18>;
		};

		pd_ttc1: pd-ttc1 {
			#power-domain-cells = <0x0>;
			pd-id = <0x19>;
		};

		pd_ttc2: pd-ttc2 {
			#power-domain-cells = <0x0>;
			pd-id = <0x1a>;
		};

		pd_ttc3: pd-ttc3 {
			#power-domain-cells = <0x0>;
			pd-id = <0x1b>;
		};

		pd_sd0: pd-sd0 {
			#power-domain-cells = <0x0>;
			pd-id = <0x27>;
		};

		pd_sd1: pd-sd1 {
			#power-domain-cells = <0x0>;
			pd-id = <0x28>;
		};

		pd_nand: pd-nand {
			#power-domain-cells = <0x0>;
			pd-id = <0x2c>;
		};

		pd_qspi: pd-qspi {
			#power-domain-cells = <0x0>;
			pd-id = <0x2d>;
		};

		pd_gpio: pd-gpio {
			#power-domain-cells = <0x0>;
			pd-id = <0x2e>;
		};

		pd_can0: pd-can0 {
			#power-domain-cells = <0x0>;
			pd-id = <0x2f>;
		};

		pd_can1: pd-can1 {
			#power-domain-cells = <0x0>;
			pd-id = <0x30>;
		};
192 193 194 195 196 197 198 199

		pd_pcie: pd-pcie {
			#power-domain-cells = <0x0>;
			pd-id = <0x3b>;
		};

		pd_gpu: pd-gpu {
			#power-domain-cells = <0x0>;
200
			pd-id = <0x3a 0x14 0x15>;
201
		};
202 203
	};

204 205
	pmu {
		compatible = "arm,armv8-pmuv3";
206
		interrupt-parent = <&gic>;
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
		interrupts = <0 143 4>,
			     <0 144 4>,
			     <0 145 4>,
			     <0 146 4>;
	};

	psci {
		compatible = "arm,psci-0.2";
		method = "smc";
	};

	firmware {
		compatible = "xlnx,zynqmp-pm";
		method = "smc";
	};

	timer {
		compatible = "arm,armv8-timer";
		interrupt-parent = <&gic>;
		interrupts = <1 13 0xf01>,
			     <1 14 0xf01>,
			     <1 11 0xf01>,
			     <1 10 0xf01>;
	};

232 233 234 235
	edac {
		compatible = "arm,cortex-a53-edac";
	};

236 237 238 239
	pcap {
		compatible = "xlnx,zynqmp-pcap-fpga";
	};

240
	amba_apu: amba_apu@0 {
241 242 243
		compatible = "simple-bus";
		#address-cells = <2>;
		#size-cells = <1>;
244
		ranges = <0 0 0 0 0xffffffff>;
245 246 247 248 249

		gic: interrupt-controller@f9010000 {
			compatible = "arm,gic-400", "arm,cortex-a15-gic";
			#interrupt-cells = <3>;
			reg = <0x0 0xf9010000 0x10000>,
250
			      <0x0 0xf9020000 0x20000>,
251
			      <0x0 0xf9040000 0x20000>,
252
			      <0x0 0xf9060000 0x20000>;
253 254 255 256 257 258
			interrupt-controller;
			interrupt-parent = <&gic>;
			interrupts = <1 9 0xf04>;
		};
	};

259
	amba: amba {
260
		compatible = "simple-bus";
261
		u-boot,dm-pre-reloc;
262
		#address-cells = <2>;
263 264
		#size-cells = <2>;
		ranges;
265 266 267 268 269

		can0: can@ff060000 {
			compatible = "xlnx,zynq-can-1.0";
			status = "disabled";
			clock-names = "can_clk", "pclk";
270
			reg = <0x0 0xff060000 0x0 0x1000>;
271 272 273 274
			interrupts = <0 23 4>;
			interrupt-parent = <&gic>;
			tx-fifo-depth = <0x40>;
			rx-fifo-depth = <0x40>;
275
			power-domains = <&pd_can0>;
276 277 278 279 280 281
		};

		can1: can@ff070000 {
			compatible = "xlnx,zynq-can-1.0";
			status = "disabled";
			clock-names = "can_clk", "pclk";
282
			reg = <0x0 0xff070000 0x0 0x1000>;
283 284 285 286
			interrupts = <0 24 4>;
			interrupt-parent = <&gic>;
			tx-fifo-depth = <0x40>;
			rx-fifo-depth = <0x40>;
287
			power-domains = <&pd_can1>;
288 289
		};

M
Michal Simek 已提交
290 291
		cci: cci@fd6e0000 {
			compatible = "arm,cci-400";
292
			reg = <0x0 0xfd6e0000 0x0 0x9000>;
M
Michal Simek 已提交
293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308
			ranges = <0x0 0x0 0xfd6e0000 0x10000>;
			#address-cells = <1>;
			#size-cells = <1>;

			pmu@9000 {
				compatible = "arm,cci-400-pmu,r1";
				reg = <0x9000 0x5000>;
				interrupt-parent = <&gic>;
				interrupts = <0 123 4>,
					     <0 123 4>,
					     <0 123 4>,
					     <0 123 4>,
					     <0 123 4>;
			};
		};

309 310 311 312
		/* GDMA */
		fpd_dma_chan1: dma@fd500000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
313
			reg = <0x0 0xfd500000 0x0 0x1000>;
314 315
			interrupt-parent = <&gic>;
			interrupts = <0 124 4>;
V
VNSL Durga 已提交
316
			clock-names = "clk_main", "clk_apb";
317
			xlnx,bus-width = <128>;
M
Michal Simek 已提交
318 319
			#stream-id-cells = <1>;
			iommus = <&smmu 0x14e8>;
320
			power-domains = <&pd_gdma>;
321 322 323 324 325
		};

		fpd_dma_chan2: dma@fd510000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
326
			reg = <0x0 0xfd510000 0x0 0x1000>;
327 328
			interrupt-parent = <&gic>;
			interrupts = <0 125 4>;
V
VNSL Durga 已提交
329
			clock-names = "clk_main", "clk_apb";
330
			xlnx,bus-width = <128>;
M
Michal Simek 已提交
331 332
			#stream-id-cells = <1>;
			iommus = <&smmu 0x14e9>;
333
			power-domains = <&pd_gdma>;
334 335 336 337 338
		};

		fpd_dma_chan3: dma@fd520000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
339
			reg = <0x0 0xfd520000 0x0 0x1000>;
340 341
			interrupt-parent = <&gic>;
			interrupts = <0 126 4>;
V
VNSL Durga 已提交
342
			clock-names = "clk_main", "clk_apb";
343
			xlnx,bus-width = <128>;
M
Michal Simek 已提交
344 345
			#stream-id-cells = <1>;
			iommus = <&smmu 0x14ea>;
346
			power-domains = <&pd_gdma>;
347 348 349 350 351
		};

		fpd_dma_chan4: dma@fd530000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
352
			reg = <0x0 0xfd530000 0x0 0x1000>;
353 354
			interrupt-parent = <&gic>;
			interrupts = <0 127 4>;
V
VNSL Durga 已提交
355
			clock-names = "clk_main", "clk_apb";
356
			xlnx,bus-width = <128>;
M
Michal Simek 已提交
357 358
			#stream-id-cells = <1>;
			iommus = <&smmu 0x14eb>;
359
			power-domains = <&pd_gdma>;
360 361 362 363 364
		};

		fpd_dma_chan5: dma@fd540000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
365
			reg = <0x0 0xfd540000 0x0 0x1000>;
366 367
			interrupt-parent = <&gic>;
			interrupts = <0 128 4>;
V
VNSL Durga 已提交
368
			clock-names = "clk_main", "clk_apb";
369
			xlnx,bus-width = <128>;
M
Michal Simek 已提交
370 371
			#stream-id-cells = <1>;
			iommus = <&smmu 0x14ec>;
372
			power-domains = <&pd_gdma>;
373 374 375 376 377
		};

		fpd_dma_chan6: dma@fd550000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
378
			reg = <0x0 0xfd550000 0x0 0x1000>;
379 380
			interrupt-parent = <&gic>;
			interrupts = <0 129 4>;
V
VNSL Durga 已提交
381
			clock-names = "clk_main", "clk_apb";
382
			xlnx,bus-width = <128>;
M
Michal Simek 已提交
383 384
			#stream-id-cells = <1>;
			iommus = <&smmu 0x14ed>;
385
			power-domains = <&pd_gdma>;
386 387 388 389 390
		};

		fpd_dma_chan7: dma@fd560000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
391
			reg = <0x0 0xfd560000 0x0 0x1000>;
392 393
			interrupt-parent = <&gic>;
			interrupts = <0 130 4>;
V
VNSL Durga 已提交
394
			clock-names = "clk_main", "clk_apb";
395
			xlnx,bus-width = <128>;
M
Michal Simek 已提交
396 397
			#stream-id-cells = <1>;
			iommus = <&smmu 0x14ee>;
398
			power-domains = <&pd_gdma>;
399 400 401 402 403
		};

		fpd_dma_chan8: dma@fd570000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
404
			reg = <0x0 0xfd570000 0x0 0x1000>;
405 406
			interrupt-parent = <&gic>;
			interrupts = <0 131 4>;
V
VNSL Durga 已提交
407
			clock-names = "clk_main", "clk_apb";
408
			xlnx,bus-width = <128>;
M
Michal Simek 已提交
409 410
			#stream-id-cells = <1>;
			iommus = <&smmu 0x14ef>;
411
			power-domains = <&pd_gdma>;
412 413 414 415 416
		};

		gpu: gpu@fd4b0000 {
			status = "disabled";
			compatible = "arm,mali-400", "arm,mali-utgard";
417
			reg = <0x0 0xfd4b0000 0x0 0x30000>;
418 419 420
			interrupt-parent = <&gic>;
			interrupts = <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>;
			interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1";
421
			power-domains = <&pd_gpu>;
422 423
		};

424 425 426 427
		/* LPDDMA default allows only secured access. inorder to enable
		 * These dma channels, Users should ensure that these dma
		 * Channels are allowed for non secure access.
		 */
428 429 430
		lpd_dma_chan1: dma@ffa80000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
431
			reg = <0x0 0xffa80000 0x0 0x1000>;
432 433 434
			interrupt-parent = <&gic>;
			interrupts = <0 77 4>;
			xlnx,bus-width = <64>;
M
Michal Simek 已提交
435 436
			#stream-id-cells = <1>;
			iommus = <&smmu 0x868>;
437
			power-domains = <&pd_adma>;
438 439 440 441 442
		};

		lpd_dma_chan2: dma@ffa90000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
443
			reg = <0x0 0xffa90000 0x0 0x1000>;
444 445 446
			interrupt-parent = <&gic>;
			interrupts = <0 78 4>;
			xlnx,bus-width = <64>;
M
Michal Simek 已提交
447 448
			#stream-id-cells = <1>;
			iommus = <&smmu 0x869>;
449
			power-domains = <&pd_adma>;
450 451 452 453 454
		};

		lpd_dma_chan3: dma@ffaa0000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
455
			reg = <0x0 0xffaa0000 0x0 0x1000>;
456 457 458
			interrupt-parent = <&gic>;
			interrupts = <0 79 4>;
			xlnx,bus-width = <64>;
M
Michal Simek 已提交
459 460
			#stream-id-cells = <1>;
			iommus = <&smmu 0x86a>;
461
			power-domains = <&pd_adma>;
462 463 464 465 466
		};

		lpd_dma_chan4: dma@ffab0000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
467
			reg = <0x0 0xffab0000 0x0 0x1000>;
468 469 470
			interrupt-parent = <&gic>;
			interrupts = <0 80 4>;
			xlnx,bus-width = <64>;
M
Michal Simek 已提交
471 472
			#stream-id-cells = <1>;
			iommus = <&smmu 0x86b>;
473
			power-domains = <&pd_adma>;
474 475 476 477 478
		};

		lpd_dma_chan5: dma@ffac0000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
479
			reg = <0x0 0xffac0000 0x0 0x1000>;
480 481 482
			interrupt-parent = <&gic>;
			interrupts = <0 81 4>;
			xlnx,bus-width = <64>;
M
Michal Simek 已提交
483 484
			#stream-id-cells = <1>;
			iommus = <&smmu 0x86c>;
485
			power-domains = <&pd_adma>;
486 487 488 489 490
		};

		lpd_dma_chan6: dma@ffad0000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
491
			reg = <0x0 0xffad0000 0x0 0x1000>;
492 493 494
			interrupt-parent = <&gic>;
			interrupts = <0 82 4>;
			xlnx,bus-width = <64>;
M
Michal Simek 已提交
495 496
			#stream-id-cells = <1>;
			iommus = <&smmu 0x86d>;
497
			power-domains = <&pd_adma>;
498 499 500 501 502
		};

		lpd_dma_chan7: dma@ffae0000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
503
			reg = <0x0 0xffae0000 0x0 0x1000>;
504 505 506
			interrupt-parent = <&gic>;
			interrupts = <0 83 4>;
			xlnx,bus-width = <64>;
M
Michal Simek 已提交
507 508
			#stream-id-cells = <1>;
			iommus = <&smmu 0x86e>;
509
			power-domains = <&pd_adma>;
510 511 512 513 514
		};

		lpd_dma_chan8: dma@ffaf0000 {
			status = "disabled";
			compatible = "xlnx,zynqmp-dma-1.0";
515
			reg = <0x0 0xffaf0000 0x0 0x1000>;
516 517 518
			interrupt-parent = <&gic>;
			interrupts = <0 84 4>;
			xlnx,bus-width = <64>;
M
Michal Simek 已提交
519 520
			#stream-id-cells = <1>;
			iommus = <&smmu 0x86f>;
521
			power-domains = <&pd_adma>;
522 523
		};

524 525
		mc: memory-controller@fd070000 {
			compatible = "xlnx,zynqmp-ddrc-2.40a";
526
			reg = <0x0 0xfd070000 0x0 0x30000>;
527 528 529 530
			interrupt-parent = <&gic>;
			interrupts = <0 112 4>;
		};

531 532 533
		nand0: nand@ff100000 {
			compatible = "arasan,nfc-v3p10";
			status = "disabled";
534
			reg = <0x0 0xff100000 0x0 0x1000>;
535 536 537 538 539
			clock-names = "clk_sys", "clk_flash";
			interrupt-parent = <&gic>;
			interrupts = <0 14 4>;
			#address-cells = <2>;
			#size-cells = <1>;
M
Michal Simek 已提交
540 541
			#stream-id-cells = <1>;
			iommus = <&smmu 0x872>;
542
			power-domains = <&pd_nand>;
543 544 545
		};

		gem0: ethernet@ff0b0000 {
546
			compatible = "cdns,zynqmp-gem";
547 548 549
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 57 4>, <0 57 4>;
550
			reg = <0x0 0xff0b0000 0x0 0x1000>;
551 552 553
			clock-names = "pclk", "hclk", "tx_clk";
			#address-cells = <1>;
			#size-cells = <0>;
554
			#stream-id-cells = <1>;
M
Michal Simek 已提交
555
			iommus = <&smmu 0x874>;
556
			power-domains = <&pd_eth0>;
557 558 559
		};

		gem1: ethernet@ff0c0000 {
560
			compatible = "cdns,zynqmp-gem";
561 562 563
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 59 4>, <0 59 4>;
564
			reg = <0x0 0xff0c0000 0x0 0x1000>;
565 566 567
			clock-names = "pclk", "hclk", "tx_clk";
			#address-cells = <1>;
			#size-cells = <0>;
568
			#stream-id-cells = <1>;
M
Michal Simek 已提交
569
			iommus = <&smmu 0x875>;
570
			power-domains = <&pd_eth1>;
571 572 573
		};

		gem2: ethernet@ff0d0000 {
574
			compatible = "cdns,zynqmp-gem";
575 576 577
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 61 4>, <0 61 4>;
578
			reg = <0x0 0xff0d0000 0x0 0x1000>;
579 580 581
			clock-names = "pclk", "hclk", "tx_clk";
			#address-cells = <1>;
			#size-cells = <0>;
582
			#stream-id-cells = <1>;
M
Michal Simek 已提交
583
			iommus = <&smmu 0x876>;
584
			power-domains = <&pd_eth2>;
585 586 587
		};

		gem3: ethernet@ff0e0000 {
588
			compatible = "cdns,zynqmp-gem";
589 590 591
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 63 4>, <0 63 4>;
592
			reg = <0x0 0xff0e0000 0x0 0x1000>;
593 594 595
			clock-names = "pclk", "hclk", "tx_clk";
			#address-cells = <1>;
			#size-cells = <0>;
596
			#stream-id-cells = <1>;
M
Michal Simek 已提交
597
			iommus = <&smmu 0x877>;
598
			power-domains = <&pd_eth3>;
599 600 601 602 603 604 605 606
		};

		gpio: gpio@ff0a0000 {
			compatible = "xlnx,zynqmp-gpio-1.0";
			status = "disabled";
			#gpio-cells = <0x2>;
			interrupt-parent = <&gic>;
			interrupts = <0 16 4>;
607 608
			interrupt-controller;
			#interrupt-cells = <2>;
609
			reg = <0x0 0xff0a0000 0x0 0x1000>;
610
			power-domains = <&pd_gpio>;
611 612 613 614 615 616 617
		};

		i2c0: i2c@ff020000 {
			compatible = "cdns,i2c-r1p10";
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 17 4>;
618
			reg = <0x0 0xff020000 0x0 0x1000>;
619 620
			#address-cells = <1>;
			#size-cells = <0>;
621
			power-domains = <&pd_i2c0>;
622 623 624 625 626 627 628
		};

		i2c1: i2c@ff030000 {
			compatible = "cdns,i2c-r1p10";
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 18 4>;
629
			reg = <0x0 0xff030000 0x0 0x1000>;
630 631
			#address-cells = <1>;
			#size-cells = <0>;
632
			power-domains = <&pd_i2c1>;
633 634
		};

635 636
		ocm: memory-controller@ff960000 {
			compatible = "xlnx,zynqmp-ocmc-1.0";
637
			reg = <0x0 0xff960000 0x0 0x1000>;
638 639 640 641
			interrupt-parent = <&gic>;
			interrupts = <0 10 4>;
		};

642 643 644 645 646 647
		pcie: pcie@fd0e0000 {
			compatible = "xlnx,nwl-pcie-2.11";
			status = "disabled";
			#address-cells = <3>;
			#size-cells = <2>;
			#interrupt-cells = <1>;
648
			msi-controller;
649 650
			device_type = "pci";
			interrupt-parent = <&gic>;
651
			interrupts = <0 118 4>,
652
				     <0 117 4>,
653 654 655
				     <0 116 4>,
				     <0 115 4>,	/* MSI_1 [63...32] */
				     <0 114 4>;	/* MSI_0 [31...0] */
656 657
			interrupt-names = "misc","dummy","intx", "msi1", "msi0";
			msi-parent = <&pcie>;
658 659 660
			reg = <0x0 0xfd0e0000 0x0 0x1000>,
			      <0x0 0xfd480000 0x0 0x1000>,
			      <0x0 0xe0000000 0x0 0x1000000>;
661 662
			reg-names = "breg", "pcireg", "cfg";
			ranges = <0x02000000 0x00000000 0xe1000000 0x00000000 0xe1000000 0 0x0f000000>;
663 664 665 666 667
			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
			interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc 0x1>,
					<0x0 0x0 0x0 0x2 &pcie_intc 0x2>,
					<0x0 0x0 0x0 0x3 &pcie_intc 0x3>,
					<0x0 0x0 0x0 0x4 &pcie_intc 0x4>;
668
			power-domains = <&pd_pcie>;
669 670 671 672 673
			pcie_intc: legacy-interrupt-controller {
				interrupt-controller;
				#address-cells = <0>;
				#interrupt-cells = <1>;
			};
674 675 676 677 678 679 680 681 682
		};

		qspi: spi@ff0f0000 {
			compatible = "xlnx,zynqmp-qspi-1.0";
			status = "disabled";
			clock-names = "ref_clk", "pclk";
			interrupts = <0 15 4>;
			interrupt-parent = <&gic>;
			num-cs = <1>;
683 684
			reg = <0x0 0xff0f0000 0x0 0x1000>,
			      <0x0 0xc0000000 0x0 0x8000000>;
685 686
			#address-cells = <1>;
			#size-cells = <0>;
M
Michal Simek 已提交
687 688
			#stream-id-cells = <1>;
			iommus = <&smmu 0x873>;
689
			power-domains = <&pd_qspi>;
690 691 692 693 694
		};

		rtc: rtc@ffa60000 {
			compatible = "xlnx,zynqmp-rtc";
			status = "disabled";
695
			reg = <0x0 0xffa60000 0x0 0x100>;
696 697 698 699 700
			interrupt-parent = <&gic>;
			interrupts = <0 26 4>, <0 27 4>;
			interrupt-names = "alarm", "sec";
		};

701 702 703
		serdes: zynqmp_phy@fd400000 {
			compatible = "xlnx,zynqmp-psgtr";
			status = "disabled";
704 705 706 707
			reg = <0x0 0xfd400000 0x0 0x40000>,
			      <0x0 0xfd3d0000 0x0 0x1000>,
			      <0x0 0xfd1a0000 0x0 0x1000>,
			      <0x0 0xff5e0000 0x0 0x1000>;
708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723
			reg-names = "serdes", "siou", "fpd", "lpd";
			xlnx,tx_termination_fix;
			lane0: lane0 {
				#phy-cells = <4>;
			};
			lane1: lane1 {
				#phy-cells = <4>;
			};
			lane2: lane2 {
				#phy-cells = <4>;
			};
			lane3: lane3 {
				#phy-cells = <4>;
			};
		};

724 725 726
		sata: ahci@fd0c0000 {
			compatible = "ceva,ahci-1v84";
			status = "disabled";
727
			reg = <0x0 0xfd0c0000 0x0 0x2000>;
728 729
			interrupt-parent = <&gic>;
			interrupts = <0 133 4>;
730
			power-domains = <&pd_sata>;
731 732 733
		};

		sdhci0: sdhci@ff160000 {
734
			u-boot,dm-pre-reloc;
735
			compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
736 737 738
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 48 4>;
739
			reg = <0x0 0xff160000 0x0 0x1000>;
740
			clock-names = "clk_xin", "clk_ahb";
741
			xlnx,device_id = <0>;
M
Michal Simek 已提交
742 743
			#stream-id-cells = <1>;
			iommus = <&smmu 0x870>;
744
			power-domains = <&pd_sd0>;
745 746 747
		};

		sdhci1: sdhci@ff170000 {
748
			u-boot,dm-pre-reloc;
749
			compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
750 751 752
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 49 4>;
753
			reg = <0x0 0xff170000 0x0 0x1000>;
754
			clock-names = "clk_xin", "clk_ahb";
755
			xlnx,device_id = <1>;
M
Michal Simek 已提交
756 757
			#stream-id-cells = <1>;
			iommus = <&smmu 0x871>;
758
			power-domains = <&pd_sd1>;
759 760 761 762
		};

		smmu: smmu@fd800000 {
			compatible = "arm,mmu-500";
763
			reg = <0x0 0xfd800000 0x0 0x20000>;
M
Michal Simek 已提交
764
			#iommu-cells = <1>;
765 766
			#global-interrupts = <1>;
			interrupt-parent = <&gic>;
767 768 769 770 771
			interrupts = <0 155 4>,
				<0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
				<0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
				<0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
				<0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>;
772 773 774
			mmu-masters = < &gem0 0x874
					&gem1 0x875
					&gem2 0x876
M
Michal Simek 已提交
775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797
					&gem3 0x877
					&usb0 0x860
					&usb1 0x861
					&qspi 0x873
					&lpd_dma_chan1 0x868
					&lpd_dma_chan2 0x869
					&lpd_dma_chan3 0x86a
					&lpd_dma_chan4 0x86b
					&lpd_dma_chan5 0x86c
					&lpd_dma_chan6 0x86d
					&lpd_dma_chan7 0x86e
					&lpd_dma_chan8 0x86f
					&fpd_dma_chan1 0x14e8
					&fpd_dma_chan2 0x14e9
					&fpd_dma_chan3 0x14ea
					&fpd_dma_chan4 0x14eb
					&fpd_dma_chan5 0x14ec
					&fpd_dma_chan6 0x14ed
					&fpd_dma_chan7 0x14ee
					&fpd_dma_chan8 0x14ef
					&sdhci0 0x870
					&sdhci1 0x871
					&nand0 0x872>;
798 799 800 801 802 803 804
		};

		spi0: spi@ff040000 {
			compatible = "cdns,spi-r1p6";
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 19 4>;
805
			reg = <0x0 0xff040000 0x0 0x1000>;
806 807 808
			clock-names = "ref_clk", "pclk";
			#address-cells = <1>;
			#size-cells = <0>;
809
			power-domains = <&pd_spi0>;
810 811 812 813 814 815 816
		};

		spi1: spi@ff050000 {
			compatible = "cdns,spi-r1p6";
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 20 4>;
817
			reg = <0x0 0xff050000 0x0 0x1000>;
818 819 820
			clock-names = "ref_clk", "pclk";
			#address-cells = <1>;
			#size-cells = <0>;
821
			power-domains = <&pd_spi1>;
822 823 824 825 826 827 828
		};

		ttc0: timer@ff110000 {
			compatible = "cdns,ttc";
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 36 4>, <0 37 4>, <0 38 4>;
829
			reg = <0x0 0xff110000 0x0 0x1000>;
830
			timer-width = <32>;
831
			power-domains = <&pd_ttc0>;
832 833 834 835 836 837 838
		};

		ttc1: timer@ff120000 {
			compatible = "cdns,ttc";
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 39 4>, <0 40 4>, <0 41 4>;
839
			reg = <0x0 0xff120000 0x0 0x1000>;
840
			timer-width = <32>;
841
			power-domains = <&pd_ttc1>;
842 843 844 845 846 847 848
		};

		ttc2: timer@ff130000 {
			compatible = "cdns,ttc";
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 42 4>, <0 43 4>, <0 44 4>;
849
			reg = <0x0 0xff130000 0x0 0x1000>;
850
			timer-width = <32>;
851
			power-domains = <&pd_ttc2>;
852 853 854 855 856 857 858
		};

		ttc3: timer@ff140000 {
			compatible = "cdns,ttc";
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 45 4>, <0 46 4>, <0 47 4>;
859
			reg = <0x0 0xff140000 0x0 0x1000>;
860
			timer-width = <32>;
861
			power-domains = <&pd_ttc3>;
862 863 864
		};

		uart0: serial@ff000000 {
865
			u-boot,dm-pre-reloc;
866
			compatible = "cdns,uart-r1p12", "xlnx,xuartps";
867 868 869
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 21 4>;
870
			reg = <0x0 0xff000000 0x0 0x1000>;
871
			clock-names = "uart_clk", "pclk";
872
			power-domains = <&pd_uart0>;
873 874 875
		};

		uart1: serial@ff010000 {
876
			u-boot,dm-pre-reloc;
877
			compatible = "cdns,uart-r1p12", "xlnx,xuartps";
878 879 880
			status = "disabled";
			interrupt-parent = <&gic>;
			interrupts = <0 22 4>;
881
			reg = <0x0 0xff010000 0x0 0x1000>;
882
			clock-names = "uart_clk", "pclk";
883
			power-domains = <&pd_uart1>;
884 885
		};

886
		usb0: usb0 {
887
			#address-cells = <2>;
888
			#size-cells = <2>;
889
			status = "disabled";
890 891 892
			compatible = "xlnx,zynqmp-dwc3";
			clock-names = "bus_clk", "ref_clk";
			clocks = <&clk125>, <&clk125>;
M
Michal Simek 已提交
893 894
			#stream-id-cells = <1>;
			iommus = <&smmu 0x860>;
895
			power-domains = <&pd_usb0>;
896 897 898 899 900
			ranges;

			dwc3_0: dwc3@fe200000 {
				compatible = "snps,dwc3";
				status = "disabled";
901
				reg = <0x0 0xfe200000 0x0 0x40000>;
902 903 904 905 906
				interrupt-parent = <&gic>;
				interrupts = <0 65 4>;
				/* snps,quirk-frame-length-adjustment = <0x20>; */
				snps,refclk_fladj;
			};
907 908
		};

909
		usb1: usb1 {
910
			#address-cells = <2>;
911
			#size-cells = <2>;
912
			status = "disabled";
913 914 915
			compatible = "xlnx,zynqmp-dwc3";
			clock-names = "bus_clk", "ref_clk";
			clocks = <&clk125>, <&clk125>;
M
Michal Simek 已提交
916 917
			#stream-id-cells = <1>;
			iommus = <&smmu 0x861>;
918
			power-domains = <&pd_usb1>;
919 920 921 922 923
			ranges;

			dwc3_1: dwc3@fe300000 {
				compatible = "snps,dwc3";
				status = "disabled";
924
				reg = <0x0 0xfe300000 0x0 0x40000>;
925 926 927 928 929
				interrupt-parent = <&gic>;
				interrupts = <0 70 4>;
				/* snps,quirk-frame-length-adjustment = <0x20>; */
				snps,refclk_fladj;
			};
930 931 932 933 934 935
		};

		watchdog0: watchdog@fd4d0000 {
			compatible = "cdns,wdt-r1p2";
			status = "disabled";
			interrupt-parent = <&gic>;
936
			interrupts = <0 113 1>;
937
			reg = <0x0 0xfd4d0000 0x0 0x1000>;
938 939 940 941 942 943 944 945 946 947 948 949 950
			timeout-sec = <10>;
		};

		xilinx_drm: xilinx_drm {
			compatible = "xlnx,drm";
			status = "disabled";
			xlnx,encoder-slave = <&xlnx_dp>;
			xlnx,connector-type = "DisplayPort";
			xlnx,dp-sub = <&xlnx_dp_sub>;
			planes {
				xlnx,pixel-format = "rgb565";
				plane0 {
					dmas = <&xlnx_dpdma 3>;
H
Hyun Kwon 已提交
951
					dma-names = "dma0";
952 953
				};
				plane1 {
H
Hyun Kwon 已提交
954 955 956 957
					dmas = <&xlnx_dpdma 0>,
					       <&xlnx_dpdma 1>,
					       <&xlnx_dpdma 2>;
					dma-names = "dma0", "dma1", "dma2";
958 959 960 961
				};
			};
		};

962
		xlnx_dp: dp@fd4a0000 {
963 964
			compatible = "xlnx,v-dp";
			status = "disabled";
965
			reg = <0x0 0xfd4a0000 0x0 0x1000>;
966 967 968 969 970 971 972 973 974 975 976 977
			interrupts = <0 119 4>;
			interrupt-parent = <&gic>;
			clock-names = "aclk", "aud_clk";
			xlnx,dp-version = "v1.2";
			xlnx,max-lanes = <2>;
			xlnx,max-link-rate = <540000>;
			xlnx,max-bpc = <16>;
			xlnx,enable-ycrcb;
			xlnx,colormetry = "rgb";
			xlnx,bpc = <8>;
			xlnx,audio-chan = <2>;
			xlnx,dp-sub = <&xlnx_dp_sub>;
978
			xlnx,max-pclock-frequency = <300000>;
979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007
		};

		xlnx_dp_snd_card: dp_snd_card {
			compatible = "xlnx,dp-snd-card";
			status = "disabled";
			xlnx,dp-snd-pcm = <&xlnx_dp_snd_pcm0>, <&xlnx_dp_snd_pcm1>;
			xlnx,dp-snd-codec = <&xlnx_dp_snd_codec0>;
		};

		xlnx_dp_snd_codec0: dp_snd_codec0 {
			compatible = "xlnx,dp-snd-codec";
			status = "disabled";
			clock-names = "aud_clk";
		};

		xlnx_dp_snd_pcm0: dp_snd_pcm0 {
			compatible = "xlnx,dp-snd-pcm";
			status = "disabled";
			dmas = <&xlnx_dpdma 4>;
			dma-names = "tx";
		};

		xlnx_dp_snd_pcm1: dp_snd_pcm1 {
			compatible = "xlnx,dp-snd-pcm";
			status = "disabled";
			dmas = <&xlnx_dpdma 5>;
			dma-names = "tx";
		};

1008
		xlnx_dp_sub: dp_sub@fd4aa000 {
1009 1010
			compatible = "xlnx,dp-sub";
			status = "disabled";
1011 1012 1013
			reg = <0x0 0xfd4aa000 0x0 0x1000>,
			      <0x0 0xfd4ab000 0x0 0x1000>,
			      <0x0 0xfd4ac000 0x0 0x1000>;
1014 1015
			reg-names = "blend", "av_buf", "aud";
			xlnx,output-fmt = "rgb";
1016 1017
			xlnx,vid-fmt = "yuyv";
			xlnx,gfx-fmt = "rgb565";
1018 1019 1020 1021 1022
		};

		xlnx_dpdma: dma@fd4c0000 {
			compatible = "xlnx,dpdma";
			status = "disabled";
1023
			reg = <0x0 0xfd4c0000 0x0 0x1000>;
1024 1025 1026 1027 1028
			interrupts = <0 122 4>;
			interrupt-parent = <&gic>;
			clock-names = "axi_clk";
			dma-channels = <6>;
			#dma-cells = <1>;
1029
			dma-video0channel {
1030 1031
				compatible = "xlnx,video0";
			};
1032
			dma-video1channel {
1033 1034
				compatible = "xlnx,video1";
			};
1035
			dma-video2channel {
1036 1037
				compatible = "xlnx,video2";
			};
1038
			dma-graphicschannel {
1039 1040
				compatible = "xlnx,graphics";
			};
1041
			dma-audio0channel {
1042 1043
				compatible = "xlnx,audio0";
			};
1044
			dma-audio1channel {
1045 1046 1047 1048 1049
				compatible = "xlnx,audio1";
			};
		};
	};
};