blob: bbcc69c79673d51a3049211e26ba5c153ff70612 [file] [log] [blame]
Michal Simeka057d222018-03-28 14:37:47 +02001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * dts file for Xilinx ZynqMP ZCU100 revC
4 *
Michal Simek4f1b7f62020-02-18 08:38:06 +01005 * (C) Copyright 2016 - 2020, Xilinx, Inc.
Michal Simeka057d222018-03-28 14:37:47 +02006 *
7 * Michal Simek <michal.simek@xilinx.com>
8 * Nathalie Chan King Choy
9 */
10
11/dts-v1/;
12
13#include "zynqmp.dtsi"
Michal Simekdf489262020-01-07 12:43:55 +010014#include "zynqmp-clk-ccf.dtsi"
Michal Simeka057d222018-03-28 14:37:47 +020015#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/phy/phy.h>
19
20/ {
21 model = "ZynqMP ZCU100 RevC";
22 compatible = "xlnx,zynqmp-zcu100-revC", "xlnx,zynqmp-zcu100", "xlnx,zynqmp";
23
24 aliases {
25 gpio0 = &gpio;
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";
Michal Simeka057d222018-03-28 14:37:47 +020051 autorepeat;
52 sw4 {
53 label = "sw4";
54 gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
55 linux,code = <KEY_POWER>;
Sudeep Holla13104ce2018-10-24 12:45:40 +010056 wakeup-source;
Michal Simeka057d222018-03-28 14:37:47 +020057 autorepeat;
58 };
59 };
60
61 iio-hwmon {
62 compatible = "iio-hwmon";
63 io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>,
64 <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>,
65 <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>,
66 <&xilinx_ams 9>, <&xilinx_ams 10>,
67 <&xilinx_ams 11>, <&xilinx_ams 12>;
68 };
69
70 leds {
71 compatible = "gpio-leds";
Michal Simek958c0e92020-11-26 14:25:02 +010072 led-ds2 {
Michal Simeka057d222018-03-28 14:37:47 +020073 label = "ds2";
74 gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
75 linux,default-trigger = "heartbeat";
76 };
77
Michal Simek958c0e92020-11-26 14:25:02 +010078 led-ds3 {
Michal Simeka057d222018-03-28 14:37:47 +020079 label = "ds3";
80 gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
81 linux,default-trigger = "phy0tx"; /* WLAN tx */
82 default-state = "off";
83 };
84
Michal Simek958c0e92020-11-26 14:25:02 +010085 led-ds4 {
Michal Simeka057d222018-03-28 14:37:47 +020086 label = "ds4";
87 gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
88 linux,default-trigger = "phy0rx"; /* WLAN rx */
89 default-state = "off";
90 };
91
Michal Simek958c0e92020-11-26 14:25:02 +010092 led-ds5 {
Michal Simeka057d222018-03-28 14:37:47 +020093 label = "ds5";
94 gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
95 linux,default-trigger = "bluetooth-power";
96 };
97
Michal Simek2ef53362018-11-08 10:06:53 +010098 vbus-det { /* U5 USB5744 VBUS detection via MIO25 */
Michal Simeka057d222018-03-28 14:37:47 +020099 label = "vbus_det";
100 gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
101 default-state = "on";
102 };
103 };
104
105 ltc2954: ltc2954 { /* U7 */
106 compatible = "lltc,ltc2954", "lltc,ltc2952";
Michal Simek1ef91fe2018-07-10 10:18:29 +0200107 status = "disabled";
Michal Simeka057d222018-03-28 14:37:47 +0200108 trigger-gpios = <&gpio 26 GPIO_ACTIVE_LOW>; /* INT line - input */
109 /* If there is HW watchdog on mezzanine this signal should be connected there */
110 watchdog-gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; /* MIO on PAD */
111 kill-gpios = <&gpio 34 GPIO_ACTIVE_LOW>; /* KILL signal - output */
112 };
113
114 wmmcsdio_fixed: fixedregulator-mmcsdio {
115 compatible = "regulator-fixed";
116 regulator-name = "wmmcsdio_fixed";
117 regulator-min-microvolt = <3300000>;
118 regulator-max-microvolt = <3300000>;
119 regulator-always-on;
120 regulator-boot-on;
121 };
122
Michal Simek2ef53362018-11-08 10:06:53 +0100123 sdio_pwrseq: sdio-pwrseq {
Michal Simeka057d222018-03-28 14:37:47 +0200124 compatible = "mmc-pwrseq-simple";
125 reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
Jan Kiszka143c78c2019-01-24 09:28:59 +0100126 post-power-on-delay-ms = <10>;
Michal Simeka057d222018-03-28 14:37:47 +0200127 };
Michal Simek1a3a95a2019-08-26 09:30:34 +0200128
129 ina226 {
130 compatible = "iio-hwmon";
131 io-channels = <&u35 0>, <&u35 1>, <&u35 2>, <&u35 3>;
132 };
Michal Simek958c0e92020-11-26 14:25:02 +0100133
134 si5335a_0: clk26 {
135 compatible = "fixed-clock";
136 #clock-cells = <0>;
137 clock-frequency = <26000000>;
138 };
139
140 si5335a_1: clk27 {
141 compatible = "fixed-clock";
142 #clock-cells = <0>;
143 clock-frequency = <27000000>;
144 };
Michal Simeka057d222018-03-28 14:37:47 +0200145};
146
147&dcc {
148 status = "okay";
149};
150
151&gpio {
152 status = "okay";
153 gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
154 "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
155 "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
156 "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
157 "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
158 "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
159 "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
160 "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
161 "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
162 "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
163 "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
164 "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
165 "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
166 "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
167 "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
168 "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
169 "", "",
170 "", "", "", "", "", "", "", "", "", "",
171 "", "", "", "", "", "", "", "", "", "",
172 "", "", "", "", "", "", "", "", "", "",
173 "", "", "", "", "", "", "", "", "", "",
174 "", "", "", "", "", "", "", "", "", "",
175 "", "", "", "", "", "", "", "", "", "",
176 "", "", "", "", "", "", "", "", "", "",
177 "", "", "", "", "", "", "", "", "", "",
178 "", "", "", "", "", "", "", "", "", "",
179 "", "", "", "";
180};
181
182&gpu {
183 status = "okay";
184};
185
186&i2c1 {
187 status = "okay";
188 clock-frequency = <100000>;
189 i2c-mux@75 { /* u11 */
190 compatible = "nxp,pca9548";
191 #address-cells = <1>;
192 #size-cells = <0>;
193 reg = <0x75>;
194 i2csw_0: i2c@0 {
195 #address-cells = <1>;
196 #size-cells = <0>;
197 reg = <0>;
198 label = "LS-I2C0";
199 };
200 i2csw_1: i2c@1 {
201 #address-cells = <1>;
202 #size-cells = <0>;
203 reg = <1>;
204 label = "LS-I2C1";
205 };
206 i2csw_2: i2c@2 {
207 #address-cells = <1>;
208 #size-cells = <0>;
209 reg = <2>;
210 label = "HS-I2C2";
211 };
212 i2csw_3: i2c@3 {
213 #address-cells = <1>;
214 #size-cells = <0>;
215 reg = <3>;
216 label = "HS-I2C3";
217 };
218 i2csw_4: i2c@4 {
219 #address-cells = <1>;
220 #size-cells = <0>;
221 reg = <0x4>;
222
223 pmic: pmic@5e { /* Custom TI PMIC u33 */
224 compatible = "ti,tps65086";
225 reg = <0x5e>;
226 interrupt-parent = <&gpio>;
Michal Simek958c0e92020-11-26 14:25:02 +0100227 interrupts = <77 IRQ_TYPE_LEVEL_LOW>;
Michal Simeka057d222018-03-28 14:37:47 +0200228 #gpio-cells = <2>;
229 gpio-controller;
230 };
231 };
232 i2csw_5: i2c@5 {
233 #address-cells = <1>;
234 #size-cells = <0>;
235 reg = <5>;
236 /* PS_PMBUS */
Michal Simek1a3a95a2019-08-26 09:30:34 +0200237 u35: ina226@40 { /* u35 */
Michal Simeka057d222018-03-28 14:37:47 +0200238 compatible = "ti,ina226";
Michal Simek1a3a95a2019-08-26 09:30:34 +0200239 #io-channel-cells = <1>;
Michal Simeka057d222018-03-28 14:37:47 +0200240 reg = <0x40>;
241 shunt-resistor = <10000>;
242 /* MIO31 is alert which should be routed to PMUFW */
243 };
244 };
245 i2csw_6: i2c@6 {
246 #address-cells = <1>;
247 #size-cells = <0>;
248 reg = <6>;
249 /*
250 * Not Connected
251 */
252 };
253 i2csw_7: i2c@7 {
254 #address-cells = <1>;
255 #size-cells = <0>;
256 reg = <7>;
257 /*
258 * usb5744 (DNP) - U5
259 * 100kHz - this is default freq for us
260 */
261 };
262 };
263};
264
Michal Simek958c0e92020-11-26 14:25:02 +0100265&psgtr {
266 status = "okay";
267 /* usb3, dps */
268 clocks = <&si5335a_0>, <&si5335a_1>;
269 clock-names = "ref0", "ref1";
270};
271
Michal Simeka057d222018-03-28 14:37:47 +0200272&rtc {
273 status = "okay";
274};
275
276/* SD0 only supports 3.3V, no level shifter */
277&sdhci0 {
278 status = "okay";
279 no-1-8-v;
Michal Simeka057d222018-03-28 14:37:47 +0200280 disable-wp;
Michal Simek3b662642020-07-22 17:42:43 +0200281 xlnx,mio-bank = <0>;
Michal Simeka057d222018-03-28 14:37:47 +0200282};
283
284&sdhci1 {
285 status = "okay";
286 bus-width = <0x4>;
Michal Simek3b662642020-07-22 17:42:43 +0200287 xlnx,mio-bank = <0>;
Michal Simeka057d222018-03-28 14:37:47 +0200288 non-removable;
289 disable-wp;
290 cap-power-off-card;
291 mmc-pwrseq = <&sdio_pwrseq>;
292 vqmmc-supply = <&wmmcsdio_fixed>;
293 #address-cells = <1>;
294 #size-cells = <0>;
295 wlcore: wifi@2 {
296 compatible = "ti,wl1831";
297 reg = <2>;
298 interrupt-parent = <&gpio>;
299 interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
300 };
301};
302
Michal Simeka057d222018-03-28 14:37:47 +0200303&spi0 { /* Low Speed connector */
304 status = "okay";
305 label = "LS-SPI0";
Michal Simekff629fd2018-05-31 09:50:10 +0200306 num-cs = <1>;
Michal Simeka057d222018-03-28 14:37:47 +0200307};
308
309&spi1 { /* High Speed connector */
310 status = "okay";
311 label = "HS-SPI1";
Michal Simekff629fd2018-05-31 09:50:10 +0200312 num-cs = <1>;
Michal Simeka057d222018-03-28 14:37:47 +0200313};
314
315&uart0 {
316 status = "okay";
317 bluetooth {
318 compatible = "ti,wl1831-st";
319 enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
320 };
Michal Simeka057d222018-03-28 14:37:47 +0200321};
322
323&uart1 {
324 status = "okay";
325
326};
327
328/* ULPI SMSC USB3320 */
329&usb0 {
330 status = "okay";
331};
332
333&dwc3_0 {
334 status = "okay";
335 dr_mode = "peripheral";
Michal Simeka057d222018-03-28 14:37:47 +0200336 maximum-speed = "super-speed";
337};
338
339/* ULPI SMSC USB3320 */
340&usb1 {
341 status = "okay";
342};
343
344&dwc3_1 {
345 status = "okay";
346 dr_mode = "host";
Michal Simeka057d222018-03-28 14:37:47 +0200347 maximum-speed = "super-speed";
348};
349
350&watchdog0 {
351 status = "okay";
Michal Simeka057d222018-03-28 14:37:47 +0200352};
353
354&xilinx_ams {
355 status = "okay";
356};
357
358&ams_ps {
359 status = "okay";
Michal Simek958c0e92020-11-26 14:25:02 +0100360};
361
362&zynqmp_dpdma {
363 status = "okay";
364};
365
366&zynqmp_dpsub {
367 status = "okay";
368 phy-names = "dp-phy0", "dp-phy1";
369 phys = <&psgtr 1 PHY_TYPE_DP 0 1>,
370 <&psgtr 0 PHY_TYPE_DP 1 1>;
Michal Simeka057d222018-03-28 14:37:47 +0200371};