1*5d6298f2SSam Protsenko# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*5d6298f2SSam Protsenko%YAML 1.2 3*5d6298f2SSam Protsenko--- 4*5d6298f2SSam Protsenko$id: http://devicetree.org/schemas/clock/samsung,exynos850-clock.yaml# 5*5d6298f2SSam Protsenko$schema: http://devicetree.org/meta-schemas/core.yaml# 6*5d6298f2SSam Protsenko 7*5d6298f2SSam Protsenkotitle: Samsung Exynos850 SoC clock controller 8*5d6298f2SSam Protsenko 9*5d6298f2SSam Protsenkomaintainers: 10*5d6298f2SSam Protsenko - Sam Protsenko <semen.protsenko@linaro.org> 11*5d6298f2SSam Protsenko - Chanwoo Choi <cw00.choi@samsung.com> 12*5d6298f2SSam Protsenko - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 13*5d6298f2SSam Protsenko - Sylwester Nawrocki <s.nawrocki@samsung.com> 14*5d6298f2SSam Protsenko - Tomasz Figa <tomasz.figa@gmail.com> 15*5d6298f2SSam Protsenko 16*5d6298f2SSam Protsenkodescription: | 17*5d6298f2SSam Protsenko Exynos850 clock controller is comprised of several CMU units, generating 18*5d6298f2SSam Protsenko clocks for different domains. Those CMU units are modeled as separate device 19*5d6298f2SSam Protsenko tree nodes, and might depend on each other. Root clocks in that clock tree are 20*5d6298f2SSam Protsenko two external clocks:: OSCCLK (26 MHz) and RTCCLK (32768 Hz). Those external 21*5d6298f2SSam Protsenko clocks must be defined as fixed-rate clocks in dts. 22*5d6298f2SSam Protsenko 23*5d6298f2SSam Protsenko CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and 24*5d6298f2SSam Protsenko dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP. 25*5d6298f2SSam Protsenko 26*5d6298f2SSam Protsenko Each clock is assigned an identifier and client nodes can use this identifier 27*5d6298f2SSam Protsenko to specify the clock which they consume. All clocks available for usage 28*5d6298f2SSam Protsenko in clock consumer nodes are defined as preprocessor macros in 29*5d6298f2SSam Protsenko 'dt-bindings/clock/exynos850.h' header. 30*5d6298f2SSam Protsenko 31*5d6298f2SSam Protsenkoproperties: 32*5d6298f2SSam Protsenko compatible: 33*5d6298f2SSam Protsenko enum: 34*5d6298f2SSam Protsenko - samsung,exynos850-cmu-top 35*5d6298f2SSam Protsenko - samsung,exynos850-cmu-core 36*5d6298f2SSam Protsenko - samsung,exynos850-cmu-dpu 37*5d6298f2SSam Protsenko - samsung,exynos850-cmu-hsi 38*5d6298f2SSam Protsenko - samsung,exynos850-cmu-peri 39*5d6298f2SSam Protsenko 40*5d6298f2SSam Protsenko clocks: 41*5d6298f2SSam Protsenko minItems: 1 42*5d6298f2SSam Protsenko maxItems: 5 43*5d6298f2SSam Protsenko 44*5d6298f2SSam Protsenko clock-names: 45*5d6298f2SSam Protsenko minItems: 1 46*5d6298f2SSam Protsenko maxItems: 5 47*5d6298f2SSam Protsenko 48*5d6298f2SSam Protsenko "#clock-cells": 49*5d6298f2SSam Protsenko const: 1 50*5d6298f2SSam Protsenko 51*5d6298f2SSam Protsenko reg: 52*5d6298f2SSam Protsenko maxItems: 1 53*5d6298f2SSam Protsenko 54*5d6298f2SSam ProtsenkoallOf: 55*5d6298f2SSam Protsenko - if: 56*5d6298f2SSam Protsenko properties: 57*5d6298f2SSam Protsenko compatible: 58*5d6298f2SSam Protsenko contains: 59*5d6298f2SSam Protsenko const: samsung,exynos850-cmu-top 60*5d6298f2SSam Protsenko 61*5d6298f2SSam Protsenko then: 62*5d6298f2SSam Protsenko properties: 63*5d6298f2SSam Protsenko clocks: 64*5d6298f2SSam Protsenko items: 65*5d6298f2SSam Protsenko - description: External reference clock (26 MHz) 66*5d6298f2SSam Protsenko 67*5d6298f2SSam Protsenko clock-names: 68*5d6298f2SSam Protsenko items: 69*5d6298f2SSam Protsenko - const: oscclk 70*5d6298f2SSam Protsenko 71*5d6298f2SSam Protsenko - if: 72*5d6298f2SSam Protsenko properties: 73*5d6298f2SSam Protsenko compatible: 74*5d6298f2SSam Protsenko contains: 75*5d6298f2SSam Protsenko const: samsung,exynos850-cmu-core 76*5d6298f2SSam Protsenko 77*5d6298f2SSam Protsenko then: 78*5d6298f2SSam Protsenko properties: 79*5d6298f2SSam Protsenko clocks: 80*5d6298f2SSam Protsenko items: 81*5d6298f2SSam Protsenko - description: External reference clock (26 MHz) 82*5d6298f2SSam Protsenko - description: CMU_CORE bus clock (from CMU_TOP) 83*5d6298f2SSam Protsenko - description: CCI clock (from CMU_TOP) 84*5d6298f2SSam Protsenko - description: eMMC clock (from CMU_TOP) 85*5d6298f2SSam Protsenko - description: SSS clock (from CMU_TOP) 86*5d6298f2SSam Protsenko 87*5d6298f2SSam Protsenko clock-names: 88*5d6298f2SSam Protsenko items: 89*5d6298f2SSam Protsenko - const: oscclk 90*5d6298f2SSam Protsenko - const: dout_core_bus 91*5d6298f2SSam Protsenko - const: dout_core_cci 92*5d6298f2SSam Protsenko - const: dout_core_mmc_embd 93*5d6298f2SSam Protsenko - const: dout_core_sss 94*5d6298f2SSam Protsenko 95*5d6298f2SSam Protsenko - if: 96*5d6298f2SSam Protsenko properties: 97*5d6298f2SSam Protsenko compatible: 98*5d6298f2SSam Protsenko contains: 99*5d6298f2SSam Protsenko const: samsung,exynos850-cmu-dpu 100*5d6298f2SSam Protsenko 101*5d6298f2SSam Protsenko then: 102*5d6298f2SSam Protsenko properties: 103*5d6298f2SSam Protsenko clocks: 104*5d6298f2SSam Protsenko items: 105*5d6298f2SSam Protsenko - description: External reference clock (26 MHz) 106*5d6298f2SSam Protsenko - description: DPU clock (from CMU_TOP) 107*5d6298f2SSam Protsenko 108*5d6298f2SSam Protsenko clock-names: 109*5d6298f2SSam Protsenko items: 110*5d6298f2SSam Protsenko - const: oscclk 111*5d6298f2SSam Protsenko - const: dout_dpu 112*5d6298f2SSam Protsenko 113*5d6298f2SSam Protsenko - if: 114*5d6298f2SSam Protsenko properties: 115*5d6298f2SSam Protsenko compatible: 116*5d6298f2SSam Protsenko contains: 117*5d6298f2SSam Protsenko const: samsung,exynos850-cmu-hsi 118*5d6298f2SSam Protsenko 119*5d6298f2SSam Protsenko then: 120*5d6298f2SSam Protsenko properties: 121*5d6298f2SSam Protsenko clocks: 122*5d6298f2SSam Protsenko items: 123*5d6298f2SSam Protsenko - description: External reference clock (26 MHz) 124*5d6298f2SSam Protsenko - description: External RTC clock (32768 Hz) 125*5d6298f2SSam Protsenko - description: CMU_HSI bus clock (from CMU_TOP) 126*5d6298f2SSam Protsenko - description: SD card clock (from CMU_TOP) 127*5d6298f2SSam Protsenko - description: "USB 2.0 DRD clock (from CMU_TOP)" 128*5d6298f2SSam Protsenko 129*5d6298f2SSam Protsenko clock-names: 130*5d6298f2SSam Protsenko items: 131*5d6298f2SSam Protsenko - const: oscclk 132*5d6298f2SSam Protsenko - const: rtcclk 133*5d6298f2SSam Protsenko - const: dout_hsi_bus 134*5d6298f2SSam Protsenko - const: dout_hsi_mmc_card 135*5d6298f2SSam Protsenko - const: dout_hsi_usb20drd 136*5d6298f2SSam Protsenko 137*5d6298f2SSam Protsenko - if: 138*5d6298f2SSam Protsenko properties: 139*5d6298f2SSam Protsenko compatible: 140*5d6298f2SSam Protsenko contains: 141*5d6298f2SSam Protsenko const: samsung,exynos850-cmu-peri 142*5d6298f2SSam Protsenko 143*5d6298f2SSam Protsenko then: 144*5d6298f2SSam Protsenko properties: 145*5d6298f2SSam Protsenko clocks: 146*5d6298f2SSam Protsenko items: 147*5d6298f2SSam Protsenko - description: External reference clock (26 MHz) 148*5d6298f2SSam Protsenko - description: CMU_PERI bus clock (from CMU_TOP) 149*5d6298f2SSam Protsenko - description: UART clock (from CMU_TOP) 150*5d6298f2SSam Protsenko - description: Parent clock for HSI2C and SPI (from CMU_TOP) 151*5d6298f2SSam Protsenko 152*5d6298f2SSam Protsenko clock-names: 153*5d6298f2SSam Protsenko items: 154*5d6298f2SSam Protsenko - const: oscclk 155*5d6298f2SSam Protsenko - const: dout_peri_bus 156*5d6298f2SSam Protsenko - const: dout_peri_uart 157*5d6298f2SSam Protsenko - const: dout_peri_ip 158*5d6298f2SSam Protsenko 159*5d6298f2SSam Protsenkorequired: 160*5d6298f2SSam Protsenko - compatible 161*5d6298f2SSam Protsenko - "#clock-cells" 162*5d6298f2SSam Protsenko - clocks 163*5d6298f2SSam Protsenko - clock-names 164*5d6298f2SSam Protsenko - reg 165*5d6298f2SSam Protsenko 166*5d6298f2SSam ProtsenkoadditionalProperties: false 167*5d6298f2SSam Protsenko 168*5d6298f2SSam Protsenkoexamples: 169*5d6298f2SSam Protsenko # Clock controller node for CMU_PERI 170*5d6298f2SSam Protsenko - | 171*5d6298f2SSam Protsenko #include <dt-bindings/clock/exynos850.h> 172*5d6298f2SSam Protsenko 173*5d6298f2SSam Protsenko cmu_peri: clock-controller@10030000 { 174*5d6298f2SSam Protsenko compatible = "samsung,exynos850-cmu-peri"; 175*5d6298f2SSam Protsenko reg = <0x10030000 0x8000>; 176*5d6298f2SSam Protsenko #clock-cells = <1>; 177*5d6298f2SSam Protsenko 178*5d6298f2SSam Protsenko clocks = <&oscclk>, <&cmu_top CLK_DOUT_PERI_BUS>, 179*5d6298f2SSam Protsenko <&cmu_top CLK_DOUT_PERI_UART>, 180*5d6298f2SSam Protsenko <&cmu_top CLK_DOUT_PERI_IP>; 181*5d6298f2SSam Protsenko clock-names = "oscclk", "dout_peri_bus", 182*5d6298f2SSam Protsenko "dout_peri_uart", "dout_peri_ip"; 183*5d6298f2SSam Protsenko }; 184*5d6298f2SSam Protsenko 185*5d6298f2SSam Protsenko... 186