Re: [PATCH v3 1/2] dt-bindings: vm-wdt: Add qemu,vm-watchdog compatible

From: Rob Herring
Date: Mon Apr 25 2022 - 14:29:58 EST


On Mon, Apr 25, 2022 at 01:42:05PM +0000, Sebastian Ene wrote:
> The stall detection mechanism allows to configure the expiration
> duration and the internal counter clock frequency measured in Hz.
> Add these properties in the schema.
>
> Signed-off-by: Sebastian Ene <sebastianene@xxxxxxxxxx>
> ---
> .../devicetree/bindings/misc/vm-wdt.yaml | 44 +++++++++++++++++++
> 1 file changed, 44 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/misc/vm-wdt.yaml
>
> diff --git a/Documentation/devicetree/bindings/misc/vm-wdt.yaml b/Documentation/devicetree/bindings/misc/vm-wdt.yaml
> new file mode 100644
> index 000000000000..cb7665a0c5af
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/misc/vm-wdt.yaml
> @@ -0,0 +1,44 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/misc/vm-wdt.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: VM watchdog
> +
> +description: |
> + This binding describes a CPU stall detector mechanism for virtual cpus.
> +
> +maintainers:
> + - Sebastian Ene <sebastianene@xxxxxxxxxx>
> +
> +properties:
> + compatible:
> + enum:
> + - qemu,vm-watchdog
> + clock:

'clocks' is already a defined property and 'clock' is too close. It's
also ambiguous what it is. 'clock-frequency' instead perhaps.

> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + The watchdog internal clock measure in Hz used to decrement the
> + watchdog counter register on each tick.
> + Defaults to 10 if unset.
> + timeout-sec:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + The watchdog expiration timeout measured in seconds.
> + Defaults to 8 if unset.
> +
> +required:
> + - compatible
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + watchdog {
> + compatible = "qemu,vm-watchdog";
> + clock = <10>;
> + timeout-sec = <8>;

How does one access this 'hardware'?

Why does this need to be in DT?

We have DT because h/w designers are incapable of making h/w
discoverable. Why repeat that problem with s/w interfaces?

Rob