1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3 * dts file for Xilinx ZynqMP ZCU100 revC
4 *
5 * (C) Copyright 2016 - 2021, Xilinx, Inc.
6 *
7 * Michal Simek <michal.simek@xilinx.com>
8 * Nathalie Chan King Choy
9 */
10
11 /dts-v1/;
12
13 #include "zynqmp.dtsi"
14 #include "zynqmp-clk-ccf.dtsi"
15 #include <dt-bindings/input/input.h>
16 #include <dt-bindings/interrupt-controller/irq.h>
17 #include <dt-bindings/gpio/gpio.h>
18 #include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
19 #include <dt-bindings/phy/phy.h>
20
21 / {
22 model = "ZynqMP ZCU100 RevC";
23 compatible = "xlnx,zynqmp-zcu100-revC", "xlnx,zynqmp-zcu100", "xlnx,zynqmp";
24
25 aliases {
26 i2c0 = &i2c1;
27 rtc0 = &rtc;
28 serial0 = &uart1;
29 serial1 = &uart0;
30 serial2 = &dcc;
31 spi0 = &spi0;
32 spi1 = &spi1;
33 usb0 = &usb0;
34 usb1 = &usb1;
35 mmc0 = &sdhci0;
36 mmc1 = &sdhci1;
37 };
38
39 chosen {
40 bootargs = "earlycon";
41 stdout-path = "serial0:115200n8";
42 };
43
44 memory@0 {
45 device_type = "memory";
46 reg = <0x0 0x0 0x0 0x80000000>;
47 };
48
49 gpio-keys {
50 compatible = "gpio-keys";
51 autorepeat;
52 switch-4 {
53 label = "sw4";
54 gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
55 linux,code = <KEY_POWER>;
56 wakeup-source;
57 autorepeat;
58 };
59 };
60
61 leds {
62 compatible = "gpio-leds";
63 led-ds2 {
64 label = "ds2";
65 gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
66 linux,default-trigger = "heartbeat";
67 };
68
69 led-ds3 {
70 label = "ds3";
71 gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
72 linux,default-trigger = "phy0tx"; /* WLAN tx */
73 default-state = "off";
74 };
75
76 led-ds4 {
77 label = "ds4";
78 gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
79 linux,default-trigger = "phy0rx"; /* WLAN rx */
80 default-state = "off";
81 };
82
83 led-ds5 {
84 label = "ds5";
85 gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
86 linux,default-trigger = "bluetooth-power";
87 };
88
89 vbus-det { /* U5 USB5744 VBUS detection via MIO25 */
90 label = "vbus_det";
91 gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
92 default-state = "on";
93 };
94 };
95
96 wmmcsdio_fixed: fixedregulator-mmcsdio {
97 compatible = "regulator-fixed";
98 regulator-name = "wmmcsdio_fixed";
99 regulator-min-microvolt = <3300000>;
100 regulator-max-microvolt = <3300000>;
101 regulator-always-on;
102 regulator-boot-on;
103 };
104
105 sdio_pwrseq: sdio-pwrseq {
106 compatible = "mmc-pwrseq-simple";
107 reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
108 post-power-on-delay-ms = <10>;
109 };
110
111 ina226 {
112 compatible = "iio-hwmon";
113 io-channels = <&u35 0>, <&u35 1>, <&u35 2>, <&u35 3>;
114 };
115
116 si5335_0: si5335_0 { /* clk0_usb - u23 */
117 compatible = "fixed-clock";
118 #clock-cells = <0>;
119 clock-frequency = <26000000>;
120 };
121
122 si5335_1: si5335_1 { /* clk1_dp - u23 */
123 compatible = "fixed-clock";
124 #clock-cells = <0>;
125 clock-frequency = <27000000>;
126 };
127 };
128
129 &dcc {
130 status = "okay";
131 };
132
133 &gpio {
134 status = "okay";
135 gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
136 "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
137 "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
138 "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
139 "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
140 "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
141 "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
142 "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
143 "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
144 "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
145 "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
146 "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
147 "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
148 "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
149 "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
150 "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
151 "", "",
152 "", "", "", "", "", "", "", "", "", "",
153 "", "", "", "", "", "", "", "", "", "",
154 "", "", "", "", "", "", "", "", "", "",
155 "", "", "", "", "", "", "", "", "", "",
156 "", "", "", "", "", "", "", "", "", "",
157 "", "", "", "", "", "", "", "", "", "",
158 "", "", "", "", "", "", "", "", "", "",
159 "", "", "", "", "", "", "", "", "", "",
160 "", "", "", "", "", "", "", "", "", "",
161 "", "", "", "";
162 };
163
164 &i2c1 {
165 status = "okay";
166 pinctrl-names = "default", "gpio";
167 pinctrl-0 = <&pinctrl_i2c1_default>;
168 pinctrl-1 = <&pinctrl_i2c1_gpio>;
169 scl-gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
170 sda-gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
171 clock-frequency = <100000>;
172 i2c-mux@75 { /* u11 */
173 compatible = "nxp,pca9548";
174 #address-cells = <1>;
175 #size-cells = <0>;
176 reg = <0x75>;
177 i2csw_0: i2c@0 {
178 #address-cells = <1>;
179 #size-cells = <0>;
180 reg = <0>;
181 label = "LS-I2C0";
182 };
183 i2csw_1: i2c@1 {
184 #address-cells = <1>;
185 #size-cells = <0>;
186 reg = <1>;
187 label = "LS-I2C1";
188 };
189 i2csw_2: i2c@2 {
190 #address-cells = <1>;
191 #size-cells = <0>;
192 reg = <2>;
193 label = "HS-I2C2";
194 };
195 i2csw_3: i2c@3 {
196 #address-cells = <1>;
197 #size-cells = <0>;
198 reg = <3>;
199 label = "HS-I2C3";
200 };
201 i2csw_4: i2c@4 {
202 #address-cells = <1>;
203 #size-cells = <0>;
204 reg = <0x4>;
205
206 pmic: pmic@5e { /* Custom TI PMIC u33 */
207 compatible = "ti,tps65086";
208 reg = <0x5e>;
209 interrupt-parent = <&gpio>;
210 interrupts = <77 IRQ_TYPE_LEVEL_LOW>;
211 #gpio-cells = <2>;
212 gpio-controller;
213 };
214 };
215 i2csw_5: i2c@5 {
216 #address-cells = <1>;
217 #size-cells = <0>;
218 reg = <5>;
219 /* PS_PMBUS */
220 u35: ina226@40 { /* u35 */
221 compatible = "ti,ina226";
222 #io-channel-cells = <1>;
223 reg = <0x40>;
224 shunt-resistor = <10000>;
225 /* MIO31 is alert which should be routed to PMUFW */
226 };
227 };
228 i2csw_6: i2c@6 {
229 #address-cells = <1>;
230 #size-cells = <0>;
231 reg = <6>;
232 /*
233 * Not Connected
234 */
235 };
236 i2csw_7: i2c@7 {
237 #address-cells = <1>;
238 #size-cells = <0>;
239 reg = <7>;
240 /*
241 * usb5744 (DNP) - U5
242 * 100kHz - this is default freq for us
243 */
244 };
245 };
246 };
247
248 &pinctrl0 {
249 status = "okay";
250 pinctrl_i2c1_default: i2c1-default {
251 mux {
252 groups = "i2c1_1_grp";
253 function = "i2c1";
254 };
255
256 conf {
257 groups = "i2c1_1_grp";
258 bias-pull-up;
259 slew-rate = <SLEW_RATE_SLOW>;
260 power-source = <IO_STANDARD_LVCMOS18>;
261 };
262 };
263
264 pinctrl_i2c1_gpio: i2c1-gpio {
265 mux {
266 groups = "gpio0_4_grp", "gpio0_5_grp";
267 function = "gpio0";
268 };
269
270 conf {
271 groups = "gpio0_4_grp", "gpio0_5_grp";
272 slew-rate = <SLEW_RATE_SLOW>;
273 power-source = <IO_STANDARD_LVCMOS18>;
274 };
275 };
276
277 pinctrl_sdhci0_default: sdhci0-default {
278 mux {
279 groups = "sdio0_3_grp";
280 function = "sdio0";
281 };
282
283 conf {
284 groups = "sdio0_3_grp";
285 slew-rate = <SLEW_RATE_SLOW>;
286 power-source = <IO_STANDARD_LVCMOS18>;
287 bias-disable;
288 };
289
290 mux-cd {
291 groups = "sdio0_cd_0_grp";
292 function = "sdio0_cd";
293 };
294
295 conf-cd {
296 groups = "sdio0_cd_0_grp";
297 bias-high-impedance;
298 bias-pull-up;
299 slew-rate = <SLEW_RATE_SLOW>;
300 power-source = <IO_STANDARD_LVCMOS18>;
301 };
302 };
303
304 pinctrl_sdhci1_default: sdhci1-default {
305 mux {
306 groups = "sdio1_2_grp";
307 function = "sdio1";
308 };
309
310 conf {
311 groups = "sdio1_2_grp";
312 slew-rate = <SLEW_RATE_SLOW>;
313 power-source = <IO_STANDARD_LVCMOS18>;
314 bias-disable;
315 };
316 };
317
318 pinctrl_spi0_default: spi0-default {
319 mux {
320 groups = "spi0_3_grp";
321 function = "spi0";
322 };
323
324 conf {
325 groups = "spi0_3_grp";
326 bias-disable;
327 slew-rate = <SLEW_RATE_SLOW>;
328 power-source = <IO_STANDARD_LVCMOS18>;
329 };
330
331 mux-cs {
332 groups = "spi0_ss_9_grp";
333 function = "spi0_ss";
334 };
335
336 conf-cs {
337 groups = "spi0_ss_9_grp";
338 bias-disable;
339 };
340
341 };
342
343 pinctrl_spi1_default: spi1-default {
344 mux {
345 groups = "spi1_0_grp";
346 function = "spi1";
347 };
348
349 conf {
350 groups = "spi1_0_grp";
351 bias-disable;
352 slew-rate = <SLEW_RATE_SLOW>;
353 power-source = <IO_STANDARD_LVCMOS18>;
354 };
355
356 mux-cs {
357 groups = "spi1_ss_0_grp";
358 function = "spi1_ss";
359 };
360
361 conf-cs {
362 groups = "spi1_ss_0_grp";
363 bias-disable;
364 };
365
366 };
367
368 pinctrl_uart0_default: uart0-default {
369 mux {
370 groups = "uart0_0_grp";
371 function = "uart0";
372 };
373
374 conf {
375 groups = "uart0_0_grp";
376 slew-rate = <SLEW_RATE_SLOW>;
377 power-source = <IO_STANDARD_LVCMOS18>;
378 };
379
380 conf-rx {
381 pins = "MIO3";
382 bias-high-impedance;
383 };
384
385 conf-tx {
386 pins = "MIO2";
387 bias-disable;
388 };
389 };
390
391 pinctrl_uart1_default: uart1-default {
392 mux {
393 groups = "uart1_0_grp";
394 function = "uart1";
395 };
396
397 conf {
398 groups = "uart1_0_grp";
399 slew-rate = <SLEW_RATE_SLOW>;
400 power-source = <IO_STANDARD_LVCMOS18>;
401 };
402
403 conf-rx {
404 pins = "MIO1";
405 bias-high-impedance;
406 };
407
408 conf-tx {
409 pins = "MIO0";
410 bias-disable;
411 };
412 };
413
414 pinctrl_usb0_default: usb0-default {
415 mux {
416 groups = "usb0_0_grp";
417 function = "usb0";
418 };
419
420 conf {
421 groups = "usb0_0_grp";
422 slew-rate = <SLEW_RATE_SLOW>;
423 power-source = <IO_STANDARD_LVCMOS18>;
424 };
425
426 conf-rx {
427 pins = "MIO52", "MIO53", "MIO55";
428 bias-high-impedance;
429 };
430
431 conf-tx {
432 pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
433 "MIO60", "MIO61", "MIO62", "MIO63";
434 bias-disable;
435 };
436 };
437
438 pinctrl_usb1_default: usb1-default {
439 mux {
440 groups = "usb1_0_grp";
441 function = "usb1";
442 };
443
444 conf {
445 groups = "usb1_0_grp";
446 slew-rate = <SLEW_RATE_SLOW>;
447 power-source = <IO_STANDARD_LVCMOS18>;
448 };
449
450 conf-rx {
451 pins = "MIO64", "MIO65", "MIO67";
452 bias-high-impedance;
453 };
454
455 conf-tx {
456 pins = "MIO66", "MIO68", "MIO69", "MIO70", "MIO71",
457 "MIO72", "MIO73", "MIO74", "MIO75";
458 bias-disable;
459 };
460 };
461 };
462
463 &psgtr {
464 status = "okay";
465 /* usb3, dp */
466 clocks = <&si5335_0>, <&si5335_1>;
467 clock-names = "ref0", "ref1";
468 };
469
470 &rtc {
471 status = "okay";
472 };
473
474 /* SD0 only supports 3.3V, no level shifter */
475 &sdhci0 {
476 status = "okay";
477 no-1-8-v;
478 disable-wp;
479 pinctrl-names = "default";
480 pinctrl-0 = <&pinctrl_sdhci0_default>;
481 xlnx,mio-bank = <0>;
482 };
483
484 &sdhci1 {
485 status = "okay";
486 bus-width = <0x4>;
487 pinctrl-names = "default";
488 pinctrl-0 = <&pinctrl_sdhci1_default>;
489 xlnx,mio-bank = <0>;
490 non-removable;
491 disable-wp;
492 cap-power-off-card;
493 mmc-pwrseq = <&sdio_pwrseq>;
494 vqmmc-supply = <&wmmcsdio_fixed>;
495 #address-cells = <1>;
496 #size-cells = <0>;
497 wlcore: wifi@2 {
498 compatible = "ti,wl1831";
499 reg = <2>;
500 interrupt-parent = <&gpio>;
501 interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
502 };
503 };
504
505 &spi0 { /* Low Speed connector */
506 status = "okay";
507 label = "LS-SPI0";
508 num-cs = <1>;
509 pinctrl-names = "default";
510 pinctrl-0 = <&pinctrl_spi0_default>;
511 };
512
513 &spi1 { /* High Speed connector */
514 status = "okay";
515 label = "HS-SPI1";
516 num-cs = <1>;
517 pinctrl-names = "default";
518 pinctrl-0 = <&pinctrl_spi1_default>;
519 };
520
521 &uart0 {
522 status = "okay";
523 pinctrl-names = "default";
524 pinctrl-0 = <&pinctrl_uart0_default>;
525 bluetooth {
526 compatible = "ti,wl1831-st";
527 enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
528 };
529 };
530
531 &uart1 {
532 status = "okay";
533 pinctrl-names = "default";
534 pinctrl-0 = <&pinctrl_uart1_default>;
535 };
536
537 /* ULPI SMSC USB3320 */
538 &usb0 {
539 status = "okay";
540 pinctrl-names = "default";
541 pinctrl-0 = <&pinctrl_usb0_default>;
542 phy-names = "usb3-phy";
543 phys = <&psgtr 2 PHY_TYPE_USB3 0 0>;
544 };
545
546 &dwc3_0 {
547 status = "okay";
548 dr_mode = "peripheral";
549 maximum-speed = "super-speed";
550 };
551
552 /* ULPI SMSC USB3320 */
553 &usb1 {
554 status = "okay";
555 pinctrl-names = "default";
556 pinctrl-0 = <&pinctrl_usb1_default>;
557 phy-names = "usb3-phy";
558 phys = <&psgtr 3 PHY_TYPE_USB3 1 0>;
559 };
560
561 &dwc3_1 {
562 status = "okay";
563 dr_mode = "host";
564 maximum-speed = "super-speed";
565 };
566
567 &watchdog0 {
568 status = "okay";
569 };
570
571 &zynqmp_dpdma {
572 status = "okay";
573 };
574
575 &zynqmp_dpsub {
576 status = "okay";
577 phy-names = "dp-phy0", "dp-phy1";
578 phys = <&psgtr 1 PHY_TYPE_DP 0 1>,
579 <&psgtr 0 PHY_TYPE_DP 1 1>;
580 };
Cache object: 7d00cb5b5bf5f4996bf23474eee89ad8
|