Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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 <sander@svanheule.net>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/d832d5b02976dd2c2674d46778f61e5cfcd9b651.1637252610.git.sander@svanheule.net
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>

authored by

Sander Vanheule and committed by
Wim Van Sebroeck
1da9bf73 cd4eadf2

+91
+91
Documentation/devicetree/bindings/watchdog/realtek,otto-wdt.yaml
··· 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 <sander@svanheule.net> 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 + ...