xref: /linux/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1e61492e4SChanho Park# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2e61492e4SChanho Park%YAML 1.2
3e61492e4SChanho Park---
4e61492e4SChanho Park$id: http://devicetree.org/schemas/clock/samsung,exynosautov9-clock.yaml#
5e61492e4SChanho Park$schema: http://devicetree.org/meta-schemas/core.yaml#
6e61492e4SChanho Park
7e61492e4SChanho Parktitle: Samsung Exynos Auto v9 SoC clock controller
8e61492e4SChanho Park
9e61492e4SChanho Parkmaintainers:
10e61492e4SChanho Park  - Chanho Park <chanho61.park@samsung.com>
11e61492e4SChanho Park  - Chanwoo Choi <cw00.choi@samsung.com>
12e61492e4SChanho Park  - Krzysztof Kozlowski <krzk@kernel.org>
13e61492e4SChanho Park  - Sylwester Nawrocki <s.nawrocki@samsung.com>
14e61492e4SChanho Park  - Tomasz Figa <tomasz.figa@gmail.com>
15e61492e4SChanho Park
16e61492e4SChanho Parkdescription: |
17e61492e4SChanho Park  Exynos Auto v9 clock controller is comprised of several CMU units, generating
18e61492e4SChanho Park  clocks for different domains. Those CMU units are modeled as separate device
19e61492e4SChanho Park  tree nodes, and might depend on each other. Root clocks in that clock tree are
20e61492e4SChanho Park  two external clocks:: OSCCLK/XTCXO (26 MHz) and RTCCLK/XrtcXTI (32768 Hz).
21e61492e4SChanho Park  The external OSCCLK must be defined as fixed-rate clock in dts.
22e61492e4SChanho Park
23e61492e4SChanho Park  CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
24e61492e4SChanho Park  dividers; all other clocks of function blocks (other CMUs) are usually
25e61492e4SChanho Park  derived from CMU_TOP.
26e61492e4SChanho Park
27e61492e4SChanho Park  Each clock is assigned an identifier and client nodes can use this identifier
28e61492e4SChanho Park  to specify the clock which they consume. All clocks available for usage
29e61492e4SChanho Park  in clock consumer nodes are defined as preprocessor macros in
30e61492e4SChanho Park  'include/dt-bindings/clock/samsung,exynosautov9.h' header.
31e61492e4SChanho Park
32e61492e4SChanho Parkproperties:
33e61492e4SChanho Park  compatible:
34e61492e4SChanho Park    enum:
35e61492e4SChanho Park      - samsung,exynosautov9-cmu-top
36e61492e4SChanho Park      - samsung,exynosautov9-cmu-busmc
37e61492e4SChanho Park      - samsung,exynosautov9-cmu-core
38*ccb41c44SKwanghoon Son      - samsung,exynosautov9-cmu-dpum
394b6ec8d8SChanho Park      - samsung,exynosautov9-cmu-fsys0
404b6ec8d8SChanho Park      - samsung,exynosautov9-cmu-fsys1
41e61492e4SChanho Park      - samsung,exynosautov9-cmu-fsys2
42e61492e4SChanho Park      - samsung,exynosautov9-cmu-peric0
43e61492e4SChanho Park      - samsung,exynosautov9-cmu-peric1
44e61492e4SChanho Park      - samsung,exynosautov9-cmu-peris
45e61492e4SChanho Park
46e61492e4SChanho Park  clocks:
47e61492e4SChanho Park    minItems: 1
48e61492e4SChanho Park    maxItems: 5
49e61492e4SChanho Park
50e61492e4SChanho Park  clock-names:
51e61492e4SChanho Park    minItems: 1
52e61492e4SChanho Park    maxItems: 5
53e61492e4SChanho Park
54e61492e4SChanho Park  "#clock-cells":
55e61492e4SChanho Park    const: 1
56e61492e4SChanho Park
57e61492e4SChanho Park  reg:
58e61492e4SChanho Park    maxItems: 1
59e61492e4SChanho Park
60e61492e4SChanho ParkallOf:
61e61492e4SChanho Park  - if:
62e61492e4SChanho Park      properties:
63e61492e4SChanho Park        compatible:
64e61492e4SChanho Park          contains:
65e61492e4SChanho Park            const: samsung,exynosautov9-cmu-top
66e61492e4SChanho Park
67e61492e4SChanho Park    then:
68e61492e4SChanho Park      properties:
69e61492e4SChanho Park        clocks:
70e61492e4SChanho Park          items:
71e61492e4SChanho Park            - description: External reference clock (26 MHz)
72e61492e4SChanho Park
73e61492e4SChanho Park        clock-names:
74e61492e4SChanho Park          items:
75e61492e4SChanho Park            - const: oscclk
76e61492e4SChanho Park
77e61492e4SChanho Park  - if:
78e61492e4SChanho Park      properties:
79e61492e4SChanho Park        compatible:
80e61492e4SChanho Park          contains:
81e61492e4SChanho Park            const: samsung,exynosautov9-cmu-busmc
82e61492e4SChanho Park
83e61492e4SChanho Park    then:
84e61492e4SChanho Park      properties:
85e61492e4SChanho Park        clocks:
86e61492e4SChanho Park          items:
87e61492e4SChanho Park            - description: External reference clock (26 MHz)
88e61492e4SChanho Park            - description: CMU_BUSMC bus clock (from CMU_TOP)
89e61492e4SChanho Park
90e61492e4SChanho Park        clock-names:
91e61492e4SChanho Park          items:
92e61492e4SChanho Park            - const: oscclk
93e61492e4SChanho Park            - const: dout_clkcmu_busmc_bus
94e61492e4SChanho Park
95e61492e4SChanho Park  - if:
96e61492e4SChanho Park      properties:
97e61492e4SChanho Park        compatible:
98e61492e4SChanho Park          contains:
99e61492e4SChanho Park            const: samsung,exynosautov9-cmu-core
100e61492e4SChanho Park
101e61492e4SChanho Park    then:
102e61492e4SChanho Park      properties:
103e61492e4SChanho Park        clocks:
104e61492e4SChanho Park          items:
105e61492e4SChanho Park            - description: External reference clock (26 MHz)
106e61492e4SChanho Park            - description: CMU_CORE bus clock (from CMU_TOP)
107e61492e4SChanho Park
108e61492e4SChanho Park        clock-names:
109e61492e4SChanho Park          items:
110e61492e4SChanho Park            - const: oscclk
111e61492e4SChanho Park            - const: dout_clkcmu_core_bus
112e61492e4SChanho Park
113e61492e4SChanho Park  - if:
114e61492e4SChanho Park      properties:
115e61492e4SChanho Park        compatible:
116e61492e4SChanho Park          contains:
117*ccb41c44SKwanghoon Son            const: samsung,exynosautov9-cmu-dpum
118*ccb41c44SKwanghoon Son
119*ccb41c44SKwanghoon Son    then:
120*ccb41c44SKwanghoon Son      properties:
121*ccb41c44SKwanghoon Son        clocks:
122*ccb41c44SKwanghoon Son          items:
123*ccb41c44SKwanghoon Son            - description: External reference clock (26 MHz)
124*ccb41c44SKwanghoon Son            - description: DPU Main bus clock (from CMU_TOP)
125*ccb41c44SKwanghoon Son
126*ccb41c44SKwanghoon Son        clock-names:
127*ccb41c44SKwanghoon Son          items:
128*ccb41c44SKwanghoon Son            - const: oscclk
129*ccb41c44SKwanghoon Son            - const: bus
130*ccb41c44SKwanghoon Son
131*ccb41c44SKwanghoon Son  - if:
132*ccb41c44SKwanghoon Son      properties:
133*ccb41c44SKwanghoon Son        compatible:
134*ccb41c44SKwanghoon Son          contains:
1354b6ec8d8SChanho Park            const: samsung,exynosautov9-cmu-fsys0
1364b6ec8d8SChanho Park
1374b6ec8d8SChanho Park    then:
1384b6ec8d8SChanho Park      properties:
1394b6ec8d8SChanho Park        clocks:
1404b6ec8d8SChanho Park          items:
1414b6ec8d8SChanho Park            - description: External reference clock (26 MHz)
1424b6ec8d8SChanho Park            - description: CMU_FSYS0 bus clock (from CMU_TOP)
1434b6ec8d8SChanho Park            - description: CMU_FSYS0 pcie clock (from CMU_TOP)
1444b6ec8d8SChanho Park
1454b6ec8d8SChanho Park        clock-names:
1464b6ec8d8SChanho Park          items:
1474b6ec8d8SChanho Park            - const: oscclk
1484b6ec8d8SChanho Park            - const: dout_clkcmu_fsys0_bus
1494b6ec8d8SChanho Park            - const: dout_clkcmu_fsys0_pcie
1504b6ec8d8SChanho Park
1514b6ec8d8SChanho Park  - if:
1524b6ec8d8SChanho Park      properties:
1534b6ec8d8SChanho Park        compatible:
1544b6ec8d8SChanho Park          contains:
1554b6ec8d8SChanho Park            const: samsung,exynosautov9-cmu-fsys1
1564b6ec8d8SChanho Park
1574b6ec8d8SChanho Park    then:
1584b6ec8d8SChanho Park      properties:
1594b6ec8d8SChanho Park        clocks:
1604b6ec8d8SChanho Park          items:
1614b6ec8d8SChanho Park            - description: External reference clock (26 MHz)
1624b6ec8d8SChanho Park            - description: CMU_FSYS1 bus clock (from CMU_TOP)
1634b6ec8d8SChanho Park            - description: CMU_FSYS1 mmc card clock (from CMU_TOP)
1644b6ec8d8SChanho Park            - description: CMU_FSYS1 usb clock (from CMU_TOP)
1654b6ec8d8SChanho Park
1664b6ec8d8SChanho Park        clock-names:
1674b6ec8d8SChanho Park          items:
1684b6ec8d8SChanho Park            - const: oscclk
1694b6ec8d8SChanho Park            - const: dout_clkcmu_fsys1_bus
1704854e8b0SInbaraj E            - const: gout_clkcmu_fsys1_mmc_card
1714b6ec8d8SChanho Park            - const: dout_clkcmu_fsys1_usbdrd
1724b6ec8d8SChanho Park
1734b6ec8d8SChanho Park  - if:
1744b6ec8d8SChanho Park      properties:
1754b6ec8d8SChanho Park        compatible:
1764b6ec8d8SChanho Park          contains:
177e61492e4SChanho Park            const: samsung,exynosautov9-cmu-fsys2
178e61492e4SChanho Park
179e61492e4SChanho Park    then:
180e61492e4SChanho Park      properties:
181e61492e4SChanho Park        clocks:
182e61492e4SChanho Park          items:
183e61492e4SChanho Park            - description: External reference clock (26 MHz)
184e61492e4SChanho Park            - description: CMU_FSYS2 bus clock (from CMU_TOP)
185e61492e4SChanho Park            - description: UFS clock (from CMU_TOP)
186e61492e4SChanho Park            - description: Ethernet clock (from CMU_TOP)
187e61492e4SChanho Park
188e61492e4SChanho Park        clock-names:
189e61492e4SChanho Park          items:
190e61492e4SChanho Park            - const: oscclk
191e61492e4SChanho Park            - const: dout_clkcmu_fsys2_bus
192e61492e4SChanho Park            - const: dout_fsys2_clkcmu_ufs_embd
193e61492e4SChanho Park            - const: dout_fsys2_clkcmu_ethernet
194e61492e4SChanho Park
195e61492e4SChanho Park  - if:
196e61492e4SChanho Park      properties:
197e61492e4SChanho Park        compatible:
198e61492e4SChanho Park          contains:
199e61492e4SChanho Park            const: samsung,exynosautov9-cmu-peric0
200e61492e4SChanho Park
201e61492e4SChanho Park    then:
202e61492e4SChanho Park      properties:
203e61492e4SChanho Park        clocks:
204e61492e4SChanho Park          items:
205e61492e4SChanho Park            - description: External reference clock (26 MHz)
206e61492e4SChanho Park            - description: CMU_PERIC0 bus clock (from CMU_TOP)
207e61492e4SChanho Park            - description: PERIC0 IP clock (from CMU_TOP)
208e61492e4SChanho Park
209e61492e4SChanho Park        clock-names:
210e61492e4SChanho Park          items:
211e61492e4SChanho Park            - const: oscclk
212e61492e4SChanho Park            - const: dout_clkcmu_peric0_bus
213e61492e4SChanho Park            - const: dout_clkcmu_peric0_ip
214e61492e4SChanho Park
215e61492e4SChanho Park  - if:
216e61492e4SChanho Park      properties:
217e61492e4SChanho Park        compatible:
218e61492e4SChanho Park          contains:
219e61492e4SChanho Park            const: samsung,exynosautov9-cmu-peric1
220e61492e4SChanho Park
221e61492e4SChanho Park    then:
222e61492e4SChanho Park      properties:
223e61492e4SChanho Park        clocks:
224e61492e4SChanho Park          items:
225e61492e4SChanho Park            - description: External reference clock (26 MHz)
226e61492e4SChanho Park            - description: CMU_PERIC1 bus clock (from CMU_TOP)
227e61492e4SChanho Park            - description: PERIC1 IP clock (from CMU_TOP)
228e61492e4SChanho Park
229e61492e4SChanho Park        clock-names:
230e61492e4SChanho Park          items:
231e61492e4SChanho Park            - const: oscclk
232e61492e4SChanho Park            - const: dout_clkcmu_peric1_bus
233e61492e4SChanho Park            - const: dout_clkcmu_peric1_ip
234e61492e4SChanho Park
235e61492e4SChanho Park  - if:
236e61492e4SChanho Park      properties:
237e61492e4SChanho Park        compatible:
238e61492e4SChanho Park          contains:
239e61492e4SChanho Park            const: samsung,exynosautov9-cmu-peris
240e61492e4SChanho Park
241e61492e4SChanho Park    then:
242e61492e4SChanho Park      properties:
243e61492e4SChanho Park        clocks:
244e61492e4SChanho Park          items:
245e61492e4SChanho Park            - description: External reference clock (26 MHz)
246e61492e4SChanho Park            - description: CMU_PERIS bus clock (from CMU_TOP)
247e61492e4SChanho Park
248e61492e4SChanho Park        clock-names:
249e61492e4SChanho Park          items:
250e61492e4SChanho Park            - const: oscclk
251e61492e4SChanho Park            - const: dout_clkcmu_peris_bus
252e61492e4SChanho Park
253e61492e4SChanho Parkrequired:
254e61492e4SChanho Park  - compatible
255e61492e4SChanho Park  - "#clock-cells"
256e61492e4SChanho Park  - clocks
257e61492e4SChanho Park  - clock-names
258e61492e4SChanho Park  - reg
259e61492e4SChanho Park
260e61492e4SChanho ParkadditionalProperties: false
261e61492e4SChanho Park
262e61492e4SChanho Parkexamples:
263e61492e4SChanho Park  # Clock controller node for CMU_FSYS2
264e61492e4SChanho Park  - |
265e61492e4SChanho Park    #include <dt-bindings/clock/samsung,exynosautov9.h>
266e61492e4SChanho Park
267e61492e4SChanho Park    cmu_fsys2: clock-controller@17c00000 {
268e61492e4SChanho Park        compatible = "samsung,exynosautov9-cmu-fsys2";
269e61492e4SChanho Park        reg = <0x17c00000 0x8000>;
270e61492e4SChanho Park        #clock-cells = <1>;
271e61492e4SChanho Park
272e61492e4SChanho Park        clocks = <&xtcxo>,
273e61492e4SChanho Park                 <&cmu_top DOUT_CLKCMU_FSYS2_BUS>,
274e61492e4SChanho Park                 <&cmu_top DOUT_CLKCMU_FSYS2_UFS_EMBD>,
275e61492e4SChanho Park                 <&cmu_top DOUT_CLKCMU_FSYS2_ETHERNET>;
276e61492e4SChanho Park        clock-names = "oscclk",
277e61492e4SChanho Park                      "dout_clkcmu_fsys2_bus",
278e61492e4SChanho Park                      "dout_fsys2_clkcmu_ufs_embd",
279e61492e4SChanho Park                      "dout_fsys2_clkcmu_ethernet";
280e61492e4SChanho Park    };
281e61492e4SChanho Park
282e61492e4SChanho Park...
283