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