1*b2d2a78aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*b2d2a78aSEmmanuel Vadot%YAML 1.2 3*b2d2a78aSEmmanuel Vadot--- 4*b2d2a78aSEmmanuel Vadot$id: http://devicetree.org/schemas/clock/samsung,exynosautov920-clock.yaml# 5*b2d2a78aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*b2d2a78aSEmmanuel Vadot 7*b2d2a78aSEmmanuel Vadottitle: Samsung ExynosAuto v920 SoC clock controller 8*b2d2a78aSEmmanuel Vadot 9*b2d2a78aSEmmanuel Vadotmaintainers: 10*b2d2a78aSEmmanuel Vadot - Sunyeal Hong <sunyeal.hong@samsung.com> 11*b2d2a78aSEmmanuel Vadot - Chanwoo Choi <cw00.choi@samsung.com> 12*b2d2a78aSEmmanuel Vadot - Krzysztof Kozlowski <krzk@kernel.org> 13*b2d2a78aSEmmanuel Vadot - Sylwester Nawrocki <s.nawrocki@samsung.com> 14*b2d2a78aSEmmanuel Vadot 15*b2d2a78aSEmmanuel Vadotdescription: | 16*b2d2a78aSEmmanuel Vadot ExynosAuto v920 clock controller is comprised of several CMU units, generating 17*b2d2a78aSEmmanuel Vadot clocks for different domains. Those CMU units are modeled as separate device 18*b2d2a78aSEmmanuel Vadot tree nodes, and might depend on each other. Root clocks in that clock tree are 19*b2d2a78aSEmmanuel Vadot two external clocks:: OSCCLK/XTCXO (38.4 MHz) and RTCCLK/XrtcXTI (32768 Hz). 20*b2d2a78aSEmmanuel Vadot The external OSCCLK must be defined as fixed-rate clock in dts. 21*b2d2a78aSEmmanuel Vadot 22*b2d2a78aSEmmanuel Vadot CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and 23*b2d2a78aSEmmanuel Vadot dividers; all other clocks of function blocks (other CMUs) are usually 24*b2d2a78aSEmmanuel Vadot derived from CMU_TOP. 25*b2d2a78aSEmmanuel Vadot 26*b2d2a78aSEmmanuel Vadot Each clock is assigned an identifier and client nodes can use this identifier 27*b2d2a78aSEmmanuel Vadot to specify the clock which they consume. All clocks available for usage 28*b2d2a78aSEmmanuel Vadot in clock consumer nodes are defined as preprocessor macros in 29*b2d2a78aSEmmanuel Vadot 'include/dt-bindings/clock/samsung,exynosautov920.h' header. 30*b2d2a78aSEmmanuel Vadot 31*b2d2a78aSEmmanuel Vadotproperties: 32*b2d2a78aSEmmanuel Vadot compatible: 33*b2d2a78aSEmmanuel Vadot enum: 34*b2d2a78aSEmmanuel Vadot - samsung,exynosautov920-cmu-top 35*b2d2a78aSEmmanuel Vadot - samsung,exynosautov920-cmu-peric0 36*b2d2a78aSEmmanuel Vadot - samsung,exynosautov920-cmu-peric1 37*b2d2a78aSEmmanuel Vadot - samsung,exynosautov920-cmu-misc 38*b2d2a78aSEmmanuel Vadot - samsung,exynosautov920-cmu-hsi0 39*b2d2a78aSEmmanuel Vadot - samsung,exynosautov920-cmu-hsi1 40*b2d2a78aSEmmanuel Vadot 41*b2d2a78aSEmmanuel Vadot clocks: 42*b2d2a78aSEmmanuel Vadot minItems: 1 43*b2d2a78aSEmmanuel Vadot maxItems: 4 44*b2d2a78aSEmmanuel Vadot 45*b2d2a78aSEmmanuel Vadot clock-names: 46*b2d2a78aSEmmanuel Vadot minItems: 1 47*b2d2a78aSEmmanuel Vadot maxItems: 4 48*b2d2a78aSEmmanuel Vadot 49*b2d2a78aSEmmanuel Vadot "#clock-cells": 50*b2d2a78aSEmmanuel Vadot const: 1 51*b2d2a78aSEmmanuel Vadot 52*b2d2a78aSEmmanuel Vadot reg: 53*b2d2a78aSEmmanuel Vadot maxItems: 1 54*b2d2a78aSEmmanuel Vadot 55*b2d2a78aSEmmanuel VadotallOf: 56*b2d2a78aSEmmanuel Vadot - if: 57*b2d2a78aSEmmanuel Vadot properties: 58*b2d2a78aSEmmanuel Vadot compatible: 59*b2d2a78aSEmmanuel Vadot contains: 60*b2d2a78aSEmmanuel Vadot const: samsung,exynosautov920-cmu-top 61*b2d2a78aSEmmanuel Vadot 62*b2d2a78aSEmmanuel Vadot then: 63*b2d2a78aSEmmanuel Vadot properties: 64*b2d2a78aSEmmanuel Vadot clocks: 65*b2d2a78aSEmmanuel Vadot items: 66*b2d2a78aSEmmanuel Vadot - description: External reference clock (38.4 MHz) 67*b2d2a78aSEmmanuel Vadot 68*b2d2a78aSEmmanuel Vadot clock-names: 69*b2d2a78aSEmmanuel Vadot items: 70*b2d2a78aSEmmanuel Vadot - const: oscclk 71*b2d2a78aSEmmanuel Vadot 72*b2d2a78aSEmmanuel Vadot - if: 73*b2d2a78aSEmmanuel Vadot properties: 74*b2d2a78aSEmmanuel Vadot compatible: 75*b2d2a78aSEmmanuel Vadot contains: 76*b2d2a78aSEmmanuel Vadot enum: 77*b2d2a78aSEmmanuel Vadot - samsung,exynosautov920-cmu-peric0 78*b2d2a78aSEmmanuel Vadot - samsung,exynosautov920-cmu-peric1 79*b2d2a78aSEmmanuel Vadot 80*b2d2a78aSEmmanuel Vadot then: 81*b2d2a78aSEmmanuel Vadot properties: 82*b2d2a78aSEmmanuel Vadot clocks: 83*b2d2a78aSEmmanuel Vadot items: 84*b2d2a78aSEmmanuel Vadot - description: External reference clock (38.4 MHz) 85*b2d2a78aSEmmanuel Vadot - description: CMU_PERICn NOC clock (from CMU_TOP) 86*b2d2a78aSEmmanuel Vadot - description: CMU_PERICn IP clock (from CMU_TOP) 87*b2d2a78aSEmmanuel Vadot 88*b2d2a78aSEmmanuel Vadot clock-names: 89*b2d2a78aSEmmanuel Vadot items: 90*b2d2a78aSEmmanuel Vadot - const: oscclk 91*b2d2a78aSEmmanuel Vadot - const: noc 92*b2d2a78aSEmmanuel Vadot - const: ip 93*b2d2a78aSEmmanuel Vadot 94*b2d2a78aSEmmanuel Vadot - if: 95*b2d2a78aSEmmanuel Vadot properties: 96*b2d2a78aSEmmanuel Vadot compatible: 97*b2d2a78aSEmmanuel Vadot enum: 98*b2d2a78aSEmmanuel Vadot - samsung,exynosautov920-cmu-misc 99*b2d2a78aSEmmanuel Vadot - samsung,exynosautov920-cmu-hsi0 100*b2d2a78aSEmmanuel Vadot 101*b2d2a78aSEmmanuel Vadot then: 102*b2d2a78aSEmmanuel Vadot properties: 103*b2d2a78aSEmmanuel Vadot clocks: 104*b2d2a78aSEmmanuel Vadot items: 105*b2d2a78aSEmmanuel Vadot - description: External reference clock (38.4 MHz) 106*b2d2a78aSEmmanuel Vadot - description: CMU_MISC/CMU_HSI0 NOC clock (from CMU_TOP) 107*b2d2a78aSEmmanuel Vadot 108*b2d2a78aSEmmanuel Vadot clock-names: 109*b2d2a78aSEmmanuel Vadot items: 110*b2d2a78aSEmmanuel Vadot - const: oscclk 111*b2d2a78aSEmmanuel Vadot - const: noc 112*b2d2a78aSEmmanuel Vadot 113*b2d2a78aSEmmanuel Vadot - if: 114*b2d2a78aSEmmanuel Vadot properties: 115*b2d2a78aSEmmanuel Vadot compatible: 116*b2d2a78aSEmmanuel Vadot contains: 117*b2d2a78aSEmmanuel Vadot const: samsung,exynosautov920-cmu-hsi1 118*b2d2a78aSEmmanuel Vadot 119*b2d2a78aSEmmanuel Vadot then: 120*b2d2a78aSEmmanuel Vadot properties: 121*b2d2a78aSEmmanuel Vadot clocks: 122*b2d2a78aSEmmanuel Vadot items: 123*b2d2a78aSEmmanuel Vadot - description: External reference clock (38.4 MHz) 124*b2d2a78aSEmmanuel Vadot - description: CMU_HSI1 NOC clock (from CMU_TOP) 125*b2d2a78aSEmmanuel Vadot - description: CMU_HSI1 USBDRD clock (from CMU_TOP) 126*b2d2a78aSEmmanuel Vadot - description: CMU_HSI1 MMC_CARD clock (from CMU_TOP) 127*b2d2a78aSEmmanuel Vadot 128*b2d2a78aSEmmanuel Vadot clock-names: 129*b2d2a78aSEmmanuel Vadot items: 130*b2d2a78aSEmmanuel Vadot - const: oscclk 131*b2d2a78aSEmmanuel Vadot - const: noc 132*b2d2a78aSEmmanuel Vadot - const: usbdrd 133*b2d2a78aSEmmanuel Vadot - const: mmc_card 134*b2d2a78aSEmmanuel Vadot 135*b2d2a78aSEmmanuel Vadotrequired: 136*b2d2a78aSEmmanuel Vadot - compatible 137*b2d2a78aSEmmanuel Vadot - "#clock-cells" 138*b2d2a78aSEmmanuel Vadot - clocks 139*b2d2a78aSEmmanuel Vadot - clock-names 140*b2d2a78aSEmmanuel Vadot - reg 141*b2d2a78aSEmmanuel Vadot 142*b2d2a78aSEmmanuel VadotadditionalProperties: false 143*b2d2a78aSEmmanuel Vadot 144*b2d2a78aSEmmanuel Vadotexamples: 145*b2d2a78aSEmmanuel Vadot # Clock controller node for CMU_PERIC0 146*b2d2a78aSEmmanuel Vadot - | 147*b2d2a78aSEmmanuel Vadot #include <dt-bindings/clock/samsung,exynosautov920.h> 148*b2d2a78aSEmmanuel Vadot 149*b2d2a78aSEmmanuel Vadot cmu_peric0: clock-controller@10800000 { 150*b2d2a78aSEmmanuel Vadot compatible = "samsung,exynosautov920-cmu-peric0"; 151*b2d2a78aSEmmanuel Vadot reg = <0x10800000 0x8000>; 152*b2d2a78aSEmmanuel Vadot #clock-cells = <1>; 153*b2d2a78aSEmmanuel Vadot 154*b2d2a78aSEmmanuel Vadot clocks = <&xtcxo>, 155*b2d2a78aSEmmanuel Vadot <&cmu_top DOUT_CLKCMU_PERIC0_NOC>, 156*b2d2a78aSEmmanuel Vadot <&cmu_top DOUT_CLKCMU_PERIC0_IP>; 157*b2d2a78aSEmmanuel Vadot clock-names = "oscclk", 158*b2d2a78aSEmmanuel Vadot "noc", 159*b2d2a78aSEmmanuel Vadot "ip"; 160*b2d2a78aSEmmanuel Vadot }; 161*b2d2a78aSEmmanuel Vadot 162*b2d2a78aSEmmanuel Vadot... 163