File Index
Files and directories
Sign in
FILE

renesas,cpg-clocks.yaml

File preview with syntax highlighting.

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