| # 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@arm.com> |
| |
| 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>; |
| }; |
| }; |