162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/clock/renesas,cpg-mssr.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Renesas Clock Pulse Generator / Module Standby and Software Reset 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Geert Uytterhoeven <geert+renesas@glider.be> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci On Renesas ARM SoCs (SH/R-Mobile, R-Car, RZ), the CPG (Clock Pulse Generator) 1462306a36Sopenharmony_ci and MSSR (Module Standby and Software Reset) blocks are intimately connected, 1562306a36Sopenharmony_ci and share the same register block. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci They provide the following functionalities: 1862306a36Sopenharmony_ci - The CPG block generates various core clocks, 1962306a36Sopenharmony_ci - The MSSR block provides two functions: 2062306a36Sopenharmony_ci 1. Module Standby, providing a Clock Domain to control the clock supply 2162306a36Sopenharmony_ci to individual SoC devices, 2262306a36Sopenharmony_ci 2. Reset Control, to perform a software reset of individual SoC devices. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciproperties: 2562306a36Sopenharmony_ci compatible: 2662306a36Sopenharmony_ci enum: 2762306a36Sopenharmony_ci - renesas,r7s9210-cpg-mssr # RZ/A2 2862306a36Sopenharmony_ci - renesas,r8a7742-cpg-mssr # RZ/G1H 2962306a36Sopenharmony_ci - renesas,r8a7743-cpg-mssr # RZ/G1M 3062306a36Sopenharmony_ci - renesas,r8a7744-cpg-mssr # RZ/G1N 3162306a36Sopenharmony_ci - renesas,r8a7745-cpg-mssr # RZ/G1E 3262306a36Sopenharmony_ci - renesas,r8a77470-cpg-mssr # RZ/G1C 3362306a36Sopenharmony_ci - renesas,r8a774a1-cpg-mssr # RZ/G2M 3462306a36Sopenharmony_ci - renesas,r8a774b1-cpg-mssr # RZ/G2N 3562306a36Sopenharmony_ci - renesas,r8a774c0-cpg-mssr # RZ/G2E 3662306a36Sopenharmony_ci - renesas,r8a774e1-cpg-mssr # RZ/G2H 3762306a36Sopenharmony_ci - renesas,r8a7790-cpg-mssr # R-Car H2 3862306a36Sopenharmony_ci - renesas,r8a7791-cpg-mssr # R-Car M2-W 3962306a36Sopenharmony_ci - renesas,r8a7792-cpg-mssr # R-Car V2H 4062306a36Sopenharmony_ci - renesas,r8a7793-cpg-mssr # R-Car M2-N 4162306a36Sopenharmony_ci - renesas,r8a7794-cpg-mssr # R-Car E2 4262306a36Sopenharmony_ci - renesas,r8a7795-cpg-mssr # R-Car H3 4362306a36Sopenharmony_ci - renesas,r8a7796-cpg-mssr # R-Car M3-W 4462306a36Sopenharmony_ci - renesas,r8a77961-cpg-mssr # R-Car M3-W+ 4562306a36Sopenharmony_ci - renesas,r8a77965-cpg-mssr # R-Car M3-N 4662306a36Sopenharmony_ci - renesas,r8a77970-cpg-mssr # R-Car V3M 4762306a36Sopenharmony_ci - renesas,r8a77980-cpg-mssr # R-Car V3H 4862306a36Sopenharmony_ci - renesas,r8a77990-cpg-mssr # R-Car E3 4962306a36Sopenharmony_ci - renesas,r8a77995-cpg-mssr # R-Car D3 5062306a36Sopenharmony_ci - renesas,r8a779a0-cpg-mssr # R-Car V3U 5162306a36Sopenharmony_ci - renesas,r8a779f0-cpg-mssr # R-Car S4-8 5262306a36Sopenharmony_ci - renesas,r8a779g0-cpg-mssr # R-Car V4H 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci reg: 5562306a36Sopenharmony_ci maxItems: 1 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci clocks: 5862306a36Sopenharmony_ci minItems: 1 5962306a36Sopenharmony_ci maxItems: 2 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci clock-names: 6262306a36Sopenharmony_ci minItems: 1 6362306a36Sopenharmony_ci maxItems: 2 6462306a36Sopenharmony_ci items: 6562306a36Sopenharmony_ci enum: 6662306a36Sopenharmony_ci - extal # All 6762306a36Sopenharmony_ci - extalr # Most R-Car Gen3 and RZ/G2 6862306a36Sopenharmony_ci - usb_extal # Most R-Car Gen2 and RZ/G1 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci '#clock-cells': 7162306a36Sopenharmony_ci description: | 7262306a36Sopenharmony_ci - For CPG core clocks, the two clock specifier cells must be "CPG_CORE" 7362306a36Sopenharmony_ci and a core clock reference, as defined in 7462306a36Sopenharmony_ci <dt-bindings/clock/*-cpg-mssr.h> 7562306a36Sopenharmony_ci - For module clocks, the two clock specifier cells must be "CPG_MOD" and 7662306a36Sopenharmony_ci a module number, as defined in the datasheet. 7762306a36Sopenharmony_ci const: 2 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci '#power-domain-cells': 8062306a36Sopenharmony_ci description: 8162306a36Sopenharmony_ci SoC devices that are part of the CPG/MSSR Clock Domain and can be 8262306a36Sopenharmony_ci power-managed through Module Standby should refer to the CPG device node 8362306a36Sopenharmony_ci in their "power-domains" property, as documented by the generic PM Domain 8462306a36Sopenharmony_ci bindings in Documentation/devicetree/bindings/power/power-domain.yaml. 8562306a36Sopenharmony_ci const: 0 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci '#reset-cells': 8862306a36Sopenharmony_ci description: 8962306a36Sopenharmony_ci The single reset specifier cell must be the module number, as defined in 9062306a36Sopenharmony_ci the datasheet. 9162306a36Sopenharmony_ci const: 1 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ciif: 9462306a36Sopenharmony_ci not: 9562306a36Sopenharmony_ci properties: 9662306a36Sopenharmony_ci compatible: 9762306a36Sopenharmony_ci items: 9862306a36Sopenharmony_ci enum: 9962306a36Sopenharmony_ci - renesas,r7s9210-cpg-mssr 10062306a36Sopenharmony_cithen: 10162306a36Sopenharmony_ci required: 10262306a36Sopenharmony_ci - '#reset-cells' 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_cirequired: 10562306a36Sopenharmony_ci - compatible 10662306a36Sopenharmony_ci - reg 10762306a36Sopenharmony_ci - clocks 10862306a36Sopenharmony_ci - clock-names 10962306a36Sopenharmony_ci - '#clock-cells' 11062306a36Sopenharmony_ci - '#power-domain-cells' 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ciadditionalProperties: false 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ciexamples: 11562306a36Sopenharmony_ci - | 11662306a36Sopenharmony_ci cpg: clock-controller@e6150000 { 11762306a36Sopenharmony_ci compatible = "renesas,r8a7795-cpg-mssr"; 11862306a36Sopenharmony_ci reg = <0xe6150000 0x1000>; 11962306a36Sopenharmony_ci clocks = <&extal_clk>, <&extalr_clk>; 12062306a36Sopenharmony_ci clock-names = "extal", "extalr"; 12162306a36Sopenharmony_ci #clock-cells = <2>; 12262306a36Sopenharmony_ci #power-domain-cells = <0>; 12362306a36Sopenharmony_ci #reset-cells = <1>; 12462306a36Sopenharmony_ci }; 125