xref: /openbmc/linux/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
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
384b6ec8d8SChanho Park      - samsung,exynosautov9-cmu-fsys0
394b6ec8d8SChanho Park      - samsung,exynosautov9-cmu-fsys1
40e61492e4SChanho Park      - samsung,exynosautov9-cmu-fsys2
41e61492e4SChanho Park      - samsung,exynosautov9-cmu-peric0
42e61492e4SChanho Park      - samsung,exynosautov9-cmu-peric1
43e61492e4SChanho Park      - samsung,exynosautov9-cmu-peris
44e61492e4SChanho Park
45e61492e4SChanho Park  clocks:
46e61492e4SChanho Park    minItems: 1
47e61492e4SChanho Park    maxItems: 5
48e61492e4SChanho Park
49e61492e4SChanho Park  clock-names:
50e61492e4SChanho Park    minItems: 1
51e61492e4SChanho Park    maxItems: 5
52e61492e4SChanho Park
53e61492e4SChanho Park  "#clock-cells":
54e61492e4SChanho Park    const: 1
55e61492e4SChanho Park
56e61492e4SChanho Park  reg:
57e61492e4SChanho Park    maxItems: 1
58e61492e4SChanho Park
59e61492e4SChanho ParkallOf:
60e61492e4SChanho Park  - if:
61e61492e4SChanho Park      properties:
62e61492e4SChanho Park        compatible:
63e61492e4SChanho Park          contains:
64e61492e4SChanho Park            const: samsung,exynosautov9-cmu-top
65e61492e4SChanho Park
66e61492e4SChanho Park    then:
67e61492e4SChanho Park      properties:
68e61492e4SChanho Park        clocks:
69e61492e4SChanho Park          items:
70e61492e4SChanho Park            - description: External reference clock (26 MHz)
71e61492e4SChanho Park
72e61492e4SChanho Park        clock-names:
73e61492e4SChanho Park          items:
74e61492e4SChanho Park            - const: oscclk
75e61492e4SChanho Park
76e61492e4SChanho Park  - if:
77e61492e4SChanho Park      properties:
78e61492e4SChanho Park        compatible:
79e61492e4SChanho Park          contains:
80e61492e4SChanho Park            const: samsung,exynosautov9-cmu-busmc
81e61492e4SChanho Park
82e61492e4SChanho Park    then:
83e61492e4SChanho Park      properties:
84e61492e4SChanho Park        clocks:
85e61492e4SChanho Park          items:
86e61492e4SChanho Park            - description: External reference clock (26 MHz)
87e61492e4SChanho Park            - description: CMU_BUSMC bus clock (from CMU_TOP)
88e61492e4SChanho Park
89e61492e4SChanho Park        clock-names:
90e61492e4SChanho Park          items:
91e61492e4SChanho Park            - const: oscclk
92e61492e4SChanho Park            - const: dout_clkcmu_busmc_bus
93e61492e4SChanho Park
94e61492e4SChanho Park  - if:
95e61492e4SChanho Park      properties:
96e61492e4SChanho Park        compatible:
97e61492e4SChanho Park          contains:
98e61492e4SChanho Park            const: samsung,exynosautov9-cmu-core
99e61492e4SChanho Park
100e61492e4SChanho Park    then:
101e61492e4SChanho Park      properties:
102e61492e4SChanho Park        clocks:
103e61492e4SChanho Park          items:
104e61492e4SChanho Park            - description: External reference clock (26 MHz)
105e61492e4SChanho Park            - description: CMU_CORE bus clock (from CMU_TOP)
106e61492e4SChanho Park
107e61492e4SChanho Park        clock-names:
108e61492e4SChanho Park          items:
109e61492e4SChanho Park            - const: oscclk
110e61492e4SChanho Park            - const: dout_clkcmu_core_bus
111e61492e4SChanho Park
112e61492e4SChanho Park  - if:
113e61492e4SChanho Park      properties:
114e61492e4SChanho Park        compatible:
115e61492e4SChanho Park          contains:
1164b6ec8d8SChanho Park            const: samsung,exynosautov9-cmu-fsys0
1174b6ec8d8SChanho Park
1184b6ec8d8SChanho Park    then:
1194b6ec8d8SChanho Park      properties:
1204b6ec8d8SChanho Park        clocks:
1214b6ec8d8SChanho Park          items:
1224b6ec8d8SChanho Park            - description: External reference clock (26 MHz)
1234b6ec8d8SChanho Park            - description: CMU_FSYS0 bus clock (from CMU_TOP)
1244b6ec8d8SChanho Park            - description: CMU_FSYS0 pcie clock (from CMU_TOP)
1254b6ec8d8SChanho Park
1264b6ec8d8SChanho Park        clock-names:
1274b6ec8d8SChanho Park          items:
1284b6ec8d8SChanho Park            - const: oscclk
1294b6ec8d8SChanho Park            - const: dout_clkcmu_fsys0_bus
1304b6ec8d8SChanho Park            - const: dout_clkcmu_fsys0_pcie
1314b6ec8d8SChanho Park
1324b6ec8d8SChanho Park  - if:
1334b6ec8d8SChanho Park      properties:
1344b6ec8d8SChanho Park        compatible:
1354b6ec8d8SChanho Park          contains:
1364b6ec8d8SChanho Park            const: samsung,exynosautov9-cmu-fsys1
1374b6ec8d8SChanho Park
1384b6ec8d8SChanho Park    then:
1394b6ec8d8SChanho Park      properties:
1404b6ec8d8SChanho Park        clocks:
1414b6ec8d8SChanho Park          items:
1424b6ec8d8SChanho Park            - description: External reference clock (26 MHz)
1434b6ec8d8SChanho Park            - description: CMU_FSYS1 bus clock (from CMU_TOP)
1444b6ec8d8SChanho Park            - description: CMU_FSYS1 mmc card clock (from CMU_TOP)
1454b6ec8d8SChanho Park            - description: CMU_FSYS1 usb clock (from CMU_TOP)
1464b6ec8d8SChanho Park
1474b6ec8d8SChanho Park        clock-names:
1484b6ec8d8SChanho Park          items:
1494b6ec8d8SChanho Park            - const: oscclk
1504b6ec8d8SChanho Park            - const: dout_clkcmu_fsys1_bus
151*4854e8b0SInbaraj E            - const: gout_clkcmu_fsys1_mmc_card
1524b6ec8d8SChanho Park            - const: dout_clkcmu_fsys1_usbdrd
1534b6ec8d8SChanho Park
1544b6ec8d8SChanho Park  - if:
1554b6ec8d8SChanho Park      properties:
1564b6ec8d8SChanho Park        compatible:
1574b6ec8d8SChanho Park          contains:
158e61492e4SChanho Park            const: samsung,exynosautov9-cmu-fsys2
159e61492e4SChanho Park
160e61492e4SChanho Park    then:
161e61492e4SChanho Park      properties:
162e61492e4SChanho Park        clocks:
163e61492e4SChanho Park          items:
164e61492e4SChanho Park            - description: External reference clock (26 MHz)
165e61492e4SChanho Park            - description: CMU_FSYS2 bus clock (from CMU_TOP)
166e61492e4SChanho Park            - description: UFS clock (from CMU_TOP)
167e61492e4SChanho Park            - description: Ethernet clock (from CMU_TOP)
168e61492e4SChanho Park
169e61492e4SChanho Park        clock-names:
170e61492e4SChanho Park          items:
171e61492e4SChanho Park            - const: oscclk
172e61492e4SChanho Park            - const: dout_clkcmu_fsys2_bus
173e61492e4SChanho Park            - const: dout_fsys2_clkcmu_ufs_embd
174e61492e4SChanho Park            - const: dout_fsys2_clkcmu_ethernet
175e61492e4SChanho Park
176e61492e4SChanho Park  - if:
177e61492e4SChanho Park      properties:
178e61492e4SChanho Park        compatible:
179e61492e4SChanho Park          contains:
180e61492e4SChanho Park            const: samsung,exynosautov9-cmu-peric0
181e61492e4SChanho Park
182e61492e4SChanho Park    then:
183e61492e4SChanho Park      properties:
184e61492e4SChanho Park        clocks:
185e61492e4SChanho Park          items:
186e61492e4SChanho Park            - description: External reference clock (26 MHz)
187e61492e4SChanho Park            - description: CMU_PERIC0 bus clock (from CMU_TOP)
188e61492e4SChanho Park            - description: PERIC0 IP clock (from CMU_TOP)
189e61492e4SChanho Park
190e61492e4SChanho Park        clock-names:
191e61492e4SChanho Park          items:
192e61492e4SChanho Park            - const: oscclk
193e61492e4SChanho Park            - const: dout_clkcmu_peric0_bus
194e61492e4SChanho Park            - const: dout_clkcmu_peric0_ip
195e61492e4SChanho Park
196e61492e4SChanho Park  - if:
197e61492e4SChanho Park      properties:
198e61492e4SChanho Park        compatible:
199e61492e4SChanho Park          contains:
200e61492e4SChanho Park            const: samsung,exynosautov9-cmu-peric1
201e61492e4SChanho Park
202e61492e4SChanho Park    then:
203e61492e4SChanho Park      properties:
204e61492e4SChanho Park        clocks:
205e61492e4SChanho Park          items:
206e61492e4SChanho Park            - description: External reference clock (26 MHz)
207e61492e4SChanho Park            - description: CMU_PERIC1 bus clock (from CMU_TOP)
208e61492e4SChanho Park            - description: PERIC1 IP clock (from CMU_TOP)
209e61492e4SChanho Park
210e61492e4SChanho Park        clock-names:
211e61492e4SChanho Park          items:
212e61492e4SChanho Park            - const: oscclk
213e61492e4SChanho Park            - const: dout_clkcmu_peric1_bus
214e61492e4SChanho Park            - const: dout_clkcmu_peric1_ip
215e61492e4SChanho Park
216e61492e4SChanho Park  - if:
217e61492e4SChanho Park      properties:
218e61492e4SChanho Park        compatible:
219e61492e4SChanho Park          contains:
220e61492e4SChanho Park            const: samsung,exynosautov9-cmu-peris
221e61492e4SChanho Park
222e61492e4SChanho Park    then:
223e61492e4SChanho Park      properties:
224e61492e4SChanho Park        clocks:
225e61492e4SChanho Park          items:
226e61492e4SChanho Park            - description: External reference clock (26 MHz)
227e61492e4SChanho Park            - description: CMU_PERIS bus clock (from CMU_TOP)
228e61492e4SChanho Park
229e61492e4SChanho Park        clock-names:
230e61492e4SChanho Park          items:
231e61492e4SChanho Park            - const: oscclk
232e61492e4SChanho Park            - const: dout_clkcmu_peris_bus
233e61492e4SChanho Park
234e61492e4SChanho Parkrequired:
235e61492e4SChanho Park  - compatible
236e61492e4SChanho Park  - "#clock-cells"
237e61492e4SChanho Park  - clocks
238e61492e4SChanho Park  - clock-names
239e61492e4SChanho Park  - reg
240e61492e4SChanho Park
241e61492e4SChanho ParkadditionalProperties: false
242e61492e4SChanho Park
243e61492e4SChanho Parkexamples:
244e61492e4SChanho Park  # Clock controller node for CMU_FSYS2
245e61492e4SChanho Park  - |
246e61492e4SChanho Park    #include <dt-bindings/clock/samsung,exynosautov9.h>
247e61492e4SChanho Park
248e61492e4SChanho Park    cmu_fsys2: clock-controller@17c00000 {
249e61492e4SChanho Park        compatible = "samsung,exynosautov9-cmu-fsys2";
250e61492e4SChanho Park        reg = <0x17c00000 0x8000>;
251e61492e4SChanho Park        #clock-cells = <1>;
252e61492e4SChanho Park
253e61492e4SChanho Park        clocks = <&xtcxo>,
254e61492e4SChanho Park                 <&cmu_top DOUT_CLKCMU_FSYS2_BUS>,
255e61492e4SChanho Park                 <&cmu_top DOUT_CLKCMU_FSYS2_UFS_EMBD>,
256e61492e4SChanho Park                 <&cmu_top DOUT_CLKCMU_FSYS2_ETHERNET>;
257e61492e4SChanho Park        clock-names = "oscclk",
258e61492e4SChanho Park                      "dout_clkcmu_fsys2_bus",
259e61492e4SChanho Park                      "dout_fsys2_clkcmu_ufs_embd",
260e61492e4SChanho Park                      "dout_fsys2_clkcmu_ethernet";
261e61492e4SChanho Park    };
262e61492e4SChanho Park
263e61492e4SChanho Park...
264