blob: 0f35167ec15c15bbafc1e6364b1900abc1849e76 [file] [log] [blame]
Chanwoo Choi1a21dfe2015-02-03 08:47:11 +09001* Samsung Exynos5433 CMU (Clock Management Units)
2
3The Exynos5433 clock controller generates and supplies clock to various
4controllers within the Exynos5433 SoC.
5
6Required Properties:
7
8- compatible: should be one of the following.
9 - "samsung,exynos5433-cmu-top" - clock controller compatible for CMU_TOP
10 which generates clocks for IMEM/FSYS/G3D/GSCL/HEVC/MSCL/G2D/MFC/PERIC/PERIS
11 domains and bus clocks.
12 - "samsung,exynos5433-cmu-cpif" - clock controller compatible for CMU_CPIF
13 which generates clocks for LLI (Low Latency Interface) IP.
14 - "samsung,exynos5433-cmu-mif" - clock controller compatible for CMU_MIF
15 which generates clocks for DRAM Memory Controller domain.
16 - "samsung,exynos5433-cmu-peric" - clock controller compatible for CMU_PERIC
17 which generates clocks for UART/I2C/SPI/I2S/PCM/SPDIF/PWM/SLIMBUS IPs.
18 - "samsung,exynos5433-cmu-peris" - clock controller compatible for CMU_PERIS
19 which generates clocks for PMU/TMU/MCT/WDT/RTC/SECKEY/TZPC IPs.
20 - "samsung,exynos5433-cmu-fsys" - clock controller compatible for CMU_FSYS
21 which generates clocks for USB/UFS/SDMMC/TSI/PDMA IPs.
22 - "samsung,exynos5433-cmu-g2d" - clock controller compatible for CMU_G2D
23 which generates clocks for G2D/MDMA IPs.
24 - "samsung,exynos5433-cmu-disp" - clock controller compatible for CMU_DISP
25 which generates clocks for Display (DECON/HDMI/DSIM/MIXER) IPs.
26 - "samsung,exynos5433-cmu-aud" - clock controller compatible for CMU_AUD
27 which generates clocks for Cortex-A5/BUS/AUDIO clocks.
28 - "samsung,exynos5433-cmu-bus0", "samsung,exynos5433-cmu-bus1"
29 and "samsung,exynos5433-cmu-bus2" - clock controller compatible for CMU_BUS
30 which generates global data buses clock and global peripheral buses clock.
31 - "samsung,exynos5433-cmu-g3d" - clock controller compatible for CMU_G3D
32 which generates clocks for 3D Graphics Engine IP.
33 - "samsung,exynos5433-cmu-gscl" - clock controller compatible for CMU_GSCL
34 which generates clocks for GSCALER IPs.
Chanwoo Choidf40a132015-02-03 09:13:49 +090035 - "samsung,exynos5433-cmu-apollo"- clock controller compatible for CMU_APOLLO
36 which generates clocks for Cortex-A53 Quad-core processor.
Chanwoo Choi6c5d76d2015-02-03 09:13:50 +090037 - "samsung,exynos5433-cmu-atlas" - clock controller compatible for CMU_ATLAS
38 which generates clocks for Cortex-A57 Quad-core processor, CoreSight and
39 L2 cache controller.
Chanwoo Choib274bbf2015-02-03 09:13:51 +090040 - "samsung,exynos5433-cmu-mscl" - clock controller compatible for CMU_MSCL
41 which generates clocks for M2M (Memory to Memory) scaler and JPEG IPs.
Chanwoo Choi9910b6b2015-02-03 09:13:52 +090042 - "samsung,exynos5433-cmu-mfc" - clock controller compatible for CMU_MFC
43 which generates clocks for MFC(Multi-Format Codec) IP.
Chanwoo Choi1a21dfe2015-02-03 08:47:11 +090044
45- reg: physical base address of the controller and length of memory mapped
46 region.
47
48- #clock-cells: should be 1.
49
50- clocks: list of the clock controller input clock identifiers,
51 from common clock bindings. Please refer the next section
52 to find the input clocks for a given controller.
53
54- clock-names: list of the clock controller input clock names,
55 as described in clock-bindings.txt.
56
57 Input clocks for top clock controller:
58 - oscclk
59 - sclk_mphy_pll
60 - sclk_mfc_pll
61 - sclk_bus_pll
62
63 Input clocks for cpif clock controller:
64 - oscclk
65
66 Input clocks for mif clock controller:
67 - oscclk
68 - sclk_mphy_pll
69
70 Input clocks for fsys clock controller:
71 - oscclk
72 - sclk_ufs_mphy
73 - div_aclk_fsys_200
74 - sclk_pcie_100_fsys
75 - sclk_ufsunipro_fsys
76 - sclk_mmc2_fsys
77 - sclk_mmc1_fsys
78 - sclk_mmc0_fsys
79 - sclk_usbhost30_fsys
80 - sclk_usbdrd30_fsys
81
82 Input clocks for g2d clock controller:
83 - oscclk
84 - aclk_g2d_266
85 - aclk_g2d_400
86
87 Input clocks for disp clock controller:
88 - oscclk
89 - sclk_dsim1_disp
90 - sclk_dsim0_disp
91 - sclk_dsd_disp
92 - sclk_decon_tv_eclk_disp
93 - sclk_decon_vclk_disp
94 - sclk_decon_eclk_disp
95 - sclk_decon_tv_vclk_disp
96 - aclk_disp_333
97
98 Input clocks for bus0 clock controller:
99 - aclk_bus0_400
100
101 Input clocks for bus1 clock controller:
102 - aclk_bus1_400
103
104 Input clocks for bus2 clock controller:
105 - oscclk
106 - aclk_bus2_400
107
108 Input clocks for g3d clock controller:
109 - oscclk
110 - aclk_g3d_400
111
112 Input clocks for gscl clock controller:
113 - oscclk
114 - aclk_gscl_111
115 - aclk_gscl_333
116
Chanwoo Choidf40a132015-02-03 09:13:49 +0900117 Input clocks for apollo clock controller:
118 - oscclk
119 - sclk_bus_pll_apollo
120
Chanwoo Choi6c5d76d2015-02-03 09:13:50 +0900121 Input clocks for atlas clock controller:
122 - oscclk
123 - sclk_bus_pll_atlas
124
Chanwoo Choib274bbf2015-02-03 09:13:51 +0900125 Input clocks for mscl clock controller:
126 - oscclk
127 - sclk_jpeg_mscl
128 - aclk_mscl_400
129
Chanwoo Choi9910b6b2015-02-03 09:13:52 +0900130 Input clocks for mfc clock controller:
131 - oscclk
132 - aclk_mfc_400
133
Chanwoo Choi1a21dfe2015-02-03 08:47:11 +0900134Each clock is assigned an identifier and client nodes can use this identifier
135to specify the clock which they consume.
136
137All available clocks are defined as preprocessor macros in
138dt-bindings/clock/exynos5433.h header and can be used in device
139tree sources.
140
141Example 1: Examples of 'oscclk' source clock node are listed below.
142
143 xxti: xxti {
144 compatible = "fixed-clock";
145 clock-output-names = "oscclk";
146 #clock-cells = <0>;
147 };
148
149Example 2: Examples of clock controller nodes are listed below.
150
151 cmu_top: clock-controller@10030000 {
152 compatible = "samsung,exynos5433-cmu-top";
153 reg = <0x10030000 0x0c04>;
154 #clock-cells = <1>;
155
156 clock-names = "oscclk",
157 "sclk_mphy_pll",
158 "sclk_mfc_pll",
159 "sclk_bus_pll";
160 clocks = <&xxti>,
161 <&cmu_cpif CLK_SCLK_MPHY_PLL>,
162 <&cmu_mif CLK_SCLK_MFC_PLL>,
163 <&cmu_mif CLK_SCLK_BUS_PLL>;
164 };
165
166 cmu_cpif: clock-controller@10fc0000 {
167 compatible = "samsung,exynos5433-cmu-cpif";
168 reg = <0x10fc0000 0x0c04>;
169 #clock-cells = <1>;
170
171 clock-names = "oscclk";
172 clocks = <&xxti>;
173 };
174
175 cmu_mif: clock-controller@105b0000 {
176 compatible = "samsung,exynos5433-cmu-mif";
177 reg = <0x105b0000 0x100c>;
178 #clock-cells = <1>;
179
180 clock-names = "oscclk",
181 "sclk_mphy_pll";
182 clocks = <&xxti>,
183 <&cmu_cpif CLK_SCLK_MPHY_PLL>;
184 };
185
186 cmu_peric: clock-controller@14c80000 {
187 compatible = "samsung,exynos5433-cmu-peric";
188 reg = <0x14c80000 0x0b08>;
189 #clock-cells = <1>;
190 };
191
192 cmu_peris: clock-controller@10040000 {
193 compatible = "samsung,exynos5433-cmu-peris";
194 reg = <0x10040000 0x0b20>;
195 #clock-cells = <1>;
196 };
197
198 cmu_fsys: clock-controller@156e0000 {
199 compatible = "samsung,exynos5433-cmu-fsys";
200 reg = <0x156e0000 0x0b04>;
201 #clock-cells = <1>;
202
203 clock-names = "oscclk",
204 "sclk_ufs_mphy",
205 "div_aclk_fsys_200",
206 "sclk_pcie_100_fsys",
207 "sclk_ufsunipro_fsys",
208 "sclk_mmc2_fsys",
209 "sclk_mmc1_fsys",
210 "sclk_mmc0_fsys",
211 "sclk_usbhost30_fsys",
212 "sclk_usbdrd30_fsys";
213 clocks = <&xxti>,
214 <&cmu_cpif CLK_SCLK_UFS_MPHY>,
215 <&cmu_top CLK_DIV_ACLK_FSYS_200>,
216 <&cmu_top CLK_SCLK_PCIE_100_FSYS>,
217 <&cmu_top CLK_SCLK_UFSUNIPRO_FSYS>,
218 <&cmu_top CLK_SCLK_MMC2_FSYS>,
219 <&cmu_top CLK_SCLK_MMC1_FSYS>,
220 <&cmu_top CLK_SCLK_MMC0_FSYS>,
221 <&cmu_top CLK_SCLK_USBHOST30_FSYS>,
222 <&cmu_top CLK_SCLK_USBDRD30_FSYS>;
223 };
224
225 cmu_g2d: clock-controller@12460000 {
226 compatible = "samsung,exynos5433-cmu-g2d";
227 reg = <0x12460000 0x0b08>;
228 #clock-cells = <1>;
229
230 clock-names = "oscclk",
231 "aclk_g2d_266",
232 "aclk_g2d_400";
233 clocks = <&xxti>,
234 <&cmu_top CLK_ACLK_G2D_266>,
235 <&cmu_top CLK_ACLK_G2D_400>;
236 };
237
238 cmu_disp: clock-controller@13b90000 {
239 compatible = "samsung,exynos5433-cmu-disp";
240 reg = <0x13b90000 0x0c04>;
241 #clock-cells = <1>;
242
243 clock-names = "oscclk",
244 "sclk_dsim1_disp",
245 "sclk_dsim0_disp",
246 "sclk_dsd_disp",
247 "sclk_decon_tv_eclk_disp",
248 "sclk_decon_vclk_disp",
249 "sclk_decon_eclk_disp",
250 "sclk_decon_tv_vclk_disp",
251 "aclk_disp_333";
252 clocks = <&xxti>,
253 <&cmu_mif CLK_SCLK_DSIM1_DISP>,
254 <&cmu_mif CLK_SCLK_DSIM0_DISP>,
255 <&cmu_mif CLK_SCLK_DSD_DISP>,
256 <&cmu_mif CLK_SCLK_DECON_TV_ECLK_DISP>,
257 <&cmu_mif CLK_SCLK_DECON_VCLK_DISP>,
258 <&cmu_mif CLK_SCLK_DECON_ECLK_DISP>,
259 <&cmu_mif CLK_SCLK_DECON_TV_VCLK_DISP>,
260 <&cmu_mif CLK_ACLK_DISP_333>;
261 };
262
263 cmu_aud: clock-controller@114c0000 {
264 compatible = "samsung,exynos5433-cmu-aud";
265 reg = <0x114c0000 0x0b04>;
266 #clock-cells = <1>;
267 };
268
269 cmu_bus0: clock-controller@13600000 {
270 compatible = "samsung,exynos5433-cmu-bus0";
271 reg = <0x13600000 0x0b04>;
272 #clock-cells = <1>;
273
274 clock-names = "aclk_bus0_400";
275 clocks = <&cmu_top CLK_ACLK_BUS0_400>;
276 };
277
278 cmu_bus1: clock-controller@14800000 {
279 compatible = "samsung,exynos5433-cmu-bus1";
280 reg = <0x14800000 0x0b04>;
281 #clock-cells = <1>;
282
283 clock-names = "aclk_bus1_400";
284 clocks = <&cmu_top CLK_ACLK_BUS1_400>;
285 };
286
287 cmu_bus2: clock-controller@13400000 {
288 compatible = "samsung,exynos5433-cmu-bus2";
289 reg = <0x13400000 0x0b04>;
290 #clock-cells = <1>;
291
292 clock-names = "oscclk", "aclk_bus2_400";
293 clocks = <&xxti>, <&cmu_mif CLK_ACLK_BUS2_400>;
294 };
295
296 cmu_g3d: clock-controller@14aa0000 {
297 compatible = "samsung,exynos5433-cmu-g3d";
298 reg = <0x14aa0000 0x1000>;
299 #clock-cells = <1>;
300
301 clock-names = "oscclk", "aclk_g3d_400";
302 clocks = <&xxti>, <&cmu_top CLK_ACLK_G3D_400>;
303 };
304
305 cmu_gscl: clock-controller@13cf0000 {
306 compatible = "samsung,exynos5433-cmu-gscl";
307 reg = <0x13cf0000 0x0b10>;
308 #clock-cells = <1>;
309
310 clock-names = "oscclk",
311 "aclk_gscl_111",
312 "aclk_gscl_333";
313 clocks = <&xxti>,
314 <&cmu_top CLK_ACLK_GSCL_111>,
315 <&cmu_top CLK_ACLK_GSCL_333>;
316 };
317
Chanwoo Choidf40a132015-02-03 09:13:49 +0900318 cmu_apollo: clock-controller@11900000 {
319 compatible = "samsung,exynos5433-cmu-apollo";
320 reg = <0x11900000 0x1088>;
321 #clock-cells = <1>;
322
323 clock-names = "oscclk", "sclk_bus_pll_apollo";
324 clocks = <&xxti>, <&cmu_mif CLK_SCLK_BUS_PLL_APOLLO>;
325 };
326
Chanwoo Choi6c5d76d2015-02-03 09:13:50 +0900327 cmu_atlas: clock-controller@11800000 {
328 compatible = "samsung,exynos5433-cmu-atlas";
329 reg = <0x11800000 0x1088>;
330 #clock-cells = <1>;
331
332 clock-names = "oscclk", "sclk_bus_pll_atlas";
333 clocks = <&xxti>, <&cmu_mif CLK_SCLK_BUS_PLL_ATLAS>;
334 };
335
Chanwoo Choib274bbf2015-02-03 09:13:51 +0900336 cmu_mscl: clock-controller@105d0000 {
337 compatible = "samsung,exynos5433-cmu-mscl";
338 reg = <0x105d0000 0x0b10>;
339 #clock-cells = <1>;
340
341 clock-names = "oscclk",
342 "sclk_jpeg_mscl",
343 "aclk_mscl_400";
344 clocks = <&xxti>,
345 <&cmu_top CLK_SCLK_JPEG_MSCL>,
346 <&cmu_top CLK_ACLK_MSCL_400>;
347 };
348
Chanwoo Choi9910b6b2015-02-03 09:13:52 +0900349 cmu_mfc: clock-controller@15280000 {
350 compatible = "samsung,exynos5433-cmu-mfc";
351 reg = <0x15280000 0x0b08>;
352 #clock-cells = <1>;
353
354 clock-names = "oscclk", "aclk_mfc_400";
355 clocks = <&xxti>, <&cmu_top CLK_ACLK_MFC_400>;
356 };
357
Chanwoo Choi1a21dfe2015-02-03 08:47:11 +0900358Example 3: UART controller node that consumes the clock generated by the clock
359 controller.
360
361 serial_0: serial@14C10000 {
362 compatible = "samsung,exynos5433-uart";
363 reg = <0x14C10000 0x100>;
364 interrupts = <0 421 0>;
365 clocks = <&cmu_peric CLK_PCLK_UART0>,
366 <&cmu_peric CLK_SCLK_UART0>;
367 clock-names = "uart", "clk_uart_baud0";
368 pinctrl-names = "default";
369 pinctrl-0 = <&uart0_bus>;
370 status = "disabled";
371 };