# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/misc/qemu,vcpu-stall-detector.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: VCPU stall detector

description:
  This binding describes a CPU stall detector mechanism for virtual CPUs
  which is accessed through MMIO.

maintainers:
  - Sebastian Ene <sebastianene@google.com>

properties:
  compatible:
    enum:
      - qemu,vcpu-stall-detector

  reg:
    maxItems: 1

  clock-frequency:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: |
      The internal clock of the stall detector peripheral measure in Hz used
      to decrement its internal counter register on each tick.
      Defaults to 10 if unset.
    default: 10

  interrupts:
    maxItems: 1

  timeout-sec:
    description: |
      The stall detector expiration timeout measured in seconds.
      Defaults to 8 if unset. Please note that it also takes into account the
      time spent while the VCPU is not running.
    default: 8

required:
  - compatible

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    vmwdt@9030000 {
      compatible = "qemu,vcpu-stall-detector";
      reg = <0x9030000 0x10000>;
      clock-frequency = <10>;
      timeout-sec = <8>;
      interrupts = <GIC_PPI 15 IRQ_TYPE_EDGE_RISING>;
    };
