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

title: Marvell Orion Watchdog Timer

maintainers:
  - Andrew Lunn <andrew@lunn.ch>
  - Gregory Clement <gregory.clement@bootlin.com>

properties:
  compatible:
    enum:
      - marvell,orion-wdt
      - marvell,armada-370-wdt
      - marvell,armada-xp-wdt
      - marvell,armada-375-wdt
      - marvell,armada-380-wdt

  reg:
    minItems: 2
    items:
      - description: Timer control register address
      - description: RSTOUT enable register address
      - description: Shared mask/unmask RSTOUT register address

  clocks:
    minItems: 1
    items:
      - description: L2/coherency fabric clock input
      - description: Reference 25 MHz fixed-clock supply

  clock-names:
    minItems: 1
    items:
      - const: nbclk
      - const: fixed

  interrupts:
    minItems: 1
    items:
      - description: timeout
      - description: pre-timeout

allOf:
  - $ref: watchdog.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - marvell,armada-375-wdt
              - marvell,armada-380-wdt
    then:
      properties:
        reg:
          minItems: 3
    else:
      properties:
        reg:
          maxItems: 2

  - if:
      properties:
        compatible:
          contains:
            enum:
              - marvell,armada-xp-wdt
              - marvell,armada-375-wdt
              - marvell,armada-380-wdt
    then:
      properties:
        clocks:
          minItems: 2
        clock-names:
          minItems: 2
        interrupts:
          minItems: 2

      required:
        - clock-names

required:
  - compatible
  - reg
  - clocks

unevaluatedProperties: false

examples:
  - |
    watchdog@20300 {
        compatible = "marvell,orion-wdt";
        reg = <0x20300 0x28>, <0x20108 0x4>;
        interrupts = <3>;
        timeout-sec = <10>;
        clocks = <&gate_clk 7>;
    };
