blob: 160c6c58b36d5cdde5766d6d76874b6191895400 [file] [log] [blame]
Michal Simek090a2d72018-03-27 10:36:39 +02001// SPDX-License-Identifier: GPL-2.0+
Michal Simeka335bd22016-04-07 16:00:11 +02002/*
3 * dts file for Xilinx ZynqMP zc1751-xm016-dc2
4 *
Michal Simek3f283ea2023-09-22 12:35:41 +02005 * (C) Copyright 2015 - 2022, Xilinx, Inc.
6 * (C) Copyright 2022 - 2023, Advanced Micro Devices, Inc.
Michal Simeka335bd22016-04-07 16:00:11 +02007 *
Michal Simeka8c94362023-07-10 14:35:49 +02008 * Michal Simek <michal.simek@amd.com>
Michal Simeka335bd22016-04-07 16:00:11 +02009 */
10
11/dts-v1/;
12
13#include "zynqmp.dtsi"
Michal Simeka6604b62017-12-08 14:50:42 +010014#include "zynqmp-clk-ccf.dtsi"
Michal Simekf7b922a2021-05-10 13:14:02 +020015#include <dt-bindings/gpio/gpio.h>
16#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
Michal Simeka335bd22016-04-07 16:00:11 +020017
18/ {
19 model = "ZynqMP zc1751-xm016-dc2 RevA";
20 compatible = "xlnx,zynqmp-zc1751", "xlnx,zynqmp";
21
22 aliases {
Michal Simeka335bd22016-04-07 16:00:11 +020023 ethernet0 = &gem2;
Michal Simeka335bd22016-04-07 16:00:11 +020024 i2c0 = &i2c0;
25 rtc0 = &rtc;
26 serial0 = &uart0;
27 serial1 = &uart1;
28 spi0 = &spi0;
29 spi1 = &spi1;
30 usb0 = &usb1;
31 };
32
33 chosen {
34 bootargs = "earlycon";
35 stdout-path = "serial0:115200n8";
36 };
37
Michal Simek79c1cbf2016-11-11 13:21:04 +010038 memory@0 {
Michal Simeka335bd22016-04-07 16:00:11 +020039 device_type = "memory";
40 reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>;
41 };
42};
43
44&can0 {
45 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +020046 pinctrl-names = "default";
47 pinctrl-0 = <&pinctrl_can0_default>;
Michal Simeka335bd22016-04-07 16:00:11 +020048};
49
50&can1 {
51 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +020052 pinctrl-names = "default";
53 pinctrl-0 = <&pinctrl_can1_default>;
Michal Simeka335bd22016-04-07 16:00:11 +020054};
55
Michal Simeka335bd22016-04-07 16:00:11 +020056&fpd_dma_chan1 {
57 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +020058};
59
60&fpd_dma_chan2 {
61 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +020062};
63
64&fpd_dma_chan3 {
65 status = "okay";
66};
67
68&fpd_dma_chan4 {
69 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +020070};
71
72&fpd_dma_chan5 {
73 status = "okay";
74};
75
76&fpd_dma_chan6 {
77 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +020078};
79
80&fpd_dma_chan7 {
81 status = "okay";
82};
83
84&fpd_dma_chan8 {
85 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +020086};
87
88&gem2 {
89 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +020090 phy-handle = <&phy0>;
91 phy-mode = "rgmii-id";
Michal Simekf7b922a2021-05-10 13:14:02 +020092 pinctrl-names = "default";
93 pinctrl-0 = <&pinctrl_gem2_default>;
Michal Simek0641df72023-09-22 12:35:36 +020094 mdio: mdio {
95 #address-cells = <1>;
96 #size-cells = <0>;
97 phy0: ethernet-phy@5 {
98 reg = <5>;
99 ti,rx-internal-delay = <0x8>;
100 ti,tx-internal-delay = <0xa>;
101 ti,fifo-depth = <0x1>;
102 ti,dp83867-rxctrl-strap-quirk;
103 };
Michal Simeka335bd22016-04-07 16:00:11 +0200104 };
105};
106
107&gpio {
108 status = "okay";
109};
110
111&i2c0 {
112 status = "okay";
113 clock-frequency = <400000>;
Michal Simekf7b922a2021-05-10 13:14:02 +0200114 pinctrl-names = "default", "gpio";
115 pinctrl-0 = <&pinctrl_i2c0_default>;
116 pinctrl-1 = <&pinctrl_i2c0_gpio>;
Manikanta Guntupallicc45c9c2023-07-10 14:37:28 +0200117 scl-gpios = <&gpio 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
118 sda-gpios = <&gpio 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
Michal Simeka335bd22016-04-07 16:00:11 +0200119
120 tca6416_u26: gpio@20 {
121 compatible = "ti,tca6416";
122 reg = <0x20>;
123 gpio-controller;
124 #gpio-cells = <2>;
125 /* IRQ not connected */
126 };
127
128 rtc@68 {
129 compatible = "dallas,ds1339";
130 reg = <0x68>;
131 };
132};
133
134&nand0 {
135 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +0200136 pinctrl-names = "default";
137 pinctrl-0 = <&pinctrl_nand0_default>;
Michal Simeka335bd22016-04-07 16:00:11 +0200138 arasan,has-mdma;
Michal Simeka335bd22016-04-07 16:00:11 +0200139
Naga Sureshkumar Rellie007a352017-01-23 16:20:37 +0530140 nand@0 {
141 reg = <0x0>;
142 #address-cells = <0x2>;
143 #size-cells = <0x1>;
Amit Kumar Mahapatraa951fe72023-10-12 15:58:21 +0200144 nand-ecc-mode = "hw";
Amit Kumar Mahapatrabcc957d2021-02-18 00:50:21 -0700145 nand-rb = <0>;
146 label = "main-storage-0";
Amit Kumar Mahapatra0c39e232021-09-15 15:46:36 +0200147 nand-ecc-step-size = <1024>;
148 nand-ecc-strength = <24>;
Ashok Reddy Soma67546662023-02-23 22:07:09 -0700149 nand-on-flash-bbt;
Michal Simeka335bd22016-04-07 16:00:11 +0200150
Naga Sureshkumar Rellie007a352017-01-23 16:20:37 +0530151 partition@0 { /* for testing purpose */
152 label = "nand-fsbl-uboot";
153 reg = <0x0 0x0 0x400000>;
154 };
155 partition@1 { /* for testing purpose */
156 label = "nand-linux";
157 reg = <0x0 0x400000 0x1400000>;
158 };
159 partition@2 { /* for testing purpose */
160 label = "nand-device-tree";
161 reg = <0x0 0x1800000 0x400000>;
162 };
163 partition@3 { /* for testing purpose */
164 label = "nand-rootfs";
165 reg = <0x0 0x1c00000 0x1400000>;
166 };
167 partition@4 { /* for testing purpose */
168 label = "nand-bitstream";
169 reg = <0x0 0x3000000 0x400000>;
170 };
171 partition@5 { /* for testing purpose */
172 label = "nand-misc";
173 reg = <0x0 0x3400000 0xfcc00000>;
174 };
Michal Simeka335bd22016-04-07 16:00:11 +0200175 };
Naga Sureshkumar Rellie007a352017-01-23 16:20:37 +0530176 nand@1 {
177 reg = <0x1>;
178 #address-cells = <0x2>;
179 #size-cells = <0x1>;
Amit Kumar Mahapatraa951fe72023-10-12 15:58:21 +0200180 nand-ecc-mode = "hw";
Amit Kumar Mahapatrabcc957d2021-02-18 00:50:21 -0700181 nand-rb = <0>;
182 label = "main-storage-1";
Amit Kumar Mahapatra0c39e232021-09-15 15:46:36 +0200183 nand-ecc-step-size = <1024>;
184 nand-ecc-strength = <24>;
Ashok Reddy Soma67546662023-02-23 22:07:09 -0700185 nand-on-flash-bbt;
Naga Sureshkumar Rellie007a352017-01-23 16:20:37 +0530186
187 partition@0 { /* for testing purpose */
188 label = "nand1-fsbl-uboot";
189 reg = <0x0 0x0 0x400000>;
190 };
191 partition@1 { /* for testing purpose */
192 label = "nand1-linux";
193 reg = <0x0 0x400000 0x1400000>;
194 };
195 partition@2 { /* for testing purpose */
196 label = "nand1-device-tree";
197 reg = <0x0 0x1800000 0x400000>;
198 };
199 partition@3 { /* for testing purpose */
200 label = "nand1-rootfs";
201 reg = <0x0 0x1c00000 0x1400000>;
202 };
203 partition@4 { /* for testing purpose */
204 label = "nand1-bitstream";
205 reg = <0x0 0x3000000 0x400000>;
206 };
207 partition@5 { /* for testing purpose */
208 label = "nand1-misc";
209 reg = <0x0 0x3400000 0xfcc00000>;
210 };
Michal Simeka335bd22016-04-07 16:00:11 +0200211 };
212};
213
Michal Simekf7b922a2021-05-10 13:14:02 +0200214&pinctrl0 {
215 status = "okay";
216 pinctrl_can0_default: can0-default {
217 mux {
218 function = "can0";
219 groups = "can0_9_grp";
220 };
221
222 conf {
223 groups = "can0_9_grp";
224 slew-rate = <SLEW_RATE_SLOW>;
225 power-source = <IO_STANDARD_LVCMOS18>;
226 };
227
228 conf-rx {
229 pins = "MIO38";
230 bias-high-impedance;
231 };
232
233 conf-tx {
234 pins = "MIO39";
235 bias-disable;
236 };
237 };
238
239 pinctrl_can1_default: can1-default {
240 mux {
241 function = "can1";
242 groups = "can1_8_grp";
243 };
244
245 conf {
246 groups = "can1_8_grp";
247 slew-rate = <SLEW_RATE_SLOW>;
248 power-source = <IO_STANDARD_LVCMOS18>;
249 };
250
251 conf-rx {
252 pins = "MIO33";
253 bias-high-impedance;
254 };
255
256 conf-tx {
257 pins = "MIO32";
258 bias-disable;
259 };
260 };
261
262 pinctrl_i2c0_default: i2c0-default {
263 mux {
264 groups = "i2c0_1_grp";
265 function = "i2c0";
266 };
267
268 conf {
269 groups = "i2c0_1_grp";
270 bias-pull-up;
271 slew-rate = <SLEW_RATE_SLOW>;
272 power-source = <IO_STANDARD_LVCMOS18>;
273 };
274 };
275
276 pinctrl_i2c0_gpio: i2c0-gpio {
277 mux {
278 groups = "gpio0_6_grp", "gpio0_7_grp";
279 function = "gpio0";
280 };
281
282 conf {
283 groups = "gpio0_6_grp", "gpio0_7_grp";
284 slew-rate = <SLEW_RATE_SLOW>;
285 power-source = <IO_STANDARD_LVCMOS18>;
286 };
287 };
288
289 pinctrl_uart0_default: uart0-default {
290 mux {
291 groups = "uart0_10_grp";
292 function = "uart0";
293 };
294
295 conf {
296 groups = "uart0_10_grp";
297 slew-rate = <SLEW_RATE_SLOW>;
298 power-source = <IO_STANDARD_LVCMOS18>;
299 };
300
301 conf-rx {
302 pins = "MIO42";
303 bias-high-impedance;
304 };
305
306 conf-tx {
307 pins = "MIO43";
308 bias-disable;
309 };
310 };
311
312 pinctrl_uart1_default: uart1-default {
313 mux {
314 groups = "uart1_10_grp";
315 function = "uart1";
316 };
317
318 conf {
319 groups = "uart1_10_grp";
320 slew-rate = <SLEW_RATE_SLOW>;
321 power-source = <IO_STANDARD_LVCMOS18>;
322 };
323
324 conf-rx {
325 pins = "MIO41";
326 bias-high-impedance;
327 };
328
329 conf-tx {
330 pins = "MIO40";
331 bias-disable;
332 };
333 };
334
335 pinctrl_usb1_default: usb1-default {
336 mux {
337 groups = "usb1_0_grp";
338 function = "usb1";
339 };
340
341 conf {
342 groups = "usb1_0_grp";
Michal Simekf7b922a2021-05-10 13:14:02 +0200343 power-source = <IO_STANDARD_LVCMOS18>;
344 };
345
346 conf-rx {
347 pins = "MIO64", "MIO65", "MIO67";
348 bias-high-impedance;
Ashok Reddy Soma4d0ecf62022-06-15 12:16:13 +0200349 drive-strength = <12>;
350 slew-rate = <SLEW_RATE_FAST>;
Michal Simekf7b922a2021-05-10 13:14:02 +0200351 };
352
353 conf-tx {
354 pins = "MIO66", "MIO68", "MIO69", "MIO70", "MIO71",
355 "MIO72", "MIO73", "MIO74", "MIO75";
356 bias-disable;
Ashok Reddy Soma4d0ecf62022-06-15 12:16:13 +0200357 drive-strength = <4>;
358 slew-rate = <SLEW_RATE_SLOW>;
Michal Simekf7b922a2021-05-10 13:14:02 +0200359 };
360 };
361
362 pinctrl_gem2_default: gem2-default {
363 mux {
364 function = "ethernet2";
365 groups = "ethernet2_0_grp";
366 };
367
368 conf {
369 groups = "ethernet2_0_grp";
370 slew-rate = <SLEW_RATE_SLOW>;
371 power-source = <IO_STANDARD_LVCMOS18>;
372 };
373
374 conf-rx {
375 pins = "MIO58", "MIO59", "MIO60", "MIO61", "MIO62",
376 "MIO63";
377 bias-high-impedance;
378 low-power-disable;
379 };
380
381 conf-tx {
382 pins = "MIO52", "MIO53", "MIO54", "MIO55", "MIO56",
383 "MIO57";
384 bias-disable;
385 low-power-enable;
386 };
387
388 mux-mdio {
389 function = "mdio2";
390 groups = "mdio2_0_grp";
391 };
392
393 conf-mdio {
394 groups = "mdio2_0_grp";
395 slew-rate = <SLEW_RATE_SLOW>;
396 power-source = <IO_STANDARD_LVCMOS18>;
397 bias-disable;
398 };
399 };
400
401 pinctrl_nand0_default: nand0-default {
402 mux {
403 groups = "nand0_0_grp";
404 function = "nand0";
405 };
406
407 conf {
408 groups = "nand0_0_grp";
409 bias-pull-up;
410 };
411
412 mux-ce {
413 groups = "nand0_ce_0_grp";
414 function = "nand0_ce";
415 };
416
417 conf-ce {
418 groups = "nand0_ce_0_grp";
419 bias-pull-up;
420 };
421
422 mux-rb {
423 groups = "nand0_rb_0_grp";
424 function = "nand0_rb";
425 };
426
427 conf-rb {
428 groups = "nand0_rb_0_grp";
429 bias-pull-up;
430 };
431
432 mux-dqs {
433 groups = "nand0_dqs_0_grp";
434 function = "nand0_dqs";
435 };
436
437 conf-dqs {
438 groups = "nand0_dqs_0_grp";
439 bias-pull-up;
440 };
441 };
442
443 pinctrl_spi0_default: spi0-default {
444 mux {
445 groups = "spi0_0_grp";
446 function = "spi0";
447 };
448
449 conf {
450 groups = "spi0_0_grp";
451 bias-disable;
452 slew-rate = <SLEW_RATE_SLOW>;
453 power-source = <IO_STANDARD_LVCMOS18>;
454 };
455
456 mux-cs {
457 groups = "spi0_ss_0_grp", "spi0_ss_1_grp",
458 "spi0_ss_2_grp";
459 function = "spi0_ss";
460 };
461
462 conf-cs {
463 groups = "spi0_ss_0_grp", "spi0_ss_1_grp",
464 "spi0_ss_2_grp";
465 bias-disable;
466 };
467 };
468
469 pinctrl_spi1_default: spi1-default {
470 mux {
471 groups = "spi1_3_grp";
472 function = "spi1";
473 };
474
475 conf {
476 groups = "spi1_3_grp";
477 bias-disable;
478 slew-rate = <SLEW_RATE_SLOW>;
479 power-source = <IO_STANDARD_LVCMOS18>;
480 };
481
482 mux-cs {
483 groups = "spi1_ss_9_grp", "spi1_ss_10_grp",
484 "spi1_ss_11_grp";
485 function = "spi1_ss";
486 };
487
488 conf-cs {
489 groups = "spi1_ss_9_grp", "spi1_ss_10_grp",
490 "spi1_ss_11_grp";
491 bias-disable;
492 };
493 };
494};
495
Michal Simeka335bd22016-04-07 16:00:11 +0200496&rtc {
497 status = "okay";
498};
499
500&spi0 {
501 status = "okay";
502 num-cs = <1>;
Michal Simekf7b922a2021-05-10 13:14:02 +0200503 pinctrl-names = "default";
504 pinctrl-0 = <&pinctrl_spi0_default>;
505
Michal Simek393f9db2018-03-27 13:09:15 +0200506 spi0_flash0: flash@0 {
Michal Simeka335bd22016-04-07 16:00:11 +0200507 #address-cells = <1>;
508 #size-cells = <1>;
Michal Simek393f9db2018-03-27 13:09:15 +0200509 compatible = "sst,sst25wf080", "jedec,spi-nor";
Michal Simeka335bd22016-04-07 16:00:11 +0200510 spi-max-frequency = <50000000>;
511 reg = <0>;
512
Michal Simek393f9db2018-03-27 13:09:15 +0200513 partition@0 {
Amit Kumar Mahapatra5390cc902020-02-17 07:50:05 -0700514 label = "spi0-data";
Michal Simeka335bd22016-04-07 16:00:11 +0200515 reg = <0x0 0x100000>;
516 };
517 };
518};
519
520&spi1 {
521 status = "okay";
522 num-cs = <1>;
Michal Simekf7b922a2021-05-10 13:14:02 +0200523 pinctrl-names = "default";
524 pinctrl-0 = <&pinctrl_spi1_default>;
525
Michal Simek393f9db2018-03-27 13:09:15 +0200526 spi1_flash0: flash@0 {
Michal Simeka335bd22016-04-07 16:00:11 +0200527 #address-cells = <1>;
528 #size-cells = <1>;
Michal Simek393f9db2018-03-27 13:09:15 +0200529 compatible = "atmel,at45db041e", "atmel,at45", "atmel,dataflash";
Michal Simeka335bd22016-04-07 16:00:11 +0200530 spi-max-frequency = <20000000>;
531 reg = <0>;
532
Michal Simek393f9db2018-03-27 13:09:15 +0200533 partition@0 {
Amit Kumar Mahapatra5390cc902020-02-17 07:50:05 -0700534 label = "spi1-data";
Michal Simeka335bd22016-04-07 16:00:11 +0200535 reg = <0x0 0x84000>;
536 };
537 };
538};
539
540/* ULPI SMSC USB3320 */
541&usb1 {
542 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +0200543 pinctrl-names = "default";
544 pinctrl-0 = <&pinctrl_usb1_default>;
Michal Simeka4117002016-04-05 12:01:16 +0200545};
546
547&dwc3_1 {
548 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +0200549 dr_mode = "host";
550};
551
552&uart0 {
553 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +0200554 pinctrl-names = "default";
555 pinctrl-0 = <&pinctrl_uart0_default>;
Michal Simeka335bd22016-04-07 16:00:11 +0200556};
557
558&uart1 {
559 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +0200560 pinctrl-names = "default";
561 pinctrl-0 = <&pinctrl_uart1_default>;
Michal Simeka335bd22016-04-07 16:00:11 +0200562};