blob: 4b8c69407ff6a9e789a08dd4ef1e9e1fb2b5983a [file] [log] [blame]
Michal Simek1a79c272018-03-28 15:43:51 +02001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * dts file for Xilinx ZynqMP ZCU106
4 *
Michal Simek821e32a2021-05-31 09:50:01 +02005 * (C) Copyright 2016 - 2021, Xilinx, Inc.
Michal Simek1a79c272018-03-28 15:43:51 +02006 *
Michal Simeka8c94362023-07-10 14:35:49 +02007 * Michal Simek <michal.simek@amd.com>
Michal Simek1a79c272018-03-28 15:43:51 +02008 */
9
10/dts-v1/;
11
12#include "zynqmp.dtsi"
13#include "zynqmp-clk-ccf.dtsi"
14#include <dt-bindings/input/input.h>
15#include <dt-bindings/gpio/gpio.h>
Michal Simekf7b922a2021-05-10 13:14:02 +020016#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
Michal Simek1a79c272018-03-28 15:43:51 +020017#include <dt-bindings/phy/phy.h>
18
19/ {
20 model = "ZynqMP ZCU106 RevA";
21 compatible = "xlnx,zynqmp-zcu106-revA", "xlnx,zynqmp-zcu106", "xlnx,zynqmp";
22
23 aliases {
24 ethernet0 = &gem3;
Michal Simek1a79c272018-03-28 15:43:51 +020025 i2c0 = &i2c0;
26 i2c1 = &i2c1;
27 mmc0 = &sdhci1;
Michal Simek53b145d2021-06-03 11:46:50 +020028 nvmem0 = &eeprom;
Michal Simek1a79c272018-03-28 15:43:51 +020029 rtc0 = &rtc;
30 serial0 = &uart0;
31 serial1 = &uart1;
32 serial2 = &dcc;
33 spi0 = &qspi;
34 usb0 = &usb0;
35 };
36
37 chosen {
38 bootargs = "earlycon";
39 stdout-path = "serial0:115200n8";
40 };
41
42 memory@0 {
43 device_type = "memory";
44 reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>;
45 };
46
47 gpio-keys {
48 compatible = "gpio-keys";
Michal Simek1a79c272018-03-28 15:43:51 +020049 autorepeat;
Michal Simek192d4ae2022-12-09 13:56:40 +010050 switch-19 {
Michal Simek1a79c272018-03-28 15:43:51 +020051 label = "sw19";
52 gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
53 linux,code = <KEY_DOWN>;
Sudeep Holla13104ce2018-10-24 12:45:40 +010054 wakeup-source;
Michal Simek1a79c272018-03-28 15:43:51 +020055 autorepeat;
56 };
57 };
58
59 leds {
60 compatible = "gpio-leds";
Michal Simek2ef53362018-11-08 10:06:53 +010061 heartbeat-led {
Michal Simek1a79c272018-03-28 15:43:51 +020062 label = "heartbeat";
63 gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
64 linux,default-trigger = "heartbeat";
65 };
66 };
Michal Simek2ec41ef2019-08-26 09:46:36 +020067
68 ina226-u76 {
69 compatible = "iio-hwmon";
70 io-channels = <&u76 0>, <&u76 1>, <&u76 2>, <&u76 3>;
71 };
72 ina226-u77 {
73 compatible = "iio-hwmon";
74 io-channels = <&u77 0>, <&u77 1>, <&u77 2>, <&u77 3>;
75 };
76 ina226-u78 {
77 compatible = "iio-hwmon";
78 io-channels = <&u78 0>, <&u78 1>, <&u78 2>, <&u78 3>;
79 };
80 ina226-u87 {
81 compatible = "iio-hwmon";
82 io-channels = <&u87 0>, <&u87 1>, <&u87 2>, <&u87 3>;
83 };
84 ina226-u85 {
85 compatible = "iio-hwmon";
86 io-channels = <&u85 0>, <&u85 1>, <&u85 2>, <&u85 3>;
87 };
88 ina226-u86 {
89 compatible = "iio-hwmon";
90 io-channels = <&u86 0>, <&u86 1>, <&u86 2>, <&u86 3>;
91 };
92 ina226-u93 {
93 compatible = "iio-hwmon";
94 io-channels = <&u93 0>, <&u93 1>, <&u93 2>, <&u93 3>;
95 };
96 ina226-u88 {
97 compatible = "iio-hwmon";
98 io-channels = <&u88 0>, <&u88 1>, <&u88 2>, <&u88 3>;
99 };
100 ina226-u15 {
101 compatible = "iio-hwmon";
102 io-channels = <&u15 0>, <&u15 1>, <&u15 2>, <&u15 3>;
103 };
104 ina226-u92 {
105 compatible = "iio-hwmon";
106 io-channels = <&u92 0>, <&u92 1>, <&u92 2>, <&u92 3>;
107 };
108 ina226-u79 {
109 compatible = "iio-hwmon";
110 io-channels = <&u79 0>, <&u79 1>, <&u79 2>, <&u79 3>;
111 };
112 ina226-u81 {
113 compatible = "iio-hwmon";
114 io-channels = <&u81 0>, <&u81 1>, <&u81 2>, <&u81 3>;
115 };
116 ina226-u80 {
117 compatible = "iio-hwmon";
118 io-channels = <&u80 0>, <&u80 1>, <&u80 2>, <&u80 3>;
119 };
120 ina226-u84 {
121 compatible = "iio-hwmon";
122 io-channels = <&u84 0>, <&u84 1>, <&u84 2>, <&u84 3>;
123 };
124 ina226-u16 {
125 compatible = "iio-hwmon";
126 io-channels = <&u16 0>, <&u16 1>, <&u16 2>, <&u16 3>;
127 };
128 ina226-u65 {
129 compatible = "iio-hwmon";
130 io-channels = <&u65 0>, <&u65 1>, <&u65 2>, <&u65 3>;
131 };
132 ina226-u74 {
133 compatible = "iio-hwmon";
134 io-channels = <&u74 0>, <&u74 1>, <&u74 2>, <&u74 3>;
135 };
136 ina226-u75 {
137 compatible = "iio-hwmon";
138 io-channels = <&u75 0>, <&u75 1>, <&u75 2>, <&u75 3>;
139 };
Michal Simek958c0e92020-11-26 14:25:02 +0100140
141 /* 48MHz reference crystal */
142 ref48: ref48M {
143 compatible = "fixed-clock";
144 #clock-cells = <0>;
145 clock-frequency = <48000000>;
146 };
147
148 refhdmi: refhdmi {
149 compatible = "fixed-clock";
150 #clock-cells = <0>;
151 clock-frequency = <114285000>;
152 };
Laurent Pinchart47443372023-09-22 12:35:38 +0200153
154 dpcon {
155 compatible = "dp-connector";
156 label = "P11";
157 type = "full-size";
158
159 port {
160 dpcon_in: endpoint {
161 remote-endpoint = <&dpsub_dp_out>;
162 };
163 };
164 };
Michal Simek1a79c272018-03-28 15:43:51 +0200165};
166
167&can1 {
168 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +0200169 pinctrl-names = "default";
170 pinctrl-0 = <&pinctrl_can1_default>;
Michal Simek1a79c272018-03-28 15:43:51 +0200171};
172
173&dcc {
174 status = "okay";
Michal Simek958c0e92020-11-26 14:25:02 +0100175};
176
Michal Simek1a79c272018-03-28 15:43:51 +0200177&fpd_dma_chan1 {
178 status = "okay";
179};
180
181&fpd_dma_chan2 {
182 status = "okay";
183};
184
185&fpd_dma_chan3 {
186 status = "okay";
187};
188
189&fpd_dma_chan4 {
190 status = "okay";
191};
192
193&fpd_dma_chan5 {
194 status = "okay";
195};
196
197&fpd_dma_chan6 {
198 status = "okay";
199};
200
201&fpd_dma_chan7 {
202 status = "okay";
203};
204
205&fpd_dma_chan8 {
206 status = "okay";
207};
208
209&gem3 {
210 status = "okay";
211 phy-handle = <&phy0>;
212 phy-mode = "rgmii-id";
Michal Simekf7b922a2021-05-10 13:14:02 +0200213 pinctrl-names = "default";
214 pinctrl-0 = <&pinctrl_gem3_default>;
Michal Simek62b5cfc2022-11-16 11:59:19 +0100215 mdio: mdio {
216 #address-cells = <1>;
217 #size-cells = <0>;
218 phy0: ethernet-phy@c {
219 #phy-cells = <1>;
220 reg = <0xc>;
221 compatible = "ethernet-phy-id2000.a231";
222 ti,rx-internal-delay = <0x8>;
223 ti,tx-internal-delay = <0xa>;
224 ti,fifo-depth = <0x1>;
225 ti,dp83867-rxctrl-strap-quirk;
226 reset-gpios = <&tca6416_u97 6 GPIO_ACTIVE_LOW>;
227 };
Michal Simek1a79c272018-03-28 15:43:51 +0200228 };
229};
230
231&gpio {
232 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +0200233 pinctrl-names = "default";
234 pinctrl-0 = <&pinctrl_gpio_default>;
Michal Simek1a79c272018-03-28 15:43:51 +0200235};
236
237&gpu {
238 status = "okay";
239};
240
241&i2c0 {
242 status = "okay";
243 clock-frequency = <400000>;
Michal Simekf7b922a2021-05-10 13:14:02 +0200244 pinctrl-names = "default", "gpio";
245 pinctrl-0 = <&pinctrl_i2c0_default>;
246 pinctrl-1 = <&pinctrl_i2c0_gpio>;
Manikanta Guntupallicc45c9c2023-07-10 14:37:28 +0200247 scl-gpios = <&gpio 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
248 sda-gpios = <&gpio 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
Michal Simek1a79c272018-03-28 15:43:51 +0200249
250 tca6416_u97: gpio@20 {
251 compatible = "ti,tca6416";
252 reg = <0x20>;
253 gpio-controller; /* interrupt not connected */
254 #gpio-cells = <2>;
255 /*
256 * IRQ not connected
257 * Lines:
258 * 0 - SFP_SI5328_INT_ALM
259 * 1 - HDMI_SI5328_INT_ALM
260 * 5 - IIC_MUX_RESET_B
261 * 6 - GEM3_EXP_RESET_B
262 * 10 - FMC_HPC0_PRSNT_M2C_B
263 * 11 - FMC_HPC1_PRSNT_M2C_B
264 * 2-4, 7, 12-17 - not connected
265 */
266 };
267
268 tca6416_u61: gpio@21 {
269 compatible = "ti,tca6416";
270 reg = <0x21>;
271 gpio-controller;
272 #gpio-cells = <2>;
273 /*
274 * IRQ not connected
275 * Lines:
276 * 0 - VCCPSPLL_EN
277 * 1 - MGTRAVCC_EN
278 * 2 - MGTRAVTT_EN
279 * 3 - VCCPSDDRPLL_EN
280 * 4 - MIO26_PMU_INPUT_LS
281 * 5 - PL_PMBUS_ALERT
282 * 6 - PS_PMBUS_ALERT
283 * 7 - MAXIM_PMBUS_ALERT
284 * 10 - PL_DDR4_VTERM_EN
285 * 11 - PL_DDR4_VPP_2V5_EN
286 * 12 - PS_DIMM_VDDQ_TO_PSVCCO_ON
287 * 13 - PS_DIMM_SUSPEND_EN
288 * 14 - PS_DDR4_VTERM_EN
289 * 15 - PS_DDR4_VPP_2V5_EN
290 * 16 - 17 - not connected
291 */
292 };
293
294 i2c-mux@75 { /* u60 */
295 compatible = "nxp,pca9544";
296 #address-cells = <1>;
297 #size-cells = <0>;
298 reg = <0x75>;
299 i2c@0 {
300 #address-cells = <1>;
301 #size-cells = <0>;
302 reg = <0>;
303 /* PS_PMBUS */
Michal Simek2ec41ef2019-08-26 09:46:36 +0200304 u76: ina226@40 { /* u76 */
Michal Simek1a79c272018-03-28 15:43:51 +0200305 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200306 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200307 label = "ina226-u76";
Michal Simek1a79c272018-03-28 15:43:51 +0200308 reg = <0x40>;
309 shunt-resistor = <5000>;
310 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200311 u77: ina226@41 { /* u77 */
Michal Simek1a79c272018-03-28 15:43:51 +0200312 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200313 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200314 label = "ina226-u77";
Michal Simek1a79c272018-03-28 15:43:51 +0200315 reg = <0x41>;
316 shunt-resistor = <5000>;
317 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200318 u78: ina226@42 { /* u78 */
Michal Simek1a79c272018-03-28 15:43:51 +0200319 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200320 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200321 label = "ina226-u78";
Michal Simek1a79c272018-03-28 15:43:51 +0200322 reg = <0x42>;
323 shunt-resistor = <5000>;
324 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200325 u87: ina226@43 { /* u87 */
Michal Simek1a79c272018-03-28 15:43:51 +0200326 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200327 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200328 label = "ina226-u87";
Michal Simek1a79c272018-03-28 15:43:51 +0200329 reg = <0x43>;
330 shunt-resistor = <5000>;
331 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200332 u85: ina226@44 { /* u85 */
Michal Simek1a79c272018-03-28 15:43:51 +0200333 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200334 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200335 label = "ina226-u85";
Michal Simek1a79c272018-03-28 15:43:51 +0200336 reg = <0x44>;
337 shunt-resistor = <5000>;
338 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200339 u86: ina226@45 { /* u86 */
Michal Simek1a79c272018-03-28 15:43:51 +0200340 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200341 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200342 label = "ina226-u86";
Michal Simek1a79c272018-03-28 15:43:51 +0200343 reg = <0x45>;
344 shunt-resistor = <5000>;
345 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200346 u93: ina226@46 { /* u93 */
Michal Simek1a79c272018-03-28 15:43:51 +0200347 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200348 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200349 label = "ina226-u93";
Michal Simek1a79c272018-03-28 15:43:51 +0200350 reg = <0x46>;
351 shunt-resistor = <5000>;
352 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200353 u88: ina226@47 { /* u88 */
Michal Simek1a79c272018-03-28 15:43:51 +0200354 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200355 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200356 label = "ina226-u88";
Michal Simek1a79c272018-03-28 15:43:51 +0200357 reg = <0x47>;
358 shunt-resistor = <5000>;
359 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200360 u15: ina226@4a { /* u15 */
Michal Simek1a79c272018-03-28 15:43:51 +0200361 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200362 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200363 label = "ina226-u15";
Michal Simek1a79c272018-03-28 15:43:51 +0200364 reg = <0x4a>;
365 shunt-resistor = <5000>;
366 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200367 u92: ina226@4b { /* u92 */
Michal Simek1a79c272018-03-28 15:43:51 +0200368 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200369 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200370 label = "ina226-u92";
Michal Simek1a79c272018-03-28 15:43:51 +0200371 reg = <0x4b>;
372 shunt-resistor = <5000>;
373 };
374 };
375 i2c@1 {
376 #address-cells = <1>;
377 #size-cells = <0>;
378 reg = <1>;
379 /* PL_PMBUS */
Michal Simek2ec41ef2019-08-26 09:46:36 +0200380 u79: ina226@40 { /* u79 */
Michal Simek1a79c272018-03-28 15:43:51 +0200381 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200382 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200383 label = "ina226-u79";
Michal Simek1a79c272018-03-28 15:43:51 +0200384 reg = <0x40>;
385 shunt-resistor = <2000>;
386 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200387 u81: ina226@41 { /* u81 */
Michal Simek1a79c272018-03-28 15:43:51 +0200388 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200389 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200390 label = "ina226-u81";
Michal Simek1a79c272018-03-28 15:43:51 +0200391 reg = <0x41>;
392 shunt-resistor = <5000>;
393 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200394 u80: ina226@42 { /* u80 */
Michal Simek1a79c272018-03-28 15:43:51 +0200395 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200396 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200397 label = "ina226-u80";
Michal Simek1a79c272018-03-28 15:43:51 +0200398 reg = <0x42>;
399 shunt-resistor = <5000>;
400 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200401 u84: ina226@43 { /* u84 */
Michal Simek1a79c272018-03-28 15:43:51 +0200402 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200403 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200404 label = "ina226-u84";
Michal Simek1a79c272018-03-28 15:43:51 +0200405 reg = <0x43>;
406 shunt-resistor = <5000>;
407 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200408 u16: ina226@44 { /* u16 */
Michal Simek1a79c272018-03-28 15:43:51 +0200409 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200410 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200411 label = "ina226-u16";
Michal Simek1a79c272018-03-28 15:43:51 +0200412 reg = <0x44>;
413 shunt-resistor = <5000>;
414 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200415 u65: ina226@45 { /* u65 */
Michal Simek1a79c272018-03-28 15:43:51 +0200416 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200417 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200418 label = "ina226-u65";
Michal Simek1a79c272018-03-28 15:43:51 +0200419 reg = <0x45>;
420 shunt-resistor = <5000>;
421 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200422 u74: ina226@46 { /* u74 */
Michal Simek1a79c272018-03-28 15:43:51 +0200423 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200424 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200425 label = "ina226-u74";
Michal Simek1a79c272018-03-28 15:43:51 +0200426 reg = <0x46>;
427 shunt-resistor = <5000>;
428 };
Michal Simek2ec41ef2019-08-26 09:46:36 +0200429 u75: ina226@47 { /* u75 */
Michal Simek1a79c272018-03-28 15:43:51 +0200430 compatible = "ti,ina226";
Michal Simek2ec41ef2019-08-26 09:46:36 +0200431 #io-channel-cells = <1>;
Michal Simek9df54d12019-08-26 10:18:13 +0200432 label = "ina226-u75";
Michal Simek1a79c272018-03-28 15:43:51 +0200433 reg = <0x47>;
434 shunt-resistor = <5000>;
435 };
436 };
437 i2c@2 {
438 #address-cells = <1>;
439 #size-cells = <0>;
440 reg = <2>;
441 /* MAXIM_PMBUS - 00 */
442 max15301@a { /* u46 */
443 compatible = "maxim,max15301";
444 reg = <0xa>;
445 };
446 max15303@b { /* u4 */
447 compatible = "maxim,max15303";
448 reg = <0xb>;
449 };
450 max15303@10 { /* u13 */
451 compatible = "maxim,max15303";
452 reg = <0x10>;
453 };
454 max15301@13 { /* u47 */
455 compatible = "maxim,max15301";
456 reg = <0x13>;
457 };
458 max15303@14 { /* u7 */
459 compatible = "maxim,max15303";
460 reg = <0x14>;
461 };
462 max15303@15 { /* u6 */
463 compatible = "maxim,max15303";
464 reg = <0x15>;
465 };
466 max15303@16 { /* u10 */
467 compatible = "maxim,max15303";
468 reg = <0x16>;
469 };
470 max15303@17 { /* u9 */
471 compatible = "maxim,max15303";
472 reg = <0x17>;
473 };
474 max15301@18 { /* u63 */
475 compatible = "maxim,max15301";
476 reg = <0x18>;
477 };
478 max15303@1a { /* u49 */
479 compatible = "maxim,max15303";
480 reg = <0x1a>;
481 };
482 max15303@1b { /* u8 */
483 compatible = "maxim,max15303";
484 reg = <0x1b>;
485 };
486 max15303@1d { /* u18 */
487 compatible = "maxim,max15303";
488 reg = <0x1d>;
489 };
490
491 max20751@72 { /* u95 */
492 compatible = "maxim,max20751";
493 reg = <0x72>;
494 };
495 max20751@73 { /* u96 */
496 compatible = "maxim,max20751";
497 reg = <0x73>;
498 };
499 };
500 /* Bus 3 is not connected */
501 };
502};
503
504&i2c1 {
505 status = "okay";
506 clock-frequency = <400000>;
Michal Simekf7b922a2021-05-10 13:14:02 +0200507 pinctrl-names = "default", "gpio";
508 pinctrl-0 = <&pinctrl_i2c1_default>;
509 pinctrl-1 = <&pinctrl_i2c1_gpio>;
Manikanta Guntupallicc45c9c2023-07-10 14:37:28 +0200510 scl-gpios = <&gpio 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
511 sda-gpios = <&gpio 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
Michal Simek1a79c272018-03-28 15:43:51 +0200512
513 /* PL i2c via PCA9306 - u45 */
514 i2c-mux@74 { /* u34 */
515 compatible = "nxp,pca9548";
516 #address-cells = <1>;
517 #size-cells = <0>;
518 reg = <0x74>;
519 i2c@0 {
520 #address-cells = <1>;
521 #size-cells = <0>;
522 reg = <0>;
523 /*
524 * IIC_EEPROM 1kB memory which uses 256B blocks
525 * where every block has different address.
526 * 0 - 256B address 0x54
527 * 256B - 512B address 0x55
528 * 512B - 768B address 0x56
529 * 768B - 1024B address 0x57
530 */
531 eeprom: eeprom@54 { /* u23 */
532 compatible = "atmel,24c08";
533 reg = <0x54>;
534 };
535 };
536 i2c@1 {
537 #address-cells = <1>;
538 #size-cells = <0>;
539 reg = <1>;
540 si5341: clock-generator@36 { /* SI5341 - u69 */
Michal Simek958c0e92020-11-26 14:25:02 +0100541 compatible = "silabs,si5341";
Michal Simek1a79c272018-03-28 15:43:51 +0200542 reg = <0x36>;
Michal Simek958c0e92020-11-26 14:25:02 +0100543 #clock-cells = <2>;
544 #address-cells = <1>;
545 #size-cells = <0>;
546 clocks = <&ref48>;
547 clock-names = "xtal";
548 clock-output-names = "si5341";
549
550 si5341_0: out@0 {
551 /* refclk0 for PS-GT, used for DP */
552 reg = <0>;
553 always-on;
554 };
555 si5341_2: out@2 {
556 /* refclk2 for PS-GT, used for USB3 */
557 reg = <2>;
558 always-on;
559 };
560 si5341_3: out@3 {
561 /* refclk3 for PS-GT, used for SATA */
562 reg = <3>;
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 };
Michal Simek1a79c272018-03-28 15:43:51 +0200580 };
581
582 };
583 i2c@2 {
584 #address-cells = <1>;
585 #size-cells = <0>;
586 reg = <2>;
587 si570_1: clock-generator@5d { /* USER SI570 - u42 */
588 #clock-cells = <0>;
589 compatible = "silabs,si570";
590 reg = <0x5d>;
591 temperature-stability = <50>;
592 factory-fout = <300000000>;
593 clock-frequency = <300000000>;
Michal Simek3cf07bf2018-07-18 12:10:02 +0200594 clock-output-names = "si570_user";
Michal Simek1a79c272018-03-28 15:43:51 +0200595 };
596 };
597 i2c@3 {
598 #address-cells = <1>;
599 #size-cells = <0>;
600 reg = <3>;
601 si570_2: clock-generator@5d { /* USER MGT SI570 - u56 */
602 #clock-cells = <0>;
603 compatible = "silabs,si570";
604 reg = <0x5d>;
605 temperature-stability = <50>; /* copy from zc702 */
606 factory-fout = <156250000>;
Michal Simek9c7b8362023-08-25 09:11:29 +0200607 clock-frequency = <156250000>;
Michal Simek3cf07bf2018-07-18 12:10:02 +0200608 clock-output-names = "si570_mgt";
Michal Simek1a79c272018-03-28 15:43:51 +0200609 };
610 };
611 i2c@4 {
612 #address-cells = <1>;
613 #size-cells = <0>;
614 reg = <4>;
Michal Simek345508b2022-05-11 11:52:54 +0200615 si5328: clock-generator@69 {/* SI5328 - u20 */
616 compatible = "silabs,si5328";
617 reg = <0x69>;
618 /*
619 * Chip has interrupt present connected to PL
620 * interrupt-parent = <&>;
621 * interrupts = <>;
622 */
623 #address-cells = <1>;
624 #size-cells = <0>;
625 #clock-cells = <1>;
626 clocks = <&refhdmi>;
627 clock-names = "xtal";
628 clock-output-names = "si5328";
629
630 si5328_clk: clk0@0 {
631 reg = <0>;
632 clock-frequency = <27000000>;
633 };
634 };
Michal Simek1a79c272018-03-28 15:43:51 +0200635 };
636 i2c@5 {
637 #address-cells = <1>;
638 #size-cells = <0>;
639 reg = <5>; /* FAN controller */
640 temp@4c {/* lm96163 - u128 */
641 compatible = "national,lm96163";
642 reg = <0x4c>;
643 };
644 };
645 /* 6 - 7 unconnected */
646 };
647
648 i2c-mux@75 {
649 compatible = "nxp,pca9548"; /* u135 */
650 #address-cells = <1>;
651 #size-cells = <0>;
652 reg = <0x75>;
653
654 i2c@0 {
655 #address-cells = <1>;
656 #size-cells = <0>;
657 reg = <0>;
658 /* HPC0_IIC */
659 };
660 i2c@1 {
661 #address-cells = <1>;
662 #size-cells = <0>;
663 reg = <1>;
664 /* HPC1_IIC */
665 };
666 i2c@2 {
667 #address-cells = <1>;
668 #size-cells = <0>;
669 reg = <2>;
670 /* SYSMON */
671 };
672 i2c@3 {
673 #address-cells = <1>;
674 #size-cells = <0>;
675 reg = <3>;
676 /* DDR4 SODIMM */
Michal Simek1a79c272018-03-28 15:43:51 +0200677 };
678 i2c@4 {
679 #address-cells = <1>;
680 #size-cells = <0>;
681 reg = <4>;
682 /* SEP 3 */
683 };
684 i2c@5 {
685 #address-cells = <1>;
686 #size-cells = <0>;
687 reg = <5>;
688 /* SEP 2 */
689 };
690 i2c@6 {
691 #address-cells = <1>;
692 #size-cells = <0>;
693 reg = <6>;
694 /* SEP 1 */
695 };
696 i2c@7 {
697 #address-cells = <1>;
698 #size-cells = <0>;
699 reg = <7>;
700 /* SEP 0 */
701 };
702 };
703};
704
Michal Simekf7b922a2021-05-10 13:14:02 +0200705&pinctrl0 {
706 status = "okay";
707 pinctrl_i2c0_default: i2c0-default {
708 mux {
709 groups = "i2c0_3_grp";
710 function = "i2c0";
711 };
712
713 conf {
714 groups = "i2c0_3_grp";
715 bias-pull-up;
716 slew-rate = <SLEW_RATE_SLOW>;
717 power-source = <IO_STANDARD_LVCMOS18>;
718 };
719 };
720
721 pinctrl_i2c0_gpio: i2c0-gpio {
722 mux {
723 groups = "gpio0_14_grp", "gpio0_15_grp";
724 function = "gpio0";
725 };
726
727 conf {
728 groups = "gpio0_14_grp", "gpio0_15_grp";
729 slew-rate = <SLEW_RATE_SLOW>;
730 power-source = <IO_STANDARD_LVCMOS18>;
731 };
732 };
733
734 pinctrl_i2c1_default: i2c1-default {
735 mux {
736 groups = "i2c1_4_grp";
737 function = "i2c1";
738 };
739
740 conf {
741 groups = "i2c1_4_grp";
742 bias-pull-up;
743 slew-rate = <SLEW_RATE_SLOW>;
744 power-source = <IO_STANDARD_LVCMOS18>;
745 };
746 };
747
748 pinctrl_i2c1_gpio: i2c1-gpio {
749 mux {
750 groups = "gpio0_16_grp", "gpio0_17_grp";
751 function = "gpio0";
752 };
753
754 conf {
755 groups = "gpio0_16_grp", "gpio0_17_grp";
756 slew-rate = <SLEW_RATE_SLOW>;
757 power-source = <IO_STANDARD_LVCMOS18>;
758 };
759 };
760
761 pinctrl_uart0_default: uart0-default {
762 mux {
763 groups = "uart0_4_grp";
764 function = "uart0";
765 };
766
767 conf {
768 groups = "uart0_4_grp";
769 slew-rate = <SLEW_RATE_SLOW>;
770 power-source = <IO_STANDARD_LVCMOS18>;
771 };
772
773 conf-rx {
774 pins = "MIO18";
775 bias-high-impedance;
776 };
777
778 conf-tx {
779 pins = "MIO19";
780 bias-disable;
781 };
782 };
783
784 pinctrl_uart1_default: uart1-default {
785 mux {
786 groups = "uart1_5_grp";
787 function = "uart1";
788 };
789
790 conf {
791 groups = "uart1_5_grp";
792 slew-rate = <SLEW_RATE_SLOW>;
793 power-source = <IO_STANDARD_LVCMOS18>;
794 };
795
796 conf-rx {
797 pins = "MIO21";
798 bias-high-impedance;
799 };
800
801 conf-tx {
802 pins = "MIO20";
803 bias-disable;
804 };
805 };
806
807 pinctrl_usb0_default: usb0-default {
808 mux {
809 groups = "usb0_0_grp";
810 function = "usb0";
811 };
812
813 conf {
814 groups = "usb0_0_grp";
Michal Simekf7b922a2021-05-10 13:14:02 +0200815 power-source = <IO_STANDARD_LVCMOS18>;
816 };
817
818 conf-rx {
819 pins = "MIO52", "MIO53", "MIO55";
820 bias-high-impedance;
Ashok Reddy Soma4d0ecf62022-06-15 12:16:13 +0200821 drive-strength = <12>;
822 slew-rate = <SLEW_RATE_FAST>;
Michal Simekf7b922a2021-05-10 13:14:02 +0200823 };
824
825 conf-tx {
826 pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
827 "MIO60", "MIO61", "MIO62", "MIO63";
828 bias-disable;
Ashok Reddy Soma4d0ecf62022-06-15 12:16:13 +0200829 drive-strength = <4>;
830 slew-rate = <SLEW_RATE_SLOW>;
Michal Simekf7b922a2021-05-10 13:14:02 +0200831 };
832 };
833
834 pinctrl_gem3_default: gem3-default {
835 mux {
836 function = "ethernet3";
837 groups = "ethernet3_0_grp";
838 };
839
840 conf {
841 groups = "ethernet3_0_grp";
842 slew-rate = <SLEW_RATE_SLOW>;
843 power-source = <IO_STANDARD_LVCMOS18>;
844 };
845
846 conf-rx {
847 pins = "MIO70", "MIO71", "MIO72", "MIO73", "MIO74",
848 "MIO75";
849 bias-high-impedance;
850 low-power-disable;
851 };
852
853 conf-tx {
854 pins = "MIO64", "MIO65", "MIO66", "MIO67", "MIO68",
855 "MIO69";
856 bias-disable;
857 low-power-enable;
858 };
859
860 mux-mdio {
861 function = "mdio3";
862 groups = "mdio3_0_grp";
863 };
864
865 conf-mdio {
866 groups = "mdio3_0_grp";
867 slew-rate = <SLEW_RATE_SLOW>;
868 power-source = <IO_STANDARD_LVCMOS18>;
869 bias-disable;
870 };
871 };
872
873 pinctrl_can1_default: can1-default {
874 mux {
875 function = "can1";
876 groups = "can1_6_grp";
877 };
878
879 conf {
880 groups = "can1_6_grp";
881 slew-rate = <SLEW_RATE_SLOW>;
882 power-source = <IO_STANDARD_LVCMOS18>;
883 };
884
885 conf-rx {
886 pins = "MIO25";
887 bias-high-impedance;
888 };
889
890 conf-tx {
891 pins = "MIO24";
892 bias-disable;
893 };
894 };
895
896 pinctrl_sdhci1_default: sdhci1-default {
897 mux {
898 groups = "sdio1_0_grp";
899 function = "sdio1";
900 };
901
902 conf {
903 groups = "sdio1_0_grp";
904 slew-rate = <SLEW_RATE_SLOW>;
905 power-source = <IO_STANDARD_LVCMOS18>;
906 bias-disable;
907 };
908
909 mux-cd {
910 groups = "sdio1_cd_0_grp";
911 function = "sdio1_cd";
912 };
913
914 conf-cd {
915 groups = "sdio1_cd_0_grp";
916 bias-high-impedance;
917 bias-pull-up;
918 slew-rate = <SLEW_RATE_SLOW>;
919 power-source = <IO_STANDARD_LVCMOS18>;
920 };
921
922 mux-wp {
923 groups = "sdio1_wp_0_grp";
924 function = "sdio1_wp";
925 };
926
927 conf-wp {
928 groups = "sdio1_wp_0_grp";
929 bias-high-impedance;
930 bias-pull-up;
931 slew-rate = <SLEW_RATE_SLOW>;
932 power-source = <IO_STANDARD_LVCMOS18>;
933 };
934 };
935
936 pinctrl_gpio_default: gpio-default {
937 mux {
938 function = "gpio0";
939 groups = "gpio0_22_grp", "gpio0_23_grp";
940 };
941
942 conf {
943 groups = "gpio0_22_grp", "gpio0_23_grp";
944 slew-rate = <SLEW_RATE_SLOW>;
945 power-source = <IO_STANDARD_LVCMOS18>;
946 };
947
948 mux-msp {
949 function = "gpio0";
950 groups = "gpio0_13_grp", "gpio0_38_grp";
951 };
952
953 conf-msp {
954 groups = "gpio0_13_grp", "gpio0_38_grp";
955 slew-rate = <SLEW_RATE_SLOW>;
956 power-source = <IO_STANDARD_LVCMOS18>;
957 };
958
959 conf-pull-up {
960 pins = "MIO22";
961 bias-pull-up;
962 };
963
964 conf-pull-none {
965 pins = "MIO13", "MIO23", "MIO38";
966 bias-disable;
967 };
968 };
969};
970
Michal Simek93a89f32021-06-01 16:42:50 +0200971&psgtr {
972 status = "okay";
973 /* nc, sata, usb3, dp */
974 clocks = <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
975 clock-names = "ref1", "ref2", "ref3";
976};
977
Michal Simek1a79c272018-03-28 15:43:51 +0200978&qspi {
979 status = "okay";
980 is-dual = <1>;
981 flash@0 {
Neil Armstronga009fa72019-02-10 10:16:20 +0000982 compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
Michal Simek1a79c272018-03-28 15:43:51 +0200983 #address-cells = <1>;
984 #size-cells = <1>;
985 reg = <0x0>;
Amit Kumar Mahapatraa02408b2022-05-10 16:33:01 +0200986 spi-tx-bus-width = <4>;
Michal Simek1a79c272018-03-28 15:43:51 +0200987 spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
988 spi-max-frequency = <108000000>; /* Based on DC1 spec */
Michal Simek70fafdf2020-02-14 14:19:56 +0100989 partition@0 { /* for testing purpose */
Michal Simek1a79c272018-03-28 15:43:51 +0200990 label = "qspi-fsbl-uboot";
991 reg = <0x0 0x100000>;
992 };
Michal Simek70fafdf2020-02-14 14:19:56 +0100993 partition@100000 { /* for testing purpose */
Michal Simek1a79c272018-03-28 15:43:51 +0200994 label = "qspi-linux";
995 reg = <0x100000 0x500000>;
996 };
Michal Simek70fafdf2020-02-14 14:19:56 +0100997 partition@600000 { /* for testing purpose */
Michal Simek1a79c272018-03-28 15:43:51 +0200998 label = "qspi-device-tree";
999 reg = <0x600000 0x20000>;
1000 };
Michal Simek70fafdf2020-02-14 14:19:56 +01001001 partition@620000 { /* for testing purpose */
Michal Simek1a79c272018-03-28 15:43:51 +02001002 label = "qspi-rootfs";
1003 reg = <0x620000 0x5E0000>;
1004 };
1005 };
1006};
1007
1008&rtc {
1009 status = "okay";
1010};
1011
1012&sata {
1013 status = "okay";
1014 /* SATA OOB timing settings */
1015 ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>;
1016 ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
1017 ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
1018 ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
1019 ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>;
1020 ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
1021 ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
1022 ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
1023 phy-names = "sata-phy";
Michal Simek958c0e92020-11-26 14:25:02 +01001024 phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
Michal Simek1a79c272018-03-28 15:43:51 +02001025};
1026
1027/* SD1 with level shifter */
1028&sdhci1 {
1029 status = "okay";
Manish Naranie2ba0932020-02-13 23:37:30 -07001030 /*
1031 * This property should be removed for supporting UHS mode
1032 */
1033 no-1-8-v;
Michal Simekf7b922a2021-05-10 13:14:02 +02001034 pinctrl-names = "default";
1035 pinctrl-0 = <&pinctrl_sdhci1_default>;
Michal Simek3b662642020-07-22 17:42:43 +02001036 xlnx,mio-bank = <1>;
Michal Simek1a79c272018-03-28 15:43:51 +02001037};
1038
Michal Simek1a79c272018-03-28 15:43:51 +02001039&uart0 {
1040 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +02001041 pinctrl-names = "default";
1042 pinctrl-0 = <&pinctrl_uart0_default>;
Michal Simek1a79c272018-03-28 15:43:51 +02001043};
1044
1045&uart1 {
1046 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +02001047 pinctrl-names = "default";
1048 pinctrl-0 = <&pinctrl_uart1_default>;
Michal Simek1a79c272018-03-28 15:43:51 +02001049};
1050
1051/* ULPI SMSC USB3320 */
1052&usb0 {
1053 status = "okay";
Michal Simekf7b922a2021-05-10 13:14:02 +02001054 pinctrl-names = "default";
1055 pinctrl-0 = <&pinctrl_usb0_default>;
Manish Naranif3c63382021-07-14 06:17:19 -06001056 phy-names = "usb3-phy";
1057 phys = <&psgtr 2 PHY_TYPE_USB3 0 2>;
Michal Simek1a79c272018-03-28 15:43:51 +02001058};
1059
1060&dwc3_0 {
1061 status = "okay";
1062 dr_mode = "host";
1063 snps,usb3_lpm_capable;
Michal Simekeb4b55c2021-05-31 17:51:58 +02001064 maximum-speed = "super-speed";
Michal Simek1a79c272018-03-28 15:43:51 +02001065};
1066
1067&watchdog0 {
1068 status = "okay";
1069};
Michal Simek6412f602021-05-27 13:44:35 +02001070
1071&zynqmp_dpdma {
1072 status = "okay";
1073};
1074
1075&zynqmp_dpsub {
1076 status = "okay";
1077 phy-names = "dp-phy0", "dp-phy1";
1078 phys = <&psgtr 1 PHY_TYPE_DP 0 3>,
1079 <&psgtr 0 PHY_TYPE_DP 1 3>;
Laurent Pinchart47443372023-09-22 12:35:38 +02001080
1081 ports {
1082 port@5 {
1083 dpsub_dp_out: endpoint {
1084 remote-endpoint = <&dpcon_in>;
1085 };
1086 };
1087 };
Michal Simek6412f602021-05-27 13:44:35 +02001088};