xref: /freebsd-src/sys/contrib/device-tree/Bindings/clock/samsung,exynos7885-clock.yaml (revision b97ee269eae3cbaf35c18f51a459aea581c2a7dc)
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,exynos7885-clock.yaml#
5e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6e67e8565SEmmanuel Vadot
7e67e8565SEmmanuel Vadottitle: Samsung Exynos7885 SoC clock controller
8e67e8565SEmmanuel Vadot
9e67e8565SEmmanuel Vadotmaintainers:
10e67e8565SEmmanuel Vadot  - Dávid Virág <virag.david003@gmail.com>
11e67e8565SEmmanuel Vadot  - Chanwoo Choi <cw00.choi@samsung.com>
12c9ccf3a3SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
13e67e8565SEmmanuel Vadot  - Sylwester Nawrocki <s.nawrocki@samsung.com>
14e67e8565SEmmanuel Vadot  - Tomasz Figa <tomasz.figa@gmail.com>
15e67e8565SEmmanuel Vadot
16e67e8565SEmmanuel Vadotdescription: |
17e67e8565SEmmanuel Vadot  Exynos7885 clock controller is comprised of several CMU units, generating
18e67e8565SEmmanuel Vadot  clocks for different domains. Those CMU units are modeled as separate device
19e67e8565SEmmanuel Vadot  tree nodes, and might depend on each other. The root clock in that root tree
20e67e8565SEmmanuel Vadot  is an external clock: OSCCLK (26 MHz). This external clock must be defined
21e67e8565SEmmanuel Vadot  as a fixed-rate clock in dts.
22e67e8565SEmmanuel Vadot
23e67e8565SEmmanuel Vadot  CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
24e67e8565SEmmanuel Vadot  dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP.
25e67e8565SEmmanuel Vadot
26e67e8565SEmmanuel Vadot  Each clock is assigned an identifier and client nodes can use this identifier
27e67e8565SEmmanuel Vadot  to specify the clock which they consume. All clocks available for usage
28e67e8565SEmmanuel Vadot  in clock consumer nodes are defined as preprocessor macros in
29e67e8565SEmmanuel Vadot  'dt-bindings/clock/exynos7885.h' header.
30e67e8565SEmmanuel Vadot
31e67e8565SEmmanuel Vadotproperties:
32e67e8565SEmmanuel Vadot  compatible:
33e67e8565SEmmanuel Vadot    enum:
34e67e8565SEmmanuel Vadot      - samsung,exynos7885-cmu-top
35e67e8565SEmmanuel Vadot      - samsung,exynos7885-cmu-core
36*b97ee269SEmmanuel Vadot      - samsung,exynos7885-cmu-fsys
37e67e8565SEmmanuel Vadot      - samsung,exynos7885-cmu-peri
38e67e8565SEmmanuel Vadot
39e67e8565SEmmanuel Vadot  clocks:
40e67e8565SEmmanuel Vadot    minItems: 1
41e67e8565SEmmanuel Vadot    maxItems: 10
42e67e8565SEmmanuel Vadot
43e67e8565SEmmanuel Vadot  clock-names:
44e67e8565SEmmanuel Vadot    minItems: 1
45e67e8565SEmmanuel Vadot    maxItems: 10
46e67e8565SEmmanuel Vadot
47e67e8565SEmmanuel Vadot  "#clock-cells":
48e67e8565SEmmanuel Vadot    const: 1
49e67e8565SEmmanuel Vadot
50e67e8565SEmmanuel Vadot  reg:
51e67e8565SEmmanuel Vadot    maxItems: 1
52e67e8565SEmmanuel Vadot
53e67e8565SEmmanuel VadotallOf:
54e67e8565SEmmanuel Vadot  - if:
55e67e8565SEmmanuel Vadot      properties:
56e67e8565SEmmanuel Vadot        compatible:
57e67e8565SEmmanuel Vadot          contains:
58e67e8565SEmmanuel Vadot            const: samsung,exynos7885-cmu-top
59e67e8565SEmmanuel Vadot
60e67e8565SEmmanuel Vadot    then:
61e67e8565SEmmanuel Vadot      properties:
62e67e8565SEmmanuel Vadot        clocks:
63e67e8565SEmmanuel Vadot          items:
64e67e8565SEmmanuel Vadot            - description: External reference clock (26 MHz)
65e67e8565SEmmanuel Vadot
66e67e8565SEmmanuel Vadot        clock-names:
67e67e8565SEmmanuel Vadot          items:
68e67e8565SEmmanuel Vadot            - const: oscclk
69e67e8565SEmmanuel Vadot
70e67e8565SEmmanuel Vadot  - if:
71e67e8565SEmmanuel Vadot      properties:
72e67e8565SEmmanuel Vadot        compatible:
73e67e8565SEmmanuel Vadot          contains:
74e67e8565SEmmanuel Vadot            const: samsung,exynos7885-cmu-core
75e67e8565SEmmanuel Vadot
76e67e8565SEmmanuel Vadot    then:
77e67e8565SEmmanuel Vadot      properties:
78e67e8565SEmmanuel Vadot        clocks:
79e67e8565SEmmanuel Vadot          items:
80e67e8565SEmmanuel Vadot            - description: External reference clock (26 MHz)
81e67e8565SEmmanuel Vadot            - description: CMU_CORE bus clock (from CMU_TOP)
82e67e8565SEmmanuel Vadot            - description: CCI clock (from CMU_TOP)
83e67e8565SEmmanuel Vadot            - description: G3D clock (from CMU_TOP)
84e67e8565SEmmanuel Vadot
85e67e8565SEmmanuel Vadot        clock-names:
86e67e8565SEmmanuel Vadot          items:
87e67e8565SEmmanuel Vadot            - const: oscclk
88e67e8565SEmmanuel Vadot            - const: dout_core_bus
89e67e8565SEmmanuel Vadot            - const: dout_core_cci
90e67e8565SEmmanuel Vadot            - const: dout_core_g3d
91e67e8565SEmmanuel Vadot
92e67e8565SEmmanuel Vadot  - if:
93e67e8565SEmmanuel Vadot      properties:
94e67e8565SEmmanuel Vadot        compatible:
95e67e8565SEmmanuel Vadot          contains:
96*b97ee269SEmmanuel Vadot            const: samsung,exynos7885-cmu-fsys
97*b97ee269SEmmanuel Vadot
98*b97ee269SEmmanuel Vadot    then:
99*b97ee269SEmmanuel Vadot      properties:
100*b97ee269SEmmanuel Vadot        clocks:
101*b97ee269SEmmanuel Vadot          items:
102*b97ee269SEmmanuel Vadot            - description: External reference clock (26 MHz)
103*b97ee269SEmmanuel Vadot            - description: CMU_FSYS bus clock (from CMU_TOP)
104*b97ee269SEmmanuel Vadot            - description: MMC_CARD clock (from CMU_TOP)
105*b97ee269SEmmanuel Vadot            - description: MMC_EMBD clock (from CMU_TOP)
106*b97ee269SEmmanuel Vadot            - description: MMC_SDIO clock (from CMU_TOP)
107*b97ee269SEmmanuel Vadot            - description: USB30DRD clock (from CMU_TOP)
108*b97ee269SEmmanuel Vadot
109*b97ee269SEmmanuel Vadot        clock-names:
110*b97ee269SEmmanuel Vadot          items:
111*b97ee269SEmmanuel Vadot            - const: oscclk
112*b97ee269SEmmanuel Vadot            - const: dout_fsys_bus
113*b97ee269SEmmanuel Vadot            - const: dout_fsys_mmc_card
114*b97ee269SEmmanuel Vadot            - const: dout_fsys_mmc_embd
115*b97ee269SEmmanuel Vadot            - const: dout_fsys_mmc_sdio
116*b97ee269SEmmanuel Vadot            - const: dout_fsys_usb30drd
117*b97ee269SEmmanuel Vadot
118*b97ee269SEmmanuel Vadot  - if:
119*b97ee269SEmmanuel Vadot      properties:
120*b97ee269SEmmanuel Vadot        compatible:
121*b97ee269SEmmanuel Vadot          contains:
122e67e8565SEmmanuel Vadot            const: samsung,exynos7885-cmu-peri
123e67e8565SEmmanuel Vadot
124e67e8565SEmmanuel Vadot    then:
125e67e8565SEmmanuel Vadot      properties:
126e67e8565SEmmanuel Vadot        clocks:
127e67e8565SEmmanuel Vadot          items:
128e67e8565SEmmanuel Vadot            - description: External reference clock (26 MHz)
129e67e8565SEmmanuel Vadot            - description: CMU_PERI bus clock (from CMU_TOP)
130e67e8565SEmmanuel Vadot            - description: SPI0 clock (from CMU_TOP)
131e67e8565SEmmanuel Vadot            - description: SPI1 clock (from CMU_TOP)
132e67e8565SEmmanuel Vadot            - description: UART0 clock (from CMU_TOP)
133e67e8565SEmmanuel Vadot            - description: UART1 clock (from CMU_TOP)
134e67e8565SEmmanuel Vadot            - description: UART2 clock (from CMU_TOP)
135e67e8565SEmmanuel Vadot            - description: USI0 clock (from CMU_TOP)
136e67e8565SEmmanuel Vadot            - description: USI1 clock (from CMU_TOP)
137e67e8565SEmmanuel Vadot            - description: USI2 clock (from CMU_TOP)
138e67e8565SEmmanuel Vadot
139e67e8565SEmmanuel Vadot        clock-names:
140e67e8565SEmmanuel Vadot          items:
141e67e8565SEmmanuel Vadot            - const: oscclk
142e67e8565SEmmanuel Vadot            - const: dout_peri_bus
143e67e8565SEmmanuel Vadot            - const: dout_peri_spi0
144e67e8565SEmmanuel Vadot            - const: dout_peri_spi1
145e67e8565SEmmanuel Vadot            - const: dout_peri_uart0
146e67e8565SEmmanuel Vadot            - const: dout_peri_uart1
147e67e8565SEmmanuel Vadot            - const: dout_peri_uart2
148e67e8565SEmmanuel Vadot            - const: dout_peri_usi0
149e67e8565SEmmanuel Vadot            - const: dout_peri_usi1
150e67e8565SEmmanuel Vadot            - const: dout_peri_usi2
151e67e8565SEmmanuel Vadot
152e67e8565SEmmanuel Vadotrequired:
153e67e8565SEmmanuel Vadot  - compatible
154e67e8565SEmmanuel Vadot  - "#clock-cells"
155e67e8565SEmmanuel Vadot  - clocks
156e67e8565SEmmanuel Vadot  - clock-names
157e67e8565SEmmanuel Vadot  - reg
158e67e8565SEmmanuel Vadot
159e67e8565SEmmanuel VadotadditionalProperties: false
160e67e8565SEmmanuel Vadot
161e67e8565SEmmanuel Vadotexamples:
162e67e8565SEmmanuel Vadot  # Clock controller node for CMU_PERI
163e67e8565SEmmanuel Vadot  - |
164e67e8565SEmmanuel Vadot    #include <dt-bindings/clock/exynos7885.h>
165e67e8565SEmmanuel Vadot
166e67e8565SEmmanuel Vadot    cmu_peri: clock-controller@10010000 {
167e67e8565SEmmanuel Vadot        compatible = "samsung,exynos7885-cmu-peri";
168e67e8565SEmmanuel Vadot        reg = <0x10010000 0x8000>;
169e67e8565SEmmanuel Vadot        #clock-cells = <1>;
170e67e8565SEmmanuel Vadot
171e67e8565SEmmanuel Vadot        clocks = <&oscclk>,
172e67e8565SEmmanuel Vadot                 <&cmu_top CLK_DOUT_PERI_BUS>,
173e67e8565SEmmanuel Vadot                 <&cmu_top CLK_DOUT_PERI_SPI0>,
174e67e8565SEmmanuel Vadot                 <&cmu_top CLK_DOUT_PERI_SPI1>,
175e67e8565SEmmanuel Vadot                 <&cmu_top CLK_DOUT_PERI_UART0>,
176e67e8565SEmmanuel Vadot                 <&cmu_top CLK_DOUT_PERI_UART1>,
177e67e8565SEmmanuel Vadot                 <&cmu_top CLK_DOUT_PERI_UART2>,
178e67e8565SEmmanuel Vadot                 <&cmu_top CLK_DOUT_PERI_USI0>,
179e67e8565SEmmanuel Vadot                 <&cmu_top CLK_DOUT_PERI_USI1>,
180e67e8565SEmmanuel Vadot                 <&cmu_top CLK_DOUT_PERI_USI2>;
181e67e8565SEmmanuel Vadot        clock-names = "oscclk",
182e67e8565SEmmanuel Vadot                      "dout_peri_bus",
183e67e8565SEmmanuel Vadot                      "dout_peri_spi0",
184e67e8565SEmmanuel Vadot                      "dout_peri_spi1",
185e67e8565SEmmanuel Vadot                      "dout_peri_uart0",
186e67e8565SEmmanuel Vadot                      "dout_peri_uart1",
187e67e8565SEmmanuel Vadot                      "dout_peri_uart2",
188e67e8565SEmmanuel Vadot                      "dout_peri_usi0",
189e67e8565SEmmanuel Vadot                      "dout_peri_usi1",
190e67e8565SEmmanuel Vadot                      "dout_peri_usi2";
191e67e8565SEmmanuel Vadot    };
192e67e8565SEmmanuel Vadot
193e67e8565SEmmanuel Vadot...
194