diff mbox series

dt-bindings: watchdog: Convert GPIO binding to json-schema

Message ID 20221125112904.48652-1-robert.marko@sartura.hr (mailing list archive)
State Accepted
Headers show
Series dt-bindings: watchdog: Convert GPIO binding to json-schema | expand

Commit Message

Robert Marko Nov. 25, 2022, 11:29 a.m. UTC
Convert the DT binding for GPIO WDT to JSON schema.

Cc: luka.perkov@sartura.hr
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
---
 .../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

Comments

Rob Herring Nov. 26, 2022, 10:25 p.m. UTC | #1
On Fri, 25 Nov 2022 12:29:04 +0100, Robert Marko wrote:
> Convert the DT binding for GPIO WDT to JSON schema.
> 
> Cc: luka.perkov@sartura.hr
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> ---
>  .../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/20221125112904.48652-1-robert.marko@sartura.hr


watchdog-gpio: Unevaluated properties are not allowed ('always-enabled' was unexpected)
	arch/arm64/boot/dts/freescale/imx8mm-data-modul-edm-sbc.dtb
Robert Marko Nov. 28, 2022, 10:03 a.m. UTC | #2
On Sat, Nov 26, 2022 at 11:25 PM Rob Herring <robh@kernel.org> wrote:
>
>
> On Fri, 25 Nov 2022 12:29:04 +0100, Robert Marko wrote:
> > Convert the DT binding for GPIO WDT to JSON schema.
> >
> > Cc: luka.perkov@sartura.hr
> > Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> > ---
> >  .../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/20221125112904.48652-1-robert.marko@sartura.hr
>
>
> 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
Rob Herring Nov. 30, 2022, 12:47 a.m. UTC | #3
On Fri, 25 Nov 2022 12:29:04 +0100, Robert Marko wrote:
> Convert the DT binding for GPIO WDT to JSON schema.
> 
> Cc: luka.perkov@sartura.hr
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> ---
>  .../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 <robh@kernel.org>
Guenter Roeck Jan. 31, 2023, 5:05 p.m. UTC | #4
On Fri, Nov 25, 2022 at 12:29:04PM +0100, Robert Marko wrote:
> Convert the DT binding for GPIO WDT to JSON schema.
> 
> Cc: luka.perkov@sartura.hr
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> Reviewed-by: Rob Herring <robh@kernel.org>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
>  .../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 <robert.marko@sartura.hr>
> +
> +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
diff mbox series

Patch

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 <robert.marko@sartura.hr>
+
+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