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