| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/dvfs/performance-domain.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: Generic performance domains | |
| maintainers: | |
| - Sudeep Holla <sudeep.holla@kernel.org> | |
| description: |+ | |
| This binding is intended for performance management of groups of devices or | |
| CPUs that run in the same performance domain. Performance domains must not | |
| be confused with power domains. A performance domain is defined by a set | |
| of devices that always have to run at the same performance level. For a given | |
| performance domain, there is a single point of control that affects all the | |
| devices in the domain, making it impossible to set the performance level of | |
| an individual device in the domain independently from other devices in | |
| that domain. For example, a set of CPUs that share a voltage domain, and | |
| have a common frequency control, is said to be in the same performance | |
| domain. | |
| This device tree binding can be used to bind performance domain consumer | |
| devices with their performance domains provided by performance domain | |
| providers. A performance domain provider can be represented by any node in | |
| the device tree and can provide one or more performance domains. A consumer | |
| node can refer to the provider by a phandle and a set of phandle arguments | |
| (so called performance domain specifiers) of length specified by the | |
| \#performance-domain-cells property in the performance domain provider node. | |
| select: true | |
| properties: | |
| "#performance-domain-cells": | |
| description: | |
| Number of cells in a performance domain specifier. Typically 0 for nodes | |
| representing a single performance domain and 1 for nodes providing | |
| multiple performance domains (e.g. performance controllers), but can be | |
| any value as specified by device tree binding documentation of particular | |
| provider. | |
| enum: [ 0, 1 ] | |
| performance-domains: | |
| $ref: /schemas/types.yaml#/definitions/phandle-array | |
| description: | |
| A phandle and performance domain specifier as defined by bindings of the | |
| performance controller/provider specified by phandle. | |
| additionalProperties: true | |
| examples: | |
| - | | |
| soc { | |
| #address-cells = <2>; | |
| #size-cells = <2>; | |
| performance: performance-controller@11bc00 { | |
| compatible = "mediatek,cpufreq-hw"; | |
| reg = <0 0x0011bc10 0 0x120>, <0 0x0011bd30 0 0x120>; | |
| #performance-domain-cells = <1>; | |
| }; | |
| }; | |
| // The node above defines a performance controller that is a performance | |
| // domain provider and expects one cell as its phandle argument. | |
| cpus { | |
| #address-cells = <2>; | |
| #size-cells = <0>; | |
| cpu@0 { | |
| device_type = "cpu"; | |
| compatible = "arm,cortex-a57"; | |
| reg = <0x0 0x0>; | |
| performance-domains = <&performance 1>; | |
| }; | |
| }; |