Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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,exynos7870-cmu.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung Exynos7870 SoC clock controller
8
9maintainers:
10 - Kaustabh Chakraborty <kauschluss@disroot.org>
11
12description: |
13 Exynos7870 clock controller is comprised of several CMU units, generating
14 clocks for different domains. Those CMU units are modeled as separate device
15 tree nodes, and might depend on each other. The root clock in that root tree
16 is an external clock: OSCCLK (26 MHz). This external clock must be defined
17 as a fixed-rate clock in dts.
18
19 Each clock is assigned an identifier and client nodes can use this identifier
20 to specify the clock which they consume. All clocks available for usage
21 in clock consumer nodes are defined as preprocessor macros in
22 include/dt-bindings/clock/samsung,exynos7870-cmu.h header.
23
24properties:
25 compatible:
26 enum:
27 - samsung,exynos7870-cmu-mif
28 - samsung,exynos7870-cmu-dispaud
29 - samsung,exynos7870-cmu-fsys
30 - samsung,exynos7870-cmu-g3d
31 - samsung,exynos7870-cmu-isp
32 - samsung,exynos7870-cmu-mfcmscl
33 - samsung,exynos7870-cmu-peri
34
35 clocks:
36 minItems: 1
37 maxItems: 10
38
39 clock-names:
40 minItems: 1
41 maxItems: 10
42
43 "#clock-cells":
44 const: 1
45
46 reg:
47 maxItems: 1
48
49required:
50 - compatible
51 - clocks
52 - clock-names
53 - "#clock-cells"
54 - reg
55
56allOf:
57 - if:
58 properties:
59 compatible:
60 contains:
61 const: samsung,exynos7870-cmu-mif
62 then:
63 properties:
64 clocks:
65 items:
66 - description: External reference clock (26 MHz)
67
68 clock-names:
69 items:
70 - const: oscclk
71
72 - if:
73 properties:
74 compatible:
75 contains:
76 const: samsung,exynos7870-cmu-dispaud
77 then:
78 properties:
79 clocks:
80 items:
81 - description: External reference clock (26 MHz)
82 - description: CMU_DISPAUD bus clock (from CMU_MIF)
83 - description: DECON external clock (from CMU_MIF)
84 - description: DECON vertical clock (from CMU_MIF)
85
86 clock-names:
87 items:
88 - const: oscclk
89 - const: bus
90 - const: decon_eclk
91 - const: decon_vclk
92
93 - if:
94 properties:
95 compatible:
96 contains:
97 const: samsung,exynos7870-cmu-fsys
98 then:
99 properties:
100 clocks:
101 items:
102 - description: External reference clock (26 MHz)
103 - description: CMU_FSYS bus clock (from CMU_MIF)
104 - description: USB20DRD clock (from CMU_MIF)
105
106 clock-names:
107 items:
108 - const: oscclk
109 - const: bus
110 - const: usb20drd
111
112 - if:
113 properties:
114 compatible:
115 contains:
116 const: samsung,exynos7870-cmu-g3d
117 then:
118 properties:
119 clocks:
120 items:
121 - description: External reference clock (26 MHz)
122 - description: G3D switch clock (from CMU_MIF)
123
124 clock-names:
125 items:
126 - const: oscclk
127 - const: switch
128
129 - if:
130 properties:
131 compatible:
132 contains:
133 const: samsung,exynos7870-cmu-isp
134 then:
135 properties:
136 clocks:
137 items:
138 - description: External reference clock (26 MHz)
139 - description: ISP camera clock (from CMU_MIF)
140 - description: ISP clock (from CMU_MIF)
141 - description: ISP VRA clock (from CMU_MIF)
142
143 clock-names:
144 items:
145 - const: oscclk
146 - const: cam
147 - const: isp
148 - const: vra
149
150 - if:
151 properties:
152 compatible:
153 contains:
154 const: samsung,exynos7870-cmu-mfcmscl
155 then:
156 properties:
157 clocks:
158 items:
159 - description: External reference clock (26 MHz)
160 - description: MSCL clock (from CMU_MIF)
161 - description: MFC clock (from CMU_MIF)
162
163 clock-names:
164 items:
165 - const: oscclk
166 - const: mfc
167 - const: mscl
168
169 - if:
170 properties:
171 compatible:
172 contains:
173 const: samsung,exynos7870-cmu-peri
174 then:
175 properties:
176 clocks:
177 items:
178 - description: External reference clock (26 MHz)
179 - description: CMU_PERI bus clock (from CMU_MIF)
180 - description: SPI0 clock (from CMU_MIF)
181 - description: SPI1 clock (from CMU_MIF)
182 - description: SPI2 clock (from CMU_MIF)
183 - description: SPI3 clock (from CMU_MIF)
184 - description: SPI4 clock (from CMU_MIF)
185 - description: UART0 clock (from CMU_MIF)
186 - description: UART1 clock (from CMU_MIF)
187 - description: UART2 clock (from CMU_MIF)
188
189 clock-names:
190 items:
191 - const: oscclk
192 - const: bus
193 - const: spi0
194 - const: spi1
195 - const: spi2
196 - const: spi3
197 - const: spi4
198 - const: uart0
199 - const: uart1
200 - const: uart2
201
202additionalProperties: false
203
204examples:
205 - |
206 #include <dt-bindings/clock/samsung,exynos7870-cmu.h>
207
208 cmu_peri: clock-controller@101f0000 {
209 compatible = "samsung,exynos7870-cmu-peri";
210 reg = <0x101f0000 0x1000>;
211 #clock-cells = <1>;
212
213 clock-names = "oscclk", "bus", "spi0", "spi1", "spi2",
214 "spi3", "spi4", "uart0", "uart1", "uart2";
215 clocks = <&oscclk>,
216 <&cmu_mif CLK_GOUT_MIF_CMU_PERI_BUS>,
217 <&cmu_mif CLK_GOUT_MIF_CMU_PERI_SPI0>,
218 <&cmu_mif CLK_GOUT_MIF_CMU_PERI_SPI1>,
219 <&cmu_mif CLK_GOUT_MIF_CMU_PERI_SPI2>,
220 <&cmu_mif CLK_GOUT_MIF_CMU_PERI_SPI3>,
221 <&cmu_mif CLK_GOUT_MIF_CMU_PERI_SPI4>,
222 <&cmu_mif CLK_GOUT_MIF_CMU_PERI_UART0>,
223 <&cmu_mif CLK_GOUT_MIF_CMU_PERI_UART1>,
224 <&cmu_mif CLK_GOUT_MIF_CMU_PERI_UART2>;
225 };
226
227...