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