blob: 7ea2a1c96f4e02cbde859772bcb85208459421c1 [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-xm015-dc1
4 *
Michal Simek821e32a2021-05-31 09:50:01 +02005 * (C) Copyright 2015 - 2021, Xilinx, Inc.
Michal Simeka335bd22016-04-07 16:00:11 +02006 *
7 * Michal Simek <michal.simek@xilinx.com>
Michal Simeka335bd22016-04-07 16:00:11 +02008 */
9
10/dts-v1/;
11
12#include "zynqmp.dtsi"
Michal Simeka6604b62017-12-08 14:50:42 +010013#include "zynqmp-clk-ccf.dtsi"
Michal Simekfe8cb0c2021-05-10 14:55:34 +020014#include <dt-bindings/phy/phy.h>
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-xm015-dc1 RevA";
20 compatible = "xlnx,zynqmp-zc1751", "xlnx,zynqmp";
21
22 aliases {
23 ethernet0 = &gem3;
Michal Simeka335bd22016-04-07 16:00:11 +020024 i2c0 = &i2c1;
25 mmc0 = &sdhci0;
26 mmc1 = &sdhci1;
27 rtc0 = &rtc;
28 serial0 = &uart0;
29 spi0 = &qspi;
30 usb0 = &usb0;
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 };
Michal Simekfe8cb0c2021-05-10 14:55:34 +020042
43 clock_si5338_0: clk27 { /* u55 SI5338-GM */
44 compatible = "fixed-clock";
45 #clock-cells = <0>;
46 clock-frequency = <27000000>;
47 };
48
49 clock_si5338_2: clk26 {
50 compatible = "fixed-clock";
51 #clock-cells = <0>;
52 clock-frequency = <26000000>;
53 };
54
55 clock_si5338_3: clk150 {
56 compatible = "fixed-clock";
57 #clock-cells = <0>;
58 clock-frequency = <150000000>;
59 };
60};
61
Michal Simeka335bd22016-04-07 16:00:11 +020062&fpd_dma_chan1 {
63 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +020064};
65
66&fpd_dma_chan2 {
67 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +020068};
69
70&fpd_dma_chan3 {
71 status = "okay";
72};
73
74&fpd_dma_chan4 {
75 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +020076};
77
78&fpd_dma_chan5 {
79 status = "okay";
80};
81
82&fpd_dma_chan6 {
83 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +020084};
85
86&fpd_dma_chan7 {
87 status = "okay";
88};
89
90&fpd_dma_chan8 {
91 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +020092};
93
94&gem3 {
95 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +020096 phy-handle = <&phy0>;
97 phy-mode = "rgmii-id";
Michal Simekf7b922a2021-05-10 13:14:02 +020098 pinctrl-names = "default";
99 pinctrl-0 = <&pinctrl_gem3_default>;
Michal Simek393decf2019-08-08 12:44:22 +0200100 phy0: ethernet-phy@0 {
Michal Simeka335bd22016-04-07 16:00:11 +0200101 reg = <0>;
102 };
103};
104
105&gpio {
106 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +0200107 pinctrl-names = "default";
108 pinctrl-0 = <&pinctrl_gpio_default>;
Michal Simeka335bd22016-04-07 16:00:11 +0200109};
110
111&gpu {
112 status = "okay";
113};
114
115&i2c1 {
116 status = "okay";
117 clock-frequency = <400000>;
Michal Simekf7b922a2021-05-10 13:14:02 +0200118 pinctrl-names = "default", "gpio";
119 pinctrl-0 = <&pinctrl_i2c1_default>;
120 pinctrl-1 = <&pinctrl_i2c1_gpio>;
121 scl-gpios = <&gpio 36 GPIO_ACTIVE_HIGH>;
122 sda-gpios = <&gpio 37 GPIO_ACTIVE_HIGH>;
Michal Simekc454c6f2018-03-27 13:15:17 +0200123
124 eeprom: eeprom@55 {
Michal Simek28cf3ba2018-03-27 10:54:25 +0200125 compatible = "atmel,24c64"; /* 24AA64 */
Michal Simeka335bd22016-04-07 16:00:11 +0200126 reg = <0x55>;
127 };
128};
129
Michal Simekf7b922a2021-05-10 13:14:02 +0200130&pinctrl0 {
131 status = "okay";
132 pinctrl_i2c1_default: i2c1-default {
133 mux {
134 groups = "i2c1_9_grp";
135 function = "i2c1";
136 };
137
138 conf {
139 groups = "i2c1_9_grp";
140 bias-pull-up;
141 slew-rate = <SLEW_RATE_SLOW>;
142 power-source = <IO_STANDARD_LVCMOS18>;
143 };
144 };
145
146 pinctrl_i2c1_gpio: i2c1-gpio {
147 mux {
148 groups = "gpio0_36_grp", "gpio0_37_grp";
149 function = "gpio0";
150 };
151
152 conf {
153 groups = "gpio0_36_grp", "gpio0_37_grp";
154 slew-rate = <SLEW_RATE_SLOW>;
155 power-source = <IO_STANDARD_LVCMOS18>;
156 };
157 };
158
159 pinctrl_uart0_default: uart0-default {
160 mux {
161 groups = "uart0_8_grp";
162 function = "uart0";
163 };
164
165 conf {
166 groups = "uart0_8_grp";
167 slew-rate = <SLEW_RATE_SLOW>;
168 power-source = <IO_STANDARD_LVCMOS18>;
169 };
170
171 conf-rx {
172 pins = "MIO34";
173 bias-high-impedance;
174 };
175
176 conf-tx {
177 pins = "MIO35";
178 bias-disable;
179 };
180 };
181
182 pinctrl_usb0_default: usb0-default {
183 mux {
184 groups = "usb0_0_grp";
185 function = "usb0";
186 };
187
188 conf {
189 groups = "usb0_0_grp";
Michal Simekf7b922a2021-05-10 13:14:02 +0200190 power-source = <IO_STANDARD_LVCMOS18>;
191 };
192
193 conf-rx {
194 pins = "MIO52", "MIO53", "MIO55";
195 bias-high-impedance;
Ashok Reddy Soma4d0ecf62022-06-15 12:16:13 +0200196 drive-strength = <12>;
197 slew-rate = <SLEW_RATE_FAST>;
Michal Simekf7b922a2021-05-10 13:14:02 +0200198 };
199
200 conf-tx {
201 pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
202 "MIO60", "MIO61", "MIO62", "MIO63";
203 bias-disable;
Ashok Reddy Soma4d0ecf62022-06-15 12:16:13 +0200204 drive-strength = <4>;
205 slew-rate = <SLEW_RATE_SLOW>;
Michal Simekf7b922a2021-05-10 13:14:02 +0200206 };
207 };
208
209 pinctrl_gem3_default: gem3-default {
210 mux {
211 function = "ethernet3";
212 groups = "ethernet3_0_grp";
213 };
214
215 conf {
216 groups = "ethernet3_0_grp";
217 slew-rate = <SLEW_RATE_SLOW>;
218 power-source = <IO_STANDARD_LVCMOS18>;
219 };
220
221 conf-rx {
222 pins = "MIO70", "MIO71", "MIO72", "MIO73", "MIO74",
223 "MIO75";
224 bias-high-impedance;
225 low-power-disable;
226 };
227
228 conf-tx {
229 pins = "MIO64", "MIO65", "MIO66", "MIO67", "MIO68",
230 "MIO69";
231 bias-disable;
232 low-power-enable;
233 };
234
235 mux-mdio {
236 function = "mdio3";
237 groups = "mdio3_0_grp";
238 };
239
240 conf-mdio {
241 groups = "mdio3_0_grp";
242 slew-rate = <SLEW_RATE_SLOW>;
243 power-source = <IO_STANDARD_LVCMOS18>;
244 bias-disable;
245 };
246 };
247
248 pinctrl_sdhci0_default: sdhci0-default {
249 mux {
250 groups = "sdio0_0_grp";
251 function = "sdio0";
252 };
253
254 conf {
255 groups = "sdio0_0_grp";
256 slew-rate = <SLEW_RATE_SLOW>;
257 power-source = <IO_STANDARD_LVCMOS18>;
258 bias-disable;
259 };
260
261 mux-cd {
262 groups = "sdio0_cd_0_grp";
263 function = "sdio0_cd";
264 };
265
266 conf-cd {
267 groups = "sdio0_cd_0_grp";
268 bias-high-impedance;
269 bias-pull-up;
270 slew-rate = <SLEW_RATE_SLOW>;
271 power-source = <IO_STANDARD_LVCMOS18>;
272 };
273
274 mux-wp {
275 groups = "sdio0_wp_0_grp";
276 function = "sdio0_wp";
277 };
278
279 conf-wp {
280 groups = "sdio0_wp_0_grp";
281 bias-high-impedance;
282 bias-pull-up;
283 slew-rate = <SLEW_RATE_SLOW>;
284 power-source = <IO_STANDARD_LVCMOS18>;
285 };
286 };
287
288 pinctrl_sdhci1_default: sdhci1-default {
289 mux {
290 groups = "sdio1_0_grp";
291 function = "sdio1";
292 };
293
294 conf {
295 groups = "sdio1_0_grp";
296 slew-rate = <SLEW_RATE_SLOW>;
297 power-source = <IO_STANDARD_LVCMOS18>;
298 bias-disable;
299 };
300
301 mux-cd {
302 groups = "sdio1_cd_0_grp";
303 function = "sdio1_cd";
304 };
305
306 conf-cd {
307 groups = "sdio1_cd_0_grp";
308 bias-high-impedance;
309 bias-pull-up;
310 slew-rate = <SLEW_RATE_SLOW>;
311 power-source = <IO_STANDARD_LVCMOS18>;
312 };
313
314 mux-wp {
315 groups = "sdio1_wp_0_grp";
316 function = "sdio1_wp";
317 };
318
319 conf-wp {
320 groups = "sdio1_wp_0_grp";
321 bias-high-impedance;
322 bias-pull-up;
323 slew-rate = <SLEW_RATE_SLOW>;
324 power-source = <IO_STANDARD_LVCMOS18>;
325 };
326 };
327
328 pinctrl_gpio_default: gpio-default {
329 mux {
330 function = "gpio0";
331 groups = "gpio0_38_grp";
332 };
333
334 conf {
335 groups = "gpio0_38_grp";
336 bias-disable;
337 slew-rate = <SLEW_RATE_SLOW>;
338 power-source = <IO_STANDARD_LVCMOS18>;
339 };
340 };
341};
342
Michal Simekae7230c2021-06-03 15:18:04 +0200343&psgtr {
344 status = "okay";
345 /* dp, usb3, sata */
346 clocks = <&clock_si5338_0>, <&clock_si5338_2>, <&clock_si5338_3>;
347 clock-names = "ref1", "ref2", "ref3";
348};
349
Michal Simeka335bd22016-04-07 16:00:11 +0200350&qspi {
351 status = "okay";
352 flash@0 {
Neil Armstronga009fa72019-02-10 10:16:20 +0000353 compatible = "m25p80", "jedec,spi-nor"; /* Micron MT25QU512ABB8ESF */
Michal Simeka335bd22016-04-07 16:00:11 +0200354 #address-cells = <1>;
355 #size-cells = <1>;
356 reg = <0x0>;
Amit Kumar Mahapatraa02408b2022-05-10 16:33:01 +0200357 spi-tx-bus-width = <4>;
Michal Simeka335bd22016-04-07 16:00:11 +0200358 spi-rx-bus-width = <4>;
359 spi-max-frequency = <108000000>; /* Based on DC1 spec */
Michal Simek70fafdf2020-02-14 14:19:56 +0100360 partition@0 { /* for testing purpose */
Michal Simeka335bd22016-04-07 16:00:11 +0200361 label = "qspi-fsbl-uboot";
362 reg = <0x0 0x100000>;
363 };
Michal Simek70fafdf2020-02-14 14:19:56 +0100364 partition@100000 { /* for testing purpose */
Michal Simeka335bd22016-04-07 16:00:11 +0200365 label = "qspi-linux";
366 reg = <0x100000 0x500000>;
367 };
Michal Simek70fafdf2020-02-14 14:19:56 +0100368 partition@600000 { /* for testing purpose */
Michal Simeka335bd22016-04-07 16:00:11 +0200369 label = "qspi-device-tree";
370 reg = <0x600000 0x20000>;
371 };
Michal Simek70fafdf2020-02-14 14:19:56 +0100372 partition@620000 { /* for testing purpose */
Michal Simeka335bd22016-04-07 16:00:11 +0200373 label = "qspi-rootfs";
374 reg = <0x620000 0x5E0000>;
375 };
376 };
377};
378
379&rtc {
380 status = "okay";
381};
382
383&sata {
384 status = "okay";
385 /* SATA phy OOB timing settings */
386 ceva,p0-cominit-params = /bits/ 8 <0x1B 0x4D 0x18 0x28>;
387 ceva,p0-comwake-params = /bits/ 8 <0x06 0x19 0x08 0x0E>;
388 ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
389 ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
390 ceva,p1-cominit-params = /bits/ 8 <0x1B 0x4D 0x18 0x28>;
391 ceva,p1-comwake-params = /bits/ 8 <0x06 0x19 0x08 0x0E>;
392 ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
393 ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
Michal Simekfe8cb0c2021-05-10 14:55:34 +0200394 phy-names = "sata-phy";
395 phys = <&psgtr 3 PHY_TYPE_SATA 1 3>;
Michal Simeka335bd22016-04-07 16:00:11 +0200396};
397
398/* eMMC */
399&sdhci0 {
400 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +0200401 pinctrl-names = "default";
402 pinctrl-0 = <&pinctrl_sdhci0_default>;
Michal Simeka335bd22016-04-07 16:00:11 +0200403 bus-width = <8>;
Michal Simek3b662642020-07-22 17:42:43 +0200404 xlnx,mio-bank = <0>;
Michal Simeka335bd22016-04-07 16:00:11 +0200405};
406
407/* SD1 with level shifter */
408&sdhci1 {
409 status = "okay";
Manish Naranie2ba0932020-02-13 23:37:30 -0700410 /*
411 * This property should be removed for supporting UHS mode
412 */
413 no-1-8-v;
Michal Simekf7b922a2021-05-10 13:14:02 +0200414 pinctrl-names = "default";
415 pinctrl-0 = <&pinctrl_sdhci1_default>;
Michal Simek3b662642020-07-22 17:42:43 +0200416 xlnx,mio-bank = <1>;
Michal Simeka335bd22016-04-07 16:00:11 +0200417};
418
419&uart0 {
420 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +0200421 pinctrl-names = "default";
422 pinctrl-0 = <&pinctrl_uart0_default>;
Michal Simeka335bd22016-04-07 16:00:11 +0200423};
424
425/* ULPI SMSC USB3320 */
426&usb0 {
427 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +0200428 pinctrl-names = "default";
429 pinctrl-0 = <&pinctrl_usb0_default>;
Manish Naranif3c63382021-07-14 06:17:19 -0600430 phy-names = "usb3-phy";
431 phys = <&psgtr 2 PHY_TYPE_USB3 0 2>;
Michal Simeka4117002016-04-05 12:01:16 +0200432};
433
434&dwc3_0 {
435 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +0200436 dr_mode = "host";
Michal Simekfe8cb0c2021-05-10 14:55:34 +0200437 snps,usb3_lpm_capable;
Michal Simekeb4b55c2021-05-31 17:51:58 +0200438 maximum-speed = "super-speed";
Michal Simeka335bd22016-04-07 16:00:11 +0200439};
440
Michal Simek958c0e92020-11-26 14:25:02 +0100441&zynqmp_dpdma {
Michal Simeka335bd22016-04-07 16:00:11 +0200442 status = "okay";
Michal Simeka335bd22016-04-07 16:00:11 +0200443};
444
Michal Simek958c0e92020-11-26 14:25:02 +0100445&zynqmp_dpsub {
Michal Simeka335bd22016-04-07 16:00:11 +0200446 status = "okay";
Michal Simek51dd1e02021-06-14 14:58:35 +0200447 phy-names = "dp-phy0", "dp-phy1";
448 phys = <&psgtr 1 PHY_TYPE_DP 0 0>,
449 <&psgtr 0 PHY_TYPE_DP 1 1>;
Michal Simeka335bd22016-04-07 16:00:11 +0200450};