blob: ad27bc518670a4dbe27e88f974b1c8a2a4840aa9 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/watchdog/atmel,at91sam9-wdt.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Atmel Watchdog Timers
9
10maintainers:
11 - Eugen Hristev <eugen.hristev@microchip.com>
12
13properties:
14 compatible:
15 const: atmel,at91sam9260-wdt
16
17 reg:
18 maxItems: 1
19
20 clocks:
21 maxItems: 1
22
23 interrupts:
24 maxItems: 1
25
26 atmel,max-heartbeat-sec:
27 description:
28 Should contain the maximum heartbeat value in seconds. This value
29 should be less or equal to 16. It is used to compute the WDV field.
30 maximum: 16
31
32 atmel,min-heartbeat-sec:
33 description:
34 Should contain the minimum heartbeat value in seconds. This value
35 must be smaller than the max-heartbeat-sec value. It is used to
36 compute the WDD field.
37 maximum: 16
38
39 atmel,watchdog-type:
40 $ref: /schemas/types.yaml#/definitions/string
41 description: |
42 Should be hardware or software.
43 oneOf:
44 - description:
45 Hardware watchdog uses the at91 watchdog reset.
46 const: hardware
47 - description: |
48 Software watchdog uses the watchdog interrupt
49 to trigger a software reset.
50 const: software
51 default: hardware
52
53 atmel,reset-type:
54 $ref: /schemas/types.yaml#/definitions/string
55 description: |
56 Should be proc or all. This is valid only when using hardware watchdog.
57 oneOf:
58 - description:
59 Assert peripherals and processor reset signals.
60 const: all
61 - description:
62 Assert the processor reset signal.
63 const: proc
64 default: all
65
66 atmel,disable:
67 $ref: /schemas/types.yaml#/definitions/flag
68 description:
69 Should be present if you want to stop the watchdog.
70
71 atmel,idle-halt:
72 $ref: /schemas/types.yaml#/definitions/flag
73 description: |
74 Should be present if you want to stop the watchdog when
75 entering idle state.
76 CAUTION: This property should be used with care, it actually makes the
77 watchdog not counting when the CPU is in idle state, therefore the
78 watchdog reset time depends on mean CPU usage and will not reset at all
79 if the CPU stops working while it is in idle state, which is probably
80 not what you want.
81
82 atmel,dbg-halt:
83 $ref: /schemas/types.yaml#/definitions/flag
84 description: |
85 Should be present if you want to stop the watchdog when
86 entering debug state.
87
88required:
89 - compatible
90 - reg
91 - clocks
92
93allOf:
94 - $ref: watchdog.yaml#
95 - if:
96 properties:
97 atmel,reset-type:
98 enum:
99 - all
100 - proc
101 then:
102 properties:
103 atmel,watchdog-type:
104 const: hardware
105
106dependencies:
107 atmel,reset-type: ['atmel,watchdog-type']
108
109unevaluatedProperties: false
110
111examples:
112 - |
113 #include <dt-bindings/interrupt-controller/irq.h>
114
115 watchdog@fffffd40 {
116 compatible = "atmel,at91sam9260-wdt";
117 reg = <0xfffffd40 0x10>;
118 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
119 clocks = <&clk32k>;
120 timeout-sec = <15>;
121 atmel,watchdog-type = "hardware";
122 atmel,reset-type = "all";
123 atmel,dbg-halt;
124 atmel,idle-halt;
125 atmel,max-heartbeat-sec = <16>;
126 atmel,min-heartbeat-sec = <0>;
127 };