# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/cpufreq/qemu,virtual-cpufreq.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Virtual CPUFreq

maintainers:
  - David Dai <davidai@google.com>
  - Saravana Kannan <saravanak@google.com>

description:
  Virtual CPUFreq is a virtualized driver in guest kernels that sends performance
  selection of its vCPUs as a hint to the host through MMIO regions. Each vCPU
  is associated with a performance domain which can be shared with other vCPUs.
  Each performance domain has its own set of registers for performance controls.

properties:
  compatible:
    const: qemu,virtual-cpufreq

  reg:
    maxItems: 1
    description:
      Address and size of region containing performance controls for each of the
      performance domains. Regions for each performance domain is placed
      contiguously and contain registers for controlling DVFS(Dynamic Frequency
      and Voltage) characteristics. The size of the region is proportional to
      total number of performance domains.

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    soc {
      #address-cells = <1>;
      #size-cells = <1>;

      cpufreq@1040000 {
        compatible = "qemu,virtual-cpufreq";
        reg = <0x1040000 0x2000>;
      };
    };
