Commit 984638e4 authored by David Dai's avatar David Dai Committed by Viresh Kumar
Browse files

dt-bindings: cpufreq: add virtual cpufreq device



Adding bindings to represent a virtual cpufreq device.

Virtual machines may expose MMIO regions for a virtual cpufreq device
for guests to read performance information or to request performance
selection. The virtual cpufreq device has an individual controller for
each performance domain. Performance points for a given domain can be
normalized across all domains for ease of allowing for virtual machines
to migrate between hosts.

Co-developed-by: default avatarSaravana Kannan <saravanak@google.com>
Signed-off-by: default avatarSaravana Kannan <saravanak@google.com>
Signed-off-by: default avatarDavid Dai <davidai@google.com>
Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
parent 5f856d71
Loading
Loading
Loading
Loading
+48 −0
Original line number Diff line number Diff line
# 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>;
      };
    };