xref: /linux/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi (revision 2f24482304ebd32c5aa374f31465b9941a860b92)
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Clock specification for Xilinx ZynqMP
4 *
5 * (C) Copyright 2017 - 2022, Xilinx, Inc.
6 * (C) Copyright 2022 - 2023, Advanced Micro Devices, Inc.
7 *
8 * Michal Simek <michal.simek@amd.com>
9 */
10
11#include "xlnx-zynqmp-clk.h"
12/ {
13	pss_ref_clk: pss-ref-clk {
14		bootph-all;
15		compatible = "fixed-clock";
16		#clock-cells = <0>;
17		clock-frequency = <33333333>;
18		clock-output-names = "pss_ref_clk";
19	};
20
21	video_clk: video-clk {
22		bootph-all;
23		compatible = "fixed-clock";
24		#clock-cells = <0>;
25		clock-frequency = <27000000>;
26		clock-output-names = "video_clk";
27	};
28
29	pss_alt_ref_clk: pss-alt-ref-clk {
30		bootph-all;
31		compatible = "fixed-clock";
32		#clock-cells = <0>;
33		clock-frequency = <0>;
34		clock-output-names = "pss_alt_ref_clk";
35	};
36
37	gt_crx_ref_clk: gt-crx-ref-clk {
38		bootph-all;
39		compatible = "fixed-clock";
40		#clock-cells = <0>;
41		clock-frequency = <108000000>;
42		clock-output-names = "gt_crx_ref_clk";
43	};
44
45	aux_ref_clk: aux-ref-clk {
46		bootph-all;
47		compatible = "fixed-clock";
48		#clock-cells = <0>;
49		clock-frequency = <27000000>;
50		clock-output-names = "aux_ref_clk";
51	};
52};
53
54&zynqmp_firmware {
55	zynqmp_clk: clock-controller {
56		bootph-all;
57		#clock-cells = <1>;
58		compatible = "xlnx,zynqmp-clk";
59		clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>,
60			 <&aux_ref_clk>, <&gt_crx_ref_clk>;
61		clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk",
62			      "aux_ref_clk", "gt_crx_ref_clk";
63	};
64};
65
66&can0 {
67	clocks = <&zynqmp_clk CAN0_REF>, <&zynqmp_clk LPD_LSBUS>;
68};
69
70&can1 {
71	clocks = <&zynqmp_clk CAN1_REF>, <&zynqmp_clk LPD_LSBUS>;
72};
73
74&cpu0 {
75	clocks = <&zynqmp_clk ACPU>;
76};
77
78&cpu0_debug {
79	clocks = <&zynqmp_clk DBF_FPD>;
80};
81
82&cpu1_debug {
83	clocks = <&zynqmp_clk DBF_FPD>;
84};
85
86&cpu2_debug {
87	clocks = <&zynqmp_clk DBF_FPD>;
88};
89
90&cpu3_debug {
91	clocks = <&zynqmp_clk DBF_FPD>;
92};
93
94&fpd_dma_chan1 {
95	clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
96};
97
98&fpd_dma_chan2 {
99	clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
100};
101
102&fpd_dma_chan3 {
103	clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
104};
105
106&fpd_dma_chan4 {
107	clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
108};
109
110&fpd_dma_chan5 {
111	clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
112};
113
114&fpd_dma_chan6 {
115	clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
116};
117
118&fpd_dma_chan7 {
119	clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
120};
121
122&fpd_dma_chan8 {
123	clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
124};
125
126&gpu {
127	clocks = <&zynqmp_clk GPU_REF>, <&zynqmp_clk GPU_PP0_REF>;
128};
129
130&lpd_dma_chan1 {
131	clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
132};
133
134&lpd_dma_chan2 {
135	clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
136};
137
138&lpd_dma_chan3 {
139	clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
140};
141
142&lpd_dma_chan4 {
143	clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
144};
145
146&lpd_dma_chan5 {
147	clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
148};
149
150&lpd_dma_chan6 {
151	clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
152};
153
154&lpd_dma_chan7 {
155	clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
156};
157
158&lpd_dma_chan8 {
159	clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
160};
161
162&nand0 {
163	clocks = <&zynqmp_clk NAND_REF>, <&zynqmp_clk LPD_LSBUS>;
164};
165
166&gem0 {
167	clocks = <&zynqmp_clk LPD_LSBUS>, <&zynqmp_clk GEM0_REF>,
168		 <&zynqmp_clk GEM0_TX>, <&zynqmp_clk GEM0_RX>,
169		 <&zynqmp_clk GEM_TSU>;
170	assigned-clocks = <&zynqmp_clk GEM_TSU>;
171};
172
173&gem1 {
174	clocks = <&zynqmp_clk LPD_LSBUS>, <&zynqmp_clk GEM1_REF>,
175		 <&zynqmp_clk GEM1_TX>, <&zynqmp_clk GEM1_RX>,
176		 <&zynqmp_clk GEM_TSU>;
177	assigned-clocks = <&zynqmp_clk GEM_TSU>;
178};
179
180&gem2 {
181	clocks = <&zynqmp_clk LPD_LSBUS>, <&zynqmp_clk GEM2_REF>,
182		 <&zynqmp_clk GEM2_TX>, <&zynqmp_clk GEM2_RX>,
183		 <&zynqmp_clk GEM_TSU>;
184	assigned-clocks = <&zynqmp_clk GEM_TSU>;
185};
186
187&gem3 {
188	clocks = <&zynqmp_clk LPD_LSBUS>, <&zynqmp_clk GEM3_REF>,
189		 <&zynqmp_clk GEM3_TX>, <&zynqmp_clk GEM3_RX>,
190		 <&zynqmp_clk GEM_TSU>;
191	assigned-clocks = <&zynqmp_clk GEM_TSU>;
192};
193
194&gpio {
195	clocks = <&zynqmp_clk LPD_LSBUS>;
196};
197
198&i2c0 {
199	clocks = <&zynqmp_clk I2C0_REF>;
200};
201
202&i2c1 {
203	clocks = <&zynqmp_clk I2C1_REF>;
204};
205
206&pcie {
207	clocks = <&zynqmp_clk PCIE_REF>;
208};
209
210&qspi {
211	clocks = <&zynqmp_clk QSPI_REF>, <&zynqmp_clk LPD_LSBUS>;
212};
213
214&sata {
215	clocks = <&zynqmp_clk SATA_REF>;
216};
217
218&sdhci0 {
219	clocks = <&zynqmp_clk SDIO0_REF>, <&zynqmp_clk LPD_LSBUS>;
220	assigned-clocks = <&zynqmp_clk SDIO0_REF>;
221};
222
223&sdhci1 {
224	clocks = <&zynqmp_clk SDIO1_REF>, <&zynqmp_clk LPD_LSBUS>;
225	assigned-clocks = <&zynqmp_clk SDIO1_REF>;
226};
227
228&spi0 {
229	clocks = <&zynqmp_clk SPI0_REF>, <&zynqmp_clk LPD_LSBUS>;
230};
231
232&spi1 {
233	clocks = <&zynqmp_clk SPI1_REF>, <&zynqmp_clk LPD_LSBUS>;
234};
235
236&ttc0 {
237	clocks = <&zynqmp_clk LPD_LSBUS>;
238};
239
240&ttc1 {
241	clocks = <&zynqmp_clk LPD_LSBUS>;
242};
243
244&ttc2 {
245	clocks = <&zynqmp_clk LPD_LSBUS>;
246};
247
248&ttc3 {
249	clocks = <&zynqmp_clk LPD_LSBUS>;
250};
251
252&uart0 {
253	clocks = <&zynqmp_clk UART0_REF>, <&zynqmp_clk LPD_LSBUS>;
254	assigned-clocks = <&zynqmp_clk UART0_REF>;
255};
256
257&uart1 {
258	clocks = <&zynqmp_clk UART1_REF>, <&zynqmp_clk LPD_LSBUS>;
259	assigned-clocks = <&zynqmp_clk UART1_REF>;
260};
261
262&usb0 {
263	clocks = <&zynqmp_clk USB0_BUS_REF>, <&zynqmp_clk USB3_DUAL_REF>;
264	assigned-clocks = <&zynqmp_clk USB0_BUS_REF>, <&zynqmp_clk USB3_DUAL_REF>;
265};
266
267&dwc3_0 {
268	clocks = <&zynqmp_clk USB3_DUAL_REF>;
269};
270
271&usb1 {
272	clocks = <&zynqmp_clk USB1_BUS_REF>, <&zynqmp_clk USB3_DUAL_REF>;
273	assigned-clocks = <&zynqmp_clk USB1_BUS_REF>, <&zynqmp_clk USB3_DUAL_REF>;
274};
275
276&dwc3_1 {
277	clocks = <&zynqmp_clk USB3_DUAL_REF>;
278};
279
280&watchdog0 {
281	clocks = <&zynqmp_clk WDT>;
282};
283
284&lpd_watchdog {
285	clocks = <&zynqmp_clk LPD_WDT>;
286};
287
288&xilinx_ams {
289	clocks = <&zynqmp_clk AMS_REF>;
290};
291
292&zynqmp_dpdma {
293	clocks = <&zynqmp_clk DPDMA_REF>;
294	assigned-clocks = <&zynqmp_clk DPDMA_REF>; /* apll */
295};
296
297&zynqmp_dpsub {
298	clocks = <&zynqmp_clk TOPSW_LSBUS>,
299		 <&zynqmp_clk DP_AUDIO_REF>,
300		 <&zynqmp_clk DP_VIDEO_REF>;
301	assigned-clocks = <&zynqmp_clk DP_STC_REF>,
302			  <&zynqmp_clk DP_AUDIO_REF>,
303			  <&zynqmp_clk DP_VIDEO_REF>;  /* rpll, rpll, vpll */
304};
305