xref: /freebsd/sys/contrib/device-tree/Bindings/clock/samsung,exynos8895-clock.yaml (revision 5f62a964e9f8abc6a05d8338273fadd154f0a206)
1*5f62a964SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*5f62a964SEmmanuel Vadot%YAML 1.2
3*5f62a964SEmmanuel Vadot---
4*5f62a964SEmmanuel Vadot$id: http://devicetree.org/schemas/clock/samsung,exynos8895-clock.yaml#
5*5f62a964SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5f62a964SEmmanuel Vadot
7*5f62a964SEmmanuel Vadottitle: Samsung Exynos8895 SoC clock controller
8*5f62a964SEmmanuel Vadot
9*5f62a964SEmmanuel Vadotmaintainers:
10*5f62a964SEmmanuel Vadot  - Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
11*5f62a964SEmmanuel Vadot  - Chanwoo Choi <cw00.choi@samsung.com>
12*5f62a964SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
13*5f62a964SEmmanuel Vadot
14*5f62a964SEmmanuel Vadotdescription: |
15*5f62a964SEmmanuel Vadot  Exynos8895 clock controller is comprised of several CMU units, generating
16*5f62a964SEmmanuel Vadot  clocks for different domains. Those CMU units are modeled as separate device
17*5f62a964SEmmanuel Vadot  tree nodes, and might depend on each other. The root clock in that root tree
18*5f62a964SEmmanuel Vadot  is an external clock: OSCCLK (26 MHz). This external clock must be defined
19*5f62a964SEmmanuel Vadot  as a fixed-rate clock in dts.
20*5f62a964SEmmanuel Vadot
21*5f62a964SEmmanuel Vadot  CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
22*5f62a964SEmmanuel Vadot  dividers; all other clocks of function blocks (other CMUs) are usually
23*5f62a964SEmmanuel Vadot  derived from CMU_TOP.
24*5f62a964SEmmanuel Vadot
25*5f62a964SEmmanuel Vadot  Each clock is assigned an identifier and client nodes can use this identifier
26*5f62a964SEmmanuel Vadot  to specify the clock which they consume. All clocks available for usage
27*5f62a964SEmmanuel Vadot  in clock consumer nodes are defined as preprocessor macros in
28*5f62a964SEmmanuel Vadot  'include/dt-bindings/clock/samsung,exynos8895.h' header.
29*5f62a964SEmmanuel Vadot
30*5f62a964SEmmanuel Vadotproperties:
31*5f62a964SEmmanuel Vadot  compatible:
32*5f62a964SEmmanuel Vadot    enum:
33*5f62a964SEmmanuel Vadot      - samsung,exynos8895-cmu-fsys0
34*5f62a964SEmmanuel Vadot      - samsung,exynos8895-cmu-fsys1
35*5f62a964SEmmanuel Vadot      - samsung,exynos8895-cmu-peric0
36*5f62a964SEmmanuel Vadot      - samsung,exynos8895-cmu-peric1
37*5f62a964SEmmanuel Vadot      - samsung,exynos8895-cmu-peris
38*5f62a964SEmmanuel Vadot      - samsung,exynos8895-cmu-top
39*5f62a964SEmmanuel Vadot
40*5f62a964SEmmanuel Vadot  clocks:
41*5f62a964SEmmanuel Vadot    minItems: 1
42*5f62a964SEmmanuel Vadot    maxItems: 16
43*5f62a964SEmmanuel Vadot
44*5f62a964SEmmanuel Vadot  clock-names:
45*5f62a964SEmmanuel Vadot    minItems: 1
46*5f62a964SEmmanuel Vadot    maxItems: 16
47*5f62a964SEmmanuel Vadot
48*5f62a964SEmmanuel Vadot  "#clock-cells":
49*5f62a964SEmmanuel Vadot    const: 1
50*5f62a964SEmmanuel Vadot
51*5f62a964SEmmanuel Vadot  reg:
52*5f62a964SEmmanuel Vadot    maxItems: 1
53*5f62a964SEmmanuel Vadot
54*5f62a964SEmmanuel Vadotrequired:
55*5f62a964SEmmanuel Vadot  - compatible
56*5f62a964SEmmanuel Vadot  - clocks
57*5f62a964SEmmanuel Vadot  - clock-names
58*5f62a964SEmmanuel Vadot  - reg
59*5f62a964SEmmanuel Vadot  - "#clock-cells"
60*5f62a964SEmmanuel Vadot
61*5f62a964SEmmanuel VadotallOf:
62*5f62a964SEmmanuel Vadot  - if:
63*5f62a964SEmmanuel Vadot      properties:
64*5f62a964SEmmanuel Vadot        compatible:
65*5f62a964SEmmanuel Vadot          contains:
66*5f62a964SEmmanuel Vadot            const: samsung,exynos8895-cmu-fsys0
67*5f62a964SEmmanuel Vadot
68*5f62a964SEmmanuel Vadot    then:
69*5f62a964SEmmanuel Vadot      properties:
70*5f62a964SEmmanuel Vadot        clocks:
71*5f62a964SEmmanuel Vadot          items:
72*5f62a964SEmmanuel Vadot            - description: External reference clock (26 MHz)
73*5f62a964SEmmanuel Vadot            - description: CMU_FSYS0 BUS clock (from CMU_TOP)
74*5f62a964SEmmanuel Vadot            - description: CMU_FSYS0 DPGTC clock (from CMU_TOP)
75*5f62a964SEmmanuel Vadot            - description: CMU_FSYS0 MMC_EMBD clock (from CMU_TOP)
76*5f62a964SEmmanuel Vadot            - description: CMU_FSYS0 UFS_EMBD clock (from CMU_TOP)
77*5f62a964SEmmanuel Vadot            - description: CMU_FSYS0 USBDRD30 clock (from CMU_TOP)
78*5f62a964SEmmanuel Vadot
79*5f62a964SEmmanuel Vadot        clock-names:
80*5f62a964SEmmanuel Vadot          items:
81*5f62a964SEmmanuel Vadot            - const: oscclk
82*5f62a964SEmmanuel Vadot            - const: bus
83*5f62a964SEmmanuel Vadot            - const: dpgtc
84*5f62a964SEmmanuel Vadot            - const: mmc
85*5f62a964SEmmanuel Vadot            - const: ufs
86*5f62a964SEmmanuel Vadot            - const: usbdrd30
87*5f62a964SEmmanuel Vadot
88*5f62a964SEmmanuel Vadot  - if:
89*5f62a964SEmmanuel Vadot      properties:
90*5f62a964SEmmanuel Vadot        compatible:
91*5f62a964SEmmanuel Vadot          contains:
92*5f62a964SEmmanuel Vadot            const: samsung,exynos8895-cmu-fsys1
93*5f62a964SEmmanuel Vadot
94*5f62a964SEmmanuel Vadot    then:
95*5f62a964SEmmanuel Vadot      properties:
96*5f62a964SEmmanuel Vadot        clocks:
97*5f62a964SEmmanuel Vadot          items:
98*5f62a964SEmmanuel Vadot            - description: External reference clock (26 MHz)
99*5f62a964SEmmanuel Vadot            - description: CMU_FSYS1 BUS clock (from CMU_TOP)
100*5f62a964SEmmanuel Vadot            - description: CMU_FSYS1 PCIE clock (from CMU_TOP)
101*5f62a964SEmmanuel Vadot            - description: CMU_FSYS1 UFS_CARD clock (from CMU_TOP)
102*5f62a964SEmmanuel Vadot            - description: CMU_FSYS1 MMC_CARD clock (from CMU_TOP)
103*5f62a964SEmmanuel Vadot
104*5f62a964SEmmanuel Vadot        clock-names:
105*5f62a964SEmmanuel Vadot          items:
106*5f62a964SEmmanuel Vadot            - const: oscclk
107*5f62a964SEmmanuel Vadot            - const: bus
108*5f62a964SEmmanuel Vadot            - const: pcie
109*5f62a964SEmmanuel Vadot            - const: ufs
110*5f62a964SEmmanuel Vadot            - const: mmc
111*5f62a964SEmmanuel Vadot
112*5f62a964SEmmanuel Vadot  - if:
113*5f62a964SEmmanuel Vadot      properties:
114*5f62a964SEmmanuel Vadot        compatible:
115*5f62a964SEmmanuel Vadot          contains:
116*5f62a964SEmmanuel Vadot            const: samsung,exynos8895-cmu-peric0
117*5f62a964SEmmanuel Vadot
118*5f62a964SEmmanuel Vadot    then:
119*5f62a964SEmmanuel Vadot      properties:
120*5f62a964SEmmanuel Vadot        clocks:
121*5f62a964SEmmanuel Vadot          items:
122*5f62a964SEmmanuel Vadot            - description: External reference clock (26 MHz)
123*5f62a964SEmmanuel Vadot            - description: CMU_PERIC0 BUS clock (from CMU_TOP)
124*5f62a964SEmmanuel Vadot            - description: CMU_PERIC0 UART_DBG clock (from CMU_TOP)
125*5f62a964SEmmanuel Vadot            - description: CMU_PERIC0 USI00 clock (from CMU_TOP)
126*5f62a964SEmmanuel Vadot            - description: CMU_PERIC0 USI01 clock (from CMU_TOP)
127*5f62a964SEmmanuel Vadot            - description: CMU_PERIC0 USI02 clock (from CMU_TOP)
128*5f62a964SEmmanuel Vadot            - description: CMU_PERIC0 USI03 clock (from CMU_TOP)
129*5f62a964SEmmanuel Vadot
130*5f62a964SEmmanuel Vadot        clock-names:
131*5f62a964SEmmanuel Vadot          items:
132*5f62a964SEmmanuel Vadot            - const: oscclk
133*5f62a964SEmmanuel Vadot            - const: bus
134*5f62a964SEmmanuel Vadot            - const: uart
135*5f62a964SEmmanuel Vadot            - const: usi0
136*5f62a964SEmmanuel Vadot            - const: usi1
137*5f62a964SEmmanuel Vadot            - const: usi2
138*5f62a964SEmmanuel Vadot            - const: usi3
139*5f62a964SEmmanuel Vadot
140*5f62a964SEmmanuel Vadot  - if:
141*5f62a964SEmmanuel Vadot      properties:
142*5f62a964SEmmanuel Vadot        compatible:
143*5f62a964SEmmanuel Vadot          contains:
144*5f62a964SEmmanuel Vadot            const: samsung,exynos8895-cmu-peric1
145*5f62a964SEmmanuel Vadot
146*5f62a964SEmmanuel Vadot    then:
147*5f62a964SEmmanuel Vadot      properties:
148*5f62a964SEmmanuel Vadot        clocks:
149*5f62a964SEmmanuel Vadot          items:
150*5f62a964SEmmanuel Vadot            - description: External reference clock (26 MHz)
151*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 BUS clock (from CMU_TOP)
152*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 SPEEDY2 clock (from CMU_TOP)
153*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 SPI_CAM0 clock (from CMU_TOP)
154*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 SPI_CAM1 clock (from CMU_TOP)
155*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 UART_BT clock (from CMU_TOP)
156*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 USI04 clock (from CMU_TOP)
157*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 USI05 clock (from CMU_TOP)
158*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 USI06 clock (from CMU_TOP)
159*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 USI07 clock (from CMU_TOP)
160*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 USI08 clock (from CMU_TOP)
161*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 USI09 clock (from CMU_TOP)
162*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 USI10 clock (from CMU_TOP)
163*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 USI11 clock (from CMU_TOP)
164*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 USI12 clock (from CMU_TOP)
165*5f62a964SEmmanuel Vadot            - description: CMU_PERIC1 USI13 clock (from CMU_TOP)
166*5f62a964SEmmanuel Vadot
167*5f62a964SEmmanuel Vadot        clock-names:
168*5f62a964SEmmanuel Vadot          items:
169*5f62a964SEmmanuel Vadot            - const: oscclk
170*5f62a964SEmmanuel Vadot            - const: bus
171*5f62a964SEmmanuel Vadot            - const: speedy
172*5f62a964SEmmanuel Vadot            - const: cam0
173*5f62a964SEmmanuel Vadot            - const: cam1
174*5f62a964SEmmanuel Vadot            - const: uart
175*5f62a964SEmmanuel Vadot            - const: usi4
176*5f62a964SEmmanuel Vadot            - const: usi5
177*5f62a964SEmmanuel Vadot            - const: usi6
178*5f62a964SEmmanuel Vadot            - const: usi7
179*5f62a964SEmmanuel Vadot            - const: usi8
180*5f62a964SEmmanuel Vadot            - const: usi9
181*5f62a964SEmmanuel Vadot            - const: usi10
182*5f62a964SEmmanuel Vadot            - const: usi11
183*5f62a964SEmmanuel Vadot            - const: usi12
184*5f62a964SEmmanuel Vadot            - const: usi13
185*5f62a964SEmmanuel Vadot
186*5f62a964SEmmanuel Vadot  - if:
187*5f62a964SEmmanuel Vadot      properties:
188*5f62a964SEmmanuel Vadot        compatible:
189*5f62a964SEmmanuel Vadot          contains:
190*5f62a964SEmmanuel Vadot            const: samsung,exynos8895-cmu-peris
191*5f62a964SEmmanuel Vadot
192*5f62a964SEmmanuel Vadot    then:
193*5f62a964SEmmanuel Vadot      properties:
194*5f62a964SEmmanuel Vadot        clocks:
195*5f62a964SEmmanuel Vadot          items:
196*5f62a964SEmmanuel Vadot            - description: External reference clock (26 MHz)
197*5f62a964SEmmanuel Vadot            - description: CMU_PERIS BUS clock (from CMU_TOP)
198*5f62a964SEmmanuel Vadot
199*5f62a964SEmmanuel Vadot        clock-names:
200*5f62a964SEmmanuel Vadot          items:
201*5f62a964SEmmanuel Vadot            - const: oscclk
202*5f62a964SEmmanuel Vadot            - const: bus
203*5f62a964SEmmanuel Vadot
204*5f62a964SEmmanuel Vadot  - if:
205*5f62a964SEmmanuel Vadot      properties:
206*5f62a964SEmmanuel Vadot        compatible:
207*5f62a964SEmmanuel Vadot          contains:
208*5f62a964SEmmanuel Vadot            const: samsung,exynos8895-cmu-top
209*5f62a964SEmmanuel Vadot
210*5f62a964SEmmanuel Vadot    then:
211*5f62a964SEmmanuel Vadot      properties:
212*5f62a964SEmmanuel Vadot        clocks:
213*5f62a964SEmmanuel Vadot          items:
214*5f62a964SEmmanuel Vadot            - description: External reference clock (26 MHz)
215*5f62a964SEmmanuel Vadot
216*5f62a964SEmmanuel Vadot        clock-names:
217*5f62a964SEmmanuel Vadot          items:
218*5f62a964SEmmanuel Vadot            - const: oscclk
219*5f62a964SEmmanuel Vadot
220*5f62a964SEmmanuel VadotadditionalProperties: false
221*5f62a964SEmmanuel Vadot
222*5f62a964SEmmanuel Vadotexamples:
223*5f62a964SEmmanuel Vadot  - |
224*5f62a964SEmmanuel Vadot    #include <dt-bindings/clock/samsung,exynos8895.h>
225*5f62a964SEmmanuel Vadot
226*5f62a964SEmmanuel Vadot    cmu_fsys1: clock-controller@11400000 {
227*5f62a964SEmmanuel Vadot        compatible = "samsung,exynos8895-cmu-fsys1";
228*5f62a964SEmmanuel Vadot        reg = <0x11400000 0x8000>;
229*5f62a964SEmmanuel Vadot        #clock-cells = <1>;
230*5f62a964SEmmanuel Vadot
231*5f62a964SEmmanuel Vadot        clocks = <&oscclk>,
232*5f62a964SEmmanuel Vadot                 <&cmu_top CLK_DOUT_CMU_FSYS1_BUS>,
233*5f62a964SEmmanuel Vadot                 <&cmu_top CLK_DOUT_CMU_FSYS1_PCIE>,
234*5f62a964SEmmanuel Vadot                 <&cmu_top CLK_DOUT_CMU_FSYS1_UFS_CARD>,
235*5f62a964SEmmanuel Vadot                 <&cmu_top CLK_DOUT_CMU_FSYS1_MMC_CARD>;
236*5f62a964SEmmanuel Vadot        clock-names = "oscclk", "bus", "pcie", "ufs", "mmc";
237*5f62a964SEmmanuel Vadot    };
238*5f62a964SEmmanuel Vadot
239*5f62a964SEmmanuel Vadot...
240