1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/watchdog/samsung-wdt.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung SoC Watchdog Timer Controller
8
9maintainers:
10  - Krzysztof Kozlowski <krzk@kernel.org>
11
12description: |+
13  The Samsung's Watchdog controller is used for resuming system operation
14  after a preset amount of time during which the WDT reset event has not
15  occurred.
16
17properties:
18  compatible:
19    enum:
20      - samsung,s3c2410-wdt                   # for S3C2410
21      - samsung,s3c6410-wdt                   # for S3C6410, S5PV210 and Exynos4
22      - samsung,exynos5250-wdt                # for Exynos5250
23      - samsung,exynos5420-wdt                # for Exynos5420
24      - samsung,exynos7-wdt                   # for Exynos7
25      - samsung,exynos850-wdt                 # for Exynos850
26      - samsung,exynosautov9-wdt              # for Exynosautov9
27
28  reg:
29    maxItems: 1
30
31  clocks:
32    minItems: 1
33    maxItems: 2
34
35  clock-names:
36    minItems: 1
37    maxItems: 2
38
39  interrupts:
40    maxItems: 1
41
42  samsung,cluster-index:
43    $ref: /schemas/types.yaml#/definitions/uint32
44    description:
45      Index of CPU cluster on which watchdog is running (in case of Exynos850)
46
47  samsung,syscon-phandle:
48    $ref: /schemas/types.yaml#/definitions/phandle
49    description:
50      Phandle to the PMU system controller node (in case of Exynos5250,
51      Exynos5420, Exynos7 and Exynos850).
52
53required:
54  - compatible
55  - clocks
56  - clock-names
57  - interrupts
58  - reg
59
60allOf:
61  - $ref: watchdog.yaml#
62  - if:
63      properties:
64        compatible:
65          contains:
66            enum:
67              - samsung,exynos5250-wdt
68              - samsung,exynos5420-wdt
69              - samsung,exynos7-wdt
70              - samsung,exynos850-wdt
71              - samsung,exynosautov9-wdt
72    then:
73      required:
74        - samsung,syscon-phandle
75  - if:
76      properties:
77        compatible:
78          contains:
79            enum:
80              - samsung,exynos850-wdt
81              - samsung,exynosautov9-wdt
82    then:
83      properties:
84        clocks:
85          items:
86            - description: Bus clock, used for register interface
87            - description: Source clock (driving watchdog counter)
88        clock-names:
89          items:
90            - const: watchdog
91            - const: watchdog_src
92        samsung,cluster-index:
93          enum: [0, 1]
94      required:
95        - samsung,cluster-index
96    else:
97      properties:
98        clocks:
99          items:
100            - description: Bus clock, which is also a source clock
101        clock-names:
102          items:
103            - const: watchdog
104        samsung,cluster-index: false
105
106unevaluatedProperties: false
107
108examples:
109  - |
110    watchdog@101d0000 {
111        compatible = "samsung,exynos5250-wdt";
112        reg = <0x101D0000 0x100>;
113        interrupts = <0 42 0>;
114        clocks = <&clock 336>;
115        clock-names = "watchdog";
116        samsung,syscon-phandle = <&pmu_syscon>;
117    };
118