blob: bbcc69c79673d51a3049211e26ba5c153ff70612 [file] [log] [blame]
Michal Simek6d034092018-03-28 14:37:47 +02001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * dts file for Xilinx ZynqMP ZCU100 revC
4 *
Michal Simekd31f1c92020-02-18 08:38:06 +01005 * (C) Copyright 2016 - 2020, Xilinx, Inc.
Michal Simek6d034092018-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 Simekcecf7f42020-01-07 12:43:55 +010014#include "zynqmp-clk-ccf.dtsi"
Michal Simek6d034092018-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 Simek6d034092018-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 Hollaad967af2018-10-24 12:45:40 +010056 wakeup-source;
Michal Simek6d034092018-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 Simekce906542020-11-26 14:25:02 +010072 led-ds2 {
Michal Simek6d034092018-03-28 14:37:47 +020073 label = "ds2";
74 gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
75 linux,default-trigger = "heartbeat";
76 };
77
Michal Simekce906542020-11-26 14:25:02 +010078 led-ds3 {
Michal Simek6d034092018-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 Simekce906542020-11-26 14:25:02 +010085 led-ds4 {
Michal Simek6d034092018-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 Simekce906542020-11-26 14:25:02 +010092 led-ds5 {
Michal Simek6d034092018-03-28 14:37:47 +020093 label = "ds5";
94 gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
95 linux,default-trigger = "bluetooth-power";
96 };
97
Michal Simek096d7f52018-11-08 10:06:53 +010098 vbus-det { /* U5 USB5744 VBUS detection via MIO25 */
Michal Simek6d034092018-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 Simek8418d2d2018-07-10 10:18:29 +0200107 status = "disabled";
Michal Simek6d034092018-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 Simek096d7f52018-11-08 10:06:53 +0100123 sdio_pwrseq: sdio-pwrseq {
Michal Simek6d034092018-03-28 14:37:47 +0200124 compatible = "mmc-pwrseq-simple";
125 reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
Jan Kiszka85eeaae2019-01-24 09:28:59 +0100126 post-power-on-delay-ms = <10>;
Michal Simek6d034092018-03-28 14:37:47 +0200127 };
Michal Simekf5c48642019-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 Simekce906542020-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 Simek6d034092018-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 Simekce906542020-11-26 14:25:02 +0100227 interrupts = <77 IRQ_TYPE_LEVEL_LOW>;
Michal Simek6d034092018-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 Simekf5c48642019-08-26 09:30:34 +0200237 u35: ina226@40 { /* u35 */
Michal Simek6d034092018-03-28 14:37:47 +0200238 compatible = "ti,ina226";
Michal Simekf5c48642019-08-26 09:30:34 +0200239 #io-channel-cells = <1>;
Michal Simek6d034092018-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 Simekce906542020-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 Simek6d034092018-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 Simek6d034092018-03-28 14:37:47 +0200280 disable-wp;
Michal Simek01a6da12020-07-22 17:42:43 +0200281 xlnx,mio-bank = <0>;
Michal Simek6d034092018-03-28 14:37:47 +0200282};
283
284&sdhci1 {
285 status = "okay";
286 bus-width = <0x4>;
Michal Simek01a6da12020-07-22 17:42:43 +0200287 xlnx,mio-bank = <0>;
Michal Simek6d034092018-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 Simek6d034092018-03-28 14:37:47 +0200303&spi0 { /* Low Speed connector */
304 status = "okay";
305 label = "LS-SPI0";
Michal Simekc7e79482018-05-31 09:50:10 +0200306 num-cs = <1>;
Michal Simek6d034092018-03-28 14:37:47 +0200307};
308
309&spi1 { /* High Speed connector */
310 status = "okay";
311 label = "HS-SPI1";
Michal Simekc7e79482018-05-31 09:50:10 +0200312 num-cs = <1>;
Michal Simek6d034092018-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 Simek6d034092018-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 Simek6d034092018-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 Simek6d034092018-03-28 14:37:47 +0200347 maximum-speed = "super-speed";
348};
349
350&watchdog0 {
351 status = "okay";
Michal Simek6d034092018-03-28 14:37:47 +0200352};
353
354&xilinx_ams {
355 status = "okay";
356};
357
358&ams_ps {
359 status = "okay";
360};
Michal Simekce906542020-11-26 14:25:02 +0100361
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>;
371};