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

title: Renesas RZ/V2H(P) Watchdog Timer (WDT) Controller

maintainers:
  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - renesas,r9a09g047-wdt # RZ/G3E
              - renesas,r9a09g056-wdt # RZ/V2N
          - const: renesas,r9a09g057-wdt # RZ/V2H(P)

      - items:
          - const: renesas,r9a09g087-wdt # RZ/N2H
          - const: renesas,r9a09g077-wdt # RZ/T2H

      - enum:
          - renesas,r9a09g057-wdt    # RZ/V2H(P)
          - renesas,r9a09g077-wdt    # RZ/T2H

  reg:
    minItems: 1
    maxItems: 2

  clocks:
    minItems: 1
    items:
      - description: Register access clock
      - description: Main clock

  clock-names:
    minItems: 1
    items:
      - const: pclk
      - const: oscclk

  power-domains:
    maxItems: 1

  resets:
    maxItems: 1

  timeout-sec: true

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - power-domains

allOf:
  - $ref: watchdog.yaml#

  - if:
      properties:
        compatible:
          contains:
            const: renesas,r9a09g057-wdt
    then:
      properties:
        reg:
          maxItems: 1
        clocks:
          minItems: 2
        clock-names:
          minItems: 2
    else:
      properties:
        clocks:
          maxItems: 1
        clock-names:
          maxItems: 1
        reg:
          minItems: 2
        resets: false

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/renesas,r9a09g057-cpg.h>

    watchdog@11c00400 {
            compatible = "renesas,r9a09g057-wdt";
            reg = <0x11c00400 0x400>;
            clocks = <&cpg CPG_MOD 0x4b>, <&cpg CPG_MOD 0x4c>;
            clock-names = "pclk", "oscclk";
            resets = <&cpg 0x75>;
            power-domains = <&cpg>;
    };
