1*8ccc0d23SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*8ccc0d23SEmmanuel Vadot%YAML 1.2 3*8ccc0d23SEmmanuel Vadot--- 4*8ccc0d23SEmmanuel Vadot$id: http://devicetree.org/schemas/clock/samsung,exynos2200-cmu.yaml# 5*8ccc0d23SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8ccc0d23SEmmanuel Vadot 7*8ccc0d23SEmmanuel Vadottitle: Samsung Exynos2200 SoC clock controller 8*8ccc0d23SEmmanuel Vadot 9*8ccc0d23SEmmanuel Vadotmaintainers: 10*8ccc0d23SEmmanuel Vadot - Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com> 11*8ccc0d23SEmmanuel Vadot - Chanwoo Choi <cw00.choi@samsung.com> 12*8ccc0d23SEmmanuel Vadot - Krzysztof Kozlowski <krzk@kernel.org> 13*8ccc0d23SEmmanuel Vadot 14*8ccc0d23SEmmanuel Vadotdescription: | 15*8ccc0d23SEmmanuel Vadot Exynos2200 clock controller is comprised of several CMU units, generating 16*8ccc0d23SEmmanuel Vadot clocks for different domains. Those CMU units are modeled as separate device 17*8ccc0d23SEmmanuel Vadot tree nodes, and might depend on each other. The root clocks in that root tree 18*8ccc0d23SEmmanuel Vadot are two external clocks: XTCXO (76.8 MHz) and RTCCLK (32768 Hz). XTCXO must be 19*8ccc0d23SEmmanuel Vadot defined as a fixed-rate clock in dts, whereas RTCCLK originates from PMIC. 20*8ccc0d23SEmmanuel Vadot 21*8ccc0d23SEmmanuel Vadot CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and 22*8ccc0d23SEmmanuel Vadot dividers; all other clocks of function blocks (other CMUs) are usually 23*8ccc0d23SEmmanuel Vadot derived from CMU_TOP. 24*8ccc0d23SEmmanuel Vadot 25*8ccc0d23SEmmanuel Vadot Each clock is assigned an identifier and client nodes can use this identifier 26*8ccc0d23SEmmanuel Vadot to specify the clock which they consume. All clocks available for usage 27*8ccc0d23SEmmanuel Vadot in clock consumer nodes are defined as preprocessor macros in 28*8ccc0d23SEmmanuel Vadot 'include/dt-bindings/clock/samsung,exynos2200-cmu.h' header. 29*8ccc0d23SEmmanuel Vadot 30*8ccc0d23SEmmanuel Vadotproperties: 31*8ccc0d23SEmmanuel Vadot compatible: 32*8ccc0d23SEmmanuel Vadot enum: 33*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-alive 34*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-cmgp 35*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-hsi0 36*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-peric0 37*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-peric1 38*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-peric2 39*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-peris 40*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-top 41*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-ufs 42*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-vts 43*8ccc0d23SEmmanuel Vadot 44*8ccc0d23SEmmanuel Vadot clocks: 45*8ccc0d23SEmmanuel Vadot minItems: 1 46*8ccc0d23SEmmanuel Vadot maxItems: 6 47*8ccc0d23SEmmanuel Vadot 48*8ccc0d23SEmmanuel Vadot clock-names: 49*8ccc0d23SEmmanuel Vadot minItems: 1 50*8ccc0d23SEmmanuel Vadot maxItems: 6 51*8ccc0d23SEmmanuel Vadot 52*8ccc0d23SEmmanuel Vadot "#clock-cells": 53*8ccc0d23SEmmanuel Vadot const: 1 54*8ccc0d23SEmmanuel Vadot 55*8ccc0d23SEmmanuel Vadot reg: 56*8ccc0d23SEmmanuel Vadot maxItems: 1 57*8ccc0d23SEmmanuel Vadot 58*8ccc0d23SEmmanuel Vadotrequired: 59*8ccc0d23SEmmanuel Vadot - compatible 60*8ccc0d23SEmmanuel Vadot - clocks 61*8ccc0d23SEmmanuel Vadot - clock-names 62*8ccc0d23SEmmanuel Vadot - reg 63*8ccc0d23SEmmanuel Vadot - "#clock-cells" 64*8ccc0d23SEmmanuel Vadot 65*8ccc0d23SEmmanuel VadotallOf: 66*8ccc0d23SEmmanuel Vadot - if: 67*8ccc0d23SEmmanuel Vadot properties: 68*8ccc0d23SEmmanuel Vadot compatible: 69*8ccc0d23SEmmanuel Vadot contains: 70*8ccc0d23SEmmanuel Vadot const: samsung,exynos2200-cmu-alive 71*8ccc0d23SEmmanuel Vadot 72*8ccc0d23SEmmanuel Vadot then: 73*8ccc0d23SEmmanuel Vadot properties: 74*8ccc0d23SEmmanuel Vadot clocks: 75*8ccc0d23SEmmanuel Vadot items: 76*8ccc0d23SEmmanuel Vadot - description: External reference clock (76.8 MHz) 77*8ccc0d23SEmmanuel Vadot - description: CMU_ALIVE NOC clock (from CMU_TOP) 78*8ccc0d23SEmmanuel Vadot 79*8ccc0d23SEmmanuel Vadot clock-names: 80*8ccc0d23SEmmanuel Vadot items: 81*8ccc0d23SEmmanuel Vadot - const: oscclk 82*8ccc0d23SEmmanuel Vadot - const: noc 83*8ccc0d23SEmmanuel Vadot 84*8ccc0d23SEmmanuel Vadot - if: 85*8ccc0d23SEmmanuel Vadot properties: 86*8ccc0d23SEmmanuel Vadot compatible: 87*8ccc0d23SEmmanuel Vadot contains: 88*8ccc0d23SEmmanuel Vadot const: samsung,exynos2200-cmu-cmgp 89*8ccc0d23SEmmanuel Vadot 90*8ccc0d23SEmmanuel Vadot then: 91*8ccc0d23SEmmanuel Vadot properties: 92*8ccc0d23SEmmanuel Vadot clocks: 93*8ccc0d23SEmmanuel Vadot items: 94*8ccc0d23SEmmanuel Vadot - description: External reference clock (76.8 MHz) 95*8ccc0d23SEmmanuel Vadot - description: CMU_CMGP NOC clock (from CMU_TOP) 96*8ccc0d23SEmmanuel Vadot - description: CMU_CMGP PERI clock (from CMU_TOP) 97*8ccc0d23SEmmanuel Vadot 98*8ccc0d23SEmmanuel Vadot clock-names: 99*8ccc0d23SEmmanuel Vadot items: 100*8ccc0d23SEmmanuel Vadot - const: oscclk 101*8ccc0d23SEmmanuel Vadot - const: noc 102*8ccc0d23SEmmanuel Vadot - const: peri 103*8ccc0d23SEmmanuel Vadot 104*8ccc0d23SEmmanuel Vadot - if: 105*8ccc0d23SEmmanuel Vadot properties: 106*8ccc0d23SEmmanuel Vadot compatible: 107*8ccc0d23SEmmanuel Vadot contains: 108*8ccc0d23SEmmanuel Vadot const: samsung,exynos2200-cmu-hsi0 109*8ccc0d23SEmmanuel Vadot 110*8ccc0d23SEmmanuel Vadot then: 111*8ccc0d23SEmmanuel Vadot properties: 112*8ccc0d23SEmmanuel Vadot clocks: 113*8ccc0d23SEmmanuel Vadot items: 114*8ccc0d23SEmmanuel Vadot - description: External reference clock (76.8 MHz) 115*8ccc0d23SEmmanuel Vadot - description: External RTC clock (32768 Hz) 116*8ccc0d23SEmmanuel Vadot - description: CMU_HSI0 NOC clock (from CMU_TOP) 117*8ccc0d23SEmmanuel Vadot - description: CMU_HSI0 DPGTC clock (from CMU_TOP) 118*8ccc0d23SEmmanuel Vadot - description: CMU_HSI0 DPOSC clock (from CMU_TOP) 119*8ccc0d23SEmmanuel Vadot - description: CMU_HSI0 USB32DRD clock (from CMU_TOP) 120*8ccc0d23SEmmanuel Vadot 121*8ccc0d23SEmmanuel Vadot clock-names: 122*8ccc0d23SEmmanuel Vadot items: 123*8ccc0d23SEmmanuel Vadot - const: oscclk 124*8ccc0d23SEmmanuel Vadot - const: rtcclk 125*8ccc0d23SEmmanuel Vadot - const: noc 126*8ccc0d23SEmmanuel Vadot - const: dpgtc 127*8ccc0d23SEmmanuel Vadot - const: dposc 128*8ccc0d23SEmmanuel Vadot - const: usb 129*8ccc0d23SEmmanuel Vadot 130*8ccc0d23SEmmanuel Vadot - if: 131*8ccc0d23SEmmanuel Vadot properties: 132*8ccc0d23SEmmanuel Vadot compatible: 133*8ccc0d23SEmmanuel Vadot contains: 134*8ccc0d23SEmmanuel Vadot enum: 135*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-peric0 136*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-peric1 137*8ccc0d23SEmmanuel Vadot - samsung,exynos2200-cmu-peric2 138*8ccc0d23SEmmanuel Vadot 139*8ccc0d23SEmmanuel Vadot then: 140*8ccc0d23SEmmanuel Vadot properties: 141*8ccc0d23SEmmanuel Vadot clocks: 142*8ccc0d23SEmmanuel Vadot items: 143*8ccc0d23SEmmanuel Vadot - description: External reference clock (76.8 MHz) 144*8ccc0d23SEmmanuel Vadot - description: CMU_PERICn NOC clock (from CMU_TOP) 145*8ccc0d23SEmmanuel Vadot - description: CMU_PERICn IP0 clock (from CMU_TOP) 146*8ccc0d23SEmmanuel Vadot - description: CMU_PERICn IP1 clock (from CMU_TOP) 147*8ccc0d23SEmmanuel Vadot 148*8ccc0d23SEmmanuel Vadot clock-names: 149*8ccc0d23SEmmanuel Vadot items: 150*8ccc0d23SEmmanuel Vadot - const: oscclk 151*8ccc0d23SEmmanuel Vadot - const: noc 152*8ccc0d23SEmmanuel Vadot - const: ip0 153*8ccc0d23SEmmanuel Vadot - const: ip1 154*8ccc0d23SEmmanuel Vadot 155*8ccc0d23SEmmanuel Vadot - if: 156*8ccc0d23SEmmanuel Vadot properties: 157*8ccc0d23SEmmanuel Vadot compatible: 158*8ccc0d23SEmmanuel Vadot contains: 159*8ccc0d23SEmmanuel Vadot const: samsung,exynos2200-cmu-peris 160*8ccc0d23SEmmanuel Vadot 161*8ccc0d23SEmmanuel Vadot then: 162*8ccc0d23SEmmanuel Vadot properties: 163*8ccc0d23SEmmanuel Vadot clocks: 164*8ccc0d23SEmmanuel Vadot items: 165*8ccc0d23SEmmanuel Vadot - description: External reference clock (25.6 MHz) 166*8ccc0d23SEmmanuel Vadot - description: CMU_PERIS NOC clock (from CMU_TOP) 167*8ccc0d23SEmmanuel Vadot - description: CMU_PERIS GIC clock (from CMU_TOP) 168*8ccc0d23SEmmanuel Vadot 169*8ccc0d23SEmmanuel Vadot clock-names: 170*8ccc0d23SEmmanuel Vadot items: 171*8ccc0d23SEmmanuel Vadot - const: tcxo_div3 172*8ccc0d23SEmmanuel Vadot - const: noc 173*8ccc0d23SEmmanuel Vadot - const: gic 174*8ccc0d23SEmmanuel Vadot 175*8ccc0d23SEmmanuel Vadot - if: 176*8ccc0d23SEmmanuel Vadot properties: 177*8ccc0d23SEmmanuel Vadot compatible: 178*8ccc0d23SEmmanuel Vadot contains: 179*8ccc0d23SEmmanuel Vadot const: samsung,exynos2200-cmu-top 180*8ccc0d23SEmmanuel Vadot 181*8ccc0d23SEmmanuel Vadot then: 182*8ccc0d23SEmmanuel Vadot properties: 183*8ccc0d23SEmmanuel Vadot clocks: 184*8ccc0d23SEmmanuel Vadot items: 185*8ccc0d23SEmmanuel Vadot - description: External reference clock (76.8 MHz) 186*8ccc0d23SEmmanuel Vadot 187*8ccc0d23SEmmanuel Vadot clock-names: 188*8ccc0d23SEmmanuel Vadot items: 189*8ccc0d23SEmmanuel Vadot - const: oscclk 190*8ccc0d23SEmmanuel Vadot 191*8ccc0d23SEmmanuel Vadot - if: 192*8ccc0d23SEmmanuel Vadot properties: 193*8ccc0d23SEmmanuel Vadot compatible: 194*8ccc0d23SEmmanuel Vadot contains: 195*8ccc0d23SEmmanuel Vadot const: samsung,exynos2200-cmu-ufs 196*8ccc0d23SEmmanuel Vadot 197*8ccc0d23SEmmanuel Vadot then: 198*8ccc0d23SEmmanuel Vadot properties: 199*8ccc0d23SEmmanuel Vadot clocks: 200*8ccc0d23SEmmanuel Vadot items: 201*8ccc0d23SEmmanuel Vadot - description: External reference clock (76.8 MHz) 202*8ccc0d23SEmmanuel Vadot - description: CMU_UFS NOC clock (from CMU_TOP) 203*8ccc0d23SEmmanuel Vadot - description: CMU_UFS MMC clock (from CMU_TOP) 204*8ccc0d23SEmmanuel Vadot - description: CMU_UFS UFS clock (from CMU_TOP) 205*8ccc0d23SEmmanuel Vadot 206*8ccc0d23SEmmanuel Vadot clock-names: 207*8ccc0d23SEmmanuel Vadot items: 208*8ccc0d23SEmmanuel Vadot - const: oscclk 209*8ccc0d23SEmmanuel Vadot - const: noc 210*8ccc0d23SEmmanuel Vadot - const: mmc 211*8ccc0d23SEmmanuel Vadot - const: ufs 212*8ccc0d23SEmmanuel Vadot 213*8ccc0d23SEmmanuel Vadot - if: 214*8ccc0d23SEmmanuel Vadot properties: 215*8ccc0d23SEmmanuel Vadot compatible: 216*8ccc0d23SEmmanuel Vadot contains: 217*8ccc0d23SEmmanuel Vadot const: samsung,exynos2200-cmu-vts 218*8ccc0d23SEmmanuel Vadot 219*8ccc0d23SEmmanuel Vadot then: 220*8ccc0d23SEmmanuel Vadot properties: 221*8ccc0d23SEmmanuel Vadot clocks: 222*8ccc0d23SEmmanuel Vadot items: 223*8ccc0d23SEmmanuel Vadot - description: External reference clock (76.8 MHz) 224*8ccc0d23SEmmanuel Vadot - description: CMU_VTS DMIC clock (from CMU_TOP) 225*8ccc0d23SEmmanuel Vadot 226*8ccc0d23SEmmanuel Vadot clock-names: 227*8ccc0d23SEmmanuel Vadot items: 228*8ccc0d23SEmmanuel Vadot - const: oscclk 229*8ccc0d23SEmmanuel Vadot - const: dmic 230*8ccc0d23SEmmanuel Vadot 231*8ccc0d23SEmmanuel VadotadditionalProperties: false 232*8ccc0d23SEmmanuel Vadot 233*8ccc0d23SEmmanuel Vadotexamples: 234*8ccc0d23SEmmanuel Vadot - | 235*8ccc0d23SEmmanuel Vadot #include <dt-bindings/clock/samsung,exynos2200-cmu.h> 236*8ccc0d23SEmmanuel Vadot 237*8ccc0d23SEmmanuel Vadot cmu_vts: clock-controller@15300000 { 238*8ccc0d23SEmmanuel Vadot compatible = "samsung,exynos2200-cmu-vts"; 239*8ccc0d23SEmmanuel Vadot reg = <0x15300000 0x8000>; 240*8ccc0d23SEmmanuel Vadot #clock-cells = <1>; 241*8ccc0d23SEmmanuel Vadot 242*8ccc0d23SEmmanuel Vadot clocks = <&oscclk>, 243*8ccc0d23SEmmanuel Vadot <&cmu_top CLK_DOUT_CMU_VTS_DMIC>; 244*8ccc0d23SEmmanuel Vadot clock-names = "oscclk", "dmic"; 245*8ccc0d23SEmmanuel Vadot }; 246*8ccc0d23SEmmanuel Vadot 247*8ccc0d23SEmmanuel Vadot... 248