blob: 2fffe177b589e23ceb76c37b5858c255a6fc4715 [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";
107 trigger-gpios = <&gpio 26 GPIO_ACTIVE_LOW>; /* INT line - input */
108 /* If there is HW watchdog on mezzanine this signal should be connected there */
109 watchdog-gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; /* MIO on PAD */
110 kill-gpios = <&gpio 34 GPIO_ACTIVE_LOW>; /* KILL signal - output */
111 };
112
113 wmmcsdio_fixed: fixedregulator-mmcsdio {
114 compatible = "regulator-fixed";
115 regulator-name = "wmmcsdio_fixed";
116 regulator-min-microvolt = <3300000>;
117 regulator-max-microvolt = <3300000>;
118 regulator-always-on;
119 regulator-boot-on;
120 };
121
122 sdio_pwrseq: sdio_pwrseq {
123 compatible = "mmc-pwrseq-simple";
124 reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
125 };
126};
127
128&dcc {
129 status = "okay";
130};
131
132&gpio {
133 status = "okay";
134 gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
135 "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
136 "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
137 "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
138 "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
139 "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
140 "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
141 "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
142 "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
143 "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
144 "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
145 "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
146 "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
147 "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
148 "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
149 "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
150 "", "",
151 "", "", "", "", "", "", "", "", "", "",
152 "", "", "", "", "", "", "", "", "", "",
153 "", "", "", "", "", "", "", "", "", "",
154 "", "", "", "", "", "", "", "", "", "",
155 "", "", "", "", "", "", "", "", "", "",
156 "", "", "", "", "", "", "", "", "", "",
157 "", "", "", "", "", "", "", "", "", "",
158 "", "", "", "", "", "", "", "", "", "",
159 "", "", "", "", "", "", "", "", "", "",
160 "", "", "", "";
161};
162
163&gpu {
164 status = "okay";
165};
166
167&i2c1 {
168 status = "okay";
169 clock-frequency = <100000>;
170 i2c-mux@75 { /* u11 */
171 compatible = "nxp,pca9548";
172 #address-cells = <1>;
173 #size-cells = <0>;
174 reg = <0x75>;
175 i2csw_0: i2c@0 {
176 #address-cells = <1>;
177 #size-cells = <0>;
178 reg = <0>;
179 label = "LS-I2C0";
180 };
181 i2csw_1: i2c@1 {
182 #address-cells = <1>;
183 #size-cells = <0>;
184 reg = <1>;
185 label = "LS-I2C1";
186 };
187 i2csw_2: i2c@2 {
188 #address-cells = <1>;
189 #size-cells = <0>;
190 reg = <2>;
191 label = "HS-I2C2";
192 };
193 i2csw_3: i2c@3 {
194 #address-cells = <1>;
195 #size-cells = <0>;
196 reg = <3>;
197 label = "HS-I2C3";
198 };
199 i2csw_4: i2c@4 {
200 #address-cells = <1>;
201 #size-cells = <0>;
202 reg = <0x4>;
203
204 pmic: pmic@5e { /* Custom TI PMIC u33 */
205 compatible = "ti,tps65086";
206 reg = <0x5e>;
207 interrupt-parent = <&gpio>;
208 interrupts = <77 GPIO_ACTIVE_LOW>;
209 #gpio-cells = <2>;
210 gpio-controller;
211 };
212 };
213 i2csw_5: i2c@5 {
214 #address-cells = <1>;
215 #size-cells = <0>;
216 reg = <5>;
217 /* PS_PMBUS */
218 ina226@40 { /* u35 */
219 compatible = "ti,ina226";
220 reg = <0x40>;
221 shunt-resistor = <10000>;
222 /* MIO31 is alert which should be routed to PMUFW */
223 };
224 };
225 i2csw_6: i2c@6 {
226 #address-cells = <1>;
227 #size-cells = <0>;
228 reg = <6>;
229 /*
230 * Not Connected
231 */
232 };
233 i2csw_7: i2c@7 {
234 #address-cells = <1>;
235 #size-cells = <0>;
236 reg = <7>;
237 /*
238 * usb5744 (DNP) - U5
239 * 100kHz - this is default freq for us
240 */
241 };
242 };
243};
244
245&rtc {
246 status = "okay";
247};
248
249/* SD0 only supports 3.3V, no level shifter */
250&sdhci0 {
251 status = "okay";
252 no-1-8-v;
Michal Simek6d034092018-03-28 14:37:47 +0200253 disable-wp;
254 xlnx,mio_bank = <0>;
255};
256
257&sdhci1 {
258 status = "okay";
259 bus-width = <0x4>;
260 xlnx,mio_bank = <0>;
261 non-removable;
262 disable-wp;
263 cap-power-off-card;
264 mmc-pwrseq = <&sdio_pwrseq>;
265 vqmmc-supply = <&wmmcsdio_fixed>;
266 #address-cells = <1>;
267 #size-cells = <0>;
268 wlcore: wifi@2 {
269 compatible = "ti,wl1831";
270 reg = <2>;
271 interrupt-parent = <&gpio>;
272 interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
273 };
274};
275
276&serdes {
277 status = "okay";
278};
279
280&spi0 { /* Low Speed connector */
281 status = "okay";
282 label = "LS-SPI0";
Michal Simekc7e79482018-05-31 09:50:10 +0200283 num-cs = <1>;
Michal Simek6d034092018-03-28 14:37:47 +0200284};
285
286&spi1 { /* High Speed connector */
287 status = "okay";
288 label = "HS-SPI1";
Michal Simekc7e79482018-05-31 09:50:10 +0200289 num-cs = <1>;
Michal Simek6d034092018-03-28 14:37:47 +0200290};
291
292&uart0 {
293 status = "okay";
294 bluetooth {
295 compatible = "ti,wl1831-st";
296 enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
297 };
298
299};
300
301&uart1 {
302 status = "okay";
303
304};
305
306/* ULPI SMSC USB3320 */
307&usb0 {
308 status = "okay";
309};
310
311&dwc3_0 {
312 status = "okay";
313 dr_mode = "peripheral";
314 phy-names = "usb3-phy";
315 phys = <&lane2 PHY_TYPE_USB3 0 0 26000000>;
316 maximum-speed = "super-speed";
317};
318
319/* ULPI SMSC USB3320 */
320&usb1 {
321 status = "okay";
322};
323
324&dwc3_1 {
325 status = "okay";
326 dr_mode = "host";
327 phy-names = "usb3-phy";
328 phys = <&lane3 PHY_TYPE_USB3 1 0 26000000>;
329 maximum-speed = "super-speed";
330};
331
332&watchdog0 {
333 status = "okay";
Michal Simek767afeb2018-04-19 15:43:50 +0200334 reset-on-timeout;
Michal Simek6d034092018-03-28 14:37:47 +0200335};
336
337&xilinx_ams {
338 status = "okay";
339};
340
341&ams_ps {
342 status = "okay";
343};