performance-domain.yaml 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/dvfs/performance-domain.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Generic performance domains
  7. maintainers:
  8. - Sudeep Holla <sudeep.holla@arm.com>
  9. description: |+
  10. This binding is intended for performance management of groups of devices or
  11. CPUs that run in the same performance domain. Performance domains must not
  12. be confused with power domains. A performance domain is defined by a set
  13. of devices that always have to run at the same performance level. For a given
  14. performance domain, there is a single point of control that affects all the
  15. devices in the domain, making it impossible to set the performance level of
  16. an individual device in the domain independently from other devices in
  17. that domain. For example, a set of CPUs that share a voltage domain, and
  18. have a common frequency control, is said to be in the same performance
  19. domain.
  20. This device tree binding can be used to bind performance domain consumer
  21. devices with their performance domains provided by performance domain
  22. providers. A performance domain provider can be represented by any node in
  23. the device tree and can provide one or more performance domains. A consumer
  24. node can refer to the provider by a phandle and a set of phandle arguments
  25. (so called performance domain specifiers) of length specified by the
  26. \#performance-domain-cells property in the performance domain provider node.
  27. select: true
  28. properties:
  29. "#performance-domain-cells":
  30. description:
  31. Number of cells in a performance domain specifier. Typically 0 for nodes
  32. representing a single performance domain and 1 for nodes providing
  33. multiple performance domains (e.g. performance controllers), but can be
  34. any value as specified by device tree binding documentation of particular
  35. provider.
  36. enum: [ 0, 1 ]
  37. performance-domains:
  38. $ref: /schemas/types.yaml#/definitions/phandle-array
  39. description:
  40. A phandle and performance domain specifier as defined by bindings of the
  41. performance controller/provider specified by phandle.
  42. additionalProperties: true
  43. examples:
  44. - |
  45. soc {
  46. #address-cells = <2>;
  47. #size-cells = <2>;
  48. performance: performance-controller@11bc00 {
  49. compatible = "mediatek,cpufreq-hw";
  50. reg = <0 0x0011bc10 0 0x120>, <0 0x0011bd30 0 0x120>;
  51. #performance-domain-cells = <1>;
  52. };
  53. };
  54. // The node above defines a performance controller that is a performance
  55. // domain provider and expects one cell as its phandle argument.
  56. cpus {
  57. #address-cells = <2>;
  58. #size-cells = <0>;
  59. cpu@0 {
  60. device_type = "cpu";
  61. compatible = "arm,cortex-a57";
  62. reg = <0x0 0x0>;
  63. performance-domains = <&performance 1>;
  64. };
  65. };