mtd: sf: Make sf_mtd.c more robust
[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                 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                 trigger-gpios = <&gpio 26 GPIO_ACTIVE_LOW>; /* INT line - input */
108                 /* If there is HW watchdog on mezzanine this signal should be connected there */
109                 watchdog-gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; /* MIO on PAD */
110                 kill-gpios = <&gpio 34 GPIO_ACTIVE_LOW>; /* KILL signal - output */
111         };
112
113         wmmcsdio_fixed: fixedregulator-mmcsdio {
114                 compatible = "regulator-fixed";
115                 regulator-name = "wmmcsdio_fixed";
116                 regulator-min-microvolt = <3300000>;
117                 regulator-max-microvolt = <3300000>;
118                 regulator-always-on;
119                 regulator-boot-on;
120         };
121
122         sdio_pwrseq: sdio_pwrseq {
123                 compatible = "mmc-pwrseq-simple";
124                 reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
125         };
126 };
127
128 &dcc {
129         status = "okay";
130 };
131
132 &gpio {
133         status = "okay";
134         gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
135                           "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
136                           "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
137                           "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
138                           "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
139                           "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
140                           "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
141                           "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
142                           "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
143                           "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
144                           "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
145                           "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
146                           "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
147                           "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
148                           "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
149                           "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
150                           "", "",
151                           "", "", "", "", "", "", "", "", "", "",
152                           "", "", "", "", "", "", "", "", "", "",
153                           "", "", "", "", "", "", "", "", "", "",
154                           "", "", "", "", "", "", "", "", "", "",
155                           "", "", "", "", "", "", "", "", "", "",
156                           "", "", "", "", "", "", "", "", "", "",
157                           "", "", "", "", "", "", "", "", "", "",
158                           "", "", "", "", "", "", "", "", "", "",
159                           "", "", "", "", "", "", "", "", "", "",
160                           "", "", "", "";
161 };
162
163 &gpu {
164         status = "okay";
165 };
166
167 &i2c1 {
168         status = "okay";
169         clock-frequency = <100000>;
170         i2c-mux@75 { /* u11 */
171                 compatible = "nxp,pca9548";
172                 #address-cells = <1>;
173                 #size-cells = <0>;
174                 reg = <0x75>;
175                 i2csw_0: i2c@0 {
176                         #address-cells = <1>;
177                         #size-cells = <0>;
178                         reg = <0>;
179                         label = "LS-I2C0";
180                 };
181                 i2csw_1: i2c@1 {
182                         #address-cells = <1>;
183                         #size-cells = <0>;
184                         reg = <1>;
185                         label = "LS-I2C1";
186                 };
187                 i2csw_2: i2c@2 {
188                         #address-cells = <1>;
189                         #size-cells = <0>;
190                         reg = <2>;
191                         label = "HS-I2C2";
192                 };
193                 i2csw_3: i2c@3 {
194                         #address-cells = <1>;
195                         #size-cells = <0>;
196                         reg = <3>;
197                         label = "HS-I2C3";
198                 };
199                 i2csw_4: i2c@4 {
200                         #address-cells = <1>;
201                         #size-cells = <0>;
202                         reg = <0x4>;
203
204                         pmic: pmic@5e { /* Custom TI PMIC u33 */
205                                 compatible = "ti,tps65086";
206                                 reg = <0x5e>;
207                                 interrupt-parent = <&gpio>;
208                                 interrupts = <77 GPIO_ACTIVE_LOW>;
209                                 #gpio-cells = <2>;
210                                 gpio-controller;
211                         };
212                 };
213                 i2csw_5: i2c@5 {
214                         #address-cells = <1>;
215                         #size-cells = <0>;
216                         reg = <5>;
217                         /* PS_PMBUS */
218                         ina226@40 { /* u35 */
219                                 compatible = "ti,ina226";
220                                 reg = <0x40>;
221                                 shunt-resistor = <10000>;
222                                 /* MIO31 is alert which should be routed to PMUFW */
223                         };
224                 };
225                 i2csw_6: i2c@6 {
226                         #address-cells = <1>;
227                         #size-cells = <0>;
228                         reg = <6>;
229                         /*
230                          * Not Connected
231                          */
232                 };
233                 i2csw_7: i2c@7 {
234                         #address-cells = <1>;
235                         #size-cells = <0>;
236                         reg = <7>;
237                         /*
238                          * usb5744 (DNP) - U5
239                          * 100kHz - this is default freq for us
240                          */
241                 };
242         };
243 };
244
245 &rtc {
246         status = "okay";
247 };
248
249 /* SD0 only supports 3.3V, no level shifter */
250 &sdhci0 {
251         status = "okay";
252         no-1-8-v;
253         disable-wp;
254         xlnx,mio_bank = <0>;
255 };
256
257 &sdhci1 {
258         status = "okay";
259         bus-width = <0x4>;
260         xlnx,mio_bank = <0>;
261         non-removable;
262         disable-wp;
263         cap-power-off-card;
264         mmc-pwrseq = <&sdio_pwrseq>;
265         vqmmc-supply = <&wmmcsdio_fixed>;
266         #address-cells = <1>;
267         #size-cells = <0>;
268         wlcore: wifi@2 {
269                 compatible = "ti,wl1831";
270                 reg = <2>;
271                 interrupt-parent = <&gpio>;
272                 interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
273         };
274 };
275
276 &serdes {
277         status = "okay";
278 };
279
280 &spi0 { /* Low Speed connector */
281         status = "okay";
282         label = "LS-SPI0";
283         num-cs = <1>;
284 };
285
286 &spi1 { /* High Speed connector */
287         status = "okay";
288         label = "HS-SPI1";
289         num-cs = <1>;
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 };