blob: 7be02ab29fa107e9e47cd0038dd22ecbf400bfbe [file] [log] [blame]
Michal Simekae022cf2022-05-18 12:49:26 +02001// SPDX-License-Identifier: GPL-2.0
2/*
3 * dts file for KR260 revA Carrier Card
4 *
5 * (C) Copyright 2021, Xilinx, Inc.
6 *
7 * Michal Simek <michal.simek@xilinx.com>
8 */
9
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/net/ti-dp83867.h>
12#include <dt-bindings/phy/phy.h>
13#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
14
15/dts-v1/;
16/plugin/;
17
18&{/} {
19 compatible = "xlnx,zynqmp-sk-kr260-revA",
20 "xlnx,zynqmp-sk-kr260", "xlnx,zynqmp";
21
22 ina260-u14 {
23 compatible = "iio-hwmon";
24 io-channels = <&u14 0>, <&u14 1>, <&u14 2>;
25 };
26
27 si5332_0: si5332_0 { /* u17 - GEM0/1 */
28 compatible = "fixed-clock";
29 #clock-cells = <0>;
30 clock-frequency = <125000000>;
31 };
32
33 si5332_1: si5332_1 { /* u17 - DP */
34 compatible = "fixed-clock";
35 #clock-cells = <0>;
36 clock-frequency = <27000000>;
37 };
38
39 si5332_2: si5332_2 { /* u17 - USB */
40 compatible = "fixed-clock";
41 #clock-cells = <0>;
42 clock-frequency = <26000000>;
43 };
44
45 si5332_3: si5332_3 { /* u17 - SFP+ */
46 compatible = "fixed-clock";
47 #clock-cells = <0>;
48 clock-frequency = <156250000>;
49 };
50
51 si5332_4: si5332_4 { /* u17 - GEM2 */
52 compatible = "fixed-clock";
53 #clock-cells = <0>;
54 clock-frequency = <25000000>;
55 };
56
57 si5332_5: si5332_5 { /* u17 - GEM3 */
58 compatible = "fixed-clock";
59 #clock-cells = <0>;
60 clock-frequency = <25000000>;
61 };
62};
63
64&i2c1 { /* I2C_SCK C26/C27 - MIO from SOM */
65 #address-cells = <1>;
66 #size-cells = <0>;
67 pinctrl-names = "default", "gpio";
68 pinctrl-0 = <&pinctrl_i2c1_default>;
69 pinctrl-1 = <&pinctrl_i2c1_gpio>;
70 scl-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>;
71 sda-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
72
73 u14: ina260@40 { /* u14 */
74 compatible = "ti,ina260";
75 #io-channel-cells = <1>;
76 label = "ina260-u14";
77 reg = <0x40>;
78 };
79
80 slg7xl45106: gpio@11 { /* u19 - reset logic */
81 compatible = "dlg,slg7xl45106";
82 reg = <0x11>;
83 label = "resetchip";
84 gpio-controller;
85 #gpio-cells = <2>;
86 gpio-line-names = "USB0_PHY_RESET_B", "USB1_PHY_RESET_B",
87 "SD_RESET_B", "USB0_HUB_RESET_B",
88 "USB1_HUB_RESET_B", "PS_GEM0_RESET_B",
89 "PS_GEM1_RESET_B", "";
90 };
91
92 i2c-mux@74 { /* u18 */
93 compatible = "nxp,pca9546";
94 #address-cells = <1>;
95 #size-cells = <0>;
96 reg = <0x74>;
97 usbhub_i2c0: i2c@0 {
98 #address-cells = <1>;
99 #size-cells = <0>;
100 reg = <0>;
101 };
102 usbhub_i2c1: i2c@1 {
103 #address-cells = <1>;
104 #size-cells = <0>;
105 reg = <1>;
106 };
107 /* Bus 2/3 are not connected */
108 };
109
110 /* si5332@6a - u17 - clock-generator */
111};
112
113/* GEM SGMII/DP and USB 3.0 */
114&psgtr {
115 status = "okay";
116 /* gem0/1, dp, usb */
117 clocks = <&si5332_0>, <&si5332_1>, <&si5332_2>;
118 clock-names = "ref0", "ref1", "ref2";
119};
120
121&zynqmp_dpsub {
122 status = "okay";
123 phy-names = "dp-phy0";
124 phys = <&psgtr 1 PHY_TYPE_DP 0 1>;
125 assigned-clock-rates = <27000000>, <25000000>, <300000000>;
126};
127
128&zynqmp_dpdma {
129 status = "okay";
130 assigned-clock-rates = <600000000>;
131};
132
133&usb0 { /* mio52 - mio63 */
134 status = "okay";
135 pinctrl-names = "default";
136 pinctrl-0 = <&pinctrl_usb0_default>;
137 phy-names = "usb3-phy";
138 phys = <&psgtr 2 PHY_TYPE_USB3 0 2>;
139 reset-gpios = <&slg7xl45106 0 GPIO_ACTIVE_LOW>;
140 assigned-clock-rates = <250000000>, <20000000>;
141
142 usbhub0: usb-hub { /* u43 */
143 i2c-bus = <&usbhub_i2c0>;
144 compatible = "microchip,usb5744";
145 reset-gpios = <&slg7xl45106 3 GPIO_ACTIVE_LOW>;
146 };
147
148 usb2244: usb-sd { /* u38 */
149 compatible = "microchip,usb2244";
150 reset-gpios = <&slg7xl45106 2 GPIO_ACTIVE_LOW>;
151 };
152};
153
154&dwc3_0 {
155 status = "okay";
156 dr_mode = "host";
157 snps,usb3_lpm_capable;
158 maximum-speed = "super-speed";
159};
160
161&usb1 { /* mio64 - mio75 */
162 status = "okay";
163 pinctrl-names = "default";
164 pinctrl-0 = <&pinctrl_usb1_default>;
165 phy-names = "usb3-phy";
166 phys = <&psgtr 3 PHY_TYPE_USB3 1 2>;
167 reset-gpios = <&slg7xl45106 1 GPIO_ACTIVE_LOW>;
168 assigned-clock-rates = <250000000>, <20000000>;
169
170 usbhub1: usb-hub { /* u84 */
171 i2c-bus = <&usbhub_i2c1>;
172 compatible = "microchip,usb5744";
173 reset-gpios = <&slg7xl45106 4 GPIO_ACTIVE_LOW>;
174 };
175};
176
177&dwc3_1 {
178 status = "okay";
179 dr_mode = "host";
180 snps,usb3_lpm_capable;
181 maximum-speed = "super-speed";
182};
183
184&gem0 { /* mdio mio50/51 */
185 status = "okay";
186 phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>;
187 phy-handle = <&phy0>;
188 phy-mode = "sgmii";
189 is-internal-pcspma;
190};
191
192&gem1 { /* mdio mio50/51, gem mio38 - mio49 */
193 status = "okay";
194 pinctrl-names = "default";
195 pinctrl-0 = <&pinctrl_gem1_default>;
196 phy-handle = <&phy1>;
197 phy-mode = "rgmii-id";
198
199 mdio: mdio {
200 #address-cells = <1>;
201 #size-cells = <0>;
202 phy0: ethernet-phy@4 { /* u81 */
203 #phy-cells = <1>;
204 compatible = "ethernet-phy-id2000.a231";
205 reg = <4>;
206 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
207 ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
208 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
209 ti,dp83867-rxctrl-strap-quirk;
210 reset-assert-us = <100>;
211 reset-deassert-us = <280>;
212 reset-gpios = <&slg7xl45106 5 GPIO_ACTIVE_LOW>;
213 };
214 phy1: ethernet-phy@8 { /* u36 */
215 #phy-cells = <1>;
216 compatible = "ethernet-phy-id2000.a231";
217 reg = <8>;
218 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
219 ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
220 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
221 ti,dp83867-rxctrl-strap-quirk;
222 reset-assert-us = <100>;
223 reset-deassert-us = <280>;
224 reset-gpios = <&slg7xl45106 6 GPIO_ACTIVE_LOW>;
225 };
226 };
227};
228
229/* gem2/gem3 via PL with phys u79@2 and u80@3 */
230
231&pinctrl0 { /* required by spec */
232 status = "okay";
233
234 pinctrl_uart1_default: uart1-default {
235 conf {
236 groups = "uart1_9_grp";
237 slew-rate = <SLEW_RATE_SLOW>;
238 power-source = <IO_STANDARD_LVCMOS18>;
239 drive-strength = <12>;
240 };
241
242 conf-rx {
243 pins = "MIO37";
244 bias-high-impedance;
245 };
246
247 conf-tx {
248 pins = "MIO36";
249 bias-disable;
250 };
251
252 mux {
253 groups = "uart1_9_grp";
254 function = "uart1";
255 };
256 };
257
258 pinctrl_i2c1_default: i2c1-default {
259 conf {
260 groups = "i2c1_6_grp";
261 bias-pull-up;
262 slew-rate = <SLEW_RATE_SLOW>;
263 power-source = <IO_STANDARD_LVCMOS18>;
264 };
265
266 mux {
267 groups = "i2c1_6_grp";
268 function = "i2c1";
269 };
270 };
271
272 pinctrl_i2c1_gpio: i2c1-gpio {
273 conf {
274 groups = "gpio0_24_grp", "gpio0_25_grp";
275 slew-rate = <SLEW_RATE_SLOW>;
276 power-source = <IO_STANDARD_LVCMOS18>;
277 };
278
279 mux {
280 groups = "gpio0_24_grp", "gpio0_25_grp";
281 function = "gpio0";
282 };
283 };
284
285 pinctrl_gem1_default: gem1-default {
286 conf {
287 groups = "ethernet1_0_grp";
288 slew-rate = <SLEW_RATE_SLOW>;
289 power-source = <IO_STANDARD_LVCMOS18>;
290 };
291
292 conf-rx {
293 pins = "MIO44", "MIO46", "MIO48";
294 bias-high-impedance;
295 low-power-disable;
296 };
297
298 conf-bootstrap {
299 pins = "MIO45", "MIO47", "MIO49";
300 bias-disable;
301 low-power-disable;
302 };
303
304 conf-tx {
305 pins = "MIO38", "MIO39", "MIO40",
306 "MIO41", "MIO42", "MIO43";
307 bias-disable;
308 low-power-enable;
309 };
310
311 conf-mdio {
312 groups = "mdio1_0_grp";
313 slew-rate = <SLEW_RATE_SLOW>;
314 power-source = <IO_STANDARD_LVCMOS18>;
315 bias-disable;
316 };
317
318 mux-mdio {
319 function = "mdio1";
320 groups = "mdio1_0_grp";
321 };
322
323 mux {
324 function = "ethernet1";
325 groups = "ethernet1_0_grp";
326 };
327 };
328
329 pinctrl_usb0_default: usb0-default {
330 conf {
331 groups = "usb0_0_grp";
332 slew-rate = <SLEW_RATE_SLOW>;
333 power-source = <IO_STANDARD_LVCMOS18>;
334 };
335
336 conf-rx {
337 pins = "MIO52", "MIO53", "MIO55";
338 bias-high-impedance;
339 };
340
341 conf-tx {
342 pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
343 "MIO60", "MIO61", "MIO62", "MIO63";
344 bias-disable;
345 };
346
347 mux {
348 groups = "usb0_0_grp";
349 function = "usb0";
350 };
351 };
352
353 pinctrl_usb1_default: usb1-default {
354 conf {
355 groups = "usb1_0_grp";
356 slew-rate = <SLEW_RATE_SLOW>;
357 power-source = <IO_STANDARD_LVCMOS18>;
358 };
359
360 conf-rx {
361 pins = "MIO64", "MIO65", "MIO67";
362 bias-high-impedance;
363 };
364
365 conf-tx {
366 pins = "MIO66", "MIO68", "MIO69", "MIO70", "MIO71",
367 "MIO72", "MIO73", "MIO74", "MIO75";
368 bias-disable;
369 };
370
371 mux {
372 groups = "usb1_0_grp";
373 function = "usb1";
374 };
375 };
376};
377
378&uart1 {
379 status = "okay";
380 pinctrl-names = "default";
381 pinctrl-0 = <&pinctrl_uart1_default>;
382};