# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/samsung-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung SoC Watchdog Timer Controller

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |+
  The Samsung's Watchdog controller is used for resuming system operation
  after a preset amount of time during which the WDT reset event has not
  occurred.

properties:
  compatible:
    enum:
      - samsung,s3c2410-wdt                   # for S3C2410
      - samsung,s3c6410-wdt                   # for S3C6410, S5PV210 and Exynos4
      - samsung,exynos5250-wdt                # for Exynos5250
      - samsung,exynos5420-wdt                # for Exynos5420
      - samsung,exynos7-wdt                   # for Exynos7

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: watchdog

  interrupts:
    maxItems: 1

  samsung,syscon-phandle:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Phandle to the PMU system controller node (in case of Exynos5250,
      Exynos5420 and Exynos7).

required:
  - compatible
  - clocks
  - clock-names
  - interrupts
  - reg

allOf:
  - $ref: watchdog.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - samsung,exynos5250-wdt
              - samsung,exynos5420-wdt
              - samsung,exynos7-wdt
    then:
      required:
        - samsung,syscon-phandle

unevaluatedProperties: false

examples:
  - |
    watchdog@101d0000 {
        compatible = "samsung,exynos5250-wdt";
        reg = <0x101D0000 0x100>;
        interrupts = <0 42 0>;
        clocks = <&clock 336>;
        clock-names = "watchdog";
        samsung,syscon-phandle = <&pmu_syscon>;
    };
