Merge tag 'u-boot-atmel-2020.01-b' of https://gitlab.denx.de/u-boot/custodians/u...
[oweals/u-boot.git] / arch / arm / dts / zynqmp-zcu100-revC.dts
1 // 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                 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                 status = "disabled";
108                 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         ina226 {
129                 compatible = "iio-hwmon";
130                 io-channels = <&u35 0>, <&u35 1>, <&u35 2>, <&u35 3>;
131         };
132 };
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 */
224                         u35: ina226@40 { /* u35 */
225                                 compatible = "ti,ina226";
226                                 #io-channel-cells = <1>;
227                                 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;
260         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";
290         num-cs = <1>;
291 };
292
293 &spi1 { /* High Speed connector */
294         status = "okay";
295         label = "HS-SPI1";
296         num-cs = <1>;
297 };
298
299 &uart0 {
300         status = "okay";
301         bluetooth {
302                 compatible = "ti,wl1831-st";
303                 enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
304         };
305 };
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";
340 };
341
342 &xilinx_ams {
343         status = "okay";
344 };
345
346 &ams_ps {
347         status = "okay";
348 };