15d6298f2SSam Protsenko# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 25d6298f2SSam Protsenko%YAML 1.2 35d6298f2SSam Protsenko--- 45d6298f2SSam Protsenko$id: http://devicetree.org/schemas/clock/samsung,exynos850-clock.yaml# 55d6298f2SSam Protsenko$schema: http://devicetree.org/meta-schemas/core.yaml# 65d6298f2SSam Protsenko 75d6298f2SSam Protsenkotitle: Samsung Exynos850 SoC clock controller 85d6298f2SSam Protsenko 95d6298f2SSam Protsenkomaintainers: 105d6298f2SSam Protsenko - Sam Protsenko <semen.protsenko@linaro.org> 115d6298f2SSam Protsenko - Chanwoo Choi <cw00.choi@samsung.com> 128a1e6bb3SKrzysztof Kozlowski - Krzysztof Kozlowski <krzk@kernel.org> 135d6298f2SSam Protsenko - Sylwester Nawrocki <s.nawrocki@samsung.com> 145d6298f2SSam Protsenko - Tomasz Figa <tomasz.figa@gmail.com> 155d6298f2SSam Protsenko 165d6298f2SSam Protsenkodescription: | 175d6298f2SSam Protsenko Exynos850 clock controller is comprised of several CMU units, generating 185d6298f2SSam Protsenko clocks for different domains. Those CMU units are modeled as separate device 195d6298f2SSam Protsenko tree nodes, and might depend on each other. Root clocks in that clock tree are 205d6298f2SSam Protsenko two external clocks:: OSCCLK (26 MHz) and RTCCLK (32768 Hz). Those external 215d6298f2SSam Protsenko clocks must be defined as fixed-rate clocks in dts. 225d6298f2SSam Protsenko 235d6298f2SSam Protsenko CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and 245d6298f2SSam Protsenko dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP. 255d6298f2SSam Protsenko 265d6298f2SSam Protsenko Each clock is assigned an identifier and client nodes can use this identifier 275d6298f2SSam Protsenko to specify the clock which they consume. All clocks available for usage 285d6298f2SSam Protsenko in clock consumer nodes are defined as preprocessor macros in 295d6298f2SSam Protsenko 'dt-bindings/clock/exynos850.h' header. 305d6298f2SSam Protsenko 315d6298f2SSam Protsenkoproperties: 325d6298f2SSam Protsenko compatible: 335d6298f2SSam Protsenko enum: 345d6298f2SSam Protsenko - samsung,exynos850-cmu-top 3516e0c247SSam Protsenko - samsung,exynos850-cmu-apm 3645bbf4d7SSam Protsenko - samsung,exynos850-cmu-aud 37c2afeb79SSam Protsenko - samsung,exynos850-cmu-cmgp 385d6298f2SSam Protsenko - samsung,exynos850-cmu-core 395d6298f2SSam Protsenko - samsung,exynos850-cmu-dpu 40521568cfSSam Protsenko - samsung,exynos850-cmu-g3d 415d6298f2SSam Protsenko - samsung,exynos850-cmu-hsi 42f20f35f4SSam Protsenko - samsung,exynos850-cmu-is 438f3fc0edSSam Protsenko - samsung,exynos850-cmu-mfcmscl 445d6298f2SSam Protsenko - samsung,exynos850-cmu-peri 455d6298f2SSam Protsenko 465d6298f2SSam Protsenko clocks: 475d6298f2SSam Protsenko minItems: 1 485d6298f2SSam Protsenko maxItems: 5 495d6298f2SSam Protsenko 505d6298f2SSam Protsenko clock-names: 515d6298f2SSam Protsenko minItems: 1 525d6298f2SSam Protsenko maxItems: 5 535d6298f2SSam Protsenko 545d6298f2SSam Protsenko "#clock-cells": 555d6298f2SSam Protsenko const: 1 565d6298f2SSam Protsenko 575d6298f2SSam Protsenko reg: 585d6298f2SSam Protsenko maxItems: 1 595d6298f2SSam Protsenko 605d6298f2SSam ProtsenkoallOf: 615d6298f2SSam Protsenko - if: 625d6298f2SSam Protsenko properties: 635d6298f2SSam Protsenko compatible: 645d6298f2SSam Protsenko contains: 655d6298f2SSam Protsenko const: samsung,exynos850-cmu-top 665d6298f2SSam Protsenko 675d6298f2SSam Protsenko then: 685d6298f2SSam Protsenko properties: 695d6298f2SSam Protsenko clocks: 705d6298f2SSam Protsenko items: 715d6298f2SSam Protsenko - description: External reference clock (26 MHz) 725d6298f2SSam Protsenko 735d6298f2SSam Protsenko clock-names: 745d6298f2SSam Protsenko items: 755d6298f2SSam Protsenko - const: oscclk 765d6298f2SSam Protsenko 775d6298f2SSam Protsenko - if: 785d6298f2SSam Protsenko properties: 795d6298f2SSam Protsenko compatible: 805d6298f2SSam Protsenko contains: 8116e0c247SSam Protsenko const: samsung,exynos850-cmu-apm 8216e0c247SSam Protsenko 8316e0c247SSam Protsenko then: 8416e0c247SSam Protsenko properties: 8516e0c247SSam Protsenko clocks: 8616e0c247SSam Protsenko items: 8716e0c247SSam Protsenko - description: External reference clock (26 MHz) 8816e0c247SSam Protsenko - description: CMU_APM bus clock (from CMU_TOP) 8916e0c247SSam Protsenko 9016e0c247SSam Protsenko clock-names: 9116e0c247SSam Protsenko items: 9216e0c247SSam Protsenko - const: oscclk 9316e0c247SSam Protsenko - const: dout_clkcmu_apm_bus 9416e0c247SSam Protsenko 9516e0c247SSam Protsenko - if: 9616e0c247SSam Protsenko properties: 9716e0c247SSam Protsenko compatible: 9816e0c247SSam Protsenko contains: 9945bbf4d7SSam Protsenko const: samsung,exynos850-cmu-aud 10045bbf4d7SSam Protsenko 10145bbf4d7SSam Protsenko then: 10245bbf4d7SSam Protsenko properties: 10345bbf4d7SSam Protsenko clocks: 10445bbf4d7SSam Protsenko items: 10545bbf4d7SSam Protsenko - description: External reference clock (26 MHz) 10645bbf4d7SSam Protsenko - description: AUD clock (from CMU_TOP) 10745bbf4d7SSam Protsenko 10845bbf4d7SSam Protsenko clock-names: 10945bbf4d7SSam Protsenko items: 11045bbf4d7SSam Protsenko - const: oscclk 11145bbf4d7SSam Protsenko - const: dout_aud 11245bbf4d7SSam Protsenko 11345bbf4d7SSam Protsenko - if: 11445bbf4d7SSam Protsenko properties: 11545bbf4d7SSam Protsenko compatible: 11645bbf4d7SSam Protsenko contains: 117c2afeb79SSam Protsenko const: samsung,exynos850-cmu-cmgp 118c2afeb79SSam Protsenko 119c2afeb79SSam Protsenko then: 120c2afeb79SSam Protsenko properties: 121c2afeb79SSam Protsenko clocks: 122c2afeb79SSam Protsenko items: 123c2afeb79SSam Protsenko - description: External reference clock (26 MHz) 124c2afeb79SSam Protsenko - description: CMU_CMGP bus clock (from CMU_APM) 125c2afeb79SSam Protsenko 126c2afeb79SSam Protsenko clock-names: 127c2afeb79SSam Protsenko items: 128c2afeb79SSam Protsenko - const: oscclk 129c2afeb79SSam Protsenko - const: gout_clkcmu_cmgp_bus 130c2afeb79SSam Protsenko 131c2afeb79SSam Protsenko - if: 132c2afeb79SSam Protsenko properties: 133c2afeb79SSam Protsenko compatible: 134c2afeb79SSam Protsenko contains: 1355d6298f2SSam Protsenko const: samsung,exynos850-cmu-core 1365d6298f2SSam Protsenko 1375d6298f2SSam Protsenko then: 1385d6298f2SSam Protsenko properties: 1395d6298f2SSam Protsenko clocks: 1405d6298f2SSam Protsenko items: 1415d6298f2SSam Protsenko - description: External reference clock (26 MHz) 1425d6298f2SSam Protsenko - description: CMU_CORE bus clock (from CMU_TOP) 1435d6298f2SSam Protsenko - description: CCI clock (from CMU_TOP) 1445d6298f2SSam Protsenko - description: eMMC clock (from CMU_TOP) 1455d6298f2SSam Protsenko - description: SSS clock (from CMU_TOP) 1465d6298f2SSam Protsenko 1475d6298f2SSam Protsenko clock-names: 1485d6298f2SSam Protsenko items: 1495d6298f2SSam Protsenko - const: oscclk 1505d6298f2SSam Protsenko - const: dout_core_bus 1515d6298f2SSam Protsenko - const: dout_core_cci 1525d6298f2SSam Protsenko - const: dout_core_mmc_embd 1535d6298f2SSam Protsenko - const: dout_core_sss 1545d6298f2SSam Protsenko 1555d6298f2SSam Protsenko - if: 1565d6298f2SSam Protsenko properties: 1575d6298f2SSam Protsenko compatible: 1585d6298f2SSam Protsenko contains: 1595d6298f2SSam Protsenko const: samsung,exynos850-cmu-dpu 1605d6298f2SSam Protsenko 1615d6298f2SSam Protsenko then: 1625d6298f2SSam Protsenko properties: 1635d6298f2SSam Protsenko clocks: 1645d6298f2SSam Protsenko items: 1655d6298f2SSam Protsenko - description: External reference clock (26 MHz) 1665d6298f2SSam Protsenko - description: DPU clock (from CMU_TOP) 1675d6298f2SSam Protsenko 1685d6298f2SSam Protsenko clock-names: 1695d6298f2SSam Protsenko items: 1705d6298f2SSam Protsenko - const: oscclk 1715d6298f2SSam Protsenko - const: dout_dpu 1725d6298f2SSam Protsenko 1735d6298f2SSam Protsenko - if: 1745d6298f2SSam Protsenko properties: 1755d6298f2SSam Protsenko compatible: 1765d6298f2SSam Protsenko contains: 177521568cfSSam Protsenko const: samsung,exynos850-cmu-g3d 178521568cfSSam Protsenko 179521568cfSSam Protsenko then: 180521568cfSSam Protsenko properties: 181521568cfSSam Protsenko clocks: 182521568cfSSam Protsenko items: 183521568cfSSam Protsenko - description: External reference clock (26 MHz) 184521568cfSSam Protsenko - description: G3D clock (from CMU_TOP) 185521568cfSSam Protsenko 186521568cfSSam Protsenko clock-names: 187521568cfSSam Protsenko items: 188521568cfSSam Protsenko - const: oscclk 189521568cfSSam Protsenko - const: dout_g3d_switch 190521568cfSSam Protsenko 191521568cfSSam Protsenko - if: 192521568cfSSam Protsenko properties: 193521568cfSSam Protsenko compatible: 194521568cfSSam Protsenko contains: 1955d6298f2SSam Protsenko const: samsung,exynos850-cmu-hsi 1965d6298f2SSam Protsenko 1975d6298f2SSam Protsenko then: 1985d6298f2SSam Protsenko properties: 1995d6298f2SSam Protsenko clocks: 2005d6298f2SSam Protsenko items: 2015d6298f2SSam Protsenko - description: External reference clock (26 MHz) 2025d6298f2SSam Protsenko - description: External RTC clock (32768 Hz) 2035d6298f2SSam Protsenko - description: CMU_HSI bus clock (from CMU_TOP) 2045d6298f2SSam Protsenko - description: SD card clock (from CMU_TOP) 205*32671977SRob Herring - description: USB 2.0 DRD clock (from CMU_TOP) 2065d6298f2SSam Protsenko 2075d6298f2SSam Protsenko clock-names: 2085d6298f2SSam Protsenko items: 2095d6298f2SSam Protsenko - const: oscclk 2105d6298f2SSam Protsenko - const: rtcclk 2115d6298f2SSam Protsenko - const: dout_hsi_bus 2125d6298f2SSam Protsenko - const: dout_hsi_mmc_card 2135d6298f2SSam Protsenko - const: dout_hsi_usb20drd 2145d6298f2SSam Protsenko 2155d6298f2SSam Protsenko - if: 2165d6298f2SSam Protsenko properties: 2175d6298f2SSam Protsenko compatible: 2185d6298f2SSam Protsenko contains: 219f20f35f4SSam Protsenko const: samsung,exynos850-cmu-is 220f20f35f4SSam Protsenko 221f20f35f4SSam Protsenko then: 222f20f35f4SSam Protsenko properties: 223f20f35f4SSam Protsenko clocks: 224f20f35f4SSam Protsenko items: 225f20f35f4SSam Protsenko - description: External reference clock (26 MHz) 226f20f35f4SSam Protsenko - description: CMU_IS bus clock (from CMU_TOP) 227f20f35f4SSam Protsenko - description: Image Texture Processing core clock (from CMU_TOP) 228f20f35f4SSam Protsenko - description: Visual Recognition Accelerator clock (from CMU_TOP) 229f20f35f4SSam Protsenko - description: Geometric Distortion Correction clock (from CMU_TOP) 230f20f35f4SSam Protsenko 231f20f35f4SSam Protsenko clock-names: 232f20f35f4SSam Protsenko items: 233f20f35f4SSam Protsenko - const: oscclk 234f20f35f4SSam Protsenko - const: dout_is_bus 235f20f35f4SSam Protsenko - const: dout_is_itp 236f20f35f4SSam Protsenko - const: dout_is_vra 237f20f35f4SSam Protsenko - const: dout_is_gdc 238f20f35f4SSam Protsenko 239f20f35f4SSam Protsenko - if: 240f20f35f4SSam Protsenko properties: 241f20f35f4SSam Protsenko compatible: 242f20f35f4SSam Protsenko contains: 2438f3fc0edSSam Protsenko const: samsung,exynos850-cmu-mfcmscl 2448f3fc0edSSam Protsenko 2458f3fc0edSSam Protsenko then: 2468f3fc0edSSam Protsenko properties: 2478f3fc0edSSam Protsenko clocks: 2488f3fc0edSSam Protsenko items: 2498f3fc0edSSam Protsenko - description: External reference clock (26 MHz) 2508f3fc0edSSam Protsenko - description: Multi-Format Codec clock (from CMU_TOP) 2518f3fc0edSSam Protsenko - description: Memory to Memory Scaler clock (from CMU_TOP) 2528f3fc0edSSam Protsenko - description: Multi-Channel Scaler clock (from CMU_TOP) 2538f3fc0edSSam Protsenko - description: JPEG codec clock (from CMU_TOP) 2548f3fc0edSSam Protsenko 2558f3fc0edSSam Protsenko clock-names: 2568f3fc0edSSam Protsenko items: 2578f3fc0edSSam Protsenko - const: oscclk 2588f3fc0edSSam Protsenko - const: dout_mfcmscl_mfc 2598f3fc0edSSam Protsenko - const: dout_mfcmscl_m2m 2608f3fc0edSSam Protsenko - const: dout_mfcmscl_mcsc 2618f3fc0edSSam Protsenko - const: dout_mfcmscl_jpeg 2628f3fc0edSSam Protsenko 2638f3fc0edSSam Protsenko - if: 2648f3fc0edSSam Protsenko properties: 2658f3fc0edSSam Protsenko compatible: 2668f3fc0edSSam Protsenko contains: 2675d6298f2SSam Protsenko const: samsung,exynos850-cmu-peri 2685d6298f2SSam Protsenko 2695d6298f2SSam Protsenko then: 2705d6298f2SSam Protsenko properties: 2715d6298f2SSam Protsenko clocks: 2725d6298f2SSam Protsenko items: 2735d6298f2SSam Protsenko - description: External reference clock (26 MHz) 2745d6298f2SSam Protsenko - description: CMU_PERI bus clock (from CMU_TOP) 2755d6298f2SSam Protsenko - description: UART clock (from CMU_TOP) 2765d6298f2SSam Protsenko - description: Parent clock for HSI2C and SPI (from CMU_TOP) 2775d6298f2SSam Protsenko 2785d6298f2SSam Protsenko clock-names: 2795d6298f2SSam Protsenko items: 2805d6298f2SSam Protsenko - const: oscclk 2815d6298f2SSam Protsenko - const: dout_peri_bus 2825d6298f2SSam Protsenko - const: dout_peri_uart 2835d6298f2SSam Protsenko - const: dout_peri_ip 2845d6298f2SSam Protsenko 2855d6298f2SSam Protsenkorequired: 2865d6298f2SSam Protsenko - compatible 2875d6298f2SSam Protsenko - "#clock-cells" 2885d6298f2SSam Protsenko - clocks 2895d6298f2SSam Protsenko - clock-names 2905d6298f2SSam Protsenko - reg 2915d6298f2SSam Protsenko 2925d6298f2SSam ProtsenkoadditionalProperties: false 2935d6298f2SSam Protsenko 2945d6298f2SSam Protsenkoexamples: 2955d6298f2SSam Protsenko # Clock controller node for CMU_PERI 2965d6298f2SSam Protsenko - | 2975d6298f2SSam Protsenko #include <dt-bindings/clock/exynos850.h> 2985d6298f2SSam Protsenko 2995d6298f2SSam Protsenko cmu_peri: clock-controller@10030000 { 3005d6298f2SSam Protsenko compatible = "samsung,exynos850-cmu-peri"; 3015d6298f2SSam Protsenko reg = <0x10030000 0x8000>; 3025d6298f2SSam Protsenko #clock-cells = <1>; 3035d6298f2SSam Protsenko 3045d6298f2SSam Protsenko clocks = <&oscclk>, <&cmu_top CLK_DOUT_PERI_BUS>, 3055d6298f2SSam Protsenko <&cmu_top CLK_DOUT_PERI_UART>, 3065d6298f2SSam Protsenko <&cmu_top CLK_DOUT_PERI_IP>; 3075d6298f2SSam Protsenko clock-names = "oscclk", "dout_peri_bus", 3085d6298f2SSam Protsenko "dout_peri_uart", "dout_peri_ip"; 3095d6298f2SSam Protsenko }; 3105d6298f2SSam Protsenko 3115d6298f2SSam Protsenko... 312