blob: bcd9c3958ffa795efd8cf3d05165a7b3f2ab656b [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";
51 #address-cells = <1>;
52 #size-cells = <0>;
53 autorepeat;
54 sw4 {
55 label = "sw4";
56 gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
57 linux,code = <KEY_POWER>;
58 gpio-key,wakeup;
59 autorepeat;
60 };
61 };
62
63 iio-hwmon {
64 compatible = "iio-hwmon";
65 io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>,
66 <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>,
67 <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>,
68 <&xilinx_ams 9>, <&xilinx_ams 10>,
69 <&xilinx_ams 11>, <&xilinx_ams 12>;
70 };
71
72 leds {
73 compatible = "gpio-leds";
74 ds2 {
75 label = "ds2";
76 gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
77 linux,default-trigger = "heartbeat";
78 };
79
80 ds3 {
81 label = "ds3";
82 gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
83 linux,default-trigger = "phy0tx"; /* WLAN tx */
84 default-state = "off";
85 };
86
87 ds4 {
88 label = "ds4";
89 gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
90 linux,default-trigger = "phy0rx"; /* WLAN rx */
91 default-state = "off";
92 };
93
94 ds5 {
95 label = "ds5";
96 gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
97 linux,default-trigger = "bluetooth-power";
98 };
99
100 vbus_det { /* U5 USB5744 VBUS detection via MIO25 */
101 label = "vbus_det";
102 gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
103 default-state = "on";
104 };
105 };
106
107 ltc2954: ltc2954 { /* U7 */
108 compatible = "lltc,ltc2954", "lltc,ltc2952";
109 trigger-gpios = <&gpio 26 GPIO_ACTIVE_LOW>; /* INT line - input */
110 /* If there is HW watchdog on mezzanine this signal should be connected there */
111 watchdog-gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; /* MIO on PAD */
112 kill-gpios = <&gpio 34 GPIO_ACTIVE_LOW>; /* KILL signal - output */
113 };
114
115 wmmcsdio_fixed: fixedregulator-mmcsdio {
116 compatible = "regulator-fixed";
117 regulator-name = "wmmcsdio_fixed";
118 regulator-min-microvolt = <3300000>;
119 regulator-max-microvolt = <3300000>;
120 regulator-always-on;
121 regulator-boot-on;
122 };
123
124 sdio_pwrseq: sdio_pwrseq {
125 compatible = "mmc-pwrseq-simple";
126 reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
127 };
128};
129
130&dcc {
131 status = "okay";
132};
133
134&gpio {
135 status = "okay";
136 gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
137 "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
138 "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
139 "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
140 "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
141 "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
142 "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
143 "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
144 "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
145 "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
146 "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
147 "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
148 "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
149 "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
150 "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
151 "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
152 "", "",
153 "", "", "", "", "", "", "", "", "", "",
154 "", "", "", "", "", "", "", "", "", "",
155 "", "", "", "", "", "", "", "", "", "",
156 "", "", "", "", "", "", "", "", "", "",
157 "", "", "", "", "", "", "", "", "", "",
158 "", "", "", "", "", "", "", "", "", "",
159 "", "", "", "", "", "", "", "", "", "",
160 "", "", "", "", "", "", "", "", "", "",
161 "", "", "", "", "", "", "", "", "", "",
162 "", "", "", "";
163};
164
165&gpu {
166 status = "okay";
167};
168
169&i2c1 {
170 status = "okay";
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 GPIO_ACTIVE_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 ina226@40 { /* u35 */
221 compatible = "ti,ina226";
222 reg = <0x40>;
223 shunt-resistor = <10000>;
224 /* MIO31 is alert which should be routed to PMUFW */
225 };
226 };
227 i2csw_6: i2c@6 {
228 #address-cells = <1>;
229 #size-cells = <0>;
230 reg = <6>;
231 /*
232 * Not Connected
233 */
234 };
235 i2csw_7: i2c@7 {
236 #address-cells = <1>;
237 #size-cells = <0>;
238 reg = <7>;
239 /*
240 * usb5744 (DNP) - U5
241 * 100kHz - this is default freq for us
242 */
243 };
244 };
245};
246
247&rtc {
248 status = "okay";
249};
250
251/* SD0 only supports 3.3V, no level shifter */
252&sdhci0 {
253 status = "okay";
254 no-1-8-v;
255 broken-cd; /* CD has to be enabled by default */
256 disable-wp;
257 xlnx,mio_bank = <0>;
258};
259
260&sdhci1 {
261 status = "okay";
262 bus-width = <0x4>;
263 xlnx,mio_bank = <0>;
264 non-removable;
265 disable-wp;
266 cap-power-off-card;
267 mmc-pwrseq = <&sdio_pwrseq>;
268 vqmmc-supply = <&wmmcsdio_fixed>;
269 #address-cells = <1>;
270 #size-cells = <0>;
271 wlcore: wifi@2 {
272 compatible = "ti,wl1831";
273 reg = <2>;
274 interrupt-parent = <&gpio>;
275 interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
276 };
277};
278
279&serdes {
280 status = "okay";
281};
282
283&spi0 { /* Low Speed connector */
284 status = "okay";
285 label = "LS-SPI0";
286};
287
288&spi1 { /* High Speed connector */
289 status = "okay";
290 label = "HS-SPI1";
291};
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};