xref: /freebsd/sys/contrib/device-tree/Bindings/opp/opp-v1.yaml (revision 354d7675fe12ace9cde344cb79c7ded792802f88)
1*354d7675SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*354d7675SEmmanuel Vadot%YAML 1.2
3*354d7675SEmmanuel Vadot---
4*354d7675SEmmanuel Vadot$id: http://devicetree.org/schemas/opp/opp-v1.yaml#
5*354d7675SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*354d7675SEmmanuel Vadot
7*354d7675SEmmanuel Vadottitle: Generic OPP (Operating Performance Points) v1 Bindings
8*354d7675SEmmanuel Vadot
9*354d7675SEmmanuel Vadotmaintainers:
10*354d7675SEmmanuel Vadot  - Viresh Kumar <viresh.kumar@linaro.org>
11*354d7675SEmmanuel Vadot
12*354d7675SEmmanuel Vadotdescription: |+
13*354d7675SEmmanuel Vadot  Devices work at voltage-current-frequency combinations and some implementations
14*354d7675SEmmanuel Vadot  have the liberty of choosing these. These combinations are called Operating
15*354d7675SEmmanuel Vadot  Performance Points aka OPPs. This document defines bindings for these OPPs
16*354d7675SEmmanuel Vadot  applicable across wide range of devices. For illustration purpose, this document
17*354d7675SEmmanuel Vadot  uses CPU as a device.
18*354d7675SEmmanuel Vadot
19*354d7675SEmmanuel Vadot  This binding only supports voltage-frequency pairs.
20*354d7675SEmmanuel Vadot
21*354d7675SEmmanuel Vadotselect: true
22*354d7675SEmmanuel Vadot
23*354d7675SEmmanuel Vadotproperties:
24*354d7675SEmmanuel Vadot  operating-points:
25*354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-matrix
26*354d7675SEmmanuel Vadot    items:
27*354d7675SEmmanuel Vadot      items:
28*354d7675SEmmanuel Vadot        - description: Frequency in kHz
29*354d7675SEmmanuel Vadot        - description: Voltage for OPP in uV
30*354d7675SEmmanuel Vadot
31*354d7675SEmmanuel Vadot
32*354d7675SEmmanuel VadotadditionalProperties: true
33*354d7675SEmmanuel Vadotexamples:
34*354d7675SEmmanuel Vadot  - |
35*354d7675SEmmanuel Vadot    cpus {
36*354d7675SEmmanuel Vadot        #address-cells = <1>;
37*354d7675SEmmanuel Vadot        #size-cells = <0>;
38*354d7675SEmmanuel Vadot
39*354d7675SEmmanuel Vadot        cpu@0 {
40*354d7675SEmmanuel Vadot            compatible = "arm,cortex-a9";
41*354d7675SEmmanuel Vadot            device_type = "cpu";
42*354d7675SEmmanuel Vadot            reg = <0>;
43*354d7675SEmmanuel Vadot            next-level-cache = <&L2>;
44*354d7675SEmmanuel Vadot            operating-points =
45*354d7675SEmmanuel Vadot                /* kHz    uV */
46*354d7675SEmmanuel Vadot                <792000 1100000>,
47*354d7675SEmmanuel Vadot                <396000 950000>,
48*354d7675SEmmanuel Vadot                <198000 850000>;
49*354d7675SEmmanuel Vadot        };
50*354d7675SEmmanuel Vadot    };
51*354d7675SEmmanuel Vadot...
52