blob: 05491e9bbc0c309e4fcc5f25f601c21a3c3e6f9d [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 *
5 * (C) Copyright 2016 - 2018, 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.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/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>;
56 gpio-key,wakeup;
57 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
98 vbus_det { /* U5 USB5744 VBUS detection via MIO25 */
99 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
123 sdio_pwrseq: sdio_pwrseq {
124 compatible = "mmc-pwrseq-simple";
125 reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
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&gpu {
165 status = "okay";
166};
167
168&i2c1 {
169 status = "okay";
170 clock-frequency = <100000>;
171 i2c-mux@75 { /* u11 */
172 compatible = "nxp,pca9548";
173 #address-cells = <1>;
174 #size-cells = <0>;
175 reg = <0x75>;
176 i2csw_0: i2c@0 {
177 #address-cells = <1>;
178 #size-cells = <0>;
179 reg = <0>;
180 label = "LS-I2C0";
181 };
182 i2csw_1: i2c@1 {
183 #address-cells = <1>;
184 #size-cells = <0>;
185 reg = <1>;
186 label = "LS-I2C1";
187 };
188 i2csw_2: i2c@2 {
189 #address-cells = <1>;
190 #size-cells = <0>;
191 reg = <2>;
192 label = "HS-I2C2";
193 };
194 i2csw_3: i2c@3 {
195 #address-cells = <1>;
196 #size-cells = <0>;
197 reg = <3>;
198 label = "HS-I2C3";
199 };
200 i2csw_4: i2c@4 {
201 #address-cells = <1>;
202 #size-cells = <0>;
203 reg = <0x4>;
204
205 pmic: pmic@5e { /* Custom TI PMIC u33 */
206 compatible = "ti,tps65086";
207 reg = <0x5e>;
208 interrupt-parent = <&gpio>;
209 interrupts = <77 GPIO_ACTIVE_LOW>;
210 #gpio-cells = <2>;
211 gpio-controller;
212 };
213 };
214 i2csw_5: i2c@5 {
215 #address-cells = <1>;
216 #size-cells = <0>;
217 reg = <5>;
218 /* PS_PMBUS */
219 ina226@40 { /* u35 */
220 compatible = "ti,ina226";
221 reg = <0x40>;
222 shunt-resistor = <10000>;
223 /* MIO31 is alert which should be routed to PMUFW */
224 };
225 };
226 i2csw_6: i2c@6 {
227 #address-cells = <1>;
228 #size-cells = <0>;
229 reg = <6>;
230 /*
231 * Not Connected
232 */
233 };
234 i2csw_7: i2c@7 {
235 #address-cells = <1>;
236 #size-cells = <0>;
237 reg = <7>;
238 /*
239 * usb5744 (DNP) - U5
240 * 100kHz - this is default freq for us
241 */
242 };
243 };
244};
245
246&rtc {
247 status = "okay";
248};
249
250/* SD0 only supports 3.3V, no level shifter */
251&sdhci0 {
252 status = "okay";
253 no-1-8-v;
Michal Simek6d034092018-03-28 14:37:47 +0200254 disable-wp;
255 xlnx,mio_bank = <0>;
256};
257
258&sdhci1 {
259 status = "okay";
260 bus-width = <0x4>;
261 xlnx,mio_bank = <0>;
262 non-removable;
263 disable-wp;
264 cap-power-off-card;
265 mmc-pwrseq = <&sdio_pwrseq>;
266 vqmmc-supply = <&wmmcsdio_fixed>;
267 #address-cells = <1>;
268 #size-cells = <0>;
269 wlcore: wifi@2 {
270 compatible = "ti,wl1831";
271 reg = <2>;
272 interrupt-parent = <&gpio>;
273 interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
274 };
275};
276
277&serdes {
278 status = "okay";
279};
280
281&spi0 { /* Low Speed connector */
282 status = "okay";
283 label = "LS-SPI0";
Michal Simekc7e79482018-05-31 09:50:10 +0200284 num-cs = <1>;
Michal Simek6d034092018-03-28 14:37:47 +0200285};
286
287&spi1 { /* High Speed connector */
288 status = "okay";
289 label = "HS-SPI1";
Michal Simekc7e79482018-05-31 09:50:10 +0200290 num-cs = <1>;
Michal Simek6d034092018-03-28 14:37:47 +0200291};
292
293&uart0 {
294 status = "okay";
295 bluetooth {
296 compatible = "ti,wl1831-st";
297 enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
298 };
299
300};
301
302&uart1 {
303 status = "okay";
304
305};
306
307/* ULPI SMSC USB3320 */
308&usb0 {
309 status = "okay";
310};
311
312&dwc3_0 {
313 status = "okay";
314 dr_mode = "peripheral";
315 phy-names = "usb3-phy";
316 phys = <&lane2 PHY_TYPE_USB3 0 0 26000000>;
317 maximum-speed = "super-speed";
318};
319
320/* ULPI SMSC USB3320 */
321&usb1 {
322 status = "okay";
323};
324
325&dwc3_1 {
326 status = "okay";
327 dr_mode = "host";
328 phy-names = "usb3-phy";
329 phys = <&lane3 PHY_TYPE_USB3 1 0 26000000>;
330 maximum-speed = "super-speed";
331};
332
333&watchdog0 {
334 status = "okay";
Michal Simek767afeb2018-04-19 15:43:50 +0200335 reset-on-timeout;
Michal Simek6d034092018-03-28 14:37:47 +0200336};
337
338&xilinx_ams {
339 status = "okay";
340};
341
342&ams_ps {
343 status = "okay";
344};