xref: /freebsd-src/sys/contrib/device-tree/Bindings/clock/samsung,exynos7-clock.yaml (revision c9ccf3a32da427475985b85d7df023ccfb138c27)
1e67e8565SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2e67e8565SEmmanuel Vadot%YAML 1.2
3e67e8565SEmmanuel Vadot---
4e67e8565SEmmanuel Vadot$id: http://devicetree.org/schemas/clock/samsung,exynos7-clock.yaml#
5e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6e67e8565SEmmanuel Vadot
7e67e8565SEmmanuel Vadottitle: Samsung Exynos7 SoC clock controller
8e67e8565SEmmanuel Vadot
9e67e8565SEmmanuel Vadotmaintainers:
10e67e8565SEmmanuel Vadot  - Chanwoo Choi <cw00.choi@samsung.com>
11*c9ccf3a3SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
12e67e8565SEmmanuel Vadot  - Sylwester Nawrocki <s.nawrocki@samsung.com>
13e67e8565SEmmanuel Vadot  - Tomasz Figa <tomasz.figa@gmail.com>
14e67e8565SEmmanuel Vadot
15e67e8565SEmmanuel Vadotdescription: |
16e67e8565SEmmanuel Vadot  Expected external clocks, defined in DTS as fixed-rate clocks with a matching
17e67e8565SEmmanuel Vadot  name::
18e67e8565SEmmanuel Vadot    - "fin_pll" - PLL input clock from XXTI
19e67e8565SEmmanuel Vadot
20e67e8565SEmmanuel Vadot  All available clocks are defined as preprocessor macros in
21e67e8565SEmmanuel Vadot  include/dt-bindings/clock/exynos7-clk.h header.
22e67e8565SEmmanuel Vadot
23e67e8565SEmmanuel Vadotproperties:
24e67e8565SEmmanuel Vadot  compatible:
25e67e8565SEmmanuel Vadot    enum:
26e67e8565SEmmanuel Vadot      - samsung,exynos7-clock-topc
27e67e8565SEmmanuel Vadot      - samsung,exynos7-clock-top0
28e67e8565SEmmanuel Vadot      - samsung,exynos7-clock-top1
29e67e8565SEmmanuel Vadot      - samsung,exynos7-clock-ccore
30e67e8565SEmmanuel Vadot      - samsung,exynos7-clock-peric0
31e67e8565SEmmanuel Vadot      - samsung,exynos7-clock-peric1
32e67e8565SEmmanuel Vadot      - samsung,exynos7-clock-peris
33e67e8565SEmmanuel Vadot      - samsung,exynos7-clock-fsys0
34e67e8565SEmmanuel Vadot      - samsung,exynos7-clock-fsys1
35e67e8565SEmmanuel Vadot      - samsung,exynos7-clock-mscl
36e67e8565SEmmanuel Vadot      - samsung,exynos7-clock-aud
37e67e8565SEmmanuel Vadot
38e67e8565SEmmanuel Vadot  clocks:
39e67e8565SEmmanuel Vadot    minItems: 1
40e67e8565SEmmanuel Vadot    maxItems: 13
41e67e8565SEmmanuel Vadot
42e67e8565SEmmanuel Vadot  clock-names:
43e67e8565SEmmanuel Vadot    minItems: 1
44e67e8565SEmmanuel Vadot    maxItems: 13
45e67e8565SEmmanuel Vadot
46e67e8565SEmmanuel Vadot  "#clock-cells":
47e67e8565SEmmanuel Vadot    const: 1
48e67e8565SEmmanuel Vadot
49e67e8565SEmmanuel Vadot  reg:
50e67e8565SEmmanuel Vadot    maxItems: 1
51e67e8565SEmmanuel Vadot
52e67e8565SEmmanuel Vadotrequired:
53e67e8565SEmmanuel Vadot  - compatible
54e67e8565SEmmanuel Vadot  - "#clock-cells"
55e67e8565SEmmanuel Vadot  - reg
56e67e8565SEmmanuel Vadot
57e67e8565SEmmanuel VadotallOf:
58e67e8565SEmmanuel Vadot  - if:
59e67e8565SEmmanuel Vadot      properties:
60e67e8565SEmmanuel Vadot        compatible:
61e67e8565SEmmanuel Vadot          contains:
62e67e8565SEmmanuel Vadot            const: samsung,exynos7-clock-top0
63e67e8565SEmmanuel Vadot    then:
64e67e8565SEmmanuel Vadot      properties:
65e67e8565SEmmanuel Vadot        clocks:
66e67e8565SEmmanuel Vadot          minItems: 6
67e67e8565SEmmanuel Vadot          maxItems: 6
68e67e8565SEmmanuel Vadot        clock-names:
69e67e8565SEmmanuel Vadot          items:
70e67e8565SEmmanuel Vadot            - const: fin_pll
71e67e8565SEmmanuel Vadot            - const: dout_sclk_bus0_pll
72e67e8565SEmmanuel Vadot            - const: dout_sclk_bus1_pll
73e67e8565SEmmanuel Vadot            - const: dout_sclk_cc_pll
74e67e8565SEmmanuel Vadot            - const: dout_sclk_mfc_pll
75e67e8565SEmmanuel Vadot            - const: dout_sclk_aud_pll
76e67e8565SEmmanuel Vadot      required:
77e67e8565SEmmanuel Vadot        - clock-names
78e67e8565SEmmanuel Vadot        - clocks
79e67e8565SEmmanuel Vadot
80e67e8565SEmmanuel Vadot  - if:
81e67e8565SEmmanuel Vadot      properties:
82e67e8565SEmmanuel Vadot        compatible:
83e67e8565SEmmanuel Vadot          contains:
84e67e8565SEmmanuel Vadot            const: samsung,exynos7-clock-top1
85e67e8565SEmmanuel Vadot    then:
86e67e8565SEmmanuel Vadot      properties:
87e67e8565SEmmanuel Vadot        clocks:
88e67e8565SEmmanuel Vadot          minItems: 5
89e67e8565SEmmanuel Vadot          maxItems: 5
90e67e8565SEmmanuel Vadot        clock-names:
91e67e8565SEmmanuel Vadot          items:
92e67e8565SEmmanuel Vadot            - const: fin_pll
93e67e8565SEmmanuel Vadot            - const: dout_sclk_bus0_pll
94e67e8565SEmmanuel Vadot            - const: dout_sclk_bus1_pll
95e67e8565SEmmanuel Vadot            - const: dout_sclk_cc_pll
96e67e8565SEmmanuel Vadot            - const: dout_sclk_mfc_pll
97e67e8565SEmmanuel Vadot      required:
98e67e8565SEmmanuel Vadot        - clock-names
99e67e8565SEmmanuel Vadot        - clocks
100e67e8565SEmmanuel Vadot
101e67e8565SEmmanuel Vadot  - if:
102e67e8565SEmmanuel Vadot      properties:
103e67e8565SEmmanuel Vadot        compatible:
104e67e8565SEmmanuel Vadot          contains:
105e67e8565SEmmanuel Vadot            const: samsung,exynos7-clock-ccore
106e67e8565SEmmanuel Vadot    then:
107e67e8565SEmmanuel Vadot      properties:
108e67e8565SEmmanuel Vadot        clocks:
109e67e8565SEmmanuel Vadot          minItems: 2
110e67e8565SEmmanuel Vadot          maxItems: 2
111e67e8565SEmmanuel Vadot        clock-names:
112e67e8565SEmmanuel Vadot          items:
113e67e8565SEmmanuel Vadot            - const: fin_pll
114e67e8565SEmmanuel Vadot            - const: dout_aclk_ccore_133
115e67e8565SEmmanuel Vadot      required:
116e67e8565SEmmanuel Vadot        - clock-names
117e67e8565SEmmanuel Vadot        - clocks
118e67e8565SEmmanuel Vadot
119e67e8565SEmmanuel Vadot  - if:
120e67e8565SEmmanuel Vadot      properties:
121e67e8565SEmmanuel Vadot        compatible:
122e67e8565SEmmanuel Vadot          contains:
123e67e8565SEmmanuel Vadot            const: samsung,exynos7-clock-peric0
124e67e8565SEmmanuel Vadot    then:
125e67e8565SEmmanuel Vadot      properties:
126e67e8565SEmmanuel Vadot        clocks:
127e67e8565SEmmanuel Vadot          minItems: 3
128e67e8565SEmmanuel Vadot          maxItems: 3
129e67e8565SEmmanuel Vadot        clock-names:
130e67e8565SEmmanuel Vadot          items:
131e67e8565SEmmanuel Vadot            - const: fin_pll
132e67e8565SEmmanuel Vadot            - const: dout_aclk_peric0_66
133e67e8565SEmmanuel Vadot            - const: sclk_uart0
134e67e8565SEmmanuel Vadot      required:
135e67e8565SEmmanuel Vadot        - clock-names
136e67e8565SEmmanuel Vadot        - clocks
137e67e8565SEmmanuel Vadot
138e67e8565SEmmanuel Vadot  - if:
139e67e8565SEmmanuel Vadot      properties:
140e67e8565SEmmanuel Vadot        compatible:
141e67e8565SEmmanuel Vadot          contains:
142e67e8565SEmmanuel Vadot            const: samsung,exynos7-clock-peric1
143e67e8565SEmmanuel Vadot    then:
144e67e8565SEmmanuel Vadot      properties:
145e67e8565SEmmanuel Vadot        clocks:
146e67e8565SEmmanuel Vadot          minItems: 13
147e67e8565SEmmanuel Vadot          maxItems: 13
148e67e8565SEmmanuel Vadot        clock-names:
149e67e8565SEmmanuel Vadot          items:
150e67e8565SEmmanuel Vadot            - const: fin_pll
151e67e8565SEmmanuel Vadot            - const: dout_aclk_peric1_66
152e67e8565SEmmanuel Vadot            - const: sclk_uart1
153e67e8565SEmmanuel Vadot            - const: sclk_uart2
154e67e8565SEmmanuel Vadot            - const: sclk_uart3
155e67e8565SEmmanuel Vadot            - const: sclk_spi0
156e67e8565SEmmanuel Vadot            - const: sclk_spi1
157e67e8565SEmmanuel Vadot            - const: sclk_spi2
158e67e8565SEmmanuel Vadot            - const: sclk_spi3
159e67e8565SEmmanuel Vadot            - const: sclk_spi4
160e67e8565SEmmanuel Vadot            - const: sclk_i2s1
161e67e8565SEmmanuel Vadot            - const: sclk_pcm1
162e67e8565SEmmanuel Vadot            - const: sclk_spdif
163e67e8565SEmmanuel Vadot      required:
164e67e8565SEmmanuel Vadot        - clock-names
165e67e8565SEmmanuel Vadot        - clocks
166e67e8565SEmmanuel Vadot
167e67e8565SEmmanuel Vadot  - if:
168e67e8565SEmmanuel Vadot      properties:
169e67e8565SEmmanuel Vadot        compatible:
170e67e8565SEmmanuel Vadot          contains:
171e67e8565SEmmanuel Vadot            const: samsung,exynos7-clock-peris
172e67e8565SEmmanuel Vadot    then:
173e67e8565SEmmanuel Vadot      properties:
174e67e8565SEmmanuel Vadot        clocks:
175e67e8565SEmmanuel Vadot          minItems: 2
176e67e8565SEmmanuel Vadot          maxItems: 2
177e67e8565SEmmanuel Vadot        clock-names:
178e67e8565SEmmanuel Vadot          items:
179e67e8565SEmmanuel Vadot            - const: fin_pll
180e67e8565SEmmanuel Vadot            - const: dout_aclk_peris_66
181e67e8565SEmmanuel Vadot      required:
182e67e8565SEmmanuel Vadot        - clock-names
183e67e8565SEmmanuel Vadot        - clocks
184e67e8565SEmmanuel Vadot
185e67e8565SEmmanuel Vadot  - if:
186e67e8565SEmmanuel Vadot      properties:
187e67e8565SEmmanuel Vadot        compatible:
188e67e8565SEmmanuel Vadot          contains:
189e67e8565SEmmanuel Vadot            const: samsung,exynos7-clock-fsys0
190e67e8565SEmmanuel Vadot    then:
191e67e8565SEmmanuel Vadot      properties:
192e67e8565SEmmanuel Vadot        clocks:
193e67e8565SEmmanuel Vadot          minItems: 3
194e67e8565SEmmanuel Vadot          maxItems: 3
195e67e8565SEmmanuel Vadot        clock-names:
196e67e8565SEmmanuel Vadot          items:
197e67e8565SEmmanuel Vadot            - const: fin_pll
198e67e8565SEmmanuel Vadot            - const: dout_aclk_fsys0_200
199e67e8565SEmmanuel Vadot            - const: dout_sclk_mmc2
200e67e8565SEmmanuel Vadot      required:
201e67e8565SEmmanuel Vadot        - clock-names
202e67e8565SEmmanuel Vadot        - clocks
203e67e8565SEmmanuel Vadot
204e67e8565SEmmanuel Vadot  - if:
205e67e8565SEmmanuel Vadot      properties:
206e67e8565SEmmanuel Vadot        compatible:
207e67e8565SEmmanuel Vadot          contains:
208e67e8565SEmmanuel Vadot            const: samsung,exynos7-clock-fsys1
209e67e8565SEmmanuel Vadot    then:
210e67e8565SEmmanuel Vadot      properties:
211e67e8565SEmmanuel Vadot        clocks:
212e67e8565SEmmanuel Vadot          minItems: 7
213e67e8565SEmmanuel Vadot          maxItems: 7
214e67e8565SEmmanuel Vadot        clock-names:
215e67e8565SEmmanuel Vadot          items:
216e67e8565SEmmanuel Vadot            - const: fin_pll
217e67e8565SEmmanuel Vadot            - const: dout_aclk_fsys1_200
218e67e8565SEmmanuel Vadot            - const: dout_sclk_mmc0
219e67e8565SEmmanuel Vadot            - const: dout_sclk_mmc1
220e67e8565SEmmanuel Vadot            - const: dout_sclk_ufsunipro20
221e67e8565SEmmanuel Vadot            - const: dout_sclk_phy_fsys1
222e67e8565SEmmanuel Vadot            - const: dout_sclk_phy_fsys1_26m
223e67e8565SEmmanuel Vadot      required:
224e67e8565SEmmanuel Vadot        - clock-names
225e67e8565SEmmanuel Vadot        - clocks
226e67e8565SEmmanuel Vadot
227e67e8565SEmmanuel Vadot  - if:
228e67e8565SEmmanuel Vadot      properties:
229e67e8565SEmmanuel Vadot        compatible:
230e67e8565SEmmanuel Vadot          contains:
231e67e8565SEmmanuel Vadot            const: samsung,exynos7-clock-aud
232e67e8565SEmmanuel Vadot    then:
233e67e8565SEmmanuel Vadot      properties:
234e67e8565SEmmanuel Vadot        clocks:
235e67e8565SEmmanuel Vadot          minItems: 2
236e67e8565SEmmanuel Vadot          maxItems: 2
237e67e8565SEmmanuel Vadot        clock-names:
238e67e8565SEmmanuel Vadot          items:
239e67e8565SEmmanuel Vadot            - const: fin_pll
240e67e8565SEmmanuel Vadot            - const: fout_aud_pll
241e67e8565SEmmanuel Vadot      required:
242e67e8565SEmmanuel Vadot        - clock-names
243e67e8565SEmmanuel Vadot        - clocks
244e67e8565SEmmanuel Vadot
245e67e8565SEmmanuel VadotadditionalProperties: false
246e67e8565SEmmanuel Vadot
247e67e8565SEmmanuel Vadotexamples:
248e67e8565SEmmanuel Vadot  - |
249e67e8565SEmmanuel Vadot    #include <dt-bindings/clock/exynos7-clk.h>
250e67e8565SEmmanuel Vadot
251e67e8565SEmmanuel Vadot    fin_pll: clock {
252e67e8565SEmmanuel Vadot        compatible = "fixed-clock";
253e67e8565SEmmanuel Vadot        clock-output-names = "fin_pll";
254e67e8565SEmmanuel Vadot        #clock-cells = <0>;
255e67e8565SEmmanuel Vadot        clock-frequency = <24000000>;
256e67e8565SEmmanuel Vadot    };
257e67e8565SEmmanuel Vadot
258e67e8565SEmmanuel Vadot    clock-controller@105e0000 {
259e67e8565SEmmanuel Vadot        compatible = "samsung,exynos7-clock-top1";
260e67e8565SEmmanuel Vadot        reg = <0x105e0000 0xb000>;
261e67e8565SEmmanuel Vadot        #clock-cells = <1>;
262e67e8565SEmmanuel Vadot        clocks = <&fin_pll>,
263e67e8565SEmmanuel Vadot                 <&clock_topc DOUT_SCLK_BUS0_PLL>,
264e67e8565SEmmanuel Vadot                 <&clock_topc DOUT_SCLK_BUS1_PLL>,
265e67e8565SEmmanuel Vadot                 <&clock_topc DOUT_SCLK_CC_PLL>,
266e67e8565SEmmanuel Vadot                 <&clock_topc DOUT_SCLK_MFC_PLL>;
267e67e8565SEmmanuel Vadot        clock-names = "fin_pll",
268e67e8565SEmmanuel Vadot                      "dout_sclk_bus0_pll",
269e67e8565SEmmanuel Vadot                      "dout_sclk_bus1_pll",
270e67e8565SEmmanuel Vadot                      "dout_sclk_cc_pll",
271e67e8565SEmmanuel Vadot                      "dout_sclk_mfc_pll";
272e67e8565SEmmanuel Vadot    };
273