Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / xilinx / zynqmp-zcu102-revA.dts
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * dts file for Xilinx ZynqMP ZCU102 RevA
4  *
5  * (C) Copyright 2015 - 2022, Xilinx, Inc.
6  * (C) Copyright 2022 - 2023, Advanced Micro Devices, Inc.
7  *
8  * Michal Simek <michal.simek@amd.com>
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/gpio/gpio.h>
17 #include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
18 #include <dt-bindings/phy/phy.h>
19
20 / {
21         model = "ZynqMP ZCU102 RevA";
22         compatible = "xlnx,zynqmp-zcu102-revA", "xlnx,zynqmp-zcu102", "xlnx,zynqmp";
23
24         aliases {
25                 ethernet0 = &gem3;
26                 i2c0 = &i2c0;
27                 i2c1 = &i2c1;
28                 mmc0 = &sdhci1;
29                 nvmem0 = &eeprom;
30                 rtc0 = &rtc;
31                 serial0 = &uart0;
32                 serial1 = &uart1;
33                 serial2 = &dcc;
34                 spi0 = &qspi;
35                 usb0 = &usb0;
36         };
37
38         chosen {
39                 bootargs = "earlycon";
40                 stdout-path = "serial0:115200n8";
41         };
42
43         memory@0 {
44                 device_type = "memory";
45                 reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>;
46         };
47
48         gpio-keys {
49                 compatible = "gpio-keys";
50                 autorepeat;
51                 switch-19 {
52                         label = "sw19";
53                         gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
54                         linux,code = <KEY_DOWN>;
55                         wakeup-source;
56                         autorepeat;
57                 };
58         };
59
60         leds {
61                 compatible = "gpio-leds";
62                 heartbeat-led {
63                         label = "heartbeat";
64                         gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
65                         linux,default-trigger = "heartbeat";
66                 };
67         };
68
69         ina226-u76 {
70                 compatible = "iio-hwmon";
71                 io-channels = <&u76 0>, <&u76 1>, <&u76 2>, <&u76 3>;
72         };
73         ina226-u77 {
74                 compatible = "iio-hwmon";
75                 io-channels = <&u77 0>, <&u77 1>, <&u77 2>, <&u77 3>;
76         };
77         ina226-u78 {
78                 compatible = "iio-hwmon";
79                 io-channels = <&u78 0>, <&u78 1>, <&u78 2>, <&u78 3>;
80         };
81         ina226-u87 {
82                 compatible = "iio-hwmon";
83                 io-channels = <&u87 0>, <&u87 1>, <&u87 2>, <&u87 3>;
84         };
85         ina226-u85 {
86                 compatible = "iio-hwmon";
87                 io-channels = <&u85 0>, <&u85 1>, <&u85 2>, <&u85 3>;
88         };
89         ina226-u86 {
90                 compatible = "iio-hwmon";
91                 io-channels = <&u86 0>, <&u86 1>, <&u86 2>, <&u86 3>;
92         };
93         ina226-u93 {
94                 compatible = "iio-hwmon";
95                 io-channels = <&u93 0>, <&u93 1>, <&u93 2>, <&u93 3>;
96         };
97         ina226-u88 {
98                 compatible = "iio-hwmon";
99                 io-channels = <&u88 0>, <&u88 1>, <&u88 2>, <&u88 3>;
100         };
101         ina226-u15 {
102                 compatible = "iio-hwmon";
103                 io-channels = <&u15 0>, <&u15 1>, <&u15 2>, <&u15 3>;
104         };
105         ina226-u92 {
106                 compatible = "iio-hwmon";
107                 io-channels = <&u92 0>, <&u92 1>, <&u92 2>, <&u92 3>;
108         };
109         ina226-u79 {
110                 compatible = "iio-hwmon";
111                 io-channels = <&u79 0>, <&u79 1>, <&u79 2>, <&u79 3>;
112         };
113         ina226-u81 {
114                 compatible = "iio-hwmon";
115                 io-channels = <&u81 0>, <&u81 1>, <&u81 2>, <&u81 3>;
116         };
117         ina226-u80 {
118                 compatible = "iio-hwmon";
119                 io-channels = <&u80 0>, <&u80 1>, <&u80 2>, <&u80 3>;
120         };
121         ina226-u84 {
122                 compatible = "iio-hwmon";
123                 io-channels = <&u84 0>, <&u84 1>, <&u84 2>, <&u84 3>;
124         };
125         ina226-u16 {
126                 compatible = "iio-hwmon";
127                 io-channels = <&u16 0>, <&u16 1>, <&u16 2>, <&u16 3>;
128         };
129         ina226-u65 {
130                 compatible = "iio-hwmon";
131                 io-channels = <&u65 0>, <&u65 1>, <&u65 2>, <&u65 3>;
132         };
133         ina226-u74 {
134                 compatible = "iio-hwmon";
135                 io-channels = <&u74 0>, <&u74 1>, <&u74 2>, <&u74 3>;
136         };
137         ina226-u75 {
138                 compatible = "iio-hwmon";
139                 io-channels = <&u75 0>, <&u75 1>, <&u75 2>, <&u75 3>;
140         };
141
142         /* 48MHz reference crystal */
143         ref48: ref48M {
144                 compatible = "fixed-clock";
145                 #clock-cells = <0>;
146                 clock-frequency = <48000000>;
147         };
148
149         refhdmi: refhdmi {
150                 compatible = "fixed-clock";
151                 #clock-cells = <0>;
152                 clock-frequency = <114285000>;
153         };
154 };
155
156 &can1 {
157         status = "okay";
158         pinctrl-names = "default";
159         pinctrl-0 = <&pinctrl_can1_default>;
160 };
161
162 &dcc {
163         status = "okay";
164 };
165
166 &fpd_dma_chan1 {
167         status = "okay";
168 };
169
170 &fpd_dma_chan2 {
171         status = "okay";
172 };
173
174 &fpd_dma_chan3 {
175         status = "okay";
176 };
177
178 &fpd_dma_chan4 {
179         status = "okay";
180 };
181
182 &fpd_dma_chan5 {
183         status = "okay";
184 };
185
186 &fpd_dma_chan6 {
187         status = "okay";
188 };
189
190 &fpd_dma_chan7 {
191         status = "okay";
192 };
193
194 &fpd_dma_chan8 {
195         status = "okay";
196 };
197
198 &gem3 {
199         status = "okay";
200         phy-handle = <&phy0>;
201         phy-mode = "rgmii-id";
202         pinctrl-names = "default";
203         pinctrl-0 = <&pinctrl_gem3_default>;
204         mdio: mdio {
205                 #address-cells = <1>;
206                 #size-cells = <0>;
207                 phy0: ethernet-phy@21 {
208                         #phy-cells = <1>;
209                         compatible = "ethernet-phy-id2000.a231";
210                         reg = <21>;
211                         ti,rx-internal-delay = <0x8>;
212                         ti,tx-internal-delay = <0xa>;
213                         ti,fifo-depth = <0x1>;
214                         ti,dp83867-rxctrl-strap-quirk;
215                         reset-gpios = <&tca6416_u97 6 GPIO_ACTIVE_LOW>;
216                 };
217         };
218 };
219
220 &gpio {
221         status = "okay";
222         pinctrl-names = "default";
223         pinctrl-0 = <&pinctrl_gpio_default>;
224 };
225
226 &gpu {
227         status = "okay";
228 };
229
230 &i2c0 {
231         status = "okay";
232         clock-frequency = <400000>;
233         pinctrl-names = "default", "gpio";
234         pinctrl-0 = <&pinctrl_i2c0_default>;
235         pinctrl-1 = <&pinctrl_i2c0_gpio>;
236         scl-gpios = <&gpio 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
237         sda-gpios = <&gpio 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
238
239         tca6416_u97: gpio@20 {
240                 compatible = "ti,tca6416";
241                 reg = <0x20>;
242                 gpio-controller; /* IRQ not connected */
243                 #gpio-cells = <2>;
244                 gpio-line-names = "PS_GTR_LAN_SEL0", "PS_GTR_LAN_SEL1", "PS_GTR_LAN_SEL2", "PS_GTR_LAN_SEL3",
245                                 "PCI_CLK_DIR_SEL", "IIC_MUX_RESET_B", "GEM3_EXP_RESET_B",
246                                 "", "", "", "", "", "", "", "", "";
247                 gtr-sel0-hog {
248                         gpio-hog;
249                         gpios = <0 0>;
250                         output-low; /* PCIE = 0, DP = 1 */
251                         line-name = "sel0";
252                 };
253                 gtr-sel1-hog {
254                         gpio-hog;
255                         gpios = <1 0>;
256                         output-high; /* PCIE = 0, DP = 1 */
257                         line-name = "sel1";
258                 };
259                 gtr-sel2-hog {
260                         gpio-hog;
261                         gpios = <2 0>;
262                         output-high; /* PCIE = 0, USB0 = 1 */
263                         line-name = "sel2";
264                 };
265                 gtr-sel3-hog {
266                         gpio-hog;
267                         gpios = <3 0>;
268                         output-high; /* PCIE = 0, SATA = 1 */
269                         line-name = "sel3";
270                 };
271         };
272
273         tca6416_u61: gpio@21 {
274                 compatible = "ti,tca6416";
275                 reg = <0x21>;
276                 gpio-controller; /* IRQ not connected */
277                 #gpio-cells = <2>;
278                 gpio-line-names = "VCCPSPLL_EN", "MGTRAVCC_EN", "MGTRAVTT_EN", "VCCPSDDRPLL_EN", "MIO26_PMU_INPUT_LS",
279                                 "PL_PMBUS_ALERT", "PS_PMBUS_ALERT", "MAXIM_PMBUS_ALERT", "PL_DDR4_VTERM_EN",
280                                 "PL_DDR4_VPP_2V5_EN", "PS_DIMM_VDDQ_TO_PSVCCO_ON", "PS_DIMM_SUSPEND_EN",
281                                 "PS_DDR4_VTERM_EN", "PS_DDR4_VPP_2V5_EN", "", "";
282         };
283
284         i2c-mux@75 { /* u60 */
285                 compatible = "nxp,pca9544";
286                 #address-cells = <1>;
287                 #size-cells = <0>;
288                 reg = <0x75>;
289                 i2c@0 {
290                         #address-cells = <1>;
291                         #size-cells = <0>;
292                         reg = <0>;
293                         /* PS_PMBUS */
294                         u76: ina226@40 { /* u76 */
295                                 compatible = "ti,ina226";
296                                 #io-channel-cells = <1>;
297                                 label = "ina226-u76";
298                                 reg = <0x40>;
299                                 shunt-resistor = <5000>;
300                         };
301                         u77: ina226@41 { /* u77 */
302                                 compatible = "ti,ina226";
303                                 #io-channel-cells = <1>;
304                                 label = "ina226-u77";
305                                 reg = <0x41>;
306                                 shunt-resistor = <5000>;
307                         };
308                         u78: ina226@42 { /* u78 */
309                                 compatible = "ti,ina226";
310                                 #io-channel-cells = <1>;
311                                 label = "ina226-u78";
312                                 reg = <0x42>;
313                                 shunt-resistor = <5000>;
314                         };
315                         u87: ina226@43 { /* u87 */
316                                 compatible = "ti,ina226";
317                                 #io-channel-cells = <1>;
318                                 label = "ina226-u87";
319                                 reg = <0x43>;
320                                 shunt-resistor = <5000>;
321                         };
322                         u85: ina226@44 { /* u85 */
323                                 compatible = "ti,ina226";
324                                 #io-channel-cells = <1>;
325                                 label = "ina226-u85";
326                                 reg = <0x44>;
327                                 shunt-resistor = <5000>;
328                         };
329                         u86: ina226@45 { /* u86 */
330                                 compatible = "ti,ina226";
331                                 #io-channel-cells = <1>;
332                                 label = "ina226-u86";
333                                 reg = <0x45>;
334                                 shunt-resistor = <5000>;
335                         };
336                         u93: ina226@46 { /* u93 */
337                                 compatible = "ti,ina226";
338                                 #io-channel-cells = <1>;
339                                 label = "ina226-u93";
340                                 reg = <0x46>;
341                                 shunt-resistor = <5000>;
342                         };
343                         u88: ina226@47 { /* u88 */
344                                 compatible = "ti,ina226";
345                                 #io-channel-cells = <1>;
346                                 label = "ina226-u88";
347                                 reg = <0x47>;
348                                 shunt-resistor = <5000>;
349                         };
350                         u15: ina226@4a { /* u15 */
351                                 compatible = "ti,ina226";
352                                 #io-channel-cells = <1>;
353                                 label = "ina226-u15";
354                                 reg = <0x4a>;
355                                 shunt-resistor = <5000>;
356                         };
357                         u92: ina226@4b { /* u92 */
358                                 compatible = "ti,ina226";
359                                 #io-channel-cells = <1>;
360                                 label = "ina226-u92";
361                                 reg = <0x4b>;
362                                 shunt-resistor = <5000>;
363                         };
364                 };
365                 i2c@1 {
366                         #address-cells = <1>;
367                         #size-cells = <0>;
368                         reg = <1>;
369                         /* PL_PMBUS */
370                         u79: ina226@40 { /* u79 */
371                                 compatible = "ti,ina226";
372                                 #io-channel-cells = <1>;
373                                 label = "ina226-u79";
374                                 reg = <0x40>;
375                                 shunt-resistor = <2000>;
376                         };
377                         u81: ina226@41 { /* u81 */
378                                 compatible = "ti,ina226";
379                                 #io-channel-cells = <1>;
380                                 label = "ina226-u81";
381                                 reg = <0x41>;
382                                 shunt-resistor = <5000>;
383                         };
384                         u80: ina226@42 { /* u80 */
385                                 compatible = "ti,ina226";
386                                 #io-channel-cells = <1>;
387                                 label = "ina226-u80";
388                                 reg = <0x42>;
389                                 shunt-resistor = <5000>;
390                         };
391                         u84: ina226@43 { /* u84 */
392                                 compatible = "ti,ina226";
393                                 #io-channel-cells = <1>;
394                                 label = "ina226-u84";
395                                 reg = <0x43>;
396                                 shunt-resistor = <5000>;
397                         };
398                         u16: ina226@44 { /* u16 */
399                                 compatible = "ti,ina226";
400                                 #io-channel-cells = <1>;
401                                 label = "ina226-u16";
402                                 reg = <0x44>;
403                                 shunt-resistor = <5000>;
404                         };
405                         u65: ina226@45 { /* u65 */
406                                 compatible = "ti,ina226";
407                                 #io-channel-cells = <1>;
408                                 label = "ina226-u65";
409                                 reg = <0x45>;
410                                 shunt-resistor = <5000>;
411                         };
412                         u74: ina226@46 { /* u74 */
413                                 compatible = "ti,ina226";
414                                 #io-channel-cells = <1>;
415                                 label = "ina226-u74";
416                                 reg = <0x46>;
417                                 shunt-resistor = <5000>;
418                         };
419                         u75: ina226@47 { /* u75 */
420                                 compatible = "ti,ina226";
421                                 #io-channel-cells = <1>;
422                                 label = "ina226-u75";
423                                 reg = <0x47>;
424                                 shunt-resistor = <5000>;
425                         };
426                 };
427                 i2c@2 {
428                         #address-cells = <1>;
429                         #size-cells = <0>;
430                         reg = <2>;
431                         /* MAXIM_PMBUS - 00 */
432                         max15301@a { /* u46 */
433                                 compatible = "maxim,max15301";
434                                 reg = <0xa>;
435                         };
436                         max15303@b { /* u4 */
437                                 compatible = "maxim,max15303";
438                                 reg = <0xb>;
439                         };
440                         max15303@10 { /* u13 */
441                                 compatible = "maxim,max15303";
442                                 reg = <0x10>;
443                         };
444                         max15301@13 { /* u47 */
445                                 compatible = "maxim,max15301";
446                                 reg = <0x13>;
447                         };
448                         max15303@14 { /* u7 */
449                                 compatible = "maxim,max15303";
450                                 reg = <0x14>;
451                         };
452                         max15303@15 { /* u6 */
453                                 compatible = "maxim,max15303";
454                                 reg = <0x15>;
455                         };
456                         max15303@16 { /* u10 */
457                                 compatible = "maxim,max15303";
458                                 reg = <0x16>;
459                         };
460                         max15303@17 { /* u9 */
461                                 compatible = "maxim,max15303";
462                                 reg = <0x17>;
463                         };
464                         max15301@18 { /* u63 */
465                                 compatible = "maxim,max15301";
466                                 reg = <0x18>;
467                         };
468                         max15303@1a { /* u49 */
469                                 compatible = "maxim,max15303";
470                                 reg = <0x1a>;
471                         };
472                         max15303@1d { /* u18 */
473                                 compatible = "maxim,max15303";
474                                 reg = <0x1d>;
475                         };
476                         max15303@20 { /* u8 */
477                                 compatible = "maxim,max15303";
478                                 status = "disabled"; /* unreachable */
479                                 reg = <0x20>;
480                         };
481                         max20751@72 { /* u95 */
482                                 compatible = "maxim,max20751";
483                                 reg = <0x72>;
484                         };
485                         max20751@73 { /* u96 */
486                                 compatible = "maxim,max20751";
487                                 reg = <0x73>;
488                         };
489                 };
490                 /* Bus 3 is not connected */
491         };
492 };
493
494 &i2c1 {
495         status = "okay";
496         clock-frequency = <400000>;
497         pinctrl-names = "default", "gpio";
498         pinctrl-0 = <&pinctrl_i2c1_default>;
499         pinctrl-1 = <&pinctrl_i2c1_gpio>;
500         scl-gpios = <&gpio 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
501         sda-gpios = <&gpio 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
502
503         /* PL i2c via PCA9306 - u45 */
504         i2c-mux@74 { /* u34 */
505                 compatible = "nxp,pca9548";
506                 #address-cells = <1>;
507                 #size-cells = <0>;
508                 reg = <0x74>;
509                 i2c@0 {
510                         #address-cells = <1>;
511                         #size-cells = <0>;
512                         reg = <0>;
513                         /*
514                          * IIC_EEPROM 1kB memory which uses 256B blocks
515                          * where every block has different address.
516                          *    0 - 256B address 0x54
517                          * 256B - 512B address 0x55
518                          * 512B - 768B address 0x56
519                          * 768B - 1024B address 0x57
520                          */
521                         eeprom: eeprom@54 { /* u23 */
522                                 compatible = "atmel,24c08";
523                                 reg = <0x54>;
524                         };
525                 };
526                 i2c@1 {
527                         #address-cells = <1>;
528                         #size-cells = <0>;
529                         reg = <1>;
530                         si5341: clock-generator@36 { /* SI5341 - u69 */
531                                 compatible = "silabs,si5341";
532                                 reg = <0x36>;
533                                 #clock-cells = <2>;
534                                 #address-cells = <1>;
535                                 #size-cells = <0>;
536                                 clocks = <&ref48>;
537                                 clock-names = "xtal";
538                                 clock-output-names = "si5341";
539
540                                 si5341_0: out@0 {
541                                         /* refclk0 for PS-GT, used for DP */
542                                         reg = <0>;
543                                         always-on;
544                                 };
545                                 si5341_2: out@2 {
546                                         /* refclk2 for PS-GT, used for USB3 */
547                                         reg = <2>;
548                                         always-on;
549                                 };
550                                 si5341_3: out@3 {
551                                         /* refclk3 for PS-GT, used for SATA */
552                                         reg = <3>;
553                                         always-on;
554                                 };
555                                 si5341_4: out@4 {
556                                         /* refclk4 for PS-GT, used for PCIE slot */
557                                         reg = <4>;
558                                         always-on;
559                                 };
560                                 si5341_5: out@5 {
561                                         /* refclk5 for PS-GT, used for PCIE */
562                                         reg = <5>;
563                                         always-on;
564                                 };
565                                 si5341_6: out@6 {
566                                         /* refclk6 PL CLK125 */
567                                         reg = <6>;
568                                         always-on;
569                                 };
570                                 si5341_7: out@7 {
571                                         /* refclk7 PL CLK74 */
572                                         reg = <7>;
573                                         always-on;
574                                 };
575                                 si5341_9: out@9 {
576                                         /* refclk9 used for PS_REF_CLK 33.3 MHz */
577                                         reg = <9>;
578                                         always-on;
579                                 };
580                         };
581                 };
582                 i2c@2 {
583                         #address-cells = <1>;
584                         #size-cells = <0>;
585                         reg = <2>;
586                         si570_1: clock-generator@5d { /* USER SI570 - u42 */
587                                 #clock-cells = <0>;
588                                 compatible = "silabs,si570";
589                                 reg = <0x5d>;
590                                 temperature-stability = <50>;
591                                 factory-fout = <300000000>;
592                                 clock-frequency = <300000000>;
593                                 clock-output-names = "si570_user";
594                         };
595                 };
596                 i2c@3 {
597                         #address-cells = <1>;
598                         #size-cells = <0>;
599                         reg = <3>;
600                         si570_2: clock-generator@5d { /* USER MGT SI570 - u56 */
601                                 #clock-cells = <0>;
602                                 compatible = "silabs,si570";
603                                 reg = <0x5d>;
604                                 temperature-stability = <50>; /* copy from zc702 */
605                                 factory-fout = <156250000>;
606                                 clock-frequency = <148500000>;
607                                 clock-output-names = "si570_mgt";
608                         };
609                 };
610                 i2c@4 {
611                         #address-cells = <1>;
612                         #size-cells = <0>;
613                         reg = <4>;
614                         /* SI5328 - u20 */
615                 };
616                 /* 5 - 7 unconnected */
617         };
618
619         i2c-mux@75 {
620                 compatible = "nxp,pca9548"; /* u135 */
621                 #address-cells = <1>;
622                 #size-cells = <0>;
623                 reg = <0x75>;
624
625                 i2c@0 {
626                         #address-cells = <1>;
627                         #size-cells = <0>;
628                         reg = <0>;
629                         /* HPC0_IIC */
630                 };
631                 i2c@1 {
632                         #address-cells = <1>;
633                         #size-cells = <0>;
634                         reg = <1>;
635                         /* HPC1_IIC */
636                 };
637                 i2c@2 {
638                         #address-cells = <1>;
639                         #size-cells = <0>;
640                         reg = <2>;
641                         /* SYSMON */
642                 };
643                 i2c@3 {
644                         #address-cells = <1>;
645                         #size-cells = <0>;
646                         reg = <3>;
647                         /* DDR4 SODIMM */
648                 };
649                 i2c@4 {
650                         #address-cells = <1>;
651                         #size-cells = <0>;
652                         reg = <4>;
653                         /* SEP 3 */
654                 };
655                 i2c@5 {
656                         #address-cells = <1>;
657                         #size-cells = <0>;
658                         reg = <5>;
659                         /* SEP 2 */
660                 };
661                 i2c@6 {
662                         #address-cells = <1>;
663                         #size-cells = <0>;
664                         reg = <6>;
665                         /* SEP 1 */
666                 };
667                 i2c@7 {
668                         #address-cells = <1>;
669                         #size-cells = <0>;
670                         reg = <7>;
671                         /* SEP 0 */
672                 };
673         };
674 };
675
676 &pinctrl0 {
677         status = "okay";
678         pinctrl_i2c0_default: i2c0-default {
679                 mux {
680                         groups = "i2c0_3_grp";
681                         function = "i2c0";
682                 };
683
684                 conf {
685                         groups = "i2c0_3_grp";
686                         bias-pull-up;
687                         slew-rate = <SLEW_RATE_SLOW>;
688                         power-source = <IO_STANDARD_LVCMOS18>;
689                 };
690         };
691
692         pinctrl_i2c0_gpio: i2c0-gpio {
693                 mux {
694                         groups = "gpio0_14_grp", "gpio0_15_grp";
695                         function = "gpio0";
696                 };
697
698                 conf {
699                         groups = "gpio0_14_grp", "gpio0_15_grp";
700                         slew-rate = <SLEW_RATE_SLOW>;
701                         power-source = <IO_STANDARD_LVCMOS18>;
702                 };
703         };
704
705         pinctrl_i2c1_default: i2c1-default {
706                 mux {
707                         groups = "i2c1_4_grp";
708                         function = "i2c1";
709                 };
710
711                 conf {
712                         groups = "i2c1_4_grp";
713                         bias-pull-up;
714                         slew-rate = <SLEW_RATE_SLOW>;
715                         power-source = <IO_STANDARD_LVCMOS18>;
716                 };
717         };
718
719         pinctrl_i2c1_gpio: i2c1-gpio {
720                 mux {
721                         groups = "gpio0_16_grp", "gpio0_17_grp";
722                         function = "gpio0";
723                 };
724
725                 conf {
726                         groups = "gpio0_16_grp", "gpio0_17_grp";
727                         slew-rate = <SLEW_RATE_SLOW>;
728                         power-source = <IO_STANDARD_LVCMOS18>;
729                 };
730         };
731
732         pinctrl_uart0_default: uart0-default {
733                 mux {
734                         groups = "uart0_4_grp";
735                         function = "uart0";
736                 };
737
738                 conf {
739                         groups = "uart0_4_grp";
740                         slew-rate = <SLEW_RATE_SLOW>;
741                         power-source = <IO_STANDARD_LVCMOS18>;
742                 };
743
744                 conf-rx {
745                         pins = "MIO18";
746                         bias-high-impedance;
747                 };
748
749                 conf-tx {
750                         pins = "MIO19";
751                         bias-disable;
752                 };
753         };
754
755         pinctrl_uart1_default: uart1-default {
756                 mux {
757                         groups = "uart1_5_grp";
758                         function = "uart1";
759                 };
760
761                 conf {
762                         groups = "uart1_5_grp";
763                         slew-rate = <SLEW_RATE_SLOW>;
764                         power-source = <IO_STANDARD_LVCMOS18>;
765                 };
766
767                 conf-rx {
768                         pins = "MIO21";
769                         bias-high-impedance;
770                 };
771
772                 conf-tx {
773                         pins = "MIO20";
774                         bias-disable;
775                 };
776         };
777
778         pinctrl_usb0_default: usb0-default {
779                 mux {
780                         groups = "usb0_0_grp";
781                         function = "usb0";
782                 };
783
784                 conf {
785                         groups = "usb0_0_grp";
786                         power-source = <IO_STANDARD_LVCMOS18>;
787                 };
788
789                 conf-rx {
790                         pins = "MIO52", "MIO53", "MIO55";
791                         bias-high-impedance;
792                         drive-strength = <12>;
793                         slew-rate = <SLEW_RATE_FAST>;
794                 };
795
796                 conf-tx {
797                         pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
798                                "MIO60", "MIO61", "MIO62", "MIO63";
799                         bias-disable;
800                         drive-strength = <4>;
801                         slew-rate = <SLEW_RATE_SLOW>;
802                 };
803         };
804
805         pinctrl_gem3_default: gem3-default {
806                 mux {
807                         function = "ethernet3";
808                         groups = "ethernet3_0_grp";
809                 };
810
811                 conf {
812                         groups = "ethernet3_0_grp";
813                         slew-rate = <SLEW_RATE_SLOW>;
814                         power-source = <IO_STANDARD_LVCMOS18>;
815                 };
816
817                 conf-rx {
818                         pins = "MIO70", "MIO71", "MIO72", "MIO73", "MIO74",
819                                                                         "MIO75";
820                         bias-high-impedance;
821                         low-power-disable;
822                 };
823
824                 conf-tx {
825                         pins = "MIO64", "MIO65", "MIO66", "MIO67", "MIO68",
826                                                                         "MIO69";
827                         bias-disable;
828                         low-power-enable;
829                 };
830
831                 mux-mdio {
832                         function = "mdio3";
833                         groups = "mdio3_0_grp";
834                 };
835
836                 conf-mdio {
837                         groups = "mdio3_0_grp";
838                         slew-rate = <SLEW_RATE_SLOW>;
839                         power-source = <IO_STANDARD_LVCMOS18>;
840                         bias-disable;
841                 };
842         };
843
844         pinctrl_can1_default: can1-default {
845                 mux {
846                         function = "can1";
847                         groups = "can1_6_grp";
848                 };
849
850                 conf {
851                         groups = "can1_6_grp";
852                         slew-rate = <SLEW_RATE_SLOW>;
853                         power-source = <IO_STANDARD_LVCMOS18>;
854                 };
855
856                 conf-rx {
857                         pins = "MIO25";
858                         bias-high-impedance;
859                 };
860
861                 conf-tx {
862                         pins = "MIO24";
863                         bias-disable;
864                 };
865         };
866
867         pinctrl_sdhci1_default: sdhci1-default {
868                 mux {
869                         groups = "sdio1_0_grp";
870                         function = "sdio1";
871                 };
872
873                 conf {
874                         groups = "sdio1_0_grp";
875                         slew-rate = <SLEW_RATE_SLOW>;
876                         power-source = <IO_STANDARD_LVCMOS18>;
877                         bias-disable;
878                 };
879
880                 mux-cd {
881                         groups = "sdio1_cd_0_grp";
882                         function = "sdio1_cd";
883                 };
884
885                 conf-cd {
886                         groups = "sdio1_cd_0_grp";
887                         bias-high-impedance;
888                         bias-pull-up;
889                         slew-rate = <SLEW_RATE_SLOW>;
890                         power-source = <IO_STANDARD_LVCMOS18>;
891                 };
892
893                 mux-wp {
894                         groups = "sdio1_wp_0_grp";
895                         function = "sdio1_wp";
896                 };
897
898                 conf-wp {
899                         groups = "sdio1_wp_0_grp";
900                         bias-high-impedance;
901                         bias-pull-up;
902                         slew-rate = <SLEW_RATE_SLOW>;
903                         power-source = <IO_STANDARD_LVCMOS18>;
904                 };
905         };
906
907         pinctrl_gpio_default: gpio-default {
908                 mux-sw {
909                         function = "gpio0";
910                         groups = "gpio0_22_grp", "gpio0_23_grp";
911                 };
912
913                 conf-sw {
914                         groups = "gpio0_22_grp", "gpio0_23_grp";
915                         slew-rate = <SLEW_RATE_SLOW>;
916                         power-source = <IO_STANDARD_LVCMOS18>;
917                 };
918
919                 mux-msp {
920                         function = "gpio0";
921                         groups = "gpio0_13_grp", "gpio0_38_grp";
922                 };
923
924                 conf-msp {
925                         groups = "gpio0_13_grp", "gpio0_38_grp";
926                         slew-rate = <SLEW_RATE_SLOW>;
927                         power-source = <IO_STANDARD_LVCMOS18>;
928                 };
929
930                 conf-pull-up {
931                         pins = "MIO22", "MIO23";
932                         bias-pull-up;
933                 };
934
935                 conf-pull-none {
936                         pins = "MIO13", "MIO38";
937                         bias-disable;
938                 };
939         };
940 };
941
942 &pcie {
943         status = "okay";
944 };
945
946 &psgtr {
947         status = "okay";
948         /* pcie, sata, usb3, dp */
949         clocks = <&si5341 0 5>, <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
950         clock-names = "ref0", "ref1", "ref2", "ref3";
951 };
952
953 &qspi {
954         status = "okay";
955         flash@0 {
956                 compatible = "m25p80", "jedec,spi-nor"; /* 16MB + 16MB */
957                 #address-cells = <1>;
958                 #size-cells = <1>;
959                 reg = <0x0>;
960                 spi-tx-bus-width = <4>;
961                 spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
962                 spi-max-frequency = <108000000>; /* Based on DC1 spec */
963         };
964 };
965
966 &rtc {
967         status = "okay";
968 };
969
970 &sata {
971         status = "okay";
972         /* SATA OOB timing settings */
973         ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>;
974         ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
975         ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
976         ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
977         ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>;
978         ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
979         ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
980         ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
981         phy-names = "sata-phy";
982         phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
983 };
984
985 /* SD1 with level shifter */
986 &sdhci1 {
987         status = "okay";
988         /*
989          * 1.0 revision has level shifter and this property should be
990          * removed for supporting UHS mode
991          */
992         no-1-8-v;
993         pinctrl-names = "default";
994         pinctrl-0 = <&pinctrl_sdhci1_default>;
995         xlnx,mio-bank = <1>;
996 };
997
998 &uart0 {
999         status = "okay";
1000         pinctrl-names = "default";
1001         pinctrl-0 = <&pinctrl_uart0_default>;
1002 };
1003
1004 &uart1 {
1005         status = "okay";
1006         pinctrl-names = "default";
1007         pinctrl-0 = <&pinctrl_uart1_default>;
1008 };
1009
1010 /* ULPI SMSC USB3320 */
1011 &usb0 {
1012         status = "okay";
1013         pinctrl-names = "default";
1014         pinctrl-0 = <&pinctrl_usb0_default>;
1015         phy-names = "usb3-phy";
1016         phys = <&psgtr 2 PHY_TYPE_USB3 0 2>;
1017 };
1018
1019 &dwc3_0 {
1020         status = "okay";
1021         dr_mode = "host";
1022         snps,usb3_lpm_capable;
1023         maximum-speed = "super-speed";
1024 };
1025
1026 &watchdog0 {
1027         status = "okay";
1028 };
1029
1030 &xilinx_ams {
1031         status = "okay";
1032 };
1033
1034 &ams_ps {
1035         status = "okay";
1036 };
1037
1038 &ams_pl {
1039         status = "okay";
1040 };
1041
1042 &zynqmp_dpdma {
1043         status = "okay";
1044 };
1045
1046 &zynqmp_dpsub {
1047         status = "okay";
1048         phy-names = "dp-phy0";
1049         phys = <&psgtr 1 PHY_TYPE_DP 0 3>;
1050 };