Documentation / devicetree / bindings / watchdog / samsung-wdt.yaml


Based on kernel version 6.16. Page generated on 2025-08-06 08:57 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
# 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:
    oneOf:
      - enum:
          - google,gs101-wdt                      # for Google gs101
          - 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
          - samsung,exynos850-wdt                 # for Exynos850
          - samsung,exynos990-wdt                 # for Exynos990
          - samsung,exynosautov9-wdt              # for Exynosautov9
          - samsung,exynosautov920-wdt            # for Exynosautov920
      - items:
          - enum:
              - tesla,fsd-wdt
          - const: samsung,exynos7-wdt

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    minItems: 1
    maxItems: 2

  interrupts:
    maxItems: 1

  samsung,cluster-index:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Index of CPU cluster on which watchdog is running (in case of Exynos850,
      Exynos990 or Google gs101).

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

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

allOf:
  - $ref: watchdog.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - google,gs101-wdt
              - samsung,exynos5250-wdt
              - samsung,exynos5420-wdt
              - samsung,exynos7-wdt
              - samsung,exynos850-wdt
              - samsung,exynos990-wdt
              - samsung,exynosautov9-wdt
              - samsung,exynosautov920-wdt
    then:
      required:
        - samsung,syscon-phandle
  - if:
      properties:
        compatible:
          contains:
            enum:
              - google,gs101-wdt
              - samsung,exynos850-wdt
              - samsung,exynos990-wdt
              - samsung,exynosautov9-wdt
              - samsung,exynosautov920-wdt
    then:
      properties:
        clocks:
          items:
            - description: Bus clock, used for register interface
            - description: Source clock (driving watchdog counter)
        clock-names:
          items:
            - const: watchdog
            - const: watchdog_src
        samsung,cluster-index:
          enum: [0, 1, 2]
      required:
        - samsung,cluster-index
    else:
      properties:
        clocks:
          items:
            - description: Bus clock, which is also a source clock
        clock-names:
          items:
            - const: watchdog
        samsung,cluster-index: false

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>;
    };