Commit 3261227d authored by Ulf Hansson's avatar Ulf Hansson Committed by Rob Herring
Browse files

dt-bindings: power: Convert domain-idle-states bindings to json-schema



While converting to the json-schema, let's also take the opportunity to
further specify/clarify some more details about the DT binding.

For example, let's define the label where to put the states nodes, set a
pattern for nodename of the state nodes and finally add an example.

Fixes: a3f048b5 ("dt: psci: Update DT bindings to support hierarchical PSCI states")
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
[robh: drop type refs from standard unit properties]
Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent ac9686a9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -123,7 +123,7 @@ properties:
      to mandate it.

      [3] Documentation/devicetree/bindings/power/power_domain.txt
      [4] Documentation/devicetree/bindings/power/domain-idle-state.txt
      [4] Documentation/devicetree/bindings/power/domain-idle-state.yaml

  power-domains:
    $ref: '/schemas/types.yaml#/definitions/phandle-array'
+0 −33
Original line number Diff line number Diff line
PM Domain Idle State Node:

A domain idle state node represents the state parameters that will be used to
select the state when there are no active components in the domain.

The state node has the following parameters -

- compatible:
	Usage: Required
	Value type: <string>
	Definition: Must be "domain-idle-state".

- entry-latency-us
	Usage: Required
	Value type: <prop-encoded-array>
	Definition: u32 value representing worst case latency in
		    microseconds required to enter the idle state.
		    The exit-latency-us duration may be guaranteed
		    only after entry-latency-us has passed.

- exit-latency-us
	Usage: Required
	Value type: <prop-encoded-array>
	Definition: u32 value representing worst case latency
		    in microseconds required to exit the idle state.

- min-residency-us
	Usage: Required
	Value type: <prop-encoded-array>
	Definition: u32 value representing minimum residency duration
		    in microseconds after which the idle state will yield
		    power benefits after overcoming the overhead in entering
i		    the idle state.
+64 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/domain-idle-state.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: PM Domain Idle States binding description

maintainers:
  - Ulf Hansson <ulf.hansson@linaro.org>

description:
  A domain idle state node represents the state parameters that will be used to
  select the state when there are no active components in the PM domain.

properties:
  $nodename:
    const: domain-idle-states

patternProperties:
  "^(cpu|cluster|domain)-":
    type: object
    description:
      Each state node represents a domain idle state description.

    properties:
      compatible:
        const: domain-idle-state

      entry-latency-us:
        description:
          The worst case latency in microseconds required to enter the idle
          state. Note that, the exit-latency-us duration may be guaranteed only
          after the entry-latency-us has passed.

      exit-latency-us:
        description:
          The worst case latency in microseconds required to exit the idle
          state.

      min-residency-us:
        description:
          The minimum residency duration in microseconds after which the idle
          state will yield power benefits, after overcoming the overhead while
          entering the idle state.

    required:
      - compatible
      - entry-latency-us
      - exit-latency-us
      - min-residency-us

examples:
  - |

    domain-idle-states {
      domain_retention: domain-retention {
        compatible = "domain-idle-state";
        entry-latency-us = <20>;
        exit-latency-us = <40>;
        min-residency-us = <80>;
      };
    };
...
+10 −12
Original line number Diff line number Diff line
@@ -29,18 +29,16 @@ properties:

  domain-idle-states:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description:
      A phandle of an idle-state that shall be soaked into a generic domain
      power state. The idle state definitions are compatible with
      domain-idle-state specified in
      Documentation/devicetree/bindings/power/domain-idle-state.txt
      phandles that are not compatible with domain-idle-state will be ignored.
      The domain-idle-state property reflects the idle state of this PM domain
      and not the idle states of the devices or sub-domains in the PM domain.
      Devices and sub-domains have their own idle-states independent
      of the parent domain's idle states. In the absence of this property,
      the domain would be considered as capable of being powered-on
      or powered-off.
    description: |
      Phandles of idle states that defines the available states for the
      power-domain provider. The idle state definitions are compatible with the
      domain-idle-state bindings, specified in ./domain-idle-state.yaml.

      Note that, the domain-idle-state property reflects the idle states of this
      PM domain and not the idle states of the devices or sub-domains in the PM
      domain. Devices and sub-domains have their own idle states independent of
      the parent domain's idle states. In the absence of this property, the
      domain would be considered as capable of being powered-on or powered-off.

  operating-points-v2:
    $ref: /schemas/types.yaml#/definitions/phandle-array
+1 −1
Original line number Diff line number Diff line
@@ -109,4 +109,4 @@ Example:
		required-opps = <&domain1_opp_1>;
	};

[1]. Documentation/devicetree/bindings/power/domain-idle-state.txt
[1]. Documentation/devicetree/bindings/power/domain-idle-state.yaml