xref: /freebsd/sys/contrib/device-tree/Bindings/cpufreq/qemu,virtual-cpufreq.yaml (revision 5f62a964e9f8abc6a05d8338273fadd154f0a206)
1*5f62a964SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*5f62a964SEmmanuel Vadot%YAML 1.2
3*5f62a964SEmmanuel Vadot---
4*5f62a964SEmmanuel Vadot$id: http://devicetree.org/schemas/cpufreq/qemu,virtual-cpufreq.yaml#
5*5f62a964SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5f62a964SEmmanuel Vadot
7*5f62a964SEmmanuel Vadottitle: Virtual CPUFreq
8*5f62a964SEmmanuel Vadot
9*5f62a964SEmmanuel Vadotmaintainers:
10*5f62a964SEmmanuel Vadot  - David Dai <davidai@google.com>
11*5f62a964SEmmanuel Vadot  - Saravana Kannan <saravanak@google.com>
12*5f62a964SEmmanuel Vadot
13*5f62a964SEmmanuel Vadotdescription:
14*5f62a964SEmmanuel Vadot  Virtual CPUFreq is a virtualized driver in guest kernels that sends performance
15*5f62a964SEmmanuel Vadot  selection of its vCPUs as a hint to the host through MMIO regions. Each vCPU
16*5f62a964SEmmanuel Vadot  is associated with a performance domain which can be shared with other vCPUs.
17*5f62a964SEmmanuel Vadot  Each performance domain has its own set of registers for performance controls.
18*5f62a964SEmmanuel Vadot
19*5f62a964SEmmanuel Vadotproperties:
20*5f62a964SEmmanuel Vadot  compatible:
21*5f62a964SEmmanuel Vadot    const: qemu,virtual-cpufreq
22*5f62a964SEmmanuel Vadot
23*5f62a964SEmmanuel Vadot  reg:
24*5f62a964SEmmanuel Vadot    maxItems: 1
25*5f62a964SEmmanuel Vadot    description:
26*5f62a964SEmmanuel Vadot      Address and size of region containing performance controls for each of the
27*5f62a964SEmmanuel Vadot      performance domains. Regions for each performance domain is placed
28*5f62a964SEmmanuel Vadot      contiguously and contain registers for controlling DVFS(Dynamic Frequency
29*5f62a964SEmmanuel Vadot      and Voltage) characteristics. The size of the region is proportional to
30*5f62a964SEmmanuel Vadot      total number of performance domains.
31*5f62a964SEmmanuel Vadot
32*5f62a964SEmmanuel Vadotrequired:
33*5f62a964SEmmanuel Vadot  - compatible
34*5f62a964SEmmanuel Vadot  - reg
35*5f62a964SEmmanuel Vadot
36*5f62a964SEmmanuel VadotadditionalProperties: false
37*5f62a964SEmmanuel Vadot
38*5f62a964SEmmanuel Vadotexamples:
39*5f62a964SEmmanuel Vadot  - |
40*5f62a964SEmmanuel Vadot    soc {
41*5f62a964SEmmanuel Vadot      #address-cells = <1>;
42*5f62a964SEmmanuel Vadot      #size-cells = <1>;
43*5f62a964SEmmanuel Vadot
44*5f62a964SEmmanuel Vadot      cpufreq@1040000 {
45*5f62a964SEmmanuel Vadot        compatible = "qemu,virtual-cpufreq";
46*5f62a964SEmmanuel Vadot        reg = <0x1040000 0x2000>;
47*5f62a964SEmmanuel Vadot      };
48*5f62a964SEmmanuel Vadot    };
49