]> git.sur5r.net Git - u-boot/blob - arch/arm/dts/zynqmp-zcu100-revC.dts
9114f9814045564388fca1e269e7066ccc7a2b39
[u-boot] / 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                 #address-cells = <1>;
52                 #size-cells = <0>;
53                 autorepeat;
54                 sw4 {
55                         label = "sw4";
56                         gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
57                         linux,code = <KEY_POWER>;
58                         gpio-key,wakeup;
59                         autorepeat;
60                 };
61         };
62
63         iio-hwmon {
64                 compatible = "iio-hwmon";
65                 io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>,
66                               <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>,
67                               <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>,
68                               <&xilinx_ams 9>, <&xilinx_ams 10>,
69                               <&xilinx_ams 11>, <&xilinx_ams 12>;
70         };
71
72         leds {
73                 compatible = "gpio-leds";
74                 ds2 {
75                         label = "ds2";
76                         gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
77                         linux,default-trigger = "heartbeat";
78                 };
79
80                 ds3 {
81                         label = "ds3";
82                         gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
83                         linux,default-trigger = "phy0tx"; /* WLAN tx */
84                         default-state = "off";
85                 };
86
87                 ds4 {
88                         label = "ds4";
89                         gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
90                         linux,default-trigger = "phy0rx"; /* WLAN rx */
91                         default-state = "off";
92                 };
93
94                 ds5 {
95                         label = "ds5";
96                         gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
97                         linux,default-trigger = "bluetooth-power";
98                 };
99
100                 vbus_det { /* U5 USB5744 VBUS detection via MIO25 */
101                         label = "vbus_det";
102                         gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
103                         default-state = "on";
104                 };
105         };
106
107         ltc2954: ltc2954 { /* U7 */
108                 compatible = "lltc,ltc2954", "lltc,ltc2952";
109                 trigger-gpios = <&gpio 26 GPIO_ACTIVE_LOW>; /* INT line - input */
110                 /* If there is HW watchdog on mezzanine this signal should be connected there */
111                 watchdog-gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; /* MIO on PAD */
112                 kill-gpios = <&gpio 34 GPIO_ACTIVE_LOW>; /* KILL signal - output */
113         };
114
115         wmmcsdio_fixed: fixedregulator-mmcsdio {
116                 compatible = "regulator-fixed";
117                 regulator-name = "wmmcsdio_fixed";
118                 regulator-min-microvolt = <3300000>;
119                 regulator-max-microvolt = <3300000>;
120                 regulator-always-on;
121                 regulator-boot-on;
122         };
123
124         sdio_pwrseq: sdio_pwrseq {
125                 compatible = "mmc-pwrseq-simple";
126                 reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
127         };
128 };
129
130 &dcc {
131         status = "okay";
132 };
133
134 &gpio {
135         status = "okay";
136         gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
137                           "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
138                           "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
139                           "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
140                           "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
141                           "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
142                           "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
143                           "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
144                           "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
145                           "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
146                           "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
147                           "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
148                           "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
149                           "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
150                           "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
151                           "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
152                           "", "",
153                           "", "", "", "", "", "", "", "", "", "",
154                           "", "", "", "", "", "", "", "", "", "",
155                           "", "", "", "", "", "", "", "", "", "",
156                           "", "", "", "", "", "", "", "", "", "",
157                           "", "", "", "", "", "", "", "", "", "",
158                           "", "", "", "", "", "", "", "", "", "",
159                           "", "", "", "", "", "", "", "", "", "",
160                           "", "", "", "", "", "", "", "", "", "",
161                           "", "", "", "", "", "", "", "", "", "",
162                           "", "", "", "";
163 };
164
165 &gpu {
166         status = "okay";
167 };
168
169 &i2c1 {
170         status = "okay";
171         clock-frequency = <100000>;
172         i2c-mux@75 { /* u11 */
173                 compatible = "nxp,pca9548";
174                 #address-cells = <1>;
175                 #size-cells = <0>;
176                 reg = <0x75>;
177                 i2csw_0: i2c@0 {
178                         #address-cells = <1>;
179                         #size-cells = <0>;
180                         reg = <0>;
181                         label = "LS-I2C0";
182                 };
183                 i2csw_1: i2c@1 {
184                         #address-cells = <1>;
185                         #size-cells = <0>;
186                         reg = <1>;
187                         label = "LS-I2C1";
188                 };
189                 i2csw_2: i2c@2 {
190                         #address-cells = <1>;
191                         #size-cells = <0>;
192                         reg = <2>;
193                         label = "HS-I2C2";
194                 };
195                 i2csw_3: i2c@3 {
196                         #address-cells = <1>;
197                         #size-cells = <0>;
198                         reg = <3>;
199                         label = "HS-I2C3";
200                 };
201                 i2csw_4: i2c@4 {
202                         #address-cells = <1>;
203                         #size-cells = <0>;
204                         reg = <0x4>;
205
206                         pmic: pmic@5e { /* Custom TI PMIC u33 */
207                                 compatible = "ti,tps65086";
208                                 reg = <0x5e>;
209                                 interrupt-parent = <&gpio>;
210                                 interrupts = <77 GPIO_ACTIVE_LOW>;
211                                 #gpio-cells = <2>;
212                                 gpio-controller;
213                         };
214                 };
215                 i2csw_5: i2c@5 {
216                         #address-cells = <1>;
217                         #size-cells = <0>;
218                         reg = <5>;
219                         /* PS_PMBUS */
220                         ina226@40 { /* u35 */
221                                 compatible = "ti,ina226";
222                                 reg = <0x40>;
223                                 shunt-resistor = <10000>;
224                                 /* MIO31 is alert which should be routed to PMUFW */
225                         };
226                 };
227                 i2csw_6: i2c@6 {
228                         #address-cells = <1>;
229                         #size-cells = <0>;
230                         reg = <6>;
231                         /*
232                          * Not Connected
233                          */
234                 };
235                 i2csw_7: i2c@7 {
236                         #address-cells = <1>;
237                         #size-cells = <0>;
238                         reg = <7>;
239                         /*
240                          * usb5744 (DNP) - U5
241                          * 100kHz - this is default freq for us
242                          */
243                 };
244         };
245 };
246
247 &rtc {
248         status = "okay";
249 };
250
251 /* SD0 only supports 3.3V, no level shifter */
252 &sdhci0 {
253         status = "okay";
254         no-1-8-v;
255         broken-cd; /* CD has to be enabled by default */
256         disable-wp;
257         xlnx,mio_bank = <0>;
258 };
259
260 &sdhci1 {
261         status = "okay";
262         bus-width = <0x4>;
263         xlnx,mio_bank = <0>;
264         non-removable;
265         disable-wp;
266         cap-power-off-card;
267         mmc-pwrseq = <&sdio_pwrseq>;
268         vqmmc-supply = <&wmmcsdio_fixed>;
269         #address-cells = <1>;
270         #size-cells = <0>;
271         wlcore: wifi@2 {
272                 compatible = "ti,wl1831";
273                 reg = <2>;
274                 interrupt-parent = <&gpio>;
275                 interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
276         };
277 };
278
279 &serdes {
280         status = "okay";
281 };
282
283 &spi0 { /* Low Speed connector */
284         status = "okay";
285         label = "LS-SPI0";
286 };
287
288 &spi1 { /* High Speed connector */
289         status = "okay";
290         label = "HS-SPI1";
291 };
292
293 &uart0 {
294         status = "okay";
295         bluetooth {
296                 compatible = "ti,wl1831-st";
297                 enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
298         };
299
300 };
301
302 &uart1 {
303         status = "okay";
304
305 };
306
307 /* ULPI SMSC USB3320 */
308 &usb0 {
309         status = "okay";
310 };
311
312 &dwc3_0 {
313         status = "okay";
314         dr_mode = "peripheral";
315         phy-names = "usb3-phy";
316         phys = <&lane2 PHY_TYPE_USB3 0 0 26000000>;
317         maximum-speed = "super-speed";
318 };
319
320 /* ULPI SMSC USB3320 */
321 &usb1 {
322         status = "okay";
323 };
324
325 &dwc3_1 {
326         status = "okay";
327         dr_mode = "host";
328         phy-names = "usb3-phy";
329         phys = <&lane3 PHY_TYPE_USB3 1 0 26000000>;
330         maximum-speed = "super-speed";
331 };
332
333 &watchdog0 {
334         status = "okay";
335 };
336
337 &xilinx_ams {
338         status = "okay";
339 };
340
341 &ams_ps {
342         status = "okay";
343 };