2022-11-25 11:57:08

by Robert Marko

[permalink] [raw]
Subject: [PATCH] dt-bindings: watchdog: Convert GPIO binding to json-schema

Convert the DT binding for GPIO WDT to JSON schema.

Cc: [email protected]
Signed-off-by: Robert Marko <[email protected]>
---
.../devicetree/bindings/watchdog/gpio-wdt.txt | 28 ----------
.../bindings/watchdog/gpio-wdt.yaml | 55 +++++++++++++++++++
2 files changed, 55 insertions(+), 28 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/watchdog/gpio-wdt.txt
create mode 100644 Documentation/devicetree/bindings/watchdog/gpio-wdt.yaml

diff --git a/Documentation/devicetree/bindings/watchdog/gpio-wdt.txt b/Documentation/devicetree/bindings/watchdog/gpio-wdt.txt
deleted file mode 100644
index 198794963786..000000000000
--- a/Documentation/devicetree/bindings/watchdog/gpio-wdt.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-* GPIO-controlled Watchdog
-
-Required Properties:
-- compatible: Should contain "linux,wdt-gpio".
-- gpios: From common gpio binding; gpio connection to WDT reset pin.
-- hw_algo: The algorithm used by the driver. Should be one of the
- following values:
- - toggle: Either a high-to-low or a low-to-high transition clears
- the WDT counter. The watchdog timer is disabled when GPIO is
- left floating or connected to a three-state buffer.
- - level: Low or high level starts counting WDT timeout,
- the opposite level disables the WDT. Active level is determined
- by the GPIO flags.
-- hw_margin_ms: Maximum time to reset watchdog circuit (milliseconds).
-
-Optional Properties:
-- always-running: If the watchdog timer cannot be disabled, add this flag to
- have the driver keep toggling the signal without a client. It will only cease
- to toggle the signal when the device is open and the timeout elapsed.
-
-Example:
- watchdog: watchdog {
- /* ADM706 */
- compatible = "linux,wdt-gpio";
- gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
- hw_algo = "toggle";
- hw_margin_ms = <1600>;
- };
diff --git a/Documentation/devicetree/bindings/watchdog/gpio-wdt.yaml b/Documentation/devicetree/bindings/watchdog/gpio-wdt.yaml
new file mode 100644
index 000000000000..155dc7965e9b
--- /dev/null
+++ b/Documentation/devicetree/bindings/watchdog/gpio-wdt.yaml
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/watchdog/gpio-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: GPIO controlled watchdog
+
+maintainers:
+ - Robert Marko <[email protected]>
+
+properties:
+ compatible:
+ const: linux,wdt-gpio
+
+ gpios:
+ maxItems: 1
+ description: GPIO connected to the WDT reset pin
+
+ hw_algo:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: Algorithm used by the driver
+ oneOf:
+ - description:
+ Either a high-to-low or a low-to-high transition clears the WDT counter.
+ The watchdog timer is disabled when GPIO is left floating or connected
+ to a three-state buffer.
+ const: toggle
+ - description:
+ Low or high level starts counting WDT timeout, the opposite level
+ disables the WDT.
+ Active level is determined by the GPIO flags.
+ const: level
+
+ hw_margin_ms:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Maximum time to reset watchdog circuit (in milliseconds)
+ minimum: 2
+ maximum: 65535
+
+ always-running:
+ type: boolean
+ description:
+ If the watchdog timer cannot be disabled, add this flag to have the driver
+ keep toggling the signal without a client.
+ It will only cease to toggle the signal when the device is open and the
+ timeout elapsed.
+
+required:
+ - compatible
+ - gpios
+ - hw_algo
+ - hw_margin_ms
+
+unevaluatedProperties: false
--
2.38.1


2022-11-26 22:59:55

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: watchdog: Convert GPIO binding to json-schema


On Fri, 25 Nov 2022 12:29:04 +0100, Robert Marko wrote:
> Convert the DT binding for GPIO WDT to JSON schema.
>
> Cc: [email protected]
> Signed-off-by: Robert Marko <[email protected]>
> ---
> .../devicetree/bindings/watchdog/gpio-wdt.txt | 28 ----------
> .../bindings/watchdog/gpio-wdt.yaml | 55 +++++++++++++++++++
> 2 files changed, 55 insertions(+), 28 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/watchdog/gpio-wdt.txt
> create mode 100644 Documentation/devicetree/bindings/watchdog/gpio-wdt.yaml
>

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/project/devicetree-bindings/patch/[email protected]


watchdog-gpio: Unevaluated properties are not allowed ('always-enabled' was unexpected)
arch/arm64/boot/dts/freescale/imx8mm-data-modul-edm-sbc.dtb

2022-11-28 10:16:18

by Robert Marko

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: watchdog: Convert GPIO binding to json-schema

On Sat, Nov 26, 2022 at 11:25 PM Rob Herring <[email protected]> wrote:
>
>
> On Fri, 25 Nov 2022 12:29:04 +0100, Robert Marko wrote:
> > Convert the DT binding for GPIO WDT to JSON schema.
> >
> > Cc: [email protected]
> > Signed-off-by: Robert Marko <[email protected]>
> > ---
> > .../devicetree/bindings/watchdog/gpio-wdt.txt | 28 ----------
> > .../bindings/watchdog/gpio-wdt.yaml | 55 +++++++++++++++++++
> > 2 files changed, 55 insertions(+), 28 deletions(-)
> > delete mode 100644 Documentation/devicetree/bindings/watchdog/gpio-wdt.txt
> > create mode 100644 Documentation/devicetree/bindings/watchdog/gpio-wdt.yaml
> >
>
> Running 'make dtbs_check' with the schema in this patch gives the
> following warnings. Consider if they are expected or the schema is
> incorrect. These may not be new warnings.
>
> Note that it is not yet a requirement to have 0 warnings for dtbs_check.
> This will change in the future.
>
> Full log is available here: https://patchwork.ozlabs.org/project/devicetree-bindings/patch/[email protected]
>
>
> watchdog-gpio: Unevaluated properties are not allowed ('always-enabled' was unexpected)
> arch/arm64/boot/dts/freescale/imx8mm-data-modul-edm-sbc.dtb


This is expected as always-enabled was not documented in TXT bindings
nor the driver actually parses it,
it is looking for always-running only.

Regards,
Robert
--
Robert Marko
Staff Embedded Linux Engineer
Sartura Ltd.
Lendavska ulica 16a
10000 Zagreb, Croatia
Email: [email protected]
Web: http://www.sartura.hr

2022-11-30 01:39:15

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: watchdog: Convert GPIO binding to json-schema


On Fri, 25 Nov 2022 12:29:04 +0100, Robert Marko wrote:
> Convert the DT binding for GPIO WDT to JSON schema.
>
> Cc: [email protected]
> Signed-off-by: Robert Marko <[email protected]>
> ---
> .../devicetree/bindings/watchdog/gpio-wdt.txt | 28 ----------
> .../bindings/watchdog/gpio-wdt.yaml | 55 +++++++++++++++++++
> 2 files changed, 55 insertions(+), 28 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/watchdog/gpio-wdt.txt
> create mode 100644 Documentation/devicetree/bindings/watchdog/gpio-wdt.yaml
>

Reviewed-by: Rob Herring <[email protected]>

2023-01-31 17:05:12

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: watchdog: Convert GPIO binding to json-schema

On Fri, Nov 25, 2022 at 12:29:04PM +0100, Robert Marko wrote:
> Convert the DT binding for GPIO WDT to JSON schema.
>
> Cc: [email protected]
> Signed-off-by: Robert Marko <[email protected]>
> Reviewed-by: Rob Herring <[email protected]>

Reviewed-by: Guenter Roeck <[email protected]>

> ---
> .../devicetree/bindings/watchdog/gpio-wdt.txt | 28 ----------
> .../bindings/watchdog/gpio-wdt.yaml | 55 +++++++++++++++++++
> 2 files changed, 55 insertions(+), 28 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/watchdog/gpio-wdt.txt
> create mode 100644 Documentation/devicetree/bindings/watchdog/gpio-wdt.yaml
>
> diff --git a/Documentation/devicetree/bindings/watchdog/gpio-wdt.txt b/Documentation/devicetree/bindings/watchdog/gpio-wdt.txt
> deleted file mode 100644
> index 198794963786..000000000000
> --- a/Documentation/devicetree/bindings/watchdog/gpio-wdt.txt
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -* GPIO-controlled Watchdog
> -
> -Required Properties:
> -- compatible: Should contain "linux,wdt-gpio".
> -- gpios: From common gpio binding; gpio connection to WDT reset pin.
> -- hw_algo: The algorithm used by the driver. Should be one of the
> - following values:
> - - toggle: Either a high-to-low or a low-to-high transition clears
> - the WDT counter. The watchdog timer is disabled when GPIO is
> - left floating or connected to a three-state buffer.
> - - level: Low or high level starts counting WDT timeout,
> - the opposite level disables the WDT. Active level is determined
> - by the GPIO flags.
> -- hw_margin_ms: Maximum time to reset watchdog circuit (milliseconds).
> -
> -Optional Properties:
> -- always-running: If the watchdog timer cannot be disabled, add this flag to
> - have the driver keep toggling the signal without a client. It will only cease
> - to toggle the signal when the device is open and the timeout elapsed.
> -
> -Example:
> - watchdog: watchdog {
> - /* ADM706 */
> - compatible = "linux,wdt-gpio";
> - gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
> - hw_algo = "toggle";
> - hw_margin_ms = <1600>;
> - };
> diff --git a/Documentation/devicetree/bindings/watchdog/gpio-wdt.yaml b/Documentation/devicetree/bindings/watchdog/gpio-wdt.yaml
> new file mode 100644
> index 000000000000..155dc7965e9b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/watchdog/gpio-wdt.yaml
> @@ -0,0 +1,55 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/watchdog/gpio-wdt.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: GPIO controlled watchdog
> +
> +maintainers:
> + - Robert Marko <[email protected]>
> +
> +properties:
> + compatible:
> + const: linux,wdt-gpio
> +
> + gpios:
> + maxItems: 1
> + description: GPIO connected to the WDT reset pin
> +
> + hw_algo:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: Algorithm used by the driver
> + oneOf:
> + - description:
> + Either a high-to-low or a low-to-high transition clears the WDT counter.
> + The watchdog timer is disabled when GPIO is left floating or connected
> + to a three-state buffer.
> + const: toggle
> + - description:
> + Low or high level starts counting WDT timeout, the opposite level
> + disables the WDT.
> + Active level is determined by the GPIO flags.
> + const: level
> +
> + hw_margin_ms:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Maximum time to reset watchdog circuit (in milliseconds)
> + minimum: 2
> + maximum: 65535
> +
> + always-running:
> + type: boolean
> + description:
> + If the watchdog timer cannot be disabled, add this flag to have the driver
> + keep toggling the signal without a client.
> + It will only cease to toggle the signal when the device is open and the
> + timeout elapsed.
> +
> +required:
> + - compatible
> + - gpios
> + - hw_algo
> + - hw_margin_ms
> +
> +unevaluatedProperties: false