xref: /freebsd/sys/contrib/device-tree/src/arm64/xilinx/zynqmp-sck-kv-g-revA.dts (revision 8cc087a1eee9ec1ca9f7ac1e63ad51bdb5a682eb)
1*8cc087a1SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2*8cc087a1SEmmanuel Vadot/*
3*8cc087a1SEmmanuel Vadot * dts file for KV260 revA Carrier Card
4*8cc087a1SEmmanuel Vadot *
5*8cc087a1SEmmanuel Vadot * (C) Copyright 2020 - 2021, Xilinx, Inc.
6*8cc087a1SEmmanuel Vadot *
7*8cc087a1SEmmanuel Vadot * SD level shifter:
8*8cc087a1SEmmanuel Vadot * "A" – A01 board un-modified (NXP)
9*8cc087a1SEmmanuel Vadot * "Y" – A01 board modified with legacy interposer (Nexperia)
10*8cc087a1SEmmanuel Vadot * "Z" – A01 board modified with Diode interposer
11*8cc087a1SEmmanuel Vadot *
12*8cc087a1SEmmanuel Vadot * Michal Simek <michal.simek@xilinx.com>
13*8cc087a1SEmmanuel Vadot */
14*8cc087a1SEmmanuel Vadot
15*8cc087a1SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
16*8cc087a1SEmmanuel Vadot#include <dt-bindings/net/ti-dp83867.h>
17*8cc087a1SEmmanuel Vadot#include <dt-bindings/phy/phy.h>
18*8cc087a1SEmmanuel Vadot#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
19*8cc087a1SEmmanuel Vadot
20*8cc087a1SEmmanuel Vadot/dts-v1/;
21*8cc087a1SEmmanuel Vadot/plugin/;
22*8cc087a1SEmmanuel Vadot
23*8cc087a1SEmmanuel Vadot&i2c1 { /* I2C_SCK C23/C24 - MIO from SOM */
24*8cc087a1SEmmanuel Vadot	#address-cells = <1>;
25*8cc087a1SEmmanuel Vadot	#size-cells = <0>;
26*8cc087a1SEmmanuel Vadot	pinctrl-names = "default", "gpio";
27*8cc087a1SEmmanuel Vadot	pinctrl-0 = <&pinctrl_i2c1_default>;
28*8cc087a1SEmmanuel Vadot	pinctrl-1 = <&pinctrl_i2c1_gpio>;
29*8cc087a1SEmmanuel Vadot	scl-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>;
30*8cc087a1SEmmanuel Vadot	sda-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
31*8cc087a1SEmmanuel Vadot
32*8cc087a1SEmmanuel Vadot	/* u14 - 0x40 - ina260 */
33*8cc087a1SEmmanuel Vadot	/* u27 - 0xe0 - STDP4320 DP/HDMI splitter */
34*8cc087a1SEmmanuel Vadot};
35*8cc087a1SEmmanuel Vadot
36*8cc087a1SEmmanuel Vadot&amba {
37*8cc087a1SEmmanuel Vadot	si5332_0: si5332_0 { /* u17 */
38*8cc087a1SEmmanuel Vadot		compatible = "fixed-clock";
39*8cc087a1SEmmanuel Vadot		#clock-cells = <0>;
40*8cc087a1SEmmanuel Vadot		clock-frequency = <125000000>;
41*8cc087a1SEmmanuel Vadot	};
42*8cc087a1SEmmanuel Vadot
43*8cc087a1SEmmanuel Vadot	si5332_1: si5332_1 { /* u17 */
44*8cc087a1SEmmanuel Vadot		compatible = "fixed-clock";
45*8cc087a1SEmmanuel Vadot		#clock-cells = <0>;
46*8cc087a1SEmmanuel Vadot		clock-frequency = <25000000>;
47*8cc087a1SEmmanuel Vadot	};
48*8cc087a1SEmmanuel Vadot
49*8cc087a1SEmmanuel Vadot	si5332_2: si5332_2 { /* u17 */
50*8cc087a1SEmmanuel Vadot		compatible = "fixed-clock";
51*8cc087a1SEmmanuel Vadot		#clock-cells = <0>;
52*8cc087a1SEmmanuel Vadot		clock-frequency = <48000000>;
53*8cc087a1SEmmanuel Vadot	};
54*8cc087a1SEmmanuel Vadot
55*8cc087a1SEmmanuel Vadot	si5332_3: si5332_3 { /* u17 */
56*8cc087a1SEmmanuel Vadot		compatible = "fixed-clock";
57*8cc087a1SEmmanuel Vadot		#clock-cells = <0>;
58*8cc087a1SEmmanuel Vadot		clock-frequency = <24000000>;
59*8cc087a1SEmmanuel Vadot	};
60*8cc087a1SEmmanuel Vadot
61*8cc087a1SEmmanuel Vadot	si5332_4: si5332_4 { /* u17 */
62*8cc087a1SEmmanuel Vadot		compatible = "fixed-clock";
63*8cc087a1SEmmanuel Vadot		#clock-cells = <0>;
64*8cc087a1SEmmanuel Vadot		clock-frequency = <26000000>;
65*8cc087a1SEmmanuel Vadot	};
66*8cc087a1SEmmanuel Vadot
67*8cc087a1SEmmanuel Vadot	si5332_5: si5332_5 { /* u17 */
68*8cc087a1SEmmanuel Vadot		compatible = "fixed-clock";
69*8cc087a1SEmmanuel Vadot		#clock-cells = <0>;
70*8cc087a1SEmmanuel Vadot		clock-frequency = <27000000>;
71*8cc087a1SEmmanuel Vadot	};
72*8cc087a1SEmmanuel Vadot};
73*8cc087a1SEmmanuel Vadot
74*8cc087a1SEmmanuel Vadot/* DP/USB 3.0 and SATA */
75*8cc087a1SEmmanuel Vadot&psgtr {
76*8cc087a1SEmmanuel Vadot	status = "okay";
77*8cc087a1SEmmanuel Vadot	/* pcie, usb3, sata */
78*8cc087a1SEmmanuel Vadot	clocks = <&si5332_5>, <&si5332_4>, <&si5332_0>;
79*8cc087a1SEmmanuel Vadot	clock-names = "ref0", "ref1", "ref2";
80*8cc087a1SEmmanuel Vadot};
81*8cc087a1SEmmanuel Vadot
82*8cc087a1SEmmanuel Vadot&sata {
83*8cc087a1SEmmanuel Vadot	status = "okay";
84*8cc087a1SEmmanuel Vadot	/* SATA OOB timing settings */
85*8cc087a1SEmmanuel Vadot	ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>;
86*8cc087a1SEmmanuel Vadot	ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
87*8cc087a1SEmmanuel Vadot	ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
88*8cc087a1SEmmanuel Vadot	ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
89*8cc087a1SEmmanuel Vadot	ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>;
90*8cc087a1SEmmanuel Vadot	ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
91*8cc087a1SEmmanuel Vadot	ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
92*8cc087a1SEmmanuel Vadot	ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
93*8cc087a1SEmmanuel Vadot	phy-names = "sata-phy";
94*8cc087a1SEmmanuel Vadot	phys = <&psgtr 3 PHY_TYPE_SATA 1 2>;
95*8cc087a1SEmmanuel Vadot};
96*8cc087a1SEmmanuel Vadot
97*8cc087a1SEmmanuel Vadot&zynqmp_dpsub {
98*8cc087a1SEmmanuel Vadot	status = "disabled";
99*8cc087a1SEmmanuel Vadot	phy-names = "dp-phy0", "dp-phy1";
100*8cc087a1SEmmanuel Vadot	phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>;
101*8cc087a1SEmmanuel Vadot};
102*8cc087a1SEmmanuel Vadot
103*8cc087a1SEmmanuel Vadot&zynqmp_dpdma {
104*8cc087a1SEmmanuel Vadot	status = "okay";
105*8cc087a1SEmmanuel Vadot};
106*8cc087a1SEmmanuel Vadot
107*8cc087a1SEmmanuel Vadot&usb0 {
108*8cc087a1SEmmanuel Vadot	status = "okay";
109*8cc087a1SEmmanuel Vadot	pinctrl-names = "default";
110*8cc087a1SEmmanuel Vadot	pinctrl-0 = <&pinctrl_usb0_default>;
111*8cc087a1SEmmanuel Vadot	phy-names = "usb3-phy";
112*8cc087a1SEmmanuel Vadot	phys = <&psgtr 2 PHY_TYPE_USB3 0 1>;
113*8cc087a1SEmmanuel Vadot	/* missing usb5744 - u43 */
114*8cc087a1SEmmanuel Vadot};
115*8cc087a1SEmmanuel Vadot
116*8cc087a1SEmmanuel Vadot&dwc3_0 {
117*8cc087a1SEmmanuel Vadot	status = "okay";
118*8cc087a1SEmmanuel Vadot	dr_mode = "host";
119*8cc087a1SEmmanuel Vadot	snps,usb3_lpm_capable;
120*8cc087a1SEmmanuel Vadot	maximum-speed = "super-speed";
121*8cc087a1SEmmanuel Vadot};
122*8cc087a1SEmmanuel Vadot
123*8cc087a1SEmmanuel Vadot&sdhci1 { /* on CC with tuned parameters */
124*8cc087a1SEmmanuel Vadot	status = "okay";
125*8cc087a1SEmmanuel Vadot	pinctrl-names = "default";
126*8cc087a1SEmmanuel Vadot	pinctrl-0 = <&pinctrl_sdhci1_default>;
127*8cc087a1SEmmanuel Vadot	/*
128*8cc087a1SEmmanuel Vadot	 * SD 3.0 requires level shifter and this property
129*8cc087a1SEmmanuel Vadot	 * should be removed if the board has level shifter and
130*8cc087a1SEmmanuel Vadot	 * need to work in UHS mode
131*8cc087a1SEmmanuel Vadot	 */
132*8cc087a1SEmmanuel Vadot	no-1-8-v;
133*8cc087a1SEmmanuel Vadot	disable-wp;
134*8cc087a1SEmmanuel Vadot	xlnx,mio-bank = <1>;
135*8cc087a1SEmmanuel Vadot};
136*8cc087a1SEmmanuel Vadot
137*8cc087a1SEmmanuel Vadot&gem3 { /* required by spec */
138*8cc087a1SEmmanuel Vadot	status = "okay";
139*8cc087a1SEmmanuel Vadot	pinctrl-names = "default";
140*8cc087a1SEmmanuel Vadot	pinctrl-0 = <&pinctrl_gem3_default>;
141*8cc087a1SEmmanuel Vadot	phy-handle = <&phy0>;
142*8cc087a1SEmmanuel Vadot	phy-mode = "rgmii-id";
143*8cc087a1SEmmanuel Vadot
144*8cc087a1SEmmanuel Vadot	mdio: mdio {
145*8cc087a1SEmmanuel Vadot		#address-cells = <1>;
146*8cc087a1SEmmanuel Vadot		#size-cells = <0>;
147*8cc087a1SEmmanuel Vadot		reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
148*8cc087a1SEmmanuel Vadot		reset-delay-us = <2>;
149*8cc087a1SEmmanuel Vadot
150*8cc087a1SEmmanuel Vadot		phy0: ethernet-phy@1 {
151*8cc087a1SEmmanuel Vadot			#phy-cells = <1>;
152*8cc087a1SEmmanuel Vadot			reg = <1>;
153*8cc087a1SEmmanuel Vadot			ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
154*8cc087a1SEmmanuel Vadot			ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
155*8cc087a1SEmmanuel Vadot			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
156*8cc087a1SEmmanuel Vadot			ti,dp83867-rxctrl-strap-quirk;
157*8cc087a1SEmmanuel Vadot		};
158*8cc087a1SEmmanuel Vadot	};
159*8cc087a1SEmmanuel Vadot};
160*8cc087a1SEmmanuel Vadot
161*8cc087a1SEmmanuel Vadot&pinctrl0 { /* required by spec */
162*8cc087a1SEmmanuel Vadot	status = "okay";
163*8cc087a1SEmmanuel Vadot
164*8cc087a1SEmmanuel Vadot	pinctrl_uart1_default: uart1-default {
165*8cc087a1SEmmanuel Vadot		conf {
166*8cc087a1SEmmanuel Vadot			groups = "uart1_9_grp";
167*8cc087a1SEmmanuel Vadot			slew-rate = <SLEW_RATE_SLOW>;
168*8cc087a1SEmmanuel Vadot			power-source = <IO_STANDARD_LVCMOS18>;
169*8cc087a1SEmmanuel Vadot			drive-strength = <12>;
170*8cc087a1SEmmanuel Vadot		};
171*8cc087a1SEmmanuel Vadot
172*8cc087a1SEmmanuel Vadot		conf-rx {
173*8cc087a1SEmmanuel Vadot			pins = "MIO37";
174*8cc087a1SEmmanuel Vadot			bias-high-impedance;
175*8cc087a1SEmmanuel Vadot		};
176*8cc087a1SEmmanuel Vadot
177*8cc087a1SEmmanuel Vadot		conf-tx {
178*8cc087a1SEmmanuel Vadot			pins = "MIO36";
179*8cc087a1SEmmanuel Vadot			bias-disable;
180*8cc087a1SEmmanuel Vadot		};
181*8cc087a1SEmmanuel Vadot
182*8cc087a1SEmmanuel Vadot		mux {
183*8cc087a1SEmmanuel Vadot			groups = "uart1_9_grp";
184*8cc087a1SEmmanuel Vadot			function = "uart1";
185*8cc087a1SEmmanuel Vadot		};
186*8cc087a1SEmmanuel Vadot	};
187*8cc087a1SEmmanuel Vadot
188*8cc087a1SEmmanuel Vadot	pinctrl_i2c1_default: i2c1-default {
189*8cc087a1SEmmanuel Vadot		conf {
190*8cc087a1SEmmanuel Vadot			groups = "i2c1_6_grp";
191*8cc087a1SEmmanuel Vadot			bias-pull-up;
192*8cc087a1SEmmanuel Vadot			slew-rate = <SLEW_RATE_SLOW>;
193*8cc087a1SEmmanuel Vadot			power-source = <IO_STANDARD_LVCMOS18>;
194*8cc087a1SEmmanuel Vadot		};
195*8cc087a1SEmmanuel Vadot
196*8cc087a1SEmmanuel Vadot		mux {
197*8cc087a1SEmmanuel Vadot			groups = "i2c1_6_grp";
198*8cc087a1SEmmanuel Vadot			function = "i2c1";
199*8cc087a1SEmmanuel Vadot		};
200*8cc087a1SEmmanuel Vadot	};
201*8cc087a1SEmmanuel Vadot
202*8cc087a1SEmmanuel Vadot	pinctrl_i2c1_gpio: i2c1-gpio {
203*8cc087a1SEmmanuel Vadot		conf {
204*8cc087a1SEmmanuel Vadot			groups = "gpio0_24_grp", "gpio0_25_grp";
205*8cc087a1SEmmanuel Vadot			slew-rate = <SLEW_RATE_SLOW>;
206*8cc087a1SEmmanuel Vadot			power-source = <IO_STANDARD_LVCMOS18>;
207*8cc087a1SEmmanuel Vadot		};
208*8cc087a1SEmmanuel Vadot
209*8cc087a1SEmmanuel Vadot		mux {
210*8cc087a1SEmmanuel Vadot			groups = "gpio0_24_grp", "gpio0_25_grp";
211*8cc087a1SEmmanuel Vadot			function = "gpio0";
212*8cc087a1SEmmanuel Vadot		};
213*8cc087a1SEmmanuel Vadot	};
214*8cc087a1SEmmanuel Vadot
215*8cc087a1SEmmanuel Vadot	pinctrl_gem3_default: gem3-default {
216*8cc087a1SEmmanuel Vadot		conf {
217*8cc087a1SEmmanuel Vadot			groups = "ethernet3_0_grp";
218*8cc087a1SEmmanuel Vadot			slew-rate = <SLEW_RATE_SLOW>;
219*8cc087a1SEmmanuel Vadot			power-source = <IO_STANDARD_LVCMOS18>;
220*8cc087a1SEmmanuel Vadot		};
221*8cc087a1SEmmanuel Vadot
222*8cc087a1SEmmanuel Vadot		conf-rx {
223*8cc087a1SEmmanuel Vadot			pins = "MIO70", "MIO72", "MIO74";
224*8cc087a1SEmmanuel Vadot			bias-high-impedance;
225*8cc087a1SEmmanuel Vadot			low-power-disable;
226*8cc087a1SEmmanuel Vadot		};
227*8cc087a1SEmmanuel Vadot
228*8cc087a1SEmmanuel Vadot		conf-bootstrap {
229*8cc087a1SEmmanuel Vadot			pins = "MIO71", "MIO73", "MIO75";
230*8cc087a1SEmmanuel Vadot			bias-disable;
231*8cc087a1SEmmanuel Vadot			low-power-disable;
232*8cc087a1SEmmanuel Vadot		};
233*8cc087a1SEmmanuel Vadot
234*8cc087a1SEmmanuel Vadot		conf-tx {
235*8cc087a1SEmmanuel Vadot			pins = "MIO64", "MIO65", "MIO66",
236*8cc087a1SEmmanuel Vadot				"MIO67", "MIO68", "MIO69";
237*8cc087a1SEmmanuel Vadot			bias-disable;
238*8cc087a1SEmmanuel Vadot			low-power-enable;
239*8cc087a1SEmmanuel Vadot		};
240*8cc087a1SEmmanuel Vadot
241*8cc087a1SEmmanuel Vadot		conf-mdio {
242*8cc087a1SEmmanuel Vadot			groups = "mdio3_0_grp";
243*8cc087a1SEmmanuel Vadot			slew-rate = <SLEW_RATE_SLOW>;
244*8cc087a1SEmmanuel Vadot			power-source = <IO_STANDARD_LVCMOS18>;
245*8cc087a1SEmmanuel Vadot			bias-disable;
246*8cc087a1SEmmanuel Vadot		};
247*8cc087a1SEmmanuel Vadot
248*8cc087a1SEmmanuel Vadot		mux-mdio {
249*8cc087a1SEmmanuel Vadot			function = "mdio3";
250*8cc087a1SEmmanuel Vadot			groups = "mdio3_0_grp";
251*8cc087a1SEmmanuel Vadot		};
252*8cc087a1SEmmanuel Vadot
253*8cc087a1SEmmanuel Vadot		mux {
254*8cc087a1SEmmanuel Vadot			function = "ethernet3";
255*8cc087a1SEmmanuel Vadot			groups = "ethernet3_0_grp";
256*8cc087a1SEmmanuel Vadot		};
257*8cc087a1SEmmanuel Vadot	};
258*8cc087a1SEmmanuel Vadot
259*8cc087a1SEmmanuel Vadot	pinctrl_usb0_default: usb0-default {
260*8cc087a1SEmmanuel Vadot		conf {
261*8cc087a1SEmmanuel Vadot			groups = "usb0_0_grp";
262*8cc087a1SEmmanuel Vadot			slew-rate = <SLEW_RATE_SLOW>;
263*8cc087a1SEmmanuel Vadot			power-source = <IO_STANDARD_LVCMOS18>;
264*8cc087a1SEmmanuel Vadot		};
265*8cc087a1SEmmanuel Vadot
266*8cc087a1SEmmanuel Vadot		conf-rx {
267*8cc087a1SEmmanuel Vadot			pins = "MIO52", "MIO53", "MIO55";
268*8cc087a1SEmmanuel Vadot			bias-high-impedance;
269*8cc087a1SEmmanuel Vadot		};
270*8cc087a1SEmmanuel Vadot
271*8cc087a1SEmmanuel Vadot		conf-tx {
272*8cc087a1SEmmanuel Vadot			pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
273*8cc087a1SEmmanuel Vadot			"MIO60", "MIO61", "MIO62", "MIO63";
274*8cc087a1SEmmanuel Vadot			bias-disable;
275*8cc087a1SEmmanuel Vadot		};
276*8cc087a1SEmmanuel Vadot
277*8cc087a1SEmmanuel Vadot		mux {
278*8cc087a1SEmmanuel Vadot			groups = "usb0_0_grp";
279*8cc087a1SEmmanuel Vadot			function = "usb0";
280*8cc087a1SEmmanuel Vadot		};
281*8cc087a1SEmmanuel Vadot	};
282*8cc087a1SEmmanuel Vadot
283*8cc087a1SEmmanuel Vadot	pinctrl_sdhci1_default: sdhci1-default {
284*8cc087a1SEmmanuel Vadot		conf {
285*8cc087a1SEmmanuel Vadot			groups = "sdio1_0_grp";
286*8cc087a1SEmmanuel Vadot			slew-rate = <SLEW_RATE_SLOW>;
287*8cc087a1SEmmanuel Vadot			power-source = <IO_STANDARD_LVCMOS18>;
288*8cc087a1SEmmanuel Vadot			bias-disable;
289*8cc087a1SEmmanuel Vadot		};
290*8cc087a1SEmmanuel Vadot
291*8cc087a1SEmmanuel Vadot		conf-cd {
292*8cc087a1SEmmanuel Vadot			groups = "sdio1_cd_0_grp";
293*8cc087a1SEmmanuel Vadot			bias-high-impedance;
294*8cc087a1SEmmanuel Vadot			bias-pull-up;
295*8cc087a1SEmmanuel Vadot			slew-rate = <SLEW_RATE_SLOW>;
296*8cc087a1SEmmanuel Vadot			power-source = <IO_STANDARD_LVCMOS18>;
297*8cc087a1SEmmanuel Vadot		};
298*8cc087a1SEmmanuel Vadot
299*8cc087a1SEmmanuel Vadot		mux-cd {
300*8cc087a1SEmmanuel Vadot			groups = "sdio1_cd_0_grp";
301*8cc087a1SEmmanuel Vadot			function = "sdio1_cd";
302*8cc087a1SEmmanuel Vadot		};
303*8cc087a1SEmmanuel Vadot
304*8cc087a1SEmmanuel Vadot		mux {
305*8cc087a1SEmmanuel Vadot			groups = "sdio1_0_grp";
306*8cc087a1SEmmanuel Vadot			function = "sdio1";
307*8cc087a1SEmmanuel Vadot		};
308*8cc087a1SEmmanuel Vadot	};
309*8cc087a1SEmmanuel Vadot};
310*8cc087a1SEmmanuel Vadot
311*8cc087a1SEmmanuel Vadot&uart1 {
312*8cc087a1SEmmanuel Vadot	status = "okay";
313*8cc087a1SEmmanuel Vadot	pinctrl-names = "default";
314*8cc087a1SEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart1_default>;
315*8cc087a1SEmmanuel Vadot};
316