xref: /freebsd/sys/contrib/device-tree/Bindings/clock/samsung,exynos2200-cmu.yaml (revision 8ccc0d235c226d84112561d453c49904398d085c)
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