blob: d6c914c917f51ca34ef1a1c8d985147dcf0fc30b [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";
72 ds2 {
73 label = "ds2";
74 gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
75 linux,default-trigger = "heartbeat";
76 };
77
78 ds3 {
79 label = "ds3";
80 gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
81 linux,default-trigger = "phy0tx"; /* WLAN tx */
82 default-state = "off";
83 };
84
85 ds4 {
86 label = "ds4";
87 gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
88 linux,default-trigger = "phy0rx"; /* WLAN rx */
89 default-state = "off";
90 };
91
92 ds5 {
93 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 Simek6d034092018-03-28 14:37:47 +0200133};
134
135&dcc {
136 status = "okay";
137};
138
139&gpio {
140 status = "okay";
141 gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
142 "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
143 "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
144 "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
145 "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
146 "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
147 "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
148 "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
149 "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
150 "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
151 "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
152 "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
153 "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
154 "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
155 "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
156 "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
157 "", "",
158 "", "", "", "", "", "", "", "", "", "",
159 "", "", "", "", "", "", "", "", "", "",
160 "", "", "", "", "", "", "", "", "", "",
161 "", "", "", "", "", "", "", "", "", "",
162 "", "", "", "", "", "", "", "", "", "",
163 "", "", "", "", "", "", "", "", "", "",
164 "", "", "", "", "", "", "", "", "", "",
165 "", "", "", "", "", "", "", "", "", "",
166 "", "", "", "", "", "", "", "", "", "",
167 "", "", "", "";
168};
169
170&gpu {
171 status = "okay";
172};
173
174&i2c1 {
175 status = "okay";
176 clock-frequency = <100000>;
177 i2c-mux@75 { /* u11 */
178 compatible = "nxp,pca9548";
179 #address-cells = <1>;
180 #size-cells = <0>;
181 reg = <0x75>;
182 i2csw_0: i2c@0 {
183 #address-cells = <1>;
184 #size-cells = <0>;
185 reg = <0>;
186 label = "LS-I2C0";
187 };
188 i2csw_1: i2c@1 {
189 #address-cells = <1>;
190 #size-cells = <0>;
191 reg = <1>;
192 label = "LS-I2C1";
193 };
194 i2csw_2: i2c@2 {
195 #address-cells = <1>;
196 #size-cells = <0>;
197 reg = <2>;
198 label = "HS-I2C2";
199 };
200 i2csw_3: i2c@3 {
201 #address-cells = <1>;
202 #size-cells = <0>;
203 reg = <3>;
204 label = "HS-I2C3";
205 };
206 i2csw_4: i2c@4 {
207 #address-cells = <1>;
208 #size-cells = <0>;
209 reg = <0x4>;
210
211 pmic: pmic@5e { /* Custom TI PMIC u33 */
212 compatible = "ti,tps65086";
213 reg = <0x5e>;
214 interrupt-parent = <&gpio>;
215 interrupts = <77 GPIO_ACTIVE_LOW>;
216 #gpio-cells = <2>;
217 gpio-controller;
218 };
219 };
220 i2csw_5: i2c@5 {
221 #address-cells = <1>;
222 #size-cells = <0>;
223 reg = <5>;
224 /* PS_PMBUS */
Michal Simekf5c48642019-08-26 09:30:34 +0200225 u35: ina226@40 { /* u35 */
Michal Simek6d034092018-03-28 14:37:47 +0200226 compatible = "ti,ina226";
Michal Simekf5c48642019-08-26 09:30:34 +0200227 #io-channel-cells = <1>;
Michal Simek6d034092018-03-28 14:37:47 +0200228 reg = <0x40>;
229 shunt-resistor = <10000>;
230 /* MIO31 is alert which should be routed to PMUFW */
231 };
232 };
233 i2csw_6: i2c@6 {
234 #address-cells = <1>;
235 #size-cells = <0>;
236 reg = <6>;
237 /*
238 * Not Connected
239 */
240 };
241 i2csw_7: i2c@7 {
242 #address-cells = <1>;
243 #size-cells = <0>;
244 reg = <7>;
245 /*
246 * usb5744 (DNP) - U5
247 * 100kHz - this is default freq for us
248 */
249 };
250 };
251};
252
253&rtc {
254 status = "okay";
255};
256
257/* SD0 only supports 3.3V, no level shifter */
258&sdhci0 {
259 status = "okay";
260 no-1-8-v;
Michal Simek6d034092018-03-28 14:37:47 +0200261 disable-wp;
Michal Simek01a6da12020-07-22 17:42:43 +0200262 xlnx,mio-bank = <0>;
Michal Simek6d034092018-03-28 14:37:47 +0200263};
264
265&sdhci1 {
266 status = "okay";
267 bus-width = <0x4>;
Michal Simek01a6da12020-07-22 17:42:43 +0200268 xlnx,mio-bank = <0>;
Michal Simek6d034092018-03-28 14:37:47 +0200269 non-removable;
270 disable-wp;
271 cap-power-off-card;
272 mmc-pwrseq = <&sdio_pwrseq>;
273 vqmmc-supply = <&wmmcsdio_fixed>;
274 #address-cells = <1>;
275 #size-cells = <0>;
276 wlcore: wifi@2 {
277 compatible = "ti,wl1831";
278 reg = <2>;
279 interrupt-parent = <&gpio>;
280 interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
281 };
282};
283
284&serdes {
285 status = "okay";
286};
287
288&spi0 { /* Low Speed connector */
289 status = "okay";
290 label = "LS-SPI0";
Michal Simekc7e79482018-05-31 09:50:10 +0200291 num-cs = <1>;
Michal Simek6d034092018-03-28 14:37:47 +0200292};
293
294&spi1 { /* High Speed connector */
295 status = "okay";
296 label = "HS-SPI1";
Michal Simekc7e79482018-05-31 09:50:10 +0200297 num-cs = <1>;
Michal Simek6d034092018-03-28 14:37:47 +0200298};
299
300&uart0 {
301 status = "okay";
302 bluetooth {
303 compatible = "ti,wl1831-st";
304 enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
305 };
Michal Simek6d034092018-03-28 14:37:47 +0200306};
307
308&uart1 {
309 status = "okay";
310
311};
312
313/* ULPI SMSC USB3320 */
314&usb0 {
315 status = "okay";
316};
317
318&dwc3_0 {
319 status = "okay";
320 dr_mode = "peripheral";
321 phy-names = "usb3-phy";
322 phys = <&lane2 PHY_TYPE_USB3 0 0 26000000>;
323 maximum-speed = "super-speed";
324};
325
326/* ULPI SMSC USB3320 */
327&usb1 {
328 status = "okay";
329};
330
331&dwc3_1 {
332 status = "okay";
333 dr_mode = "host";
334 phy-names = "usb3-phy";
335 phys = <&lane3 PHY_TYPE_USB3 1 0 26000000>;
336 maximum-speed = "super-speed";
337};
338
339&watchdog0 {
340 status = "okay";
Michal Simek6d034092018-03-28 14:37:47 +0200341};
342
343&xilinx_ams {
344 status = "okay";
345};
346
347&ams_ps {
348 status = "okay";
349};