blob: 21118c8cc34acdd00e613eca627be018657a79ed [file] [log] [blame]
Michal Simeka057d222018-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"
Michal Simekdf489262020-01-07 12:43:55 +010014#include "zynqmp-clk-ccf.dtsi"
Michal Simeka057d222018-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 Simeka057d222018-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 Holla13104ce2018-10-24 12:45:40 +010056 wakeup-source;
Michal Simeka057d222018-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 Simek2ef53362018-11-08 10:06:53 +010098 vbus-det { /* U5 USB5744 VBUS detection via MIO25 */
Michal Simeka057d222018-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 Simek1ef91fe2018-07-10 10:18:29 +0200107 status = "disabled";
Michal Simeka057d222018-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 Simek2ef53362018-11-08 10:06:53 +0100123 sdio_pwrseq: sdio-pwrseq {
Michal Simeka057d222018-03-28 14:37:47 +0200124 compatible = "mmc-pwrseq-simple";
125 reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
Jan Kiszka143c78c2019-01-24 09:28:59 +0100126 post-power-on-delay-ms = <10>;
Michal Simeka057d222018-03-28 14:37:47 +0200127 };
Michal Simek1a3a95a2019-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 Simeka057d222018-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 Simek1a3a95a2019-08-26 09:30:34 +0200225 u35: ina226@40 { /* u35 */
Michal Simeka057d222018-03-28 14:37:47 +0200226 compatible = "ti,ina226";
Michal Simek1a3a95a2019-08-26 09:30:34 +0200227 #io-channel-cells = <1>;
Michal Simeka057d222018-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 Simeka057d222018-03-28 14:37:47 +0200261 disable-wp;
262 xlnx,mio_bank = <0>;
263};
264
265&sdhci1 {
266 status = "okay";
267 bus-width = <0x4>;
268 xlnx,mio_bank = <0>;
269 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 Simekff629fd2018-05-31 09:50:10 +0200291 num-cs = <1>;
Michal Simeka057d222018-03-28 14:37:47 +0200292};
293
294&spi1 { /* High Speed connector */
295 status = "okay";
296 label = "HS-SPI1";
Michal Simekff629fd2018-05-31 09:50:10 +0200297 num-cs = <1>;
Michal Simeka057d222018-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 Simeka057d222018-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 Simeka057d222018-03-28 14:37:47 +0200341};
342
343&xilinx_ams {
344 status = "okay";
345};
346
347&ams_ps {
348 status = "okay";
349};