xref: /linux/Documentation/devicetree/bindings/clock/renesas,cpg-clocks.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1d9563c97SGeert Uytterhoeven# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2d9563c97SGeert Uytterhoeven%YAML 1.2
3d9563c97SGeert Uytterhoeven---
4d9563c97SGeert Uytterhoeven$id: http://devicetree.org/schemas/clock/renesas,cpg-clocks.yaml#
5d9563c97SGeert Uytterhoeven$schema: http://devicetree.org/meta-schemas/core.yaml#
6d9563c97SGeert Uytterhoeven
7d9563c97SGeert Uytterhoeventitle: Renesas Clock Pulse Generator (CPG)
8d9563c97SGeert Uytterhoeven
9d9563c97SGeert Uytterhoevenmaintainers:
10d9563c97SGeert Uytterhoeven  - Geert Uytterhoeven <geert+renesas@glider.be>
11d9563c97SGeert Uytterhoeven
12d9563c97SGeert Uytterhoevendescription:
13d9563c97SGeert Uytterhoeven  The Clock Pulse Generator (CPG) generates core clocks for the SoC.  It
14d9563c97SGeert Uytterhoeven  includes PLLs, and fixed and variable ratio dividers.
15d9563c97SGeert Uytterhoeven
16d9563c97SGeert Uytterhoeven  The CPG may also provide a Clock Domain for SoC devices, in combination with
17d9563c97SGeert Uytterhoeven  the CPG Module Stop (MSTP) Clocks.
18d9563c97SGeert Uytterhoeven
19d9563c97SGeert Uytterhoevenproperties:
20d9563c97SGeert Uytterhoeven  compatible:
21d9563c97SGeert Uytterhoeven    oneOf:
22d9563c97SGeert Uytterhoeven      - const: renesas,r8a73a4-cpg-clocks     # R-Mobile APE6
23d9563c97SGeert Uytterhoeven      - const: renesas,r8a7740-cpg-clocks     # R-Mobile A1
24d9563c97SGeert Uytterhoeven      - const: renesas,r8a7778-cpg-clocks     # R-Car M1
25d9563c97SGeert Uytterhoeven      - const: renesas,r8a7779-cpg-clocks     # R-Car H1
26d9563c97SGeert Uytterhoeven      - items:
27d9563c97SGeert Uytterhoeven          - enum:
28d9563c97SGeert Uytterhoeven              - renesas,r7s72100-cpg-clocks   # RZ/A1H
29d9563c97SGeert Uytterhoeven          - const: renesas,rz-cpg-clocks      # RZ/A1
30d9563c97SGeert Uytterhoeven      - const: renesas,sh73a0-cpg-clocks      # SH-Mobile AG5
31d9563c97SGeert Uytterhoeven
32d9563c97SGeert Uytterhoeven  reg:
33d9563c97SGeert Uytterhoeven    maxItems: 1
34d9563c97SGeert Uytterhoeven
35*0dec2d0cSKrzysztof Kozlowski  clocks:
36*0dec2d0cSKrzysztof Kozlowski    minItems: 1
37*0dec2d0cSKrzysztof Kozlowski    maxItems: 3
38d9563c97SGeert Uytterhoeven
39d9563c97SGeert Uytterhoeven  '#clock-cells':
40d9563c97SGeert Uytterhoeven    const: 1
41d9563c97SGeert Uytterhoeven
42*0dec2d0cSKrzysztof Kozlowski  clock-output-names:
43*0dec2d0cSKrzysztof Kozlowski    minItems: 3
44*0dec2d0cSKrzysztof Kozlowski    maxItems: 17
45d9563c97SGeert Uytterhoeven
46d9563c97SGeert Uytterhoeven  renesas,mode:
47d9563c97SGeert Uytterhoeven    description: Board-specific settings of the MD_CK* bits on R-Mobile A1
48d9563c97SGeert Uytterhoeven    $ref: /schemas/types.yaml#/definitions/uint32
49d9563c97SGeert Uytterhoeven    minimum: 0
50d9563c97SGeert Uytterhoeven    maximum: 7
51d9563c97SGeert Uytterhoeven
52d9563c97SGeert Uytterhoeven  '#power-domain-cells':
53d9563c97SGeert Uytterhoeven    const: 0
54d9563c97SGeert Uytterhoeven
55d9563c97SGeert Uytterhoevenrequired:
56d9563c97SGeert Uytterhoeven  - compatible
57d9563c97SGeert Uytterhoeven  - reg
58d9563c97SGeert Uytterhoeven  - clocks
59d9563c97SGeert Uytterhoeven  - '#clock-cells'
60d9563c97SGeert Uytterhoeven  - clock-output-names
61d9563c97SGeert Uytterhoeven
62d9563c97SGeert UytterhoevenallOf:
63d9563c97SGeert Uytterhoeven  - if:
64d9563c97SGeert Uytterhoeven      properties:
65d9563c97SGeert Uytterhoeven        compatible:
66d9563c97SGeert Uytterhoeven          contains:
67d9563c97SGeert Uytterhoeven            const: renesas,r8a73a4-cpg-clocks
68d9563c97SGeert Uytterhoeven    then:
69d9563c97SGeert Uytterhoeven      properties:
70d9563c97SGeert Uytterhoeven        clocks:
71d9563c97SGeert Uytterhoeven          items:
72d9563c97SGeert Uytterhoeven            - description: extal1
73d9563c97SGeert Uytterhoeven            - description: extal2
74d9563c97SGeert Uytterhoeven
75d9563c97SGeert Uytterhoeven        clock-output-names:
76d9563c97SGeert Uytterhoeven          items:
77d9563c97SGeert Uytterhoeven            - const: main
78d9563c97SGeert Uytterhoeven            - const: pll0
79d9563c97SGeert Uytterhoeven            - const: pll1
80d9563c97SGeert Uytterhoeven            - const: pll2
81d9563c97SGeert Uytterhoeven            - const: pll2s
82d9563c97SGeert Uytterhoeven            - const: pll2h
83d9563c97SGeert Uytterhoeven            - const: z
84d9563c97SGeert Uytterhoeven            - const: z2
85d9563c97SGeert Uytterhoeven            - const: i
86d9563c97SGeert Uytterhoeven            - const: m3
87d9563c97SGeert Uytterhoeven            - const: b
88d9563c97SGeert Uytterhoeven            - const: m1
89d9563c97SGeert Uytterhoeven            - const: m2
90d9563c97SGeert Uytterhoeven            - const: zx
91d9563c97SGeert Uytterhoeven            - const: zs
92d9563c97SGeert Uytterhoeven            - const: hp
93d9563c97SGeert Uytterhoeven
94d9563c97SGeert Uytterhoeven  - if:
95d9563c97SGeert Uytterhoeven      properties:
96d9563c97SGeert Uytterhoeven        compatible:
97d9563c97SGeert Uytterhoeven          contains:
98d9563c97SGeert Uytterhoeven            const: renesas,r8a7740-cpg-clocks
99d9563c97SGeert Uytterhoeven    then:
100d9563c97SGeert Uytterhoeven      properties:
101d9563c97SGeert Uytterhoeven        clocks:
102d9563c97SGeert Uytterhoeven          items:
103d9563c97SGeert Uytterhoeven            - description: extal1
104d9563c97SGeert Uytterhoeven            - description: extal2
105d9563c97SGeert Uytterhoeven            - description: extalr
106d9563c97SGeert Uytterhoeven
107d9563c97SGeert Uytterhoeven        clock-output-names:
108d9563c97SGeert Uytterhoeven          items:
109d9563c97SGeert Uytterhoeven            - const: system
110d9563c97SGeert Uytterhoeven            - const: pllc0
111d9563c97SGeert Uytterhoeven            - const: pllc1
112d9563c97SGeert Uytterhoeven            - const: pllc2
113d9563c97SGeert Uytterhoeven            - const: r
114d9563c97SGeert Uytterhoeven            - const: usb24s
115d9563c97SGeert Uytterhoeven            - const: i
116d9563c97SGeert Uytterhoeven            - const: zg
117d9563c97SGeert Uytterhoeven            - const: b
118d9563c97SGeert Uytterhoeven            - const: m1
119d9563c97SGeert Uytterhoeven            - const: hp
120d9563c97SGeert Uytterhoeven            - const: hpp
121d9563c97SGeert Uytterhoeven            - const: usbp
122d9563c97SGeert Uytterhoeven            - const: s
123d9563c97SGeert Uytterhoeven            - const: zb
124d9563c97SGeert Uytterhoeven            - const: m3
125d9563c97SGeert Uytterhoeven            - const: cp
126d9563c97SGeert Uytterhoeven
127d9563c97SGeert Uytterhoeven      required:
128d9563c97SGeert Uytterhoeven        - renesas,mode
129d9563c97SGeert Uytterhoeven
130d9563c97SGeert Uytterhoeven  - if:
131d9563c97SGeert Uytterhoeven      properties:
132d9563c97SGeert Uytterhoeven        compatible:
133d9563c97SGeert Uytterhoeven          contains:
134d9563c97SGeert Uytterhoeven            const: renesas,r8a7778-cpg-clocks
135d9563c97SGeert Uytterhoeven    then:
136d9563c97SGeert Uytterhoeven      properties:
137d9563c97SGeert Uytterhoeven        clocks:
138d9563c97SGeert Uytterhoeven          maxItems: 1
139d9563c97SGeert Uytterhoeven
140d9563c97SGeert Uytterhoeven        clock-output-names:
141d9563c97SGeert Uytterhoeven          items:
142d9563c97SGeert Uytterhoeven            - const: plla
143d9563c97SGeert Uytterhoeven            - const: pllb
144d9563c97SGeert Uytterhoeven            - const: b
145d9563c97SGeert Uytterhoeven            - const: out
146d9563c97SGeert Uytterhoeven            - const: p
147d9563c97SGeert Uytterhoeven            - const: s
148d9563c97SGeert Uytterhoeven            - const: s1
149d9563c97SGeert Uytterhoeven
150d9563c97SGeert Uytterhoeven  - if:
151d9563c97SGeert Uytterhoeven      properties:
152d9563c97SGeert Uytterhoeven        compatible:
153d9563c97SGeert Uytterhoeven          contains:
154d9563c97SGeert Uytterhoeven            const: renesas,r8a7779-cpg-clocks
155d9563c97SGeert Uytterhoeven    then:
156d9563c97SGeert Uytterhoeven      properties:
157d9563c97SGeert Uytterhoeven        clocks:
158d9563c97SGeert Uytterhoeven          maxItems: 1
159d9563c97SGeert Uytterhoeven
160d9563c97SGeert Uytterhoeven        clock-output-names:
161d9563c97SGeert Uytterhoeven          items:
162d9563c97SGeert Uytterhoeven            - const: plla
163d9563c97SGeert Uytterhoeven            - const: z
164d9563c97SGeert Uytterhoeven            - const: zs
165d9563c97SGeert Uytterhoeven            - const: s
166d9563c97SGeert Uytterhoeven            - const: s1
167d9563c97SGeert Uytterhoeven            - const: p
168d9563c97SGeert Uytterhoeven            - const: b
169d9563c97SGeert Uytterhoeven            - const: out
170d9563c97SGeert Uytterhoeven
171d9563c97SGeert Uytterhoeven  - if:
172d9563c97SGeert Uytterhoeven      properties:
173d9563c97SGeert Uytterhoeven        compatible:
174d9563c97SGeert Uytterhoeven          contains:
175d9563c97SGeert Uytterhoeven            const: renesas,r7s72100-cpg-clocks
176d9563c97SGeert Uytterhoeven    then:
177d9563c97SGeert Uytterhoeven      properties:
178d9563c97SGeert Uytterhoeven        clocks:
179d9563c97SGeert Uytterhoeven          items:
180d9563c97SGeert Uytterhoeven            - description: extal1
181d9563c97SGeert Uytterhoeven            - description: usb_x1
182d9563c97SGeert Uytterhoeven
183d9563c97SGeert Uytterhoeven        clock-output-names:
184d9563c97SGeert Uytterhoeven          items:
185d9563c97SGeert Uytterhoeven            - const: pll
186d9563c97SGeert Uytterhoeven            - const: i
187d9563c97SGeert Uytterhoeven            - const: g
188d9563c97SGeert Uytterhoeven
189d9563c97SGeert Uytterhoeven  - if:
190d9563c97SGeert Uytterhoeven      properties:
191d9563c97SGeert Uytterhoeven        compatible:
192d9563c97SGeert Uytterhoeven          contains:
193d9563c97SGeert Uytterhoeven            const: renesas,sh73a0-cpg-clocks
194d9563c97SGeert Uytterhoeven    then:
195d9563c97SGeert Uytterhoeven      properties:
196d9563c97SGeert Uytterhoeven        clocks:
197d9563c97SGeert Uytterhoeven          items:
198d9563c97SGeert Uytterhoeven            - description: extal1
199d9563c97SGeert Uytterhoeven            - description: extal2
200d9563c97SGeert Uytterhoeven
201d9563c97SGeert Uytterhoeven        clock-output-names:
202d9563c97SGeert Uytterhoeven          items:
203d9563c97SGeert Uytterhoeven            - const: main
204d9563c97SGeert Uytterhoeven            - const: pll0
205d9563c97SGeert Uytterhoeven            - const: pll1
206d9563c97SGeert Uytterhoeven            - const: pll2
207d9563c97SGeert Uytterhoeven            - const: pll3
208d9563c97SGeert Uytterhoeven            - const: dsi0phy
209d9563c97SGeert Uytterhoeven            - const: dsi1phy
210d9563c97SGeert Uytterhoeven            - const: zg
211d9563c97SGeert Uytterhoeven            - const: m3
212d9563c97SGeert Uytterhoeven            - const: b
213d9563c97SGeert Uytterhoeven            - const: m1
214d9563c97SGeert Uytterhoeven            - const: m2
215d9563c97SGeert Uytterhoeven            - const: z
216d9563c97SGeert Uytterhoeven            - const: zx
217d9563c97SGeert Uytterhoeven            - const: hp
218d9563c97SGeert Uytterhoeven
219d9563c97SGeert Uytterhoeven  - if:
220d9563c97SGeert Uytterhoeven      properties:
221d9563c97SGeert Uytterhoeven        compatible:
222d9563c97SGeert Uytterhoeven          contains:
223d9563c97SGeert Uytterhoeven            enum:
224d9563c97SGeert Uytterhoeven              - renesas,r8a7778-cpg-clocks
225d9563c97SGeert Uytterhoeven              - renesas,r8a7779-cpg-clocks
226d9563c97SGeert Uytterhoeven              - renesas,rz-cpg-clocks
227d9563c97SGeert Uytterhoeven    then:
228d9563c97SGeert Uytterhoeven      required:
229d9563c97SGeert Uytterhoeven        - '#power-domain-cells'
230d9563c97SGeert Uytterhoeven
231d9563c97SGeert UytterhoevenadditionalProperties: false
232d9563c97SGeert Uytterhoeven
233d9563c97SGeert Uytterhoevenexamples:
234d9563c97SGeert Uytterhoeven  - |
235d9563c97SGeert Uytterhoeven    #include <dt-bindings/clock/r8a7740-clock.h>
236d9563c97SGeert Uytterhoeven    cpg_clocks: cpg_clocks@e6150000 {
237d9563c97SGeert Uytterhoeven            compatible = "renesas,r8a7740-cpg-clocks";
238d9563c97SGeert Uytterhoeven            reg = <0xe6150000 0x10000>;
239d9563c97SGeert Uytterhoeven            clocks = <&extal1_clk>, <&extal2_clk>, <&extalr_clk>;
240d9563c97SGeert Uytterhoeven            #clock-cells = <1>;
241d9563c97SGeert Uytterhoeven            clock-output-names = "system", "pllc0", "pllc1", "pllc2", "r",
242d9563c97SGeert Uytterhoeven                                 "usb24s", "i", "zg", "b", "m1", "hp", "hpp",
243d9563c97SGeert Uytterhoeven                                 "usbp", "s", "zb", "m3", "cp";
244d9563c97SGeert Uytterhoeven            renesas,mode = <0x05>;
245d9563c97SGeert Uytterhoeven    };
246