Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: "http://devicetree.org/schemas/clock/renesas,cpg-mssr.yaml#"
0005 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0006 
0007 title: Renesas Clock Pulse Generator / Module Standby and Software Reset
0008 
0009 maintainers:
0010   - Geert Uytterhoeven <geert+renesas@glider.be>
0011 
0012 description: |
0013   On Renesas ARM SoCs (SH/R-Mobile, R-Car, RZ), the CPG (Clock Pulse Generator)
0014   and MSSR (Module Standby and Software Reset) blocks are intimately connected,
0015   and share the same register block.
0016 
0017   They provide the following functionalities:
0018     - The CPG block generates various core clocks,
0019     - The MSSR block provides two functions:
0020         1. Module Standby, providing a Clock Domain to control the clock supply
0021            to individual SoC devices,
0022         2. Reset Control, to perform a software reset of individual SoC devices.
0023 
0024 properties:
0025   compatible:
0026     enum:
0027       - renesas,r7s9210-cpg-mssr  # RZ/A2
0028       - renesas,r8a7742-cpg-mssr  # RZ/G1H
0029       - renesas,r8a7743-cpg-mssr  # RZ/G1M
0030       - renesas,r8a7744-cpg-mssr  # RZ/G1N
0031       - renesas,r8a7745-cpg-mssr  # RZ/G1E
0032       - renesas,r8a77470-cpg-mssr # RZ/G1C
0033       - renesas,r8a774a1-cpg-mssr # RZ/G2M
0034       - renesas,r8a774b1-cpg-mssr # RZ/G2N
0035       - renesas,r8a774c0-cpg-mssr # RZ/G2E
0036       - renesas,r8a774e1-cpg-mssr # RZ/G2H
0037       - renesas,r8a7790-cpg-mssr  # R-Car H2
0038       - renesas,r8a7791-cpg-mssr  # R-Car M2-W
0039       - renesas,r8a7792-cpg-mssr  # R-Car V2H
0040       - renesas,r8a7793-cpg-mssr  # R-Car M2-N
0041       - renesas,r8a7794-cpg-mssr  # R-Car E2
0042       - renesas,r8a7795-cpg-mssr  # R-Car H3
0043       - renesas,r8a7796-cpg-mssr  # R-Car M3-W
0044       - renesas,r8a77961-cpg-mssr # R-Car M3-W+
0045       - renesas,r8a77965-cpg-mssr # R-Car M3-N
0046       - renesas,r8a77970-cpg-mssr # R-Car V3M
0047       - renesas,r8a77980-cpg-mssr # R-Car V3H
0048       - renesas,r8a77990-cpg-mssr # R-Car E3
0049       - renesas,r8a77995-cpg-mssr # R-Car D3
0050       - renesas,r8a779a0-cpg-mssr # R-Car V3U
0051       - renesas,r8a779f0-cpg-mssr # R-Car S4-8
0052       - renesas,r8a779g0-cpg-mssr # R-Car V4H
0053 
0054   reg:
0055     maxItems: 1
0056 
0057   clocks:
0058     minItems: 1
0059     maxItems: 2
0060 
0061   clock-names:
0062     minItems: 1
0063     maxItems: 2
0064     items:
0065       enum:
0066         - extal     # All
0067         - extalr    # Most R-Car Gen3 and RZ/G2
0068         - usb_extal # Most R-Car Gen2 and RZ/G1
0069 
0070   '#clock-cells':
0071     description: |
0072       - For CPG core clocks, the two clock specifier cells must be "CPG_CORE"
0073         and a core clock reference, as defined in
0074         <dt-bindings/clock/*-cpg-mssr.h>
0075       - For module clocks, the two clock specifier cells must be "CPG_MOD" and
0076         a module number, as defined in the datasheet.
0077     const: 2
0078 
0079   '#power-domain-cells':
0080     description:
0081       SoC devices that are part of the CPG/MSSR Clock Domain and can be
0082       power-managed through Module Standby should refer to the CPG device node
0083       in their "power-domains" property, as documented by the generic PM Domain
0084       bindings in Documentation/devicetree/bindings/power/power-domain.yaml.
0085     const: 0
0086 
0087   '#reset-cells':
0088     description:
0089       The single reset specifier cell must be the module number, as defined in
0090       the datasheet.
0091     const: 1
0092 
0093 if:
0094   not:
0095     properties:
0096       compatible:
0097         items:
0098           enum:
0099             - renesas,r7s9210-cpg-mssr
0100 then:
0101   required:
0102     - '#reset-cells'
0103 
0104 required:
0105   - compatible
0106   - reg
0107   - clocks
0108   - clock-names
0109   - '#clock-cells'
0110   - '#power-domain-cells'
0111 
0112 additionalProperties: false
0113 
0114 examples:
0115   - |
0116     cpg: clock-controller@e6150000 {
0117             compatible = "renesas,r8a7795-cpg-mssr";
0118             reg = <0xe6150000 0x1000>;
0119             clocks = <&extal_clk>, <&extalr_clk>;
0120             clock-names = "extal", "extalr";
0121             #clock-cells = <2>;
0122             #power-domain-cells = <0>;
0123             #reset-cells = <1>;
0124     };