Skip to content

Commit 76dedb9

Browse files
Sam Protsenkokrzk
authored andcommitted
dt-bindings: clock: exynos850: Add CMU_CPUCLK0 and CMU_CPUCL1
Document CPU clock management unit compatibles and add corresponding clock indices. Exynos850 has two CPU clusters (CL0 and CL1), each containing 4 Cortex-A55 cores. CPU PLLs are generating main CPU clocks for each cluster, and there are alternate ("switch") clocks that can be used temporarily while re-configuring the PLL for the new rate. ACLK, ATCLK, PCLKDBG and PERIPHCLK clocks are driving corresponding buses. CLK_CLUSTERx_SCLK are actual leaf CPU clocks and should be used to change CPU rates. Also some CoreSight clocks can be derived from DBG_USER (debug clock). Signed-off-by: Sam Protsenko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Krzysztof Kozlowski <[email protected]>
1 parent 2999e78 commit 76dedb9

File tree

2 files changed

+96
-0
lines changed

2 files changed

+96
-0
lines changed

Documentation/devicetree/bindings/clock/samsung,exynos850-clock.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ properties:
3636
- samsung,exynos850-cmu-aud
3737
- samsung,exynos850-cmu-cmgp
3838
- samsung,exynos850-cmu-core
39+
- samsung,exynos850-cmu-cpucl0
40+
- samsung,exynos850-cmu-cpucl1
3941
- samsung,exynos850-cmu-dpu
4042
- samsung,exynos850-cmu-g3d
4143
- samsung,exynos850-cmu-hsi
@@ -152,6 +154,46 @@ allOf:
152154
- const: dout_core_mmc_embd
153155
- const: dout_core_sss
154156

157+
- if:
158+
properties:
159+
compatible:
160+
contains:
161+
const: samsung,exynos850-cmu-cpucl0
162+
163+
then:
164+
properties:
165+
clocks:
166+
items:
167+
- description: External reference clock (26 MHz)
168+
- description: CPUCL0 switch clock (from CMU_TOP)
169+
- description: CPUCL0 debug clock (from CMU_TOP)
170+
171+
clock-names:
172+
items:
173+
- const: oscclk
174+
- const: dout_cpucl0_switch
175+
- const: dout_cpucl0_dbg
176+
177+
- if:
178+
properties:
179+
compatible:
180+
contains:
181+
const: samsung,exynos850-cmu-cpucl1
182+
183+
then:
184+
properties:
185+
clocks:
186+
items:
187+
- description: External reference clock (26 MHz)
188+
- description: CPUCL1 switch clock (from CMU_TOP)
189+
- description: CPUCL1 debug clock (from CMU_TOP)
190+
191+
clock-names:
192+
items:
193+
- const: oscclk
194+
- const: dout_cpucl1_switch
195+
- const: dout_cpucl1_dbg
196+
155197
- if:
156198
properties:
157199
compatible:

include/dt-bindings/clock/exynos850.h

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,18 @@
8888
#define CLK_MOUT_G3D_SWITCH 76
8989
#define CLK_GOUT_G3D_SWITCH 77
9090
#define CLK_DOUT_G3D_SWITCH 78
91+
#define CLK_MOUT_CPUCL0_DBG 79
92+
#define CLK_MOUT_CPUCL0_SWITCH 80
93+
#define CLK_GOUT_CPUCL0_DBG 81
94+
#define CLK_GOUT_CPUCL0_SWITCH 82
95+
#define CLK_DOUT_CPUCL0_DBG 83
96+
#define CLK_DOUT_CPUCL0_SWITCH 84
97+
#define CLK_MOUT_CPUCL1_DBG 85
98+
#define CLK_MOUT_CPUCL1_SWITCH 86
99+
#define CLK_GOUT_CPUCL1_DBG 87
100+
#define CLK_GOUT_CPUCL1_SWITCH 88
101+
#define CLK_DOUT_CPUCL1_DBG 89
102+
#define CLK_DOUT_CPUCL1_SWITCH 90
91103

92104
/* CMU_APM */
93105
#define CLK_RCO_I3C_PMIC 1
@@ -195,6 +207,48 @@
195207
#define CLK_GOUT_CMGP_USI1_PCLK 14
196208
#define CLK_GOUT_SYSREG_CMGP_PCLK 15
197209

210+
/* CMU_CPUCL0 */
211+
#define CLK_FOUT_CPUCL0_PLL 1
212+
#define CLK_MOUT_PLL_CPUCL0 2
213+
#define CLK_MOUT_CPUCL0_SWITCH_USER 3
214+
#define CLK_MOUT_CPUCL0_DBG_USER 4
215+
#define CLK_MOUT_CPUCL0_PLL 5
216+
#define CLK_DOUT_CPUCL0_CPU 6
217+
#define CLK_DOUT_CPUCL0_CMUREF 7
218+
#define CLK_DOUT_CPUCL0_PCLK 8
219+
#define CLK_DOUT_CLUSTER0_ACLK 9
220+
#define CLK_DOUT_CLUSTER0_ATCLK 10
221+
#define CLK_DOUT_CLUSTER0_PCLKDBG 11
222+
#define CLK_DOUT_CLUSTER0_PERIPHCLK 12
223+
#define CLK_GOUT_CLUSTER0_ATCLK 13
224+
#define CLK_GOUT_CLUSTER0_PCLK 14
225+
#define CLK_GOUT_CLUSTER0_PERIPHCLK 15
226+
#define CLK_GOUT_CLUSTER0_SCLK 16
227+
#define CLK_GOUT_CPUCL0_CMU_CPUCL0_PCLK 17
228+
#define CLK_GOUT_CLUSTER0_CPU 18
229+
#define CLK_CLUSTER0_SCLK 19
230+
231+
/* CMU_CPUCL1 */
232+
#define CLK_FOUT_CPUCL1_PLL 1
233+
#define CLK_MOUT_PLL_CPUCL1 2
234+
#define CLK_MOUT_CPUCL1_SWITCH_USER 3
235+
#define CLK_MOUT_CPUCL1_DBG_USER 4
236+
#define CLK_MOUT_CPUCL1_PLL 5
237+
#define CLK_DOUT_CPUCL1_CPU 6
238+
#define CLK_DOUT_CPUCL1_CMUREF 7
239+
#define CLK_DOUT_CPUCL1_PCLK 8
240+
#define CLK_DOUT_CLUSTER1_ACLK 9
241+
#define CLK_DOUT_CLUSTER1_ATCLK 10
242+
#define CLK_DOUT_CLUSTER1_PCLKDBG 11
243+
#define CLK_DOUT_CLUSTER1_PERIPHCLK 12
244+
#define CLK_GOUT_CLUSTER1_ATCLK 13
245+
#define CLK_GOUT_CLUSTER1_PCLK 14
246+
#define CLK_GOUT_CLUSTER1_PERIPHCLK 15
247+
#define CLK_GOUT_CLUSTER1_SCLK 16
248+
#define CLK_GOUT_CPUCL1_CMU_CPUCL1_PCLK 17
249+
#define CLK_GOUT_CLUSTER1_CPU 18
250+
#define CLK_CLUSTER1_SCLK 19
251+
198252
/* CMU_G3D */
199253
#define CLK_FOUT_G3D_PLL 1
200254
#define CLK_MOUT_G3D_PLL 2

0 commit comments

Comments
 (0)