]> rtime.felk.cvut.cz Git - zynq/linux.git/blob - Documentation/devicetree/bindings/clock/xlnx,zynqmp-clk.txt
dt-bindings: clock: zynqmp: Correct clock names
[zynq/linux.git] / Documentation / devicetree / bindings / clock / xlnx,zynqmp-clk.txt
1 Device Tree Clock bindings for the Zynq Ultrascale+ MPSoC
2
3 The Zynq Ultrascale+ MPSoC has several different clk providers,
4 each with there own bindings.
5 The purpose of this document is to document their usage.
6
7 See clock_bindings.txt for more information on the generic clock bindings.
8
9 == Clock Controller ==
10 The clock controller is a logical abstraction of Zynq Ultrascale+ MPSoC clock
11 tree. It reads required input clock frequencies from the devicetree and acts
12 as clock provider for all clock consumers of PS clocks.
13
14 Required properties:
15  - #clock-cells : Must be 1
16  - compatible : "xlnx,zynqmp-clk"
17  - clocks : list of clock specifiers which are external input clocks to the
18             given clock controller. Please refer the next section to find
19             the input clocks for a given controller.
20  - clock-names : list of names of clocks which are exteral input clocks to the
21                  given clock controller. Please refer to the clock bindings
22                  for more details
23
24 Input clocks for zynqmp Ultrascale+ clock controller:
25 The Zynq UltraScale+ MPSoC has one primary and four alternative reference clock
26 inputs.
27 These required clock inputs are the
28  - pss_ref_clk (PS reference clock)
29  - video_clk (reference clock for video system )
30  - pss_alt_ref_clk (alternative PS reference clock)
31  - aux_ref_clk
32  - gt_crx_ref_clk (transceiver reference clock)
33
34 The following strings are optional parameters to the 'clock-names' property in
35 order to provide an optional (E)MIO clock source.
36  - swdt0_ext_clk
37  - swdt1_ext_clk
38  - gem0_emio_clk
39  - gem1_emio_clk
40  - gem2_emio_clk
41  - gem3_emio_clk
42  - mio_clk_XX           # with XX = 00..77
43  - mio_clk_50_or_51     #for the mux clock to gem tsu from 50 or 51
44
45
46 Output clocks for zynqmp Ultrascale+ clock controller:
47 Output clocks are registered based on clock information received from firmware.
48 Output clock indexes are mentioned below:
49
50 Clock ID:       Output clock name:
51 -------------------------------------
52 0               iopll
53 1               rpll
54 2               apll
55 3               dpll
56 4               vpll
57 5               iopll_to_fpd
58 6               rpll_to_fpd
59 7               apll_to_lpd
60 8               dpll_to_lpd
61 9               vpll_to_lpd
62 10              acpu
63 11              acpu_half
64 12              dbg_fpd
65 13              dbg_lpd
66 14              dbg_trace
67 15              dbg_tstmp
68 16              dp_video_ref
69 17              dp_audio_ref
70 18              dp_stc_ref
71 19              gdma_ref
72 20              dpdma_ref
73 21              ddr_ref
74 22              sata_ref
75 23              pcie_ref
76 24              gpu_ref
77 25              gpu_pp0_ref
78 26              gpu_pp1_ref
79 27              topsw_main
80 28              topsw_lsbus
81 29              gtgref0_ref
82 30              lpd_switch
83 31              lpd_lsbus
84 32              usb0_bus_ref
85 33              usb1_bus_ref
86 34              usb3_dual_ref
87 35              usb0
88 36              usb1
89 37              cpu_r5
90 38              cpu_r5_core
91 39              csu_spb
92 40              csu_pll
93 41              pcap
94 42              iou_switch
95 43              gem_tsu_ref
96 44              gem_tsu
97 45              gem0_ref
98 46              gem1_ref
99 47              gem2_ref
100 48              gem3_ref
101 49              gem0_tx
102 50              gem1_tx
103 51              gem2_tx
104 52              gem3_tx
105 53              qspi_ref
106 54              sdio0_ref
107 55              sdio1_ref
108 56              uart0_ref
109 57              uart1_ref
110 58              spi0_ref
111 59              spi1_ref
112 60              nand_ref
113 61              i2c0_ref
114 62              i2c1_ref
115 63              can0_ref
116 64              can1_ref
117 65              can0
118 66              can1
119 67              dll_ref
120 68              adma_ref
121 69              timestamp_ref
122 70              ams_ref
123 71              pl0_ref
124 72              pl1_ref
125 73              pl2_ref
126 74              pl3_ref
127 75              wdt
128 76              iopll_int
129 77              iopll_pre_src
130 78              iopll_half
131 79              iopll_int_mux
132 80              iopll_post_src
133 81              rpll_int
134 82              rpll_pre_src
135 83              rpll_half
136 84              rpll_int_mux
137 85              rpll_post_src
138 86              apll_int
139 87              apll_pre_src
140 88              apll_half
141 89              apll_int_mux
142 90              apll_post_src
143 91              dpll_int
144 92              dpll_pre_src
145 93              dpll_half
146 94              dpll_int_mux
147 95              dpll_post_src
148 96              vpll_int
149 97              vpll_pre_src
150 98              vpll_half
151 99              vpll_int_mux
152 100             vpll_post_src
153 101             can0_mio
154 102             can1_mio
155
156 Example:
157
158 clk: clk {
159         #clock-cells = <1>;
160         compatible = "xlnx,zynqmp-clk";
161         clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>, <&aux_ref_clk>, <&gt_crx_ref_clk>;
162         clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk","aux_ref_clk", "gt_crx_ref_clk"
163 };