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