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