blob: a498ff9af6235a7acbd57e25b738b70d3dce4e24 [file] [log] [blame]
Michal Simek090a2d72018-03-27 10:36:39 +02001// SPDX-License-Identifier: GPL-2.0+
Michal Simek54b896f2015-10-30 15:39:18 +01002/*
3 * dts file for Xilinx ZynqMP
4 *
5 * (C) Copyright 2014 - 2015, Xilinx, Inc.
6 *
7 * Michal Simek <michal.simek@xilinx.com>
8 *
Michal Simek090a2d72018-03-27 10:36:39 +02009 * 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.
Michal Simek54b896f2015-10-30 15:39:18 +010013 */
Michal Simek0c365702016-12-16 13:12:48 +010014
Michal Simeka898c332019-10-14 15:55:53 +020015#include <dt-bindings/reset/xlnx-zynqmp-resets.h>
16
Michal Simek54b896f2015-10-30 15:39:18 +010017/ {
18 compatible = "xlnx,zynqmp";
19 #address-cells = <2>;
Michal Simekd171c752016-04-07 15:07:38 +020020 #size-cells = <2>;
Michal Simek54b896f2015-10-30 15:39:18 +010021
22 cpus {
23 #address-cells = <1>;
24 #size-cells = <0>;
25
Michal Simek28663032017-02-06 10:09:53 +010026 cpu0: cpu@0 {
Michal Simek54b896f2015-10-30 15:39:18 +010027 compatible = "arm,cortex-a53", "arm,armv8";
28 device_type = "cpu";
29 enable-method = "psci";
Shubhrajyoti Dattaec9c6c82017-02-13 15:58:55 +053030 operating-points-v2 = <&cpu_opp_table>;
Michal Simek54b896f2015-10-30 15:39:18 +010031 reg = <0x0>;
Stefan Krsmanovic8e16a6e2016-10-21 12:44:56 +020032 cpu-idle-states = <&CPU_SLEEP_0>;
Michal Simek54b896f2015-10-30 15:39:18 +010033 };
34
Michal Simek28663032017-02-06 10:09:53 +010035 cpu1: cpu@1 {
Michal Simek54b896f2015-10-30 15:39:18 +010036 compatible = "arm,cortex-a53", "arm,armv8";
37 device_type = "cpu";
38 enable-method = "psci";
39 reg = <0x1>;
Shubhrajyoti Dattaec9c6c82017-02-13 15:58:55 +053040 operating-points-v2 = <&cpu_opp_table>;
Stefan Krsmanovic8e16a6e2016-10-21 12:44:56 +020041 cpu-idle-states = <&CPU_SLEEP_0>;
Michal Simek54b896f2015-10-30 15:39:18 +010042 };
43
Michal Simek28663032017-02-06 10:09:53 +010044 cpu2: cpu@2 {
Michal Simek54b896f2015-10-30 15:39:18 +010045 compatible = "arm,cortex-a53", "arm,armv8";
46 device_type = "cpu";
47 enable-method = "psci";
48 reg = <0x2>;
Shubhrajyoti Dattaec9c6c82017-02-13 15:58:55 +053049 operating-points-v2 = <&cpu_opp_table>;
Stefan Krsmanovic8e16a6e2016-10-21 12:44:56 +020050 cpu-idle-states = <&CPU_SLEEP_0>;
Michal Simek54b896f2015-10-30 15:39:18 +010051 };
52
Michal Simek28663032017-02-06 10:09:53 +010053 cpu3: cpu@3 {
Michal Simek54b896f2015-10-30 15:39:18 +010054 compatible = "arm,cortex-a53", "arm,armv8";
55 device_type = "cpu";
56 enable-method = "psci";
57 reg = <0x3>;
Shubhrajyoti Dattaec9c6c82017-02-13 15:58:55 +053058 operating-points-v2 = <&cpu_opp_table>;
Stefan Krsmanovic8e16a6e2016-10-21 12:44:56 +020059 cpu-idle-states = <&CPU_SLEEP_0>;
60 };
61
62 idle-states {
Amit Kucheriaefa69732018-08-23 14:23:29 +053063 entry-method = "psci";
Stefan Krsmanovic8e16a6e2016-10-21 12:44:56 +020064
65 CPU_SLEEP_0: cpu-sleep-0 {
66 compatible = "arm,idle-state";
67 arm,psci-suspend-param = <0x40000000>;
68 local-timer-stop;
69 entry-latency-us = <300>;
70 exit-latency-us = <600>;
Jolly Shah5a5d5b32017-06-14 15:03:52 -070071 min-residency-us = <10000>;
Stefan Krsmanovic8e16a6e2016-10-21 12:44:56 +020072 };
Michal Simek54b896f2015-10-30 15:39:18 +010073 };
74 };
75
Shubhrajyoti Dattaec9c6c82017-02-13 15:58:55 +053076 cpu_opp_table: cpu_opp_table {
77 compatible = "operating-points-v2";
78 opp-shared;
79 opp00 {
80 opp-hz = /bits/ 64 <1199999988>;
81 opp-microvolt = <1000000>;
82 clock-latency-ns = <500000>;
83 };
84 opp01 {
85 opp-hz = /bits/ 64 <599999994>;
86 opp-microvolt = <1000000>;
87 clock-latency-ns = <500000>;
88 };
89 opp02 {
90 opp-hz = /bits/ 64 <399999996>;
91 opp-microvolt = <1000000>;
92 clock-latency-ns = <500000>;
93 };
94 opp03 {
95 opp-hz = /bits/ 64 <299999997>;
96 opp-microvolt = <1000000>;
97 clock-latency-ns = <500000>;
98 };
99 };
100
Ibai Erkiaga1c79e1e2019-09-27 11:36:58 +0100101 zynqmp_ipi {
102 u-boot,dm-pre-reloc;
103 compatible = "xlnx,zynqmp-ipi-mailbox";
104 interrupt-parent = <&gic>;
105 interrupts = <0 35 4>;
106 xlnx,ipi-id = <0>;
107 #address-cells = <2>;
108 #size-cells = <2>;
109 ranges;
110
111 ipi_mailbox_pmu1: mailbox@ff990400 {
112 u-boot,dm-pre-reloc;
113 reg = <0x0 0xff9905c0 0x0 0x20>,
114 <0x0 0xff9905e0 0x0 0x20>,
115 <0x0 0xff990e80 0x0 0x20>,
116 <0x0 0xff990ea0 0x0 0x20>;
Michal Simekcc855d02019-10-14 15:52:17 +0200117 reg-names = "local_request_region", "local_response_region",
Ibai Erkiaga1c79e1e2019-09-27 11:36:58 +0100118 "remote_request_region", "remote_response_region";
119 #mbox-cells = <1>;
120 xlnx,ipi-id = <4>;
121 };
122 };
123
Michal Simekde29d542016-09-09 08:46:39 +0200124 dcc: dcc {
125 compatible = "arm,dcc";
126 status = "disabled";
127 u-boot,dm-pre-reloc;
128 };
129
Michal Simek54b896f2015-10-30 15:39:18 +0100130 pmu {
131 compatible = "arm,armv8-pmuv3";
Michal Simek86e6eee2016-04-07 15:28:33 +0200132 interrupt-parent = <&gic>;
Michal Simek54b896f2015-10-30 15:39:18 +0100133 interrupts = <0 143 4>,
134 <0 144 4>,
135 <0 145 4>,
136 <0 146 4>;
137 };
138
139 psci {
140 compatible = "arm,psci-0.2";
141 method = "smc";
142 };
143
Ibai Erkiaga1c79e1e2019-09-27 11:36:58 +0100144 firmware {
Michal Simekebddf492019-10-14 15:42:03 +0200145 zynqmp_firmware: zynqmp-firmware {
Ibai Erkiaga1c79e1e2019-09-27 11:36:58 +0100146 compatible = "xlnx,zynqmp-firmware";
147 method = "smc";
148 #power-domain-cells = <0x1>;
149 u-boot,dm-pre-reloc;
150
151 zynqmp_power: zynqmp-power {
152 u-boot,dm-pre-reloc;
153 compatible = "xlnx,zynqmp-power";
154 interrupt-parent = <&gic>;
155 interrupts = <0 35 4>;
156 mboxes = <&ipi_mailbox_pmu1 0>, <&ipi_mailbox_pmu1 1>;
157 mbox-names = "tx", "rx";
158 };
Michal Simeka898c332019-10-14 15:55:53 +0200159
160 zynqmp_reset: reset-controller {
161 compatible = "xlnx,zynqmp-reset";
162 #reset-cells = <1>;
163 };
Ibai Erkiaga1c79e1e2019-09-27 11:36:58 +0100164 };
Michal Simek54b896f2015-10-30 15:39:18 +0100165 };
166
167 timer {
168 compatible = "arm,armv8-timer";
169 interrupt-parent = <&gic>;
Michal Simek2155a602017-02-09 14:45:12 +0100170 interrupts = <1 13 0xf08>,
171 <1 14 0xf08>,
172 <1 11 0xf08>,
173 <1 10 0xf08>;
Michal Simek54b896f2015-10-30 15:39:18 +0100174 };
175
Naga Sureshkumar Relli1931f212016-06-20 15:48:30 +0530176 edac {
177 compatible = "arm,cortex-a53-edac";
178 };
179
Nava kishore Mannea1763ba2017-05-22 12:05:17 +0530180 fpga_full: fpga-full {
181 compatible = "fpga-region";
182 fpga-mgr = <&pcap>;
183 #address-cells = <2>;
184 #size-cells = <2>;
185 };
186
Nava kishore Manne59dc8ce2017-01-17 16:57:24 +0530187 nvmem_firmware {
188 compatible = "xlnx,zynqmp-nvmem-fw";
189 #address-cells = <1>;
190 #size-cells = <1>;
191
192 soc_revision: soc_revision@0 {
193 reg = <0x0 0x4>;
194 };
195 };
196
Nava kishore Mannea1763ba2017-05-22 12:05:17 +0530197 pcap: pcap {
Nava kishore Manne90571702016-08-21 00:17:52 +0530198 compatible = "xlnx,zynqmp-pcap-fpga";
199 };
200
Anurag Kumar Vulisha767e9752017-02-06 21:40:34 +0530201 rst: reset-controller {
202 compatible = "xlnx,zynqmp-reset";
203 #reset-cells = <1>;
204 };
205
Michal Simek63e5dd52017-07-05 14:51:42 +0200206 xlnx_dp_snd_card: dp_snd_card {
207 compatible = "xlnx,dp-snd-card";
208 status = "disabled";
209 xlnx,dp-snd-pcm = <&xlnx_dp_snd_pcm0>, <&xlnx_dp_snd_pcm1>;
210 xlnx,dp-snd-codec = <&xlnx_dp_snd_codec0>;
211 };
212
213 xlnx_dp_snd_codec0: dp_snd_codec0 {
214 compatible = "xlnx,dp-snd-codec";
215 status = "disabled";
216 clock-names = "aud_clk";
217 };
218
219 xlnx_dp_snd_pcm0: dp_snd_pcm0 {
220 compatible = "xlnx,dp-snd-pcm";
221 status = "disabled";
222 dmas = <&xlnx_dpdma 4>;
223 dma-names = "tx";
224 };
225
226 xlnx_dp_snd_pcm1: dp_snd_pcm1 {
227 compatible = "xlnx,dp-snd-pcm";
228 status = "disabled";
229 dmas = <&xlnx_dpdma 5>;
230 dma-names = "tx";
231 };
232
233 xilinx_drm: xilinx_drm {
234 compatible = "xlnx,drm";
235 status = "disabled";
236 xlnx,encoder-slave = <&xlnx_dp>;
237 xlnx,connector-type = "DisplayPort";
238 xlnx,dp-sub = <&xlnx_dp_sub>;
239 planes {
240 xlnx,pixel-format = "rgb565";
241 plane0 {
242 dmas = <&xlnx_dpdma 3>;
243 dma-names = "dma0";
244 };
245 plane1 {
246 dmas = <&xlnx_dpdma 0>,
247 <&xlnx_dpdma 1>,
248 <&xlnx_dpdma 2>;
249 dma-names = "dma0", "dma1", "dma2";
250 };
251 };
252 };
253
Michal Simek79c1cbf2016-11-11 13:21:04 +0100254 amba_apu: amba_apu@0 {
Michal Simek54b896f2015-10-30 15:39:18 +0100255 compatible = "simple-bus";
256 #address-cells = <2>;
257 #size-cells = <1>;
Michal Simekd171c752016-04-07 15:07:38 +0200258 ranges = <0 0 0 0 0xffffffff>;
Michal Simek54b896f2015-10-30 15:39:18 +0100259
260 gic: interrupt-controller@f9010000 {
261 compatible = "arm,gic-400", "arm,cortex-a15-gic";
262 #interrupt-cells = <3>;
263 reg = <0x0 0xf9010000 0x10000>,
Alexander Grafd35e65d2016-05-12 13:44:01 +0200264 <0x0 0xf9020000 0x20000>,
Michal Simek54b896f2015-10-30 15:39:18 +0100265 <0x0 0xf9040000 0x20000>,
Alexander Grafd35e65d2016-05-12 13:44:01 +0200266 <0x0 0xf9060000 0x20000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100267 interrupt-controller;
268 interrupt-parent = <&gic>;
269 interrupts = <1 9 0xf04>;
270 };
271 };
272
Michal Simek72b562a2016-02-11 07:19:06 +0100273 amba: amba {
Michal Simek54b896f2015-10-30 15:39:18 +0100274 compatible = "simple-bus";
Michal Simekba087532016-02-22 09:57:27 +0100275 u-boot,dm-pre-reloc;
Michal Simek54b896f2015-10-30 15:39:18 +0100276 #address-cells = <2>;
Michal Simek72b562a2016-02-11 07:19:06 +0100277 #size-cells = <2>;
278 ranges;
Michal Simek54b896f2015-10-30 15:39:18 +0100279
280 can0: can@ff060000 {
281 compatible = "xlnx,zynq-can-1.0";
282 status = "disabled";
283 clock-names = "can_clk", "pclk";
Michal Simek72b562a2016-02-11 07:19:06 +0100284 reg = <0x0 0xff060000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100285 interrupts = <0 23 4>;
286 interrupt-parent = <&gic>;
287 tx-fifo-depth = <0x40>;
288 rx-fifo-depth = <0x40>;
289 };
290
291 can1: can@ff070000 {
292 compatible = "xlnx,zynq-can-1.0";
293 status = "disabled";
294 clock-names = "can_clk", "pclk";
Michal Simek72b562a2016-02-11 07:19:06 +0100295 reg = <0x0 0xff070000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100296 interrupts = <0 24 4>;
297 interrupt-parent = <&gic>;
298 tx-fifo-depth = <0x40>;
299 rx-fifo-depth = <0x40>;
300 };
301
Michal Simekb197dd42015-11-26 11:21:25 +0100302 cci: cci@fd6e0000 {
303 compatible = "arm,cci-400";
Michal Simek72b562a2016-02-11 07:19:06 +0100304 reg = <0x0 0xfd6e0000 0x0 0x9000>;
Michal Simekb197dd42015-11-26 11:21:25 +0100305 ranges = <0x0 0x0 0xfd6e0000 0x10000>;
306 #address-cells = <1>;
307 #size-cells = <1>;
308
309 pmu@9000 {
310 compatible = "arm,cci-400-pmu,r1";
311 reg = <0x9000 0x5000>;
312 interrupt-parent = <&gic>;
313 interrupts = <0 123 4>,
314 <0 123 4>,
315 <0 123 4>,
316 <0 123 4>,
317 <0 123 4>;
318 };
319 };
320
Michal Simek54b896f2015-10-30 15:39:18 +0100321 /* GDMA */
322 fpd_dma_chan1: dma@fd500000 {
323 status = "disabled";
324 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100325 reg = <0x0 0xfd500000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100326 interrupt-parent = <&gic>;
327 interrupts = <0 124 4>;
VNSL Durga7b3cb892016-03-24 22:45:12 +0530328 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100329 xlnx,bus-width = <128>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200330 #stream-id-cells = <1>;
331 iommus = <&smmu 0x14e8>;
Michal Simek54b896f2015-10-30 15:39:18 +0100332 };
333
334 fpd_dma_chan2: dma@fd510000 {
335 status = "disabled";
336 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100337 reg = <0x0 0xfd510000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100338 interrupt-parent = <&gic>;
339 interrupts = <0 125 4>;
VNSL Durga7b3cb892016-03-24 22:45:12 +0530340 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100341 xlnx,bus-width = <128>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200342 #stream-id-cells = <1>;
343 iommus = <&smmu 0x14e9>;
Michal Simek54b896f2015-10-30 15:39:18 +0100344 };
345
346 fpd_dma_chan3: dma@fd520000 {
347 status = "disabled";
348 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100349 reg = <0x0 0xfd520000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100350 interrupt-parent = <&gic>;
351 interrupts = <0 126 4>;
VNSL Durga7b3cb892016-03-24 22:45:12 +0530352 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100353 xlnx,bus-width = <128>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200354 #stream-id-cells = <1>;
355 iommus = <&smmu 0x14ea>;
Michal Simek54b896f2015-10-30 15:39:18 +0100356 };
357
358 fpd_dma_chan4: dma@fd530000 {
359 status = "disabled";
360 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100361 reg = <0x0 0xfd530000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100362 interrupt-parent = <&gic>;
363 interrupts = <0 127 4>;
VNSL Durga7b3cb892016-03-24 22:45:12 +0530364 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100365 xlnx,bus-width = <128>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200366 #stream-id-cells = <1>;
367 iommus = <&smmu 0x14eb>;
Michal Simek54b896f2015-10-30 15:39:18 +0100368 };
369
370 fpd_dma_chan5: dma@fd540000 {
371 status = "disabled";
372 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100373 reg = <0x0 0xfd540000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100374 interrupt-parent = <&gic>;
375 interrupts = <0 128 4>;
VNSL Durga7b3cb892016-03-24 22:45:12 +0530376 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100377 xlnx,bus-width = <128>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200378 #stream-id-cells = <1>;
379 iommus = <&smmu 0x14ec>;
Michal Simek54b896f2015-10-30 15:39:18 +0100380 };
381
382 fpd_dma_chan6: dma@fd550000 {
383 status = "disabled";
384 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100385 reg = <0x0 0xfd550000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100386 interrupt-parent = <&gic>;
387 interrupts = <0 129 4>;
VNSL Durga7b3cb892016-03-24 22:45:12 +0530388 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100389 xlnx,bus-width = <128>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200390 #stream-id-cells = <1>;
391 iommus = <&smmu 0x14ed>;
Michal Simek54b896f2015-10-30 15:39:18 +0100392 };
393
394 fpd_dma_chan7: dma@fd560000 {
395 status = "disabled";
396 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100397 reg = <0x0 0xfd560000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100398 interrupt-parent = <&gic>;
399 interrupts = <0 130 4>;
VNSL Durga7b3cb892016-03-24 22:45:12 +0530400 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100401 xlnx,bus-width = <128>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200402 #stream-id-cells = <1>;
403 iommus = <&smmu 0x14ee>;
Michal Simek54b896f2015-10-30 15:39:18 +0100404 };
405
406 fpd_dma_chan8: dma@fd570000 {
407 status = "disabled";
408 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100409 reg = <0x0 0xfd570000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100410 interrupt-parent = <&gic>;
411 interrupts = <0 131 4>;
VNSL Durga7b3cb892016-03-24 22:45:12 +0530412 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100413 xlnx,bus-width = <128>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200414 #stream-id-cells = <1>;
415 iommus = <&smmu 0x14ef>;
Michal Simek54b896f2015-10-30 15:39:18 +0100416 };
417
418 gpu: gpu@fd4b0000 {
419 status = "disabled";
420 compatible = "arm,mali-400", "arm,mali-utgard";
Hyun Kwon991faf72017-08-21 18:54:29 -0700421 reg = <0x0 0xfd4b0000 0x0 0x10000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100422 interrupt-parent = <&gic>;
423 interrupts = <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>;
424 interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1";
Madhurkiran Harikrishnan69819bd2017-02-17 04:14:45 -0800425 clock-names = "gpu", "gpu_pp0", "gpu_pp1";
Michal Simek54b896f2015-10-30 15:39:18 +0100426 };
427
Kedareswara rao Appanaae9342f2016-09-09 12:36:01 +0530428 /* LPDDMA default allows only secured access. inorder to enable
429 * These dma channels, Users should ensure that these dma
430 * Channels are allowed for non secure access.
431 */
Michal Simek54b896f2015-10-30 15:39:18 +0100432 lpd_dma_chan1: dma@ffa80000 {
433 status = "disabled";
434 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100435 reg = <0x0 0xffa80000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100436 interrupt-parent = <&gic>;
437 interrupts = <0 77 4>;
Michal Simek91ab8252018-01-17 16:32:33 +0100438 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100439 xlnx,bus-width = <64>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200440 #stream-id-cells = <1>;
441 iommus = <&smmu 0x868>;
Michal Simek54b896f2015-10-30 15:39:18 +0100442 };
443
444 lpd_dma_chan2: dma@ffa90000 {
445 status = "disabled";
446 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100447 reg = <0x0 0xffa90000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100448 interrupt-parent = <&gic>;
449 interrupts = <0 78 4>;
Michal Simek91ab8252018-01-17 16:32:33 +0100450 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100451 xlnx,bus-width = <64>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200452 #stream-id-cells = <1>;
453 iommus = <&smmu 0x869>;
Michal Simek54b896f2015-10-30 15:39:18 +0100454 };
455
456 lpd_dma_chan3: dma@ffaa0000 {
457 status = "disabled";
458 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100459 reg = <0x0 0xffaa0000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100460 interrupt-parent = <&gic>;
461 interrupts = <0 79 4>;
Michal Simek91ab8252018-01-17 16:32:33 +0100462 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100463 xlnx,bus-width = <64>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200464 #stream-id-cells = <1>;
465 iommus = <&smmu 0x86a>;
Michal Simek54b896f2015-10-30 15:39:18 +0100466 };
467
468 lpd_dma_chan4: dma@ffab0000 {
469 status = "disabled";
470 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100471 reg = <0x0 0xffab0000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100472 interrupt-parent = <&gic>;
473 interrupts = <0 80 4>;
Michal Simek91ab8252018-01-17 16:32:33 +0100474 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100475 xlnx,bus-width = <64>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200476 #stream-id-cells = <1>;
477 iommus = <&smmu 0x86b>;
Michal Simek54b896f2015-10-30 15:39:18 +0100478 };
479
480 lpd_dma_chan5: dma@ffac0000 {
481 status = "disabled";
482 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100483 reg = <0x0 0xffac0000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100484 interrupt-parent = <&gic>;
485 interrupts = <0 81 4>;
Michal Simek91ab8252018-01-17 16:32:33 +0100486 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100487 xlnx,bus-width = <64>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200488 #stream-id-cells = <1>;
489 iommus = <&smmu 0x86c>;
Michal Simek54b896f2015-10-30 15:39:18 +0100490 };
491
492 lpd_dma_chan6: dma@ffad0000 {
493 status = "disabled";
494 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100495 reg = <0x0 0xffad0000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100496 interrupt-parent = <&gic>;
497 interrupts = <0 82 4>;
Michal Simek91ab8252018-01-17 16:32:33 +0100498 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100499 xlnx,bus-width = <64>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200500 #stream-id-cells = <1>;
501 iommus = <&smmu 0x86d>;
Michal Simek54b896f2015-10-30 15:39:18 +0100502 };
503
504 lpd_dma_chan7: dma@ffae0000 {
505 status = "disabled";
506 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100507 reg = <0x0 0xffae0000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100508 interrupt-parent = <&gic>;
509 interrupts = <0 83 4>;
Michal Simek91ab8252018-01-17 16:32:33 +0100510 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100511 xlnx,bus-width = <64>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200512 #stream-id-cells = <1>;
513 iommus = <&smmu 0x86e>;
Michal Simek54b896f2015-10-30 15:39:18 +0100514 };
515
516 lpd_dma_chan8: dma@ffaf0000 {
517 status = "disabled";
518 compatible = "xlnx,zynqmp-dma-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100519 reg = <0x0 0xffaf0000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100520 interrupt-parent = <&gic>;
521 interrupts = <0 84 4>;
Michal Simek91ab8252018-01-17 16:32:33 +0100522 clock-names = "clk_main", "clk_apb";
Michal Simek54b896f2015-10-30 15:39:18 +0100523 xlnx,bus-width = <64>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200524 #stream-id-cells = <1>;
525 iommus = <&smmu 0x86f>;
Michal Simek54b896f2015-10-30 15:39:18 +0100526 };
527
Naga Sureshkumar Rellide96a3e2016-03-11 13:10:26 +0530528 mc: memory-controller@fd070000 {
529 compatible = "xlnx,zynqmp-ddrc-2.40a";
Michal Simek72b562a2016-02-11 07:19:06 +0100530 reg = <0x0 0xfd070000 0x0 0x30000>;
Naga Sureshkumar Rellide96a3e2016-03-11 13:10:26 +0530531 interrupt-parent = <&gic>;
532 interrupts = <0 112 4>;
533 };
534
Michal Simek54b896f2015-10-30 15:39:18 +0100535 nand0: nand@ff100000 {
536 compatible = "arasan,nfc-v3p10";
537 status = "disabled";
Michal Simek72b562a2016-02-11 07:19:06 +0100538 reg = <0x0 0xff100000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100539 clock-names = "clk_sys", "clk_flash";
540 interrupt-parent = <&gic>;
541 interrupts = <0 14 4>;
Naga Sureshkumar Rellie007a352017-01-23 16:20:37 +0530542 #address-cells = <1>;
543 #size-cells = <0>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200544 #stream-id-cells = <1>;
545 iommus = <&smmu 0x872>;
Michal Simek54b896f2015-10-30 15:39:18 +0100546 };
547
548 gem0: ethernet@ff0b0000 {
Michal Simek9178d292018-03-27 12:53:37 +0200549 compatible = "cdns,zynqmp-gem", "cdns,gem";
Michal Simek54b896f2015-10-30 15:39:18 +0100550 status = "disabled";
551 interrupt-parent = <&gic>;
552 interrupts = <0 57 4>, <0 57 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100553 reg = <0x0 0xff0b0000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100554 clock-names = "pclk", "hclk", "tx_clk";
555 #address-cells = <1>;
556 #size-cells = <0>;
Edgar E. Iglesiasfde098f2015-11-26 14:12:20 +0100557 #stream-id-cells = <1>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200558 iommus = <&smmu 0x874>;
Michal Simek54b896f2015-10-30 15:39:18 +0100559 };
560
561 gem1: ethernet@ff0c0000 {
Michal Simek9178d292018-03-27 12:53:37 +0200562 compatible = "cdns,zynqmp-gem", "cdns,gem";
Michal Simek54b896f2015-10-30 15:39:18 +0100563 status = "disabled";
564 interrupt-parent = <&gic>;
565 interrupts = <0 59 4>, <0 59 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100566 reg = <0x0 0xff0c0000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100567 clock-names = "pclk", "hclk", "tx_clk";
568 #address-cells = <1>;
569 #size-cells = <0>;
Edgar E. Iglesiasfde098f2015-11-26 14:12:20 +0100570 #stream-id-cells = <1>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200571 iommus = <&smmu 0x875>;
Michal Simek54b896f2015-10-30 15:39:18 +0100572 };
573
574 gem2: ethernet@ff0d0000 {
Michal Simek9178d292018-03-27 12:53:37 +0200575 compatible = "cdns,zynqmp-gem", "cdns,gem";
Michal Simek54b896f2015-10-30 15:39:18 +0100576 status = "disabled";
577 interrupt-parent = <&gic>;
578 interrupts = <0 61 4>, <0 61 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100579 reg = <0x0 0xff0d0000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100580 clock-names = "pclk", "hclk", "tx_clk";
581 #address-cells = <1>;
582 #size-cells = <0>;
Edgar E. Iglesiasfde098f2015-11-26 14:12:20 +0100583 #stream-id-cells = <1>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200584 iommus = <&smmu 0x876>;
Michal Simek54b896f2015-10-30 15:39:18 +0100585 };
586
587 gem3: ethernet@ff0e0000 {
Michal Simek9178d292018-03-27 12:53:37 +0200588 compatible = "cdns,zynqmp-gem", "cdns,gem";
Michal Simek54b896f2015-10-30 15:39:18 +0100589 status = "disabled";
590 interrupt-parent = <&gic>;
591 interrupts = <0 63 4>, <0 63 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100592 reg = <0x0 0xff0e0000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100593 clock-names = "pclk", "hclk", "tx_clk";
594 #address-cells = <1>;
595 #size-cells = <0>;
Edgar E. Iglesiasfde098f2015-11-26 14:12:20 +0100596 #stream-id-cells = <1>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200597 iommus = <&smmu 0x877>;
Michal Simek54b896f2015-10-30 15:39:18 +0100598 };
599
600 gpio: gpio@ff0a0000 {
601 compatible = "xlnx,zynqmp-gpio-1.0";
602 status = "disabled";
603 #gpio-cells = <0x2>;
604 interrupt-parent = <&gic>;
605 interrupts = <0 16 4>;
Michal Simek7e2df452016-10-20 10:26:13 +0200606 interrupt-controller;
607 #interrupt-cells = <2>;
Michal Simek72b562a2016-02-11 07:19:06 +0100608 reg = <0x0 0xff0a0000 0x0 0x1000>;
Michal Simek44c45e02017-08-30 08:06:11 +0200609 gpio-controller;
Michal Simek54b896f2015-10-30 15:39:18 +0100610 };
611
612 i2c0: i2c@ff020000 {
Moritz Fischere94b8df2016-12-22 09:36:11 -0800613 compatible = "cdns,i2c-r1p14", "cdns,i2c-r1p10";
Michal Simek54b896f2015-10-30 15:39:18 +0100614 status = "disabled";
615 interrupt-parent = <&gic>;
616 interrupts = <0 17 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100617 reg = <0x0 0xff020000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100618 #address-cells = <1>;
619 #size-cells = <0>;
620 };
621
622 i2c1: i2c@ff030000 {
Moritz Fischere94b8df2016-12-22 09:36:11 -0800623 compatible = "cdns,i2c-r1p14", "cdns,i2c-r1p10";
Michal Simek54b896f2015-10-30 15:39:18 +0100624 status = "disabled";
625 interrupt-parent = <&gic>;
626 interrupts = <0 18 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100627 reg = <0x0 0xff030000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100628 #address-cells = <1>;
629 #size-cells = <0>;
630 };
631
Naga Sureshkumar Relli104b4fc2016-05-18 12:23:13 +0530632 ocm: memory-controller@ff960000 {
633 compatible = "xlnx,zynqmp-ocmc-1.0";
Michal Simek72b562a2016-02-11 07:19:06 +0100634 reg = <0x0 0xff960000 0x0 0x1000>;
Naga Sureshkumar Relli104b4fc2016-05-18 12:23:13 +0530635 interrupt-parent = <&gic>;
636 interrupts = <0 10 4>;
637 };
638
Michal Simek54b896f2015-10-30 15:39:18 +0100639 pcie: pcie@fd0e0000 {
640 compatible = "xlnx,nwl-pcie-2.11";
641 status = "disabled";
642 #address-cells = <3>;
643 #size-cells = <2>;
644 #interrupt-cells = <1>;
Bharat Kumar Gogadae44f69d2016-07-19 20:49:29 +0530645 msi-controller;
Michal Simek54b896f2015-10-30 15:39:18 +0100646 device_type = "pci";
647 interrupt-parent = <&gic>;
Michal Simekf9fda432016-01-20 12:59:23 +0100648 interrupts = <0 118 4>,
Bharat Kumar Gogadae44f69d2016-07-19 20:49:29 +0530649 <0 117 4>,
Michal Simekf9fda432016-01-20 12:59:23 +0100650 <0 116 4>,
651 <0 115 4>, /* MSI_1 [63...32] */
652 <0 114 4>; /* MSI_0 [31...0] */
Michal Simek91ab8252018-01-17 16:32:33 +0100653 interrupt-names = "misc", "dummy", "intx",
654 "msi1", "msi0";
Bharat Kumar Gogadae44f69d2016-07-19 20:49:29 +0530655 msi-parent = <&pcie>;
Michal Simek72b562a2016-02-11 07:19:06 +0100656 reg = <0x0 0xfd0e0000 0x0 0x1000>,
657 <0x0 0xfd480000 0x0 0x1000>,
Bharat Kumar Gogadae829f072016-08-02 20:34:13 +0530658 <0x80 0x00000000 0x0 0x1000000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100659 reg-names = "breg", "pcireg", "cfg";
Bharat Kumar Gogadae829f072016-08-02 20:34:13 +0530660 ranges = <0x02000000 0x00000000 0xe0000000 0x00000000 0xe0000000 0x00000000 0x10000000 /* non-prefetchable memory */
661 0x43000000 0x00000006 0x00000000 0x00000006 0x00000000 0x00000002 0x00000000>;/* prefetchable memory */
Rob Herring1559f562017-03-21 21:03:13 -0500662 bus-range = <0x00 0xff>;
Bharat Kumar Gogadaf6e02b32016-02-15 21:18:58 +0530663 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
664 interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc 0x1>,
665 <0x0 0x0 0x0 0x2 &pcie_intc 0x2>,
666 <0x0 0x0 0x0 0x3 &pcie_intc 0x3>,
667 <0x0 0x0 0x0 0x4 &pcie_intc 0x4>;
668 pcie_intc: legacy-interrupt-controller {
669 interrupt-controller;
670 #address-cells = <0>;
671 #interrupt-cells = <1>;
672 };
Michal Simek54b896f2015-10-30 15:39:18 +0100673 };
674
675 qspi: spi@ff0f0000 {
Michal Simek933b6f72017-01-16 12:07:33 +0100676 u-boot,dm-pre-reloc;
Michal Simek54b896f2015-10-30 15:39:18 +0100677 compatible = "xlnx,zynqmp-qspi-1.0";
678 status = "disabled";
679 clock-names = "ref_clk", "pclk";
680 interrupts = <0 15 4>;
681 interrupt-parent = <&gic>;
682 num-cs = <1>;
Michal Simek72b562a2016-02-11 07:19:06 +0100683 reg = <0x0 0xff0f0000 0x0 0x1000>,
684 <0x0 0xc0000000 0x0 0x8000000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100685 #address-cells = <1>;
686 #size-cells = <0>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200687 #stream-id-cells = <1>;
688 iommus = <&smmu 0x873>;
Michal Simek54b896f2015-10-30 15:39:18 +0100689 };
690
691 rtc: rtc@ffa60000 {
692 compatible = "xlnx,zynqmp-rtc";
693 status = "disabled";
Michal Simek72b562a2016-02-11 07:19:06 +0100694 reg = <0x0 0xffa60000 0x0 0x100>;
Michal Simek54b896f2015-10-30 15:39:18 +0100695 interrupt-parent = <&gic>;
696 interrupts = <0 26 4>, <0 27 4>;
697 interrupt-names = "alarm", "sec";
Nava kishore Mannefaa728f2017-01-27 18:20:14 +0530698 calibration = <0x8000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100699 };
700
Anurag Kumar Vulisha2d112502016-05-17 16:49:01 +0530701 serdes: zynqmp_phy@fd400000 {
702 compatible = "xlnx,zynqmp-psgtr";
703 status = "disabled";
Michal Simek72b562a2016-02-11 07:19:06 +0100704 reg = <0x0 0xfd400000 0x0 0x40000>,
705 <0x0 0xfd3d0000 0x0 0x1000>,
Michal Simek72b562a2016-02-11 07:19:06 +0100706 <0x0 0xff5e0000 0x0 0x1000>;
Anurag Kumar Vulisha66ee0d22017-02-08 17:09:10 +0530707 reg-names = "serdes", "siou", "lpd";
Michal Simekc79738d2017-01-17 14:36:54 +0100708 nvmem-cells = <&soc_revision>;
709 nvmem-cell-names = "soc_revision";
Michal Simeka898c332019-10-14 15:55:53 +0200710 resets = <&zynqmp_reset ZYNQMP_RESET_SATA>,
711 <&zynqmp_reset ZYNQMP_RESET_USB0_CORERESET>,
712 <&zynqmp_reset ZYNQMP_RESET_USB1_CORERESET>,
713 <&zynqmp_reset ZYNQMP_RESET_USB0_HIBERRESET>,
714 <&zynqmp_reset ZYNQMP_RESET_USB1_HIBERRESET>,
715 <&zynqmp_reset ZYNQMP_RESET_USB0_APB>,
716 <&zynqmp_reset ZYNQMP_RESET_USB1_APB>,
717 <&zynqmp_reset ZYNQMP_RESET_DP>,
718 <&zynqmp_reset ZYNQMP_RESET_GEM0>,
719 <&zynqmp_reset ZYNQMP_RESET_GEM1>,
720 <&zynqmp_reset ZYNQMP_RESET_GEM2>,
721 <&zynqmp_reset ZYNQMP_RESET_GEM3>;
Anurag Kumar Vulisha767e9752017-02-06 21:40:34 +0530722 reset-names = "sata_rst", "usb0_crst", "usb1_crst",
723 "usb0_hibrst", "usb1_hibrst", "usb0_apbrst",
724 "usb1_apbrst", "dp_rst", "gem0_rst",
725 "gem1_rst", "gem2_rst", "gem3_rst";
Anurag Kumar Vulisha2d112502016-05-17 16:49:01 +0530726 lane0: lane0 {
727 #phy-cells = <4>;
728 };
729 lane1: lane1 {
730 #phy-cells = <4>;
731 };
732 lane2: lane2 {
733 #phy-cells = <4>;
734 };
735 lane3: lane3 {
736 #phy-cells = <4>;
737 };
738 };
739
Michal Simek54b896f2015-10-30 15:39:18 +0100740 sata: ahci@fd0c0000 {
741 compatible = "ceva,ahci-1v84";
742 status = "disabled";
Michal Simek72b562a2016-02-11 07:19:06 +0100743 reg = <0x0 0xfd0c0000 0x0 0x2000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100744 interrupt-parent = <&gic>;
745 interrupts = <0 133 4>;
Anurag Kumar Vulisha4e2aaef2017-07-04 20:03:42 +0530746 #stream-id-cells = <4>;
747 iommus = <&smmu 0x4c0>, <&smmu 0x4c1>,
748 <&smmu 0x4c2>, <&smmu 0x4c3>;
749 /* dma-coherent; */
Michal Simek54b896f2015-10-30 15:39:18 +0100750 };
751
Siva Durga Prasad Paladugue91778d2019-01-03 15:44:24 +0530752 sdhci0: mmc@ff160000 {
Michal Simekba087532016-02-22 09:57:27 +0100753 u-boot,dm-pre-reloc;
Sai Krishna Potthuri02550fb2016-08-16 14:41:35 +0530754 compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
Michal Simek54b896f2015-10-30 15:39:18 +0100755 status = "disabled";
756 interrupt-parent = <&gic>;
757 interrupts = <0 48 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100758 reg = <0x0 0xff160000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100759 clock-names = "clk_xin", "clk_ahb";
Sai Krishna Potthuri02550fb2016-08-16 14:41:35 +0530760 xlnx,device_id = <0>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200761 #stream-id-cells = <1>;
762 iommus = <&smmu 0x870>;
Manish Narani61072012017-07-19 21:16:33 +0530763 nvmem-cells = <&soc_revision>;
764 nvmem-cell-names = "soc_revision";
Michal Simek54b896f2015-10-30 15:39:18 +0100765 };
766
Siva Durga Prasad Paladugue91778d2019-01-03 15:44:24 +0530767 sdhci1: mmc@ff170000 {
Michal Simekba087532016-02-22 09:57:27 +0100768 u-boot,dm-pre-reloc;
Sai Krishna Potthuri02550fb2016-08-16 14:41:35 +0530769 compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
Michal Simek54b896f2015-10-30 15:39:18 +0100770 status = "disabled";
771 interrupt-parent = <&gic>;
772 interrupts = <0 49 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100773 reg = <0x0 0xff170000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100774 clock-names = "clk_xin", "clk_ahb";
Sai Krishna Potthuri02550fb2016-08-16 14:41:35 +0530775 xlnx,device_id = <1>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200776 #stream-id-cells = <1>;
777 iommus = <&smmu 0x871>;
Manish Narani61072012017-07-19 21:16:33 +0530778 nvmem-cells = <&soc_revision>;
779 nvmem-cell-names = "soc_revision";
Michal Simek54b896f2015-10-30 15:39:18 +0100780 };
781
Michal Simek6471f8e2017-11-02 11:51:59 +0100782 pinctrl0: pinctrl@ff180000 {
783 compatible = "xlnx,pinctrl-zynqmp";
784 status = "disabled";
785 reg = <0x0 0xff180000 0x0 0x1000>;
786 };
787
Michal Simek54b896f2015-10-30 15:39:18 +0100788 smmu: smmu@fd800000 {
789 compatible = "arm,mmu-500";
Michal Simek72b562a2016-02-11 07:19:06 +0100790 reg = <0x0 0xfd800000 0x0 0x20000>;
Michal Simek8db0faa2016-04-06 10:43:23 +0200791 #iommu-cells = <1>;
Naga Sureshkumar Relli033f87c2017-03-09 20:00:13 +0530792 status = "disabled";
Michal Simek54b896f2015-10-30 15:39:18 +0100793 #global-interrupts = <1>;
794 interrupt-parent = <&gic>;
Edgar E. Iglesiasf1880d82015-11-26 14:12:19 +0100795 interrupts = <0 155 4>,
796 <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
797 <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
798 <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
799 <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>;
Michal Simek54b896f2015-10-30 15:39:18 +0100800 };
801
802 spi0: spi@ff040000 {
803 compatible = "cdns,spi-r1p6";
804 status = "disabled";
805 interrupt-parent = <&gic>;
806 interrupts = <0 19 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100807 reg = <0x0 0xff040000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100808 clock-names = "ref_clk", "pclk";
809 #address-cells = <1>;
810 #size-cells = <0>;
811 };
812
813 spi1: spi@ff050000 {
814 compatible = "cdns,spi-r1p6";
815 status = "disabled";
816 interrupt-parent = <&gic>;
817 interrupts = <0 20 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100818 reg = <0x0 0xff050000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100819 clock-names = "ref_clk", "pclk";
820 #address-cells = <1>;
821 #size-cells = <0>;
822 };
823
824 ttc0: timer@ff110000 {
825 compatible = "cdns,ttc";
826 status = "disabled";
827 interrupt-parent = <&gic>;
828 interrupts = <0 36 4>, <0 37 4>, <0 38 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100829 reg = <0x0 0xff110000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100830 timer-width = <32>;
831 };
832
833 ttc1: timer@ff120000 {
834 compatible = "cdns,ttc";
835 status = "disabled";
836 interrupt-parent = <&gic>;
837 interrupts = <0 39 4>, <0 40 4>, <0 41 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100838 reg = <0x0 0xff120000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100839 timer-width = <32>;
840 };
841
842 ttc2: timer@ff130000 {
843 compatible = "cdns,ttc";
844 status = "disabled";
845 interrupt-parent = <&gic>;
846 interrupts = <0 42 4>, <0 43 4>, <0 44 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100847 reg = <0x0 0xff130000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100848 timer-width = <32>;
849 };
850
851 ttc3: timer@ff140000 {
852 compatible = "cdns,ttc";
853 status = "disabled";
854 interrupt-parent = <&gic>;
855 interrupts = <0 45 4>, <0 46 4>, <0 47 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100856 reg = <0x0 0xff140000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100857 timer-width = <32>;
858 };
859
860 uart0: serial@ff000000 {
Michal Simekba087532016-02-22 09:57:27 +0100861 u-boot,dm-pre-reloc;
Michal Simek8f0dc3e2015-11-27 13:22:58 +0100862 compatible = "cdns,uart-r1p12", "xlnx,xuartps";
Michal Simek54b896f2015-10-30 15:39:18 +0100863 status = "disabled";
864 interrupt-parent = <&gic>;
865 interrupts = <0 21 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100866 reg = <0x0 0xff000000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100867 clock-names = "uart_clk", "pclk";
868 };
869
870 uart1: serial@ff010000 {
Michal Simekba087532016-02-22 09:57:27 +0100871 u-boot,dm-pre-reloc;
Michal Simek8f0dc3e2015-11-27 13:22:58 +0100872 compatible = "cdns,uart-r1p12", "xlnx,xuartps";
Michal Simek54b896f2015-10-30 15:39:18 +0100873 status = "disabled";
874 interrupt-parent = <&gic>;
875 interrupts = <0 22 4>;
Michal Simek72b562a2016-02-11 07:19:06 +0100876 reg = <0x0 0xff010000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100877 clock-names = "uart_clk", "pclk";
878 };
879
Manish Narani047096e2017-03-27 17:47:00 +0530880 usb0: usb0@ff9d0000 {
Michal Simek13111a12016-04-07 15:06:07 +0200881 #address-cells = <2>;
Michal Simek72b562a2016-02-11 07:19:06 +0100882 #size-cells = <2>;
Michal Simek54b896f2015-10-30 15:39:18 +0100883 status = "disabled";
Michal Simek13111a12016-04-07 15:06:07 +0200884 compatible = "xlnx,zynqmp-dwc3";
Manish Narani047096e2017-03-27 17:47:00 +0530885 reg = <0x0 0xff9d0000 0x0 0x100>;
Michal Simek13111a12016-04-07 15:06:07 +0200886 clock-names = "bus_clk", "ref_clk";
Michal Simek13111a12016-04-07 15:06:07 +0200887 ranges;
Anurag Kumar Vulisha042323c2017-03-02 14:40:51 +0530888 nvmem-cells = <&soc_revision>;
889 nvmem-cell-names = "soc_revision";
Michal Simek13111a12016-04-07 15:06:07 +0200890
891 dwc3_0: dwc3@fe200000 {
892 compatible = "snps,dwc3";
893 status = "disabled";
Michal Simek72b562a2016-02-11 07:19:06 +0100894 reg = <0x0 0xfe200000 0x0 0x40000>;
Michal Simek13111a12016-04-07 15:06:07 +0200895 interrupt-parent = <&gic>;
Manish Narani97143bd2017-01-18 17:34:48 +0530896 interrupts = <0 65 4>, <0 69 4>;
Anurag Kumar Vulisha4bf99f82017-06-20 16:25:16 +0530897 #stream-id-cells = <1>;
898 iommus = <&smmu 0x860>;
Anurag Kumar Vulisha011bd7d2017-03-10 19:18:17 +0530899 snps,quirk-frame-length-adjustment = <0x20>;
Michal Simek13111a12016-04-07 15:06:07 +0200900 snps,refclk_fladj;
Manish Narani047096e2017-03-27 17:47:00 +0530901 /* dma-coherent; */
Michal Simek13111a12016-04-07 15:06:07 +0200902 };
Michal Simek54b896f2015-10-30 15:39:18 +0100903 };
904
Manish Narani047096e2017-03-27 17:47:00 +0530905 usb1: usb1@ff9e0000 {
Michal Simek13111a12016-04-07 15:06:07 +0200906 #address-cells = <2>;
Michal Simek72b562a2016-02-11 07:19:06 +0100907 #size-cells = <2>;
Michal Simek54b896f2015-10-30 15:39:18 +0100908 status = "disabled";
Michal Simek13111a12016-04-07 15:06:07 +0200909 compatible = "xlnx,zynqmp-dwc3";
Manish Narani047096e2017-03-27 17:47:00 +0530910 reg = <0x0 0xff9e0000 0x0 0x100>;
Michal Simek13111a12016-04-07 15:06:07 +0200911 clock-names = "bus_clk", "ref_clk";
Michal Simek13111a12016-04-07 15:06:07 +0200912 ranges;
Anurag Kumar Vulisha042323c2017-03-02 14:40:51 +0530913 nvmem-cells = <&soc_revision>;
914 nvmem-cell-names = "soc_revision";
Michal Simek13111a12016-04-07 15:06:07 +0200915
916 dwc3_1: dwc3@fe300000 {
917 compatible = "snps,dwc3";
918 status = "disabled";
Michal Simek72b562a2016-02-11 07:19:06 +0100919 reg = <0x0 0xfe300000 0x0 0x40000>;
Michal Simek13111a12016-04-07 15:06:07 +0200920 interrupt-parent = <&gic>;
Manish Narani97143bd2017-01-18 17:34:48 +0530921 interrupts = <0 70 4>, <0 74 4>;
Anurag Kumar Vulisha4bf99f82017-06-20 16:25:16 +0530922 #stream-id-cells = <1>;
923 iommus = <&smmu 0x861>;
Anurag Kumar Vulisha011bd7d2017-03-10 19:18:17 +0530924 snps,quirk-frame-length-adjustment = <0x20>;
Michal Simek13111a12016-04-07 15:06:07 +0200925 snps,refclk_fladj;
Manish Narani047096e2017-03-27 17:47:00 +0530926 /* dma-coherent; */
Michal Simek13111a12016-04-07 15:06:07 +0200927 };
Michal Simek54b896f2015-10-30 15:39:18 +0100928 };
929
930 watchdog0: watchdog@fd4d0000 {
931 compatible = "cdns,wdt-r1p2";
932 status = "disabled";
933 interrupt-parent = <&gic>;
Punnaiah Choudary Kallurid67bab62015-11-04 12:34:17 +0530934 interrupts = <0 113 1>;
Michal Simek72b562a2016-02-11 07:19:06 +0100935 reg = <0x0 0xfd4d0000 0x0 0x1000>;
Mounika Grace Akula7db82412018-10-09 20:52:50 +0530936 timeout-sec = <60>;
937 reset-on-timeout;
Michal Simek54b896f2015-10-30 15:39:18 +0100938 };
939
Michal Simek1bb4be32017-11-02 12:04:43 +0100940 xilinx_ams: ams@ffa50000 {
941 compatible = "xlnx,zynqmp-ams";
942 status = "disabled";
943 interrupt-parent = <&gic>;
944 interrupts = <0 56 4>;
945 interrupt-names = "ams-irq";
946 reg = <0x0 0xffa50000 0x0 0x800>;
947 reg-names = "ams-base";
948 #address-cells = <2>;
949 #size-cells = <2>;
950 #io-channel-cells = <1>;
951 ranges;
952
953 ams_ps: ams_ps@ffa50800 {
954 compatible = "xlnx,zynqmp-ams-ps";
955 status = "disabled";
956 reg = <0x0 0xffa50800 0x0 0x400>;
957 };
958
959 ams_pl: ams_pl@ffa50c00 {
960 compatible = "xlnx,zynqmp-ams-pl";
961 status = "disabled";
962 reg = <0x0 0xffa50c00 0x0 0x400>;
963 };
964 };
965
Hyun Kwon4fb90b3e2015-11-23 17:12:54 -0800966 xlnx_dp: dp@fd4a0000 {
Michal Simek54b896f2015-10-30 15:39:18 +0100967 compatible = "xlnx,v-dp";
968 status = "disabled";
Michal Simek72b562a2016-02-11 07:19:06 +0100969 reg = <0x0 0xfd4a0000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100970 interrupts = <0 119 4>;
971 interrupt-parent = <&gic>;
972 clock-names = "aclk", "aud_clk";
973 xlnx,dp-version = "v1.2";
974 xlnx,max-lanes = <2>;
975 xlnx,max-link-rate = <540000>;
976 xlnx,max-bpc = <16>;
977 xlnx,enable-ycrcb;
978 xlnx,colormetry = "rgb";
979 xlnx,bpc = <8>;
980 xlnx,audio-chan = <2>;
981 xlnx,dp-sub = <&xlnx_dp_sub>;
Hyun Kwon7e58f3b2015-11-23 17:12:55 -0800982 xlnx,max-pclock-frequency = <300000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100983 };
984
Hyun Kwon4fb90b3e2015-11-23 17:12:54 -0800985 xlnx_dp_sub: dp_sub@fd4aa000 {
Michal Simek54b896f2015-10-30 15:39:18 +0100986 compatible = "xlnx,dp-sub";
987 status = "disabled";
Michal Simek72b562a2016-02-11 07:19:06 +0100988 reg = <0x0 0xfd4aa000 0x0 0x1000>,
989 <0x0 0xfd4ab000 0x0 0x1000>,
990 <0x0 0xfd4ac000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +0100991 reg-names = "blend", "av_buf", "aud";
992 xlnx,output-fmt = "rgb";
Hyun Kwon7e58f3b2015-11-23 17:12:55 -0800993 xlnx,vid-fmt = "yuyv";
994 xlnx,gfx-fmt = "rgb565";
Michal Simek54b896f2015-10-30 15:39:18 +0100995 };
996
997 xlnx_dpdma: dma@fd4c0000 {
998 compatible = "xlnx,dpdma";
999 status = "disabled";
Michal Simek72b562a2016-02-11 07:19:06 +01001000 reg = <0x0 0xfd4c0000 0x0 0x1000>;
Michal Simek54b896f2015-10-30 15:39:18 +01001001 interrupts = <0 122 4>;
1002 interrupt-parent = <&gic>;
1003 clock-names = "axi_clk";
1004 dma-channels = <6>;
1005 #dma-cells = <1>;
Michal Simek79c1cbf2016-11-11 13:21:04 +01001006 dma-video0channel {
Michal Simek54b896f2015-10-30 15:39:18 +01001007 compatible = "xlnx,video0";
1008 };
Michal Simek79c1cbf2016-11-11 13:21:04 +01001009 dma-video1channel {
Michal Simek54b896f2015-10-30 15:39:18 +01001010 compatible = "xlnx,video1";
1011 };
Michal Simek79c1cbf2016-11-11 13:21:04 +01001012 dma-video2channel {
Michal Simek54b896f2015-10-30 15:39:18 +01001013 compatible = "xlnx,video2";
1014 };
Michal Simek79c1cbf2016-11-11 13:21:04 +01001015 dma-graphicschannel {
Michal Simek54b896f2015-10-30 15:39:18 +01001016 compatible = "xlnx,graphics";
1017 };
Michal Simek79c1cbf2016-11-11 13:21:04 +01001018 dma-audio0channel {
Michal Simek54b896f2015-10-30 15:39:18 +01001019 compatible = "xlnx,audio0";
1020 };
Michal Simek79c1cbf2016-11-11 13:21:04 +01001021 dma-audio1channel {
Michal Simek54b896f2015-10-30 15:39:18 +01001022 compatible = "xlnx,audio1";
1023 };
1024 };
1025 };
1026};