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