1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/watchdog/linux,wdt-gpio.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: GPIO-controlled Watchdog
8
9maintainers:
10  - Guenter Roeck <linux@roeck-us.net>
11  - Robert Marko <robert.marko@sartura.hr>
12
13properties:
14  compatible:
15    const: linux,wdt-gpio
16
17  gpios:
18    description: gpio connection to WDT reset pin
19    maxItems: 1
20
21  hw_algo:
22    description: The algorithm used by the driver.
23    oneOf:
24      - description:
25          Either a high-to-low or a low-to-high transition clears the WDT counter.
26          The watchdog timer is disabled when GPIO is left floating or connected
27          to a three-state buffer.
28        const: toggle
29      - description:
30          Low or high level starts counting WDT timeout, the opposite level
31          disables the WDT.
32          Active level is determined by the GPIO flags.
33        const: level
34
35  hw_margin_ms:
36    description: Maximum time to reset watchdog circuit (milliseconds).
37    $ref: /schemas/types.yaml#/definitions/uint32
38    minimum: 2
39    maximum: 65535
40
41  always-running:
42    type: boolean
43    description:
44      If the watchdog timer cannot be disabled, add this flag to have the driver
45      keep toggling the signal without a client.
46      It will only cease to toggle the signal when the device is open and the
47      timeout elapsed.
48
49required:
50  - compatible
51  - gpios
52  - hw_algo
53  - hw_margin_ms
54
55allOf:
56  - $ref: watchdog.yaml#
57
58unevaluatedProperties: false
59
60examples:
61  - |
62    #include <dt-bindings/gpio/gpio.h>
63    watchdog {
64        compatible = "linux,wdt-gpio";
65        gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
66        hw_algo = "toggle";
67        hw_margin_ms = <1600>;
68    };
69