File Index
Files and directories
Sign in
FILE

samsung,exynosautov920-clock.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/clock/samsung,exynosautov920-clock.yaml YAML
  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,exynosautov920-clock.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Samsung ExynosAuto v920 SoC clock controller
  8
  9maintainers:
 10  - Sunyeal Hong <sunyeal.hong@samsung.com>
 11  - Shin Son <shin.son@samsung.com>
 12  - Chanwoo Choi <cw00.choi@samsung.com>
 13  - Krzysztof Kozlowski <krzk@kernel.org>
 14  - Sylwester Nawrocki <s.nawrocki@samsung.com>
 15
 16description: |
 17  ExynosAuto v920 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 (38.4 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,exynosautov920.h' header.
 31
 32properties:
 33  compatible:
 34    enum:
 35      - samsung,exynosautov920-cmu-cpucl0
 36      - samsung,exynosautov920-cmu-cpucl1
 37      - samsung,exynosautov920-cmu-cpucl2
 38      - samsung,exynosautov920-cmu-hsi0
 39      - samsung,exynosautov920-cmu-hsi1
 40      - samsung,exynosautov920-cmu-hsi2
 41      - samsung,exynosautov920-cmu-m2m
 42      - samsung,exynosautov920-cmu-mfc
 43      - samsung,exynosautov920-cmu-misc
 44      - samsung,exynosautov920-cmu-peric0
 45      - samsung,exynosautov920-cmu-peric1
 46      - samsung,exynosautov920-cmu-top
 47
 48  clocks:
 49    minItems: 1
 50    maxItems: 5
 51
 52  clock-names:
 53    minItems: 1
 54    maxItems: 5
 55
 56  "#clock-cells":
 57    const: 1
 58
 59  reg:
 60    maxItems: 1
 61
 62allOf:
 63  - if:
 64      properties:
 65        compatible:
 66          contains:
 67            const: samsung,exynosautov920-cmu-top
 68
 69    then:
 70      properties:
 71        clocks:
 72          items:
 73            - description: External reference clock (38.4 MHz)
 74
 75        clock-names:
 76          items:
 77            - const: oscclk
 78
 79  - if:
 80      properties:
 81        compatible:
 82          contains:
 83            enum:
 84              - samsung,exynosautov920-cmu-cpucl0
 85
 86    then:
 87      properties:
 88        clocks:
 89          items:
 90            - description: External reference clock (38.4 MHz)
 91            - description: CMU_CPUCL0 SWITCH clock (from CMU_TOP)
 92            - description: CMU_CPUCL0 CLUSTER clock (from CMU_TOP)
 93            - description: CMU_CPUCL0 DBG clock (from CMU_TOP)
 94
 95        clock-names:
 96          items:
 97            - const: oscclk
 98            - const: switch
 99            - const: cluster
100            - const: dbg
101
102  - if:
103      properties:
104        compatible:
105          contains:
106            enum:
107              - samsung,exynosautov920-cmu-cpucl1
108
109    then:
110      properties:
111        clocks:
112          items:
113            - description: External reference clock (38.4 MHz)
114            - description: CMU_CPUCL1 SWITCH clock (from CMU_TOP)
115            - description: CMU_CPUCL1 CLUSTER clock (from CMU_TOP)
116
117        clock-names:
118          items:
119            - const: oscclk
120            - const: switch
121            - const: cluster
122
123  - if:
124      properties:
125        compatible:
126          contains:
127            enum:
128              - samsung,exynosautov920-cmu-cpucl2
129
130    then:
131      properties:
132        clocks:
133          items:
134            - description: External reference clock (38.4 MHz)
135            - description: CMU_CPUCL2 SWITCH clock (from CMU_TOP)
136            - description: CMU_CPUCL2 CLUSTER clock (from CMU_TOP)
137
138        clock-names:
139          items:
140            - const: oscclk
141            - const: switch
142            - const: cluster
143
144  - if:
145      properties:
146        compatible:
147          contains:
148            enum:
149              - samsung,exynosautov920-cmu-peric0
150              - samsung,exynosautov920-cmu-peric1
151
152    then:
153      properties:
154        clocks:
155          items:
156            - description: External reference clock (38.4 MHz)
157            - description: CMU_PERICn NOC clock (from CMU_TOP)
158            - description: CMU_PERICn IP clock (from CMU_TOP)
159
160        clock-names:
161          items:
162            - const: oscclk
163            - const: noc
164            - const: ip
165
166  - if:
167      properties:
168        compatible:
169          enum:
170            - samsung,exynosautov920-cmu-misc
171            - samsung,exynosautov920-cmu-hsi0
172
173    then:
174      properties:
175        clocks:
176          items:
177            - description: External reference clock (38.4 MHz)
178            - description: CMU_MISC/CMU_HSI0 NOC clock (from CMU_TOP)
179
180        clock-names:
181          items:
182            - const: oscclk
183            - const: noc
184
185  - if:
186      properties:
187        compatible:
188          contains:
189            const: samsung,exynosautov920-cmu-hsi1
190
191    then:
192      properties:
193        clocks:
194          items:
195            - description: External reference clock (38.4 MHz)
196            - description: CMU_HSI1 NOC clock (from CMU_TOP)
197            - description: CMU_HSI1 USBDRD clock (from CMU_TOP)
198            - description: CMU_HSI1 MMC_CARD clock (from CMU_TOP)
199
200        clock-names:
201          items:
202            - const: oscclk
203            - const: noc
204            - const: usbdrd
205            - const: mmc_card
206
207  - if:
208      properties:
209        compatible:
210          contains:
211            const: samsung,exynosautov920-cmu-hsi2
212
213    then:
214      properties:
215        clocks:
216          items:
217            - description: External reference clock (38.4 MHz)
218            - description: CMU_HSI2 NOC clock (from CMU_TOP)
219            - description: CMU_HSI2 NOC UFS clock (from CMU_TOP)
220            - description: CMU_HSI2 UFS EMBD clock (from CMU_TOP)
221            - description: CMU_HSI2 ETHERNET clock (from CMU_TOP)
222
223        clock-names:
224          items:
225            - const: oscclk
226            - const: noc
227            - const: ufs
228            - const: embd
229            - const: ethernet
230
231  - if:
232      properties:
233        compatible:
234          contains:
235            const: samsung,exynosautov920-cmu-m2m
236
237    then:
238      properties:
239        clocks:
240          items:
241            - description: External reference clock (38.4 MHz)
242            - description: CMU_M2M NOC clock (from CMU_TOP)
243            - description: CMU_M2M JPEG clock (from CMU_TOP)
244
245        clock-names:
246          items:
247            - const: oscclk
248            - const: noc
249            - const: jpeg
250
251  - if:
252      properties:
253        compatible:
254          contains:
255            const: samsung,exynosautov920-cmu-mfc
256
257    then:
258      properties:
259        clocks:
260          items:
261            - description: External reference clock (38.4 MHz)
262            - description: CMU_MFC MFC clock (from CMU_TOP)
263            - description: CMU_MFC WFD clock (from CMU_TOP)
264
265        clock-names:
266          items:
267            - const: oscclk
268            - const: mfc
269            - const: wfd
270
271required:
272  - compatible
273  - "#clock-cells"
274  - clocks
275  - clock-names
276  - reg
277
278additionalProperties: false
279
280examples:
281  # Clock controller node for CMU_PERIC0
282  - |
283    #include <dt-bindings/clock/samsung,exynosautov920.h>
284
285    cmu_peric0: clock-controller@10800000 {
286        compatible = "samsung,exynosautov920-cmu-peric0";
287        reg = <0x10800000 0x8000>;
288        #clock-cells = <1>;
289
290        clocks = <&xtcxo>,
291                 <&cmu_top DOUT_CLKCMU_PERIC0_NOC>,
292                 <&cmu_top DOUT_CLKCMU_PERIC0_IP>;
293        clock-names = "oscclk",
294                      "noc",
295                      "ip";
296    };
297
298...
~/ Read-only file preview.