Skip to content

Commit e61492e

Browse files
cometzerokrzk
authored andcommitted
dt-bindings: clock: add Exynos Auto v9 SoC CMU bindings
Add dt-schema for Exynos Auto v9 SoC clock controller. Signed-off-by: Chanho Park <chanho61.park@samsung.com> Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20220504075154.58819-3-chanho61.park@samsung.com Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
1 parent 680e1c8 commit e61492e

1 file changed

Lines changed: 219 additions & 0 deletions

File tree

Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,219 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/samsung,exynosautov9-clock.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Samsung Exynos Auto v9 SoC clock controller
8+
9+
maintainers:
10+
- Chanho Park <chanho61.park@samsung.com>
11+
- Chanwoo Choi <cw00.choi@samsung.com>
12+
- Krzysztof Kozlowski <krzk@kernel.org>
13+
- Sylwester Nawrocki <s.nawrocki@samsung.com>
14+
- Tomasz Figa <tomasz.figa@gmail.com>
15+
16+
description: |
17+
Exynos Auto v9 clock controller is comprised of several CMU units, generating
18+
clocks for different domains. Those CMU units are modeled as separate device
19+
tree nodes, and might depend on each other. Root clocks in that clock tree are
20+
two external clocks:: OSCCLK/XTCXO (26 MHz) and RTCCLK/XrtcXTI (32768 Hz).
21+
The external OSCCLK must be defined as fixed-rate clock in dts.
22+
23+
CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
24+
dividers; all other clocks of function blocks (other CMUs) are usually
25+
derived from CMU_TOP.
26+
27+
Each clock is assigned an identifier and client nodes can use this identifier
28+
to specify the clock which they consume. All clocks available for usage
29+
in clock consumer nodes are defined as preprocessor macros in
30+
'include/dt-bindings/clock/samsung,exynosautov9.h' header.
31+
32+
properties:
33+
compatible:
34+
enum:
35+
- samsung,exynosautov9-cmu-top
36+
- samsung,exynosautov9-cmu-busmc
37+
- samsung,exynosautov9-cmu-core
38+
- samsung,exynosautov9-cmu-fsys2
39+
- samsung,exynosautov9-cmu-peric0
40+
- samsung,exynosautov9-cmu-peric1
41+
- samsung,exynosautov9-cmu-peris
42+
43+
clocks:
44+
minItems: 1
45+
maxItems: 5
46+
47+
clock-names:
48+
minItems: 1
49+
maxItems: 5
50+
51+
"#clock-cells":
52+
const: 1
53+
54+
reg:
55+
maxItems: 1
56+
57+
allOf:
58+
- if:
59+
properties:
60+
compatible:
61+
contains:
62+
const: samsung,exynosautov9-cmu-top
63+
64+
then:
65+
properties:
66+
clocks:
67+
items:
68+
- description: External reference clock (26 MHz)
69+
70+
clock-names:
71+
items:
72+
- const: oscclk
73+
74+
- if:
75+
properties:
76+
compatible:
77+
contains:
78+
const: samsung,exynosautov9-cmu-busmc
79+
80+
then:
81+
properties:
82+
clocks:
83+
items:
84+
- description: External reference clock (26 MHz)
85+
- description: CMU_BUSMC bus clock (from CMU_TOP)
86+
87+
clock-names:
88+
items:
89+
- const: oscclk
90+
- const: dout_clkcmu_busmc_bus
91+
92+
- if:
93+
properties:
94+
compatible:
95+
contains:
96+
const: samsung,exynosautov9-cmu-core
97+
98+
then:
99+
properties:
100+
clocks:
101+
items:
102+
- description: External reference clock (26 MHz)
103+
- description: CMU_CORE bus clock (from CMU_TOP)
104+
105+
clock-names:
106+
items:
107+
- const: oscclk
108+
- const: dout_clkcmu_core_bus
109+
110+
- if:
111+
properties:
112+
compatible:
113+
contains:
114+
const: samsung,exynosautov9-cmu-fsys2
115+
116+
then:
117+
properties:
118+
clocks:
119+
items:
120+
- description: External reference clock (26 MHz)
121+
- description: CMU_FSYS2 bus clock (from CMU_TOP)
122+
- description: UFS clock (from CMU_TOP)
123+
- description: Ethernet clock (from CMU_TOP)
124+
125+
clock-names:
126+
items:
127+
- const: oscclk
128+
- const: dout_clkcmu_fsys2_bus
129+
- const: dout_fsys2_clkcmu_ufs_embd
130+
- const: dout_fsys2_clkcmu_ethernet
131+
132+
- if:
133+
properties:
134+
compatible:
135+
contains:
136+
const: samsung,exynosautov9-cmu-peric0
137+
138+
then:
139+
properties:
140+
clocks:
141+
items:
142+
- description: External reference clock (26 MHz)
143+
- description: CMU_PERIC0 bus clock (from CMU_TOP)
144+
- description: PERIC0 IP clock (from CMU_TOP)
145+
146+
clock-names:
147+
items:
148+
- const: oscclk
149+
- const: dout_clkcmu_peric0_bus
150+
- const: dout_clkcmu_peric0_ip
151+
152+
- if:
153+
properties:
154+
compatible:
155+
contains:
156+
const: samsung,exynosautov9-cmu-peric1
157+
158+
then:
159+
properties:
160+
clocks:
161+
items:
162+
- description: External reference clock (26 MHz)
163+
- description: CMU_PERIC1 bus clock (from CMU_TOP)
164+
- description: PERIC1 IP clock (from CMU_TOP)
165+
166+
clock-names:
167+
items:
168+
- const: oscclk
169+
- const: dout_clkcmu_peric1_bus
170+
- const: dout_clkcmu_peric1_ip
171+
172+
- if:
173+
properties:
174+
compatible:
175+
contains:
176+
const: samsung,exynosautov9-cmu-peris
177+
178+
then:
179+
properties:
180+
clocks:
181+
items:
182+
- description: External reference clock (26 MHz)
183+
- description: CMU_PERIS bus clock (from CMU_TOP)
184+
185+
clock-names:
186+
items:
187+
- const: oscclk
188+
- const: dout_clkcmu_peris_bus
189+
190+
required:
191+
- compatible
192+
- "#clock-cells"
193+
- clocks
194+
- clock-names
195+
- reg
196+
197+
additionalProperties: false
198+
199+
examples:
200+
# Clock controller node for CMU_FSYS2
201+
- |
202+
#include <dt-bindings/clock/samsung,exynosautov9.h>
203+
204+
cmu_fsys2: clock-controller@17c00000 {
205+
compatible = "samsung,exynosautov9-cmu-fsys2";
206+
reg = <0x17c00000 0x8000>;
207+
#clock-cells = <1>;
208+
209+
clocks = <&xtcxo>,
210+
<&cmu_top DOUT_CLKCMU_FSYS2_BUS>,
211+
<&cmu_top DOUT_CLKCMU_FSYS2_UFS_EMBD>,
212+
<&cmu_top DOUT_CLKCMU_FSYS2_ETHERNET>;
213+
clock-names = "oscclk",
214+
"dout_clkcmu_fsys2_bus",
215+
"dout_fsys2_clkcmu_ufs_embd",
216+
"dout_fsys2_clkcmu_ethernet";
217+
};
218+
219+
...

0 commit comments

Comments
 (0)