diff mbox series

[v2,07/12] dt-bindings: clock: renesas: Document RZ/G2L SoC CPG driver

Message ID 20210603221758.10305-8-prabhakar.mahadev-lad.rj@bp.renesas.com
State Superseded
Headers show
Series Add new Renesas RZ/G2L SoC and Renesas RZ/G2L SMARC EVK support | expand

Commit Message

Prabhakar Mahadev Lad June 3, 2021, 10:17 p.m. UTC
Document the device tree bindings of the Renesas RZ/G2L SoC clock
driver in Documentation/devicetree/bindings/clock/renesas,rzg2l-cpg.yaml.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
Acked-by: Rob Herring <robh@kernel.org>
---
 .../bindings/clock/renesas,rzg2l-cpg.yaml     | 80 +++++++++++++++++++
 1 file changed, 80 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/clock/renesas,rzg2l-cpg.yaml

Comments

Geert Uytterhoeven June 8, 2021, 3:08 p.m. UTC | #1
Hi Prabhakar,

On Fri, Jun 4, 2021 at 12:18 AM Lad Prabhakar
<prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
> Document the device tree bindings of the Renesas RZ/G2L SoC clock

> driver in Documentation/devicetree/bindings/clock/renesas,rzg2l-cpg.yaml.

>

> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

> Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>

> Acked-by: Rob Herring <robh@kernel.org>


IIRC, Rob gave his R-b, not his A-b.

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/clock/renesas,rzg2l-cpg.yaml

> @@ -0,0 +1,80 @@

> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)

> +%YAML 1.2

> +---

> +$id: "http://devicetree.org/schemas/clock/renesas,rzg2l-cpg.yaml#"

> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"

> +

> +title: Renesas RZ/G2L Clock Pulse Generator / Module Standby Mode

> +

> +maintainers:

> +  - Geert Uytterhoeven <geert+renesas@glider.be>

> +

> +description: |

> +  On Renesas RZ/G2L SoC, the CPG (Clock Pulse Generator) and Module

> +  Standby Mode share the same register block.

> +

> +  They provide the following functionalities:

> +    - The CPG block generates various core clocks,

> +    - The Module Standby Mode block provides two functions:

> +        1. Module Stop, providing a Clock Domain to control the clock supply

> +           to individual SoC devices,

> +        2. Reset Control, to perform a software reset of individual SoC devices.

> +

> +properties:

> +  compatible:

> +    const: renesas,r9a07g044-cpg  # RZ/G2{L,LC,UL}


Shouldn't RZ/G2UL use renesas,r9a07g043-cpg?

> +

> +  reg:

> +    maxItems: 1

> +

> +  clocks:

> +    maxItems: 1

> +

> +  clock-names:

> +    const: extal

> +

> +  '#clock-cells':

> +    description: |

> +      - For CPG core clocks, the two clock specifier cells must be "CPG_CORE"

> +        and a core clock reference, as defined in

> +        <dt-bindings/clock/r9a07g044l-cpg.h>


r9a07g044-cpg.h

> +      - For module clocks, the two clock specifier cells must be "CPG_MOD" and

> +        a module number, as defined in the <dt-bindings/clock/r9a07g044l-cpg.h>.


r9a07g044-cpg.h

> +    const: 2

> +

> +  '#power-domain-cells':

> +    description:

> +      SoC devices that are part of the CPG/Module Standby Mode Clock Domain and

> +      can be power-managed through Module Stop should refer to the CPG device


Module Standby

> +      node in their "power-domains" property, as documented by the generic PM

> +      Domain bindings in Documentation/devicetree/bindings/power/power-domain.yaml.

> +    const: 0

> +

> +  '#reset-cells':

> +    description:

> +      The single reset specifier cell must be the module number, as defined in

> +      the <dt-bindings/clock/r9a07g044l-cpg.h>.


r9a07g044-cpg.h

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/clock/renesas,rzg2l-cpg.yaml b/Documentation/devicetree/bindings/clock/renesas,rzg2l-cpg.yaml
new file mode 100644
index 000000000000..fe32d4daac32
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/renesas,rzg2l-cpg.yaml
@@ -0,0 +1,80 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/clock/renesas,rzg2l-cpg.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Renesas RZ/G2L Clock Pulse Generator / Module Standby Mode
+
+maintainers:
+  - Geert Uytterhoeven <geert+renesas@glider.be>
+
+description: |
+  On Renesas RZ/G2L SoC, the CPG (Clock Pulse Generator) and Module
+  Standby Mode share the same register block.
+
+  They provide the following functionalities:
+    - The CPG block generates various core clocks,
+    - The Module Standby Mode block provides two functions:
+        1. Module Stop, providing a Clock Domain to control the clock supply
+           to individual SoC devices,
+        2. Reset Control, to perform a software reset of individual SoC devices.
+
+properties:
+  compatible:
+    const: renesas,r9a07g044-cpg  # RZ/G2{L,LC,UL}
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: extal
+
+  '#clock-cells':
+    description: |
+      - For CPG core clocks, the two clock specifier cells must be "CPG_CORE"
+        and a core clock reference, as defined in
+        <dt-bindings/clock/r9a07g044l-cpg.h>
+      - For module clocks, the two clock specifier cells must be "CPG_MOD" and
+        a module number, as defined in the <dt-bindings/clock/r9a07g044l-cpg.h>.
+    const: 2
+
+  '#power-domain-cells':
+    description:
+      SoC devices that are part of the CPG/Module Standby Mode Clock Domain and
+      can be power-managed through Module Stop should refer to the CPG device
+      node in their "power-domains" property, as documented by the generic PM
+      Domain bindings in Documentation/devicetree/bindings/power/power-domain.yaml.
+    const: 0
+
+  '#reset-cells':
+    description:
+      The single reset specifier cell must be the module number, as defined in
+      the <dt-bindings/clock/r9a07g044l-cpg.h>.
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#clock-cells'
+  - '#power-domain-cells'
+  - '#reset-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    cpg: clock-controller@11010000 {
+            compatible = "renesas,r9a07g044-cpg";
+            reg = <0x11010000 0x10000>;
+            clocks = <&extal_clk>;
+            clock-names = "extal";
+            #clock-cells = <2>;
+            #power-domain-cells = <0>;
+            #reset-cells = <1>;
+    };