Skip to content

Commit 26372d0

Browse files
rajanv-xilinxMichal Simek
authored andcommitted
dt-bindings: clock: Add bindings for ZynqMP clock driver
Add documentation to describe Xilinx ZynqMP clock driver bindings. Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com> Signed-off-by: Jolly Shah <jollys@xilinx.com> Reviewed-by: Rob Herring <robh@kernel.org> Reviewed-by: Stephen Boyd <sboyd@kernel.org> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
1 parent 3b0296b commit 26372d0

File tree

2 files changed

+169
-0
lines changed

2 files changed

+169
-0
lines changed

Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,53 @@ Required properties:
1717
- "smc" : SMC #0, following the SMCCC
1818
- "hvc" : HVC #0, following the SMCCC
1919

20+
--------------------------------------------------------------------------
21+
Device Tree Clock bindings for the Zynq Ultrascale+ MPSoC controlled using
22+
Zynq MPSoC firmware interface
23+
--------------------------------------------------------------------------
24+
The clock controller is a h/w block of Zynq Ultrascale+ MPSoC clock
25+
tree. It reads required input clock frequencies from the devicetree and acts
26+
as clock provider for all clock consumers of PS clocks.
27+
28+
See clock_bindings.txt for more information on the generic clock bindings.
29+
30+
Required properties:
31+
- #clock-cells: Must be 1
32+
- compatible: Must contain: "xlnx,zynqmp-clk"
33+
- clocks: List of clock specifiers which are external input
34+
clocks to the given clock controller. Please refer
35+
the next section to find the input clocks for a
36+
given controller.
37+
- clock-names: List of clock names which are exteral input clocks
38+
to the given clock controller. Please refer to the
39+
clock bindings for more details.
40+
41+
Input clocks for zynqmp Ultrascale+ clock controller:
42+
43+
The Zynq UltraScale+ MPSoC has one primary and four alternative reference clock
44+
inputs. These required clock inputs are:
45+
- pss_ref_clk (PS reference clock)
46+
- video_clk (reference clock for video system )
47+
- pss_alt_ref_clk (alternative PS reference clock)
48+
- aux_ref_clk
49+
- gt_crx_ref_clk (transceiver reference clock)
50+
51+
The following strings are optional parameters to the 'clock-names' property in
52+
order to provide an optional (E)MIO clock source:
53+
- swdt0_ext_clk
54+
- swdt1_ext_clk
55+
- gem0_emio_clk
56+
- gem1_emio_clk
57+
- gem2_emio_clk
58+
- gem3_emio_clk
59+
- mio_clk_XX # with XX = 00..77
60+
- mio_clk_50_or_51 #for the mux clock to gem tsu from 50 or 51
61+
62+
63+
Output clocks are registered based on clock information received
64+
from firmware. Output clocks indexes are mentioned in
65+
include/dt-bindings/clock/xlnx,zynqmp-clk.h.
66+
2067
-------
2168
Example
2269
-------
@@ -25,5 +72,11 @@ firmware {
2572
zynqmp_firmware: zynqmp-firmware {
2673
compatible = "xlnx,zynqmp-firmware";
2774
method = "smc";
75+
zynqmp_clk: clock-controller {
76+
#clock-cells = <1>;
77+
compatible = "xlnx,zynqmp-clk";
78+
clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>, <&aux_ref_clk>, <&gt_crx_ref_clk>;
79+
clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk","aux_ref_clk", "gt_crx_ref_clk";
80+
};
2881
};
2982
};
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
/* SPDX-License-Identifier: GPL-2.0 */
2+
/*
3+
* Xilinx Zynq MPSoC Firmware layer
4+
*
5+
* Copyright (C) 2014-2018 Xilinx, Inc.
6+
*
7+
*/
8+
9+
#ifndef _DT_BINDINGS_CLK_ZYNQMP_H
10+
#define _DT_BINDINGS_CLK_ZYNQMP_H
11+
12+
#define IOPLL 0
13+
#define RPLL 1
14+
#define APLL 2
15+
#define DPLL 3
16+
#define VPLL 4
17+
#define IOPLL_TO_FPD 5
18+
#define RPLL_TO_FPD 6
19+
#define APLL_TO_LPD 7
20+
#define DPLL_TO_LPD 8
21+
#define VPLL_TO_LPD 9
22+
#define ACPU 10
23+
#define ACPU_HALF 11
24+
#define DBF_FPD 12
25+
#define DBF_LPD 13
26+
#define DBG_TRACE 14
27+
#define DBG_TSTMP 15
28+
#define DP_VIDEO_REF 16
29+
#define DP_AUDIO_REF 17
30+
#define DP_STC_REF 18
31+
#define GDMA_REF 19
32+
#define DPDMA_REF 20
33+
#define DDR_REF 21
34+
#define SATA_REF 22
35+
#define PCIE_REF 23
36+
#define GPU_REF 24
37+
#define GPU_PP0_REF 25
38+
#define GPU_PP1_REF 26
39+
#define TOPSW_MAIN 27
40+
#define TOPSW_LSBUS 28
41+
#define GTGREF0_REF 29
42+
#define LPD_SWITCH 30
43+
#define LPD_LSBUS 31
44+
#define USB0_BUS_REF 32
45+
#define USB1_BUS_REF 33
46+
#define USB3_DUAL_REF 34
47+
#define USB0 35
48+
#define USB1 36
49+
#define CPU_R5 37
50+
#define CPU_R5_CORE 38
51+
#define CSU_SPB 39
52+
#define CSU_PLL 40
53+
#define PCAP 41
54+
#define IOU_SWITCH 42
55+
#define GEM_TSU_REF 43
56+
#define GEM_TSU 44
57+
#define GEM0_REF 45
58+
#define GEM1_REF 46
59+
#define GEM2_REF 47
60+
#define GEM3_REF 48
61+
#define GEM0_TX 49
62+
#define GEM1_TX 50
63+
#define GEM2_TX 51
64+
#define GEM3_TX 52
65+
#define QSPI_REF 53
66+
#define SDIO0_REF 54
67+
#define SDIO1_REF 55
68+
#define UART0_REF 56
69+
#define UART1_REF 57
70+
#define SPI0_REF 58
71+
#define SPI1_REF 59
72+
#define NAND_REF 60
73+
#define I2C0_REF 61
74+
#define I2C1_REF 62
75+
#define CAN0_REF 63
76+
#define CAN1_REF 64
77+
#define CAN0 65
78+
#define CAN1 66
79+
#define DLL_REF 67
80+
#define ADMA_REF 68
81+
#define TIMESTAMP_REF 69
82+
#define AMS_REF 70
83+
#define PL0_REF 71
84+
#define PL1_REF 72
85+
#define PL2_REF 73
86+
#define PL3_REF 74
87+
#define WDT 75
88+
#define IOPLL_INT 76
89+
#define IOPLL_PRE_SRC 77
90+
#define IOPLL_HALF 78
91+
#define IOPLL_INT_MUX 79
92+
#define IOPLL_POST_SRC 80
93+
#define RPLL_INT 81
94+
#define RPLL_PRE_SRC 82
95+
#define RPLL_HALF 83
96+
#define RPLL_INT_MUX 84
97+
#define RPLL_POST_SRC 85
98+
#define APLL_INT 86
99+
#define APLL_PRE_SRC 87
100+
#define APLL_HALF 88
101+
#define APLL_INT_MUX 89
102+
#define APLL_POST_SRC 90
103+
#define DPLL_INT 91
104+
#define DPLL_PRE_SRC 92
105+
#define DPLL_HALF 93
106+
#define DPLL_INT_MUX 94
107+
#define DPLL_POST_SRC 95
108+
#define VPLL_INT 96
109+
#define VPLL_PRE_SRC 97
110+
#define VPLL_HALF 98
111+
#define VPLL_INT_MUX 99
112+
#define VPLL_POST_SRC 100
113+
#define CAN0_MIO 101
114+
#define CAN1_MIO 102
115+
116+
#endif

0 commit comments

Comments
 (0)