1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: "http://devicetree.org/schemas/clock/renesas,cpg-mssr.yaml#" 5*4882a593Smuzhiyun$schema: "http://devicetree.org/meta-schemas/core.yaml#" 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: Renesas Clock Pulse Generator / Module Standby and Software Reset 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmaintainers: 10*4882a593Smuzhiyun - Geert Uytterhoeven <geert+renesas@glider.be> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyundescription: | 13*4882a593Smuzhiyun On Renesas ARM SoCs (SH/R-Mobile, R-Car, RZ), the CPG (Clock Pulse Generator) 14*4882a593Smuzhiyun and MSSR (Module Standby and Software Reset) blocks are intimately connected, 15*4882a593Smuzhiyun and share the same register block. 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun They provide the following functionalities: 18*4882a593Smuzhiyun - The CPG block generates various core clocks, 19*4882a593Smuzhiyun - The MSSR block provides two functions: 20*4882a593Smuzhiyun 1. Module Standby, providing a Clock Domain to control the clock supply 21*4882a593Smuzhiyun to individual SoC devices, 22*4882a593Smuzhiyun 2. Reset Control, to perform a software reset of individual SoC devices. 23*4882a593Smuzhiyun 24*4882a593Smuzhiyunproperties: 25*4882a593Smuzhiyun compatible: 26*4882a593Smuzhiyun enum: 27*4882a593Smuzhiyun - renesas,r7s9210-cpg-mssr # RZ/A2 28*4882a593Smuzhiyun - renesas,r8a7742-cpg-mssr # RZ/G1H 29*4882a593Smuzhiyun - renesas,r8a7743-cpg-mssr # RZ/G1M 30*4882a593Smuzhiyun - renesas,r8a7744-cpg-mssr # RZ/G1N 31*4882a593Smuzhiyun - renesas,r8a7745-cpg-mssr # RZ/G1E 32*4882a593Smuzhiyun - renesas,r8a77470-cpg-mssr # RZ/G1C 33*4882a593Smuzhiyun - renesas,r8a774a1-cpg-mssr # RZ/G2M 34*4882a593Smuzhiyun - renesas,r8a774b1-cpg-mssr # RZ/G2N 35*4882a593Smuzhiyun - renesas,r8a774c0-cpg-mssr # RZ/G2E 36*4882a593Smuzhiyun - renesas,r8a774e1-cpg-mssr # RZ/G2H 37*4882a593Smuzhiyun - renesas,r8a7790-cpg-mssr # R-Car H2 38*4882a593Smuzhiyun - renesas,r8a7791-cpg-mssr # R-Car M2-W 39*4882a593Smuzhiyun - renesas,r8a7792-cpg-mssr # R-Car V2H 40*4882a593Smuzhiyun - renesas,r8a7793-cpg-mssr # R-Car M2-N 41*4882a593Smuzhiyun - renesas,r8a7794-cpg-mssr # R-Car E2 42*4882a593Smuzhiyun - renesas,r8a7795-cpg-mssr # R-Car H3 43*4882a593Smuzhiyun - renesas,r8a7796-cpg-mssr # R-Car M3-W 44*4882a593Smuzhiyun - renesas,r8a77961-cpg-mssr # R-Car M3-W+ 45*4882a593Smuzhiyun - renesas,r8a77965-cpg-mssr # R-Car M3-N 46*4882a593Smuzhiyun - renesas,r8a77970-cpg-mssr # R-Car V3M 47*4882a593Smuzhiyun - renesas,r8a77980-cpg-mssr # R-Car V3H 48*4882a593Smuzhiyun - renesas,r8a77990-cpg-mssr # R-Car E3 49*4882a593Smuzhiyun - renesas,r8a77995-cpg-mssr # R-Car D3 50*4882a593Smuzhiyun - renesas,r8a779a0-cpg-mssr # R-Car V3U 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun reg: 53*4882a593Smuzhiyun maxItems: 1 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun clocks: 56*4882a593Smuzhiyun minItems: 1 57*4882a593Smuzhiyun maxItems: 2 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun clock-names: 60*4882a593Smuzhiyun minItems: 1 61*4882a593Smuzhiyun maxItems: 2 62*4882a593Smuzhiyun items: 63*4882a593Smuzhiyun enum: 64*4882a593Smuzhiyun - extal # All 65*4882a593Smuzhiyun - extalr # Most R-Car Gen3 and RZ/G2 66*4882a593Smuzhiyun - usb_extal # Most R-Car Gen2 and RZ/G1 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun '#clock-cells': 69*4882a593Smuzhiyun description: | 70*4882a593Smuzhiyun - For CPG core clocks, the two clock specifier cells must be "CPG_CORE" 71*4882a593Smuzhiyun and a core clock reference, as defined in 72*4882a593Smuzhiyun <dt-bindings/clock/*-cpg-mssr.h> 73*4882a593Smuzhiyun - For module clocks, the two clock specifier cells must be "CPG_MOD" and 74*4882a593Smuzhiyun a module number, as defined in the datasheet. 75*4882a593Smuzhiyun const: 2 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun '#power-domain-cells': 78*4882a593Smuzhiyun description: 79*4882a593Smuzhiyun SoC devices that are part of the CPG/MSSR Clock Domain and can be 80*4882a593Smuzhiyun power-managed through Module Standby should refer to the CPG device node 81*4882a593Smuzhiyun in their "power-domains" property, as documented by the generic PM Domain 82*4882a593Smuzhiyun bindings in Documentation/devicetree/bindings/power/power-domain.yaml. 83*4882a593Smuzhiyun const: 0 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun '#reset-cells': 86*4882a593Smuzhiyun description: 87*4882a593Smuzhiyun The single reset specifier cell must be the module number, as defined in 88*4882a593Smuzhiyun the datasheet. 89*4882a593Smuzhiyun const: 1 90*4882a593Smuzhiyun 91*4882a593Smuzhiyunif: 92*4882a593Smuzhiyun not: 93*4882a593Smuzhiyun properties: 94*4882a593Smuzhiyun compatible: 95*4882a593Smuzhiyun items: 96*4882a593Smuzhiyun enum: 97*4882a593Smuzhiyun - renesas,r7s9210-cpg-mssr 98*4882a593Smuzhiyunthen: 99*4882a593Smuzhiyun required: 100*4882a593Smuzhiyun - '#reset-cells' 101*4882a593Smuzhiyun 102*4882a593Smuzhiyunrequired: 103*4882a593Smuzhiyun - compatible 104*4882a593Smuzhiyun - reg 105*4882a593Smuzhiyun - clocks 106*4882a593Smuzhiyun - clock-names 107*4882a593Smuzhiyun - '#clock-cells' 108*4882a593Smuzhiyun - '#power-domain-cells' 109*4882a593Smuzhiyun 110*4882a593SmuzhiyunadditionalProperties: false 111*4882a593Smuzhiyun 112*4882a593Smuzhiyunexamples: 113*4882a593Smuzhiyun - | 114*4882a593Smuzhiyun cpg: clock-controller@e6150000 { 115*4882a593Smuzhiyun compatible = "renesas,r8a7795-cpg-mssr"; 116*4882a593Smuzhiyun reg = <0xe6150000 0x1000>; 117*4882a593Smuzhiyun clocks = <&extal_clk>, <&extalr_clk>; 118*4882a593Smuzhiyun clock-names = "extal", "extalr"; 119*4882a593Smuzhiyun #clock-cells = <2>; 120*4882a593Smuzhiyun #power-domain-cells = <0>; 121*4882a593Smuzhiyun #reset-cells = <1>; 122*4882a593Smuzhiyun }; 123