# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/renesas,rcar-sysc.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Renesas R-Car and RZ/G System Controller

maintainers:
  - Geert Uytterhoeven <geert+renesas@glider.be>
  - Magnus Damm <magnus.damm@gmail.com>

description:
  The R-Car (RZ/G) System Controller provides power management for the CPU
  cores and various coprocessors.

properties:
  compatible:
    enum:
      - renesas,r8a7742-sysc  # RZ/G1H
      - renesas,r8a7743-sysc  # RZ/G1M
      - renesas,r8a7744-sysc  # RZ/G1N
      - renesas,r8a7745-sysc  # RZ/G1E
      - renesas,r8a77470-sysc # RZ/G1C
      - renesas,r8a774a1-sysc # RZ/G2M
      - renesas,r8a774b1-sysc # RZ/G2N
      - renesas,r8a774c0-sysc # RZ/G2E
      - renesas,r8a774e1-sysc # RZ/G2H
      - renesas,r8a7779-sysc  # R-Car H1
      - renesas,r8a7790-sysc  # R-Car H2
      - renesas,r8a7791-sysc  # R-Car M2-W
      - renesas,r8a7792-sysc  # R-Car V2H
      - renesas,r8a7793-sysc  # R-Car M2-N
      - renesas,r8a7794-sysc  # R-Car E2
      - renesas,r8a7795-sysc  # R-Car H3
      - renesas,r8a77961-sysc # R-Car M3-W+
      - renesas,r8a77965-sysc # R-Car M3-N
      - renesas,r8a7796-sysc  # R-Car M3-W
      - renesas,r8a77970-sysc # R-Car V3M
      - renesas,r8a77980-sysc # R-Car V3H
      - renesas,r8a77990-sysc # R-Car E3
      - renesas,r8a77995-sysc # R-Car D3

  reg:
    maxItems: 1

  '#power-domain-cells':
    const: 1

required:
  - compatible
  - reg
  - '#power-domain-cells'

additionalProperties: false

examples:
  - |
    // System Controller node
    sysc: system-controller@e6180000 {
            compatible = "renesas,r8a7791-sysc";
            reg = <0xe6180000 0x0200>;
            #power-domain-cells = <1>;
    };

  - |
    // Power Domain consumers
    #include <dt-bindings/power/r8a7791-sysc.h>

    cache-controller-0 {
            compatible = "cache";
            power-domains = <&sysc R8A7791_PD_CA15_SCU>;
            cache-unified;
            cache-level = <2>;
    };
