Merge branch 'master' of git://git.denx.de/u-boot-samsung
[platform/kernel/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                 #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         disable-wp;
256         xlnx,mio_bank = <0>;
257 };
258
259 &sdhci1 {
260         status = "okay";
261         bus-width = <0x4>;
262         xlnx,mio_bank = <0>;
263         non-removable;
264         disable-wp;
265         cap-power-off-card;
266         mmc-pwrseq = <&sdio_pwrseq>;
267         vqmmc-supply = <&wmmcsdio_fixed>;
268         #address-cells = <1>;
269         #size-cells = <0>;
270         wlcore: wifi@2 {
271                 compatible = "ti,wl1831";
272                 reg = <2>;
273                 interrupt-parent = <&gpio>;
274                 interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
275         };
276 };
277
278 &serdes {
279         status = "okay";
280 };
281
282 &spi0 { /* Low Speed connector */
283         status = "okay";
284         label = "LS-SPI0";
285 };
286
287 &spi1 { /* High Speed connector */
288         status = "okay";
289         label = "HS-SPI1";
290 };
291
292 &uart0 {
293         status = "okay";
294         bluetooth {
295                 compatible = "ti,wl1831-st";
296                 enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
297         };
298
299 };
300
301 &uart1 {
302         status = "okay";
303
304 };
305
306 /* ULPI SMSC USB3320 */
307 &usb0 {
308         status = "okay";
309 };
310
311 &dwc3_0 {
312         status = "okay";
313         dr_mode = "peripheral";
314         phy-names = "usb3-phy";
315         phys = <&lane2 PHY_TYPE_USB3 0 0 26000000>;
316         maximum-speed = "super-speed";
317 };
318
319 /* ULPI SMSC USB3320 */
320 &usb1 {
321         status = "okay";
322 };
323
324 &dwc3_1 {
325         status = "okay";
326         dr_mode = "host";
327         phy-names = "usb3-phy";
328         phys = <&lane3 PHY_TYPE_USB3 1 0 26000000>;
329         maximum-speed = "super-speed";
330 };
331
332 &watchdog0 {
333         status = "okay";
334         reset-on-timeout;
335 };
336
337 &xilinx_ams {
338         status = "okay";
339 };
340
341 &ams_ps {
342         status = "okay";
343 };