Merge branch 'master' of git://git.denx.de/u-boot
[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 - 2020, 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-ccf.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                         wakeup-source;
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                 post-power-on-delay-ms = <10>;
127         };
128
129         ina226 {
130                 compatible = "iio-hwmon";
131                 io-channels = <&u35 0>, <&u35 1>, <&u35 2>, <&u35 3>;
132         };
133 };
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 */
225                         u35: ina226@40 { /* u35 */
226                                 compatible = "ti,ina226";
227                                 #io-channel-cells = <1>;
228                                 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;
261         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";
291         num-cs = <1>;
292 };
293
294 &spi1 { /* High Speed connector */
295         status = "okay";
296         label = "HS-SPI1";
297         num-cs = <1>;
298 };
299
300 &uart0 {
301         status = "okay";
302         bluetooth {
303                 compatible = "ti,wl1831-st";
304                 enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
305         };
306 };
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";
341 };
342
343 &xilinx_ams {
344         status = "okay";
345 };
346
347 &ams_ps {
348         status = "okay";
349 };