Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/dvfs/performance-domain.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Generic performance domains
0008 
0009 maintainers:
0010   - Sudeep Holla <sudeep.holla@arm.com>
0011 
0012 description: |+
0013   This binding is intended for performance management of groups of devices or
0014   CPUs that run in the same performance domain. Performance domains must not
0015   be confused with power domains. A performance domain is defined by a set
0016   of devices that always have to run at the same performance level. For a given
0017   performance domain, there is a single point of control that affects all the
0018   devices in the domain, making it impossible to set the performance level of
0019   an individual device in the domain independently from other devices in
0020   that domain. For example, a set of CPUs that share a voltage domain, and
0021   have a common frequency control, is said to be in the same performance
0022   domain.
0023 
0024   This device tree binding can be used to bind performance domain consumer
0025   devices with their performance domains provided by performance domain
0026   providers. A performance domain provider can be represented by any node in
0027   the device tree and can provide one or more performance domains. A consumer
0028   node can refer to the provider by a phandle and a set of phandle arguments
0029   (so called performance domain specifiers) of length specified by the
0030   \#performance-domain-cells property in the performance domain provider node.
0031 
0032 select: true
0033 
0034 properties:
0035   "#performance-domain-cells":
0036     description:
0037       Number of cells in a performance domain specifier. Typically 0 for nodes
0038       representing a single performance domain and 1 for nodes providing
0039       multiple performance domains (e.g. performance controllers), but can be
0040       any value as specified by device tree binding documentation of particular
0041       provider.
0042     enum: [ 0, 1 ]
0043 
0044   performance-domains:
0045     $ref: '/schemas/types.yaml#/definitions/phandle-array'
0046     description:
0047       A phandle and performance domain specifier as defined by bindings of the
0048       performance controller/provider specified by phandle.
0049 
0050 additionalProperties: true
0051 
0052 examples:
0053   - |
0054     soc {
0055         #address-cells = <2>;
0056         #size-cells = <2>;
0057 
0058         performance: performance-controller@11bc00 {
0059             compatible = "mediatek,cpufreq-hw";
0060             reg = <0 0x0011bc10 0 0x120>, <0 0x0011bd30 0 0x120>;
0061 
0062             #performance-domain-cells = <1>;
0063         };
0064     };
0065 
0066     // The node above defines a performance controller that is a performance
0067     // domain provider and expects one cell as its phandle argument.
0068 
0069     cpus {
0070         #address-cells = <2>;
0071         #size-cells = <0>;
0072 
0073         cpu@0 {
0074             device_type = "cpu";
0075             compatible = "arm,cortex-a57";
0076             reg = <0x0 0x0>;
0077             performance-domains = <&performance 1>;
0078         };
0079     };