Skip to content

Commit 1da9bf7

Browse files
svanheuleWim Van Sebroeck
authored andcommitted
dt-bindings: watchdog: Realtek Otto WDT binding
Add a binding description for Realtek's watchdog timer as found on several of their MIPS-based SoCs (codenamed Otto), such as the RTL838x, RTL839x, and RTL930x series of switch SoCs. Signed-off-by: Sander Vanheule <[email protected]> Reviewed-by: Rob Herring <[email protected]> Reviewed-by: Guenter Roeck <[email protected]> Link: https://lore.kernel.org/r/d832d5b02976dd2c2674d46778f61e5cfcd9b651.1637252610.git.sander@svanheule.net Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
1 parent cd4eadf commit 1da9bf7

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/watchdog/realtek,otto-wdt.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Realtek Otto watchdog timer
8+
9+
maintainers:
10+
- Sander Vanheule <[email protected]>
11+
12+
description: |
13+
The timer has two timeout phases. Both phases have a maximum duration of 32
14+
prescaled clock ticks, which is ca. 43s with a bus clock of 200MHz. The
15+
minimum duration of each phase is one tick. Each phase can trigger an
16+
interrupt, although the phase 2 interrupt will occur with the system reset.
17+
- Phase 1: During this phase, the WDT can be pinged to reset the timeout.
18+
- Phase 2: Starts after phase 1 has timed out, and only serves to give the
19+
system some time to clean up, or notify others that it's going to reset.
20+
During this phase, pinging the WDT has no effect, and a reset is
21+
unavoidable, unless the WDT is disabled.
22+
23+
allOf:
24+
- $ref: watchdog.yaml#
25+
26+
properties:
27+
compatible:
28+
enum:
29+
- realtek,rtl8380-wdt
30+
- realtek,rtl8390-wdt
31+
- realtek,rtl9300-wdt
32+
33+
reg:
34+
maxItems: 1
35+
36+
clocks:
37+
maxItems: 1
38+
39+
interrupts:
40+
items:
41+
- description: interrupt specifier for pretimeout
42+
- description: interrupt specifier for timeout
43+
44+
interrupt-names:
45+
items:
46+
- const: phase1
47+
- const: phase2
48+
49+
realtek,reset-mode:
50+
$ref: /schemas/types.yaml#/definitions/string
51+
description: |
52+
Specify how the system is reset after a timeout. Defaults to "cpu" if
53+
left unspecified.
54+
oneOf:
55+
- description: Reset the entire chip
56+
const: soc
57+
- description: |
58+
Reset the CPU and IPsec engine, but leave other peripherals untouched
59+
const: cpu
60+
- description: |
61+
Reset the execution pointer, but don't actually reset any hardware
62+
const: software
63+
64+
required:
65+
- compatible
66+
- reg
67+
- clocks
68+
- interrupts
69+
70+
unevaluatedProperties: false
71+
72+
dependencies:
73+
interrupts: [ interrupt-names ]
74+
75+
examples:
76+
- |
77+
watchdog: watchdog@3150 {
78+
compatible = "realtek,rtl8380-wdt";
79+
reg = <0x3150 0xc>;
80+
81+
realtek,reset-mode = "soc";
82+
83+
clocks = <&lxbus_clock>;
84+
timeout-sec = <20>;
85+
86+
interrupt-parent = <&rtlintc>;
87+
interrupt-names = "phase1", "phase2";
88+
interrupts = <19>, <18>;
89+
};
90+
91+
...

0 commit comments

Comments
 (0)