xref: /freebsd/sys/contrib/device-tree/Bindings/clock/samsung,exynos850-clock.yaml (revision 01950c46b8155250f64374fb72fc11faa44bf099)
18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28cc087a1SEmmanuel Vadot%YAML 1.2
38cc087a1SEmmanuel Vadot---
48cc087a1SEmmanuel Vadot$id: http://devicetree.org/schemas/clock/samsung,exynos850-clock.yaml#
58cc087a1SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68cc087a1SEmmanuel Vadot
78cc087a1SEmmanuel Vadottitle: Samsung Exynos850 SoC clock controller
88cc087a1SEmmanuel Vadot
98cc087a1SEmmanuel Vadotmaintainers:
108cc087a1SEmmanuel Vadot  - Sam Protsenko <semen.protsenko@linaro.org>
118cc087a1SEmmanuel Vadot  - Chanwoo Choi <cw00.choi@samsung.com>
12c9ccf3a3SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
138cc087a1SEmmanuel Vadot  - Sylwester Nawrocki <s.nawrocki@samsung.com>
148cc087a1SEmmanuel Vadot  - Tomasz Figa <tomasz.figa@gmail.com>
158cc087a1SEmmanuel Vadot
168cc087a1SEmmanuel Vadotdescription: |
178cc087a1SEmmanuel Vadot  Exynos850 clock controller is comprised of several CMU units, generating
188cc087a1SEmmanuel Vadot  clocks for different domains. Those CMU units are modeled as separate device
198cc087a1SEmmanuel Vadot  tree nodes, and might depend on each other. Root clocks in that clock tree are
208cc087a1SEmmanuel Vadot  two external clocks:: OSCCLK (26 MHz) and RTCCLK (32768 Hz). Those external
218cc087a1SEmmanuel Vadot  clocks must be defined as fixed-rate clocks in dts.
228cc087a1SEmmanuel Vadot
238cc087a1SEmmanuel Vadot  CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
248cc087a1SEmmanuel Vadot  dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP.
258cc087a1SEmmanuel Vadot
268cc087a1SEmmanuel Vadot  Each clock is assigned an identifier and client nodes can use this identifier
278cc087a1SEmmanuel Vadot  to specify the clock which they consume. All clocks available for usage
288cc087a1SEmmanuel Vadot  in clock consumer nodes are defined as preprocessor macros in
298cc087a1SEmmanuel Vadot  'dt-bindings/clock/exynos850.h' header.
308cc087a1SEmmanuel Vadot
318cc087a1SEmmanuel Vadotproperties:
328cc087a1SEmmanuel Vadot  compatible:
338cc087a1SEmmanuel Vadot    enum:
348cc087a1SEmmanuel Vadot      - samsung,exynos850-cmu-top
35e67e8565SEmmanuel Vadot      - samsung,exynos850-cmu-apm
367ef62cebSEmmanuel Vadot      - samsung,exynos850-cmu-aud
37e67e8565SEmmanuel Vadot      - samsung,exynos850-cmu-cmgp
388cc087a1SEmmanuel Vadot      - samsung,exynos850-cmu-core
39*01950c46SEmmanuel Vadot      - samsung,exynos850-cmu-cpucl0
40*01950c46SEmmanuel Vadot      - samsung,exynos850-cmu-cpucl1
418cc087a1SEmmanuel Vadot      - samsung,exynos850-cmu-dpu
42fac71e4eSEmmanuel Vadot      - samsung,exynos850-cmu-g3d
438cc087a1SEmmanuel Vadot      - samsung,exynos850-cmu-hsi
447ef62cebSEmmanuel Vadot      - samsung,exynos850-cmu-is
457ef62cebSEmmanuel Vadot      - samsung,exynos850-cmu-mfcmscl
468cc087a1SEmmanuel Vadot      - samsung,exynos850-cmu-peri
478cc087a1SEmmanuel Vadot
488cc087a1SEmmanuel Vadot  clocks:
498cc087a1SEmmanuel Vadot    minItems: 1
508cc087a1SEmmanuel Vadot    maxItems: 5
518cc087a1SEmmanuel Vadot
528cc087a1SEmmanuel Vadot  clock-names:
538cc087a1SEmmanuel Vadot    minItems: 1
548cc087a1SEmmanuel Vadot    maxItems: 5
558cc087a1SEmmanuel Vadot
568cc087a1SEmmanuel Vadot  "#clock-cells":
578cc087a1SEmmanuel Vadot    const: 1
588cc087a1SEmmanuel Vadot
598cc087a1SEmmanuel Vadot  reg:
608cc087a1SEmmanuel Vadot    maxItems: 1
618cc087a1SEmmanuel Vadot
628cc087a1SEmmanuel VadotallOf:
638cc087a1SEmmanuel Vadot  - if:
648cc087a1SEmmanuel Vadot      properties:
658cc087a1SEmmanuel Vadot        compatible:
668cc087a1SEmmanuel Vadot          contains:
678cc087a1SEmmanuel Vadot            const: samsung,exynos850-cmu-top
688cc087a1SEmmanuel Vadot
698cc087a1SEmmanuel Vadot    then:
708cc087a1SEmmanuel Vadot      properties:
718cc087a1SEmmanuel Vadot        clocks:
728cc087a1SEmmanuel Vadot          items:
738cc087a1SEmmanuel Vadot            - description: External reference clock (26 MHz)
748cc087a1SEmmanuel Vadot
758cc087a1SEmmanuel Vadot        clock-names:
768cc087a1SEmmanuel Vadot          items:
778cc087a1SEmmanuel Vadot            - const: oscclk
788cc087a1SEmmanuel Vadot
798cc087a1SEmmanuel Vadot  - if:
808cc087a1SEmmanuel Vadot      properties:
818cc087a1SEmmanuel Vadot        compatible:
828cc087a1SEmmanuel Vadot          contains:
83e67e8565SEmmanuel Vadot            const: samsung,exynos850-cmu-apm
84e67e8565SEmmanuel Vadot
85e67e8565SEmmanuel Vadot    then:
86e67e8565SEmmanuel Vadot      properties:
87e67e8565SEmmanuel Vadot        clocks:
88e67e8565SEmmanuel Vadot          items:
89e67e8565SEmmanuel Vadot            - description: External reference clock (26 MHz)
90e67e8565SEmmanuel Vadot            - description: CMU_APM bus clock (from CMU_TOP)
91e67e8565SEmmanuel Vadot
92e67e8565SEmmanuel Vadot        clock-names:
93e67e8565SEmmanuel Vadot          items:
94e67e8565SEmmanuel Vadot            - const: oscclk
95e67e8565SEmmanuel Vadot            - const: dout_clkcmu_apm_bus
96e67e8565SEmmanuel Vadot
97e67e8565SEmmanuel Vadot  - if:
98e67e8565SEmmanuel Vadot      properties:
99e67e8565SEmmanuel Vadot        compatible:
100e67e8565SEmmanuel Vadot          contains:
1017ef62cebSEmmanuel Vadot            const: samsung,exynos850-cmu-aud
1027ef62cebSEmmanuel Vadot
1037ef62cebSEmmanuel Vadot    then:
1047ef62cebSEmmanuel Vadot      properties:
1057ef62cebSEmmanuel Vadot        clocks:
1067ef62cebSEmmanuel Vadot          items:
1077ef62cebSEmmanuel Vadot            - description: External reference clock (26 MHz)
1087ef62cebSEmmanuel Vadot            - description: AUD clock (from CMU_TOP)
1097ef62cebSEmmanuel Vadot
1107ef62cebSEmmanuel Vadot        clock-names:
1117ef62cebSEmmanuel Vadot          items:
1127ef62cebSEmmanuel Vadot            - const: oscclk
1137ef62cebSEmmanuel Vadot            - const: dout_aud
1147ef62cebSEmmanuel Vadot
1157ef62cebSEmmanuel Vadot  - if:
1167ef62cebSEmmanuel Vadot      properties:
1177ef62cebSEmmanuel Vadot        compatible:
1187ef62cebSEmmanuel Vadot          contains:
119e67e8565SEmmanuel Vadot            const: samsung,exynos850-cmu-cmgp
120e67e8565SEmmanuel Vadot
121e67e8565SEmmanuel Vadot    then:
122e67e8565SEmmanuel Vadot      properties:
123e67e8565SEmmanuel Vadot        clocks:
124e67e8565SEmmanuel Vadot          items:
125e67e8565SEmmanuel Vadot            - description: External reference clock (26 MHz)
126e67e8565SEmmanuel Vadot            - description: CMU_CMGP bus clock (from CMU_APM)
127e67e8565SEmmanuel Vadot
128e67e8565SEmmanuel Vadot        clock-names:
129e67e8565SEmmanuel Vadot          items:
130e67e8565SEmmanuel Vadot            - const: oscclk
131e67e8565SEmmanuel Vadot            - const: gout_clkcmu_cmgp_bus
132e67e8565SEmmanuel Vadot
133e67e8565SEmmanuel Vadot  - if:
134e67e8565SEmmanuel Vadot      properties:
135e67e8565SEmmanuel Vadot        compatible:
136e67e8565SEmmanuel Vadot          contains:
1378cc087a1SEmmanuel Vadot            const: samsung,exynos850-cmu-core
1388cc087a1SEmmanuel Vadot
1398cc087a1SEmmanuel Vadot    then:
1408cc087a1SEmmanuel Vadot      properties:
1418cc087a1SEmmanuel Vadot        clocks:
1428cc087a1SEmmanuel Vadot          items:
1438cc087a1SEmmanuel Vadot            - description: External reference clock (26 MHz)
1448cc087a1SEmmanuel Vadot            - description: CMU_CORE bus clock (from CMU_TOP)
1458cc087a1SEmmanuel Vadot            - description: CCI clock (from CMU_TOP)
1468cc087a1SEmmanuel Vadot            - description: eMMC clock (from CMU_TOP)
1478cc087a1SEmmanuel Vadot            - description: SSS clock (from CMU_TOP)
1488cc087a1SEmmanuel Vadot
1498cc087a1SEmmanuel Vadot        clock-names:
1508cc087a1SEmmanuel Vadot          items:
1518cc087a1SEmmanuel Vadot            - const: oscclk
1528cc087a1SEmmanuel Vadot            - const: dout_core_bus
1538cc087a1SEmmanuel Vadot            - const: dout_core_cci
1548cc087a1SEmmanuel Vadot            - const: dout_core_mmc_embd
1558cc087a1SEmmanuel Vadot            - const: dout_core_sss
1568cc087a1SEmmanuel Vadot
1578cc087a1SEmmanuel Vadot  - if:
1588cc087a1SEmmanuel Vadot      properties:
1598cc087a1SEmmanuel Vadot        compatible:
1608cc087a1SEmmanuel Vadot          contains:
161*01950c46SEmmanuel Vadot            const: samsung,exynos850-cmu-cpucl0
162*01950c46SEmmanuel Vadot
163*01950c46SEmmanuel Vadot    then:
164*01950c46SEmmanuel Vadot      properties:
165*01950c46SEmmanuel Vadot        clocks:
166*01950c46SEmmanuel Vadot          items:
167*01950c46SEmmanuel Vadot            - description: External reference clock (26 MHz)
168*01950c46SEmmanuel Vadot            - description: CPUCL0 switch clock (from CMU_TOP)
169*01950c46SEmmanuel Vadot            - description: CPUCL0 debug clock (from CMU_TOP)
170*01950c46SEmmanuel Vadot
171*01950c46SEmmanuel Vadot        clock-names:
172*01950c46SEmmanuel Vadot          items:
173*01950c46SEmmanuel Vadot            - const: oscclk
174*01950c46SEmmanuel Vadot            - const: dout_cpucl0_switch
175*01950c46SEmmanuel Vadot            - const: dout_cpucl0_dbg
176*01950c46SEmmanuel Vadot
177*01950c46SEmmanuel Vadot  - if:
178*01950c46SEmmanuel Vadot      properties:
179*01950c46SEmmanuel Vadot        compatible:
180*01950c46SEmmanuel Vadot          contains:
181*01950c46SEmmanuel Vadot            const: samsung,exynos850-cmu-cpucl1
182*01950c46SEmmanuel Vadot
183*01950c46SEmmanuel Vadot    then:
184*01950c46SEmmanuel Vadot      properties:
185*01950c46SEmmanuel Vadot        clocks:
186*01950c46SEmmanuel Vadot          items:
187*01950c46SEmmanuel Vadot            - description: External reference clock (26 MHz)
188*01950c46SEmmanuel Vadot            - description: CPUCL1 switch clock (from CMU_TOP)
189*01950c46SEmmanuel Vadot            - description: CPUCL1 debug clock (from CMU_TOP)
190*01950c46SEmmanuel Vadot
191*01950c46SEmmanuel Vadot        clock-names:
192*01950c46SEmmanuel Vadot          items:
193*01950c46SEmmanuel Vadot            - const: oscclk
194*01950c46SEmmanuel Vadot            - const: dout_cpucl1_switch
195*01950c46SEmmanuel Vadot            - const: dout_cpucl1_dbg
196*01950c46SEmmanuel Vadot
197*01950c46SEmmanuel Vadot  - if:
198*01950c46SEmmanuel Vadot      properties:
199*01950c46SEmmanuel Vadot        compatible:
200*01950c46SEmmanuel Vadot          contains:
2018cc087a1SEmmanuel Vadot            const: samsung,exynos850-cmu-dpu
2028cc087a1SEmmanuel Vadot
2038cc087a1SEmmanuel Vadot    then:
2048cc087a1SEmmanuel Vadot      properties:
2058cc087a1SEmmanuel Vadot        clocks:
2068cc087a1SEmmanuel Vadot          items:
2078cc087a1SEmmanuel Vadot            - description: External reference clock (26 MHz)
2088cc087a1SEmmanuel Vadot            - description: DPU clock (from CMU_TOP)
2098cc087a1SEmmanuel Vadot
2108cc087a1SEmmanuel Vadot        clock-names:
2118cc087a1SEmmanuel Vadot          items:
2128cc087a1SEmmanuel Vadot            - const: oscclk
2138cc087a1SEmmanuel Vadot            - const: dout_dpu
2148cc087a1SEmmanuel Vadot
2158cc087a1SEmmanuel Vadot  - if:
2168cc087a1SEmmanuel Vadot      properties:
2178cc087a1SEmmanuel Vadot        compatible:
2188cc087a1SEmmanuel Vadot          contains:
219fac71e4eSEmmanuel Vadot            const: samsung,exynos850-cmu-g3d
220fac71e4eSEmmanuel Vadot
221fac71e4eSEmmanuel Vadot    then:
222fac71e4eSEmmanuel Vadot      properties:
223fac71e4eSEmmanuel Vadot        clocks:
224fac71e4eSEmmanuel Vadot          items:
225fac71e4eSEmmanuel Vadot            - description: External reference clock (26 MHz)
226fac71e4eSEmmanuel Vadot            - description: G3D clock (from CMU_TOP)
227fac71e4eSEmmanuel Vadot
228fac71e4eSEmmanuel Vadot        clock-names:
229fac71e4eSEmmanuel Vadot          items:
230fac71e4eSEmmanuel Vadot            - const: oscclk
231fac71e4eSEmmanuel Vadot            - const: dout_g3d_switch
232fac71e4eSEmmanuel Vadot
233fac71e4eSEmmanuel Vadot  - if:
234fac71e4eSEmmanuel Vadot      properties:
235fac71e4eSEmmanuel Vadot        compatible:
236fac71e4eSEmmanuel Vadot          contains:
2378cc087a1SEmmanuel Vadot            const: samsung,exynos850-cmu-hsi
2388cc087a1SEmmanuel Vadot
2398cc087a1SEmmanuel Vadot    then:
2408cc087a1SEmmanuel Vadot      properties:
2418cc087a1SEmmanuel Vadot        clocks:
2428cc087a1SEmmanuel Vadot          items:
2438cc087a1SEmmanuel Vadot            - description: External reference clock (26 MHz)
2448cc087a1SEmmanuel Vadot            - description: External RTC clock (32768 Hz)
2458cc087a1SEmmanuel Vadot            - description: CMU_HSI bus clock (from CMU_TOP)
2468cc087a1SEmmanuel Vadot            - description: SD card clock (from CMU_TOP)
247fac71e4eSEmmanuel Vadot            - description: USB 2.0 DRD clock (from CMU_TOP)
2488cc087a1SEmmanuel Vadot
2498cc087a1SEmmanuel Vadot        clock-names:
2508cc087a1SEmmanuel Vadot          items:
2518cc087a1SEmmanuel Vadot            - const: oscclk
2528cc087a1SEmmanuel Vadot            - const: rtcclk
2538cc087a1SEmmanuel Vadot            - const: dout_hsi_bus
2548cc087a1SEmmanuel Vadot            - const: dout_hsi_mmc_card
2558cc087a1SEmmanuel Vadot            - const: dout_hsi_usb20drd
2568cc087a1SEmmanuel Vadot
2578cc087a1SEmmanuel Vadot  - if:
2588cc087a1SEmmanuel Vadot      properties:
2598cc087a1SEmmanuel Vadot        compatible:
2608cc087a1SEmmanuel Vadot          contains:
2617ef62cebSEmmanuel Vadot            const: samsung,exynos850-cmu-is
2627ef62cebSEmmanuel Vadot
2637ef62cebSEmmanuel Vadot    then:
2647ef62cebSEmmanuel Vadot      properties:
2657ef62cebSEmmanuel Vadot        clocks:
2667ef62cebSEmmanuel Vadot          items:
2677ef62cebSEmmanuel Vadot            - description: External reference clock (26 MHz)
2687ef62cebSEmmanuel Vadot            - description: CMU_IS bus clock (from CMU_TOP)
2697ef62cebSEmmanuel Vadot            - description: Image Texture Processing core clock (from CMU_TOP)
2707ef62cebSEmmanuel Vadot            - description: Visual Recognition Accelerator clock (from CMU_TOP)
2717ef62cebSEmmanuel Vadot            - description: Geometric Distortion Correction clock (from CMU_TOP)
2727ef62cebSEmmanuel Vadot
2737ef62cebSEmmanuel Vadot        clock-names:
2747ef62cebSEmmanuel Vadot          items:
2757ef62cebSEmmanuel Vadot            - const: oscclk
2767ef62cebSEmmanuel Vadot            - const: dout_is_bus
2777ef62cebSEmmanuel Vadot            - const: dout_is_itp
2787ef62cebSEmmanuel Vadot            - const: dout_is_vra
2797ef62cebSEmmanuel Vadot            - const: dout_is_gdc
2807ef62cebSEmmanuel Vadot
2817ef62cebSEmmanuel Vadot  - if:
2827ef62cebSEmmanuel Vadot      properties:
2837ef62cebSEmmanuel Vadot        compatible:
2847ef62cebSEmmanuel Vadot          contains:
2857ef62cebSEmmanuel Vadot            const: samsung,exynos850-cmu-mfcmscl
2867ef62cebSEmmanuel Vadot
2877ef62cebSEmmanuel Vadot    then:
2887ef62cebSEmmanuel Vadot      properties:
2897ef62cebSEmmanuel Vadot        clocks:
2907ef62cebSEmmanuel Vadot          items:
2917ef62cebSEmmanuel Vadot            - description: External reference clock (26 MHz)
2927ef62cebSEmmanuel Vadot            - description: Multi-Format Codec clock (from CMU_TOP)
2937ef62cebSEmmanuel Vadot            - description: Memory to Memory Scaler clock (from CMU_TOP)
2947ef62cebSEmmanuel Vadot            - description: Multi-Channel Scaler clock (from CMU_TOP)
2957ef62cebSEmmanuel Vadot            - description: JPEG codec clock (from CMU_TOP)
2967ef62cebSEmmanuel Vadot
2977ef62cebSEmmanuel Vadot        clock-names:
2987ef62cebSEmmanuel Vadot          items:
2997ef62cebSEmmanuel Vadot            - const: oscclk
3007ef62cebSEmmanuel Vadot            - const: dout_mfcmscl_mfc
3017ef62cebSEmmanuel Vadot            - const: dout_mfcmscl_m2m
3027ef62cebSEmmanuel Vadot            - const: dout_mfcmscl_mcsc
3037ef62cebSEmmanuel Vadot            - const: dout_mfcmscl_jpeg
3047ef62cebSEmmanuel Vadot
3057ef62cebSEmmanuel Vadot  - if:
3067ef62cebSEmmanuel Vadot      properties:
3077ef62cebSEmmanuel Vadot        compatible:
3087ef62cebSEmmanuel Vadot          contains:
3098cc087a1SEmmanuel Vadot            const: samsung,exynos850-cmu-peri
3108cc087a1SEmmanuel Vadot
3118cc087a1SEmmanuel Vadot    then:
3128cc087a1SEmmanuel Vadot      properties:
3138cc087a1SEmmanuel Vadot        clocks:
3148cc087a1SEmmanuel Vadot          items:
3158cc087a1SEmmanuel Vadot            - description: External reference clock (26 MHz)
3168cc087a1SEmmanuel Vadot            - description: CMU_PERI bus clock (from CMU_TOP)
3178cc087a1SEmmanuel Vadot            - description: UART clock (from CMU_TOP)
3188cc087a1SEmmanuel Vadot            - description: Parent clock for HSI2C and SPI (from CMU_TOP)
3198cc087a1SEmmanuel Vadot
3208cc087a1SEmmanuel Vadot        clock-names:
3218cc087a1SEmmanuel Vadot          items:
3228cc087a1SEmmanuel Vadot            - const: oscclk
3238cc087a1SEmmanuel Vadot            - const: dout_peri_bus
3248cc087a1SEmmanuel Vadot            - const: dout_peri_uart
3258cc087a1SEmmanuel Vadot            - const: dout_peri_ip
3268cc087a1SEmmanuel Vadot
3278cc087a1SEmmanuel Vadotrequired:
3288cc087a1SEmmanuel Vadot  - compatible
3298cc087a1SEmmanuel Vadot  - "#clock-cells"
3308cc087a1SEmmanuel Vadot  - clocks
3318cc087a1SEmmanuel Vadot  - clock-names
3328cc087a1SEmmanuel Vadot  - reg
3338cc087a1SEmmanuel Vadot
3348cc087a1SEmmanuel VadotadditionalProperties: false
3358cc087a1SEmmanuel Vadot
3368cc087a1SEmmanuel Vadotexamples:
3378cc087a1SEmmanuel Vadot  # Clock controller node for CMU_PERI
3388cc087a1SEmmanuel Vadot  - |
3398cc087a1SEmmanuel Vadot    #include <dt-bindings/clock/exynos850.h>
3408cc087a1SEmmanuel Vadot
3418cc087a1SEmmanuel Vadot    cmu_peri: clock-controller@10030000 {
3428cc087a1SEmmanuel Vadot        compatible = "samsung,exynos850-cmu-peri";
3438cc087a1SEmmanuel Vadot        reg = <0x10030000 0x8000>;
3448cc087a1SEmmanuel Vadot        #clock-cells = <1>;
3458cc087a1SEmmanuel Vadot
3468cc087a1SEmmanuel Vadot        clocks = <&oscclk>, <&cmu_top CLK_DOUT_PERI_BUS>,
3478cc087a1SEmmanuel Vadot                 <&cmu_top CLK_DOUT_PERI_UART>,
3488cc087a1SEmmanuel Vadot                 <&cmu_top CLK_DOUT_PERI_IP>;
3498cc087a1SEmmanuel Vadot        clock-names = "oscclk", "dout_peri_bus",
3508cc087a1SEmmanuel Vadot                      "dout_peri_uart", "dout_peri_ip";
3518cc087a1SEmmanuel Vadot    };
3528cc087a1SEmmanuel Vadot
3538cc087a1SEmmanuel Vadot...
354