xref: /openbmc/linux/Documentation/devicetree/bindings/powerpc/sleep.yaml (revision cdd38c5f1ce4398ec58fec95904b75824daab7b5)
116b0b2baSRob Herring# SPDX-License-Identifier: GPL-2.0-only
216b0b2baSRob Herring%YAML 1.2
316b0b2baSRob Herring---
416b0b2baSRob Herring$id: http://devicetree.org/schemas/powerpc/sleep.yaml#
516b0b2baSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
616b0b2baSRob Herring
716b0b2baSRob Herringtitle: PowerPC sleep property
816b0b2baSRob Herring
916b0b2baSRob Herringmaintainers:
1016b0b2baSRob Herring  - Rob Herring <robh@kernel.org>
1116b0b2baSRob Herring
1216b0b2baSRob Herringdescription: |
1316b0b2baSRob Herring  Devices on SOCs often have mechanisms for placing devices into low-power
1416b0b2baSRob Herring  states that are decoupled from the devices' own register blocks.  Sometimes,
1516b0b2baSRob Herring  this information is more complicated than a cell-index property can
1616b0b2baSRob Herring  reasonably describe.  Thus, each device controlled in such a manner
1716b0b2baSRob Herring  may contain a "sleep" property which describes these connections.
1816b0b2baSRob Herring
1916b0b2baSRob Herring  The sleep property consists of one or more sleep resources, each of
2016b0b2baSRob Herring  which consists of a phandle to a sleep controller, followed by a
2116b0b2baSRob Herring  controller-specific sleep specifier of zero or more cells.
2216b0b2baSRob Herring
2316b0b2baSRob Herring  The semantics of what type of low power modes are possible are defined
2416b0b2baSRob Herring  by the sleep controller.  Some examples of the types of low power modes
2516b0b2baSRob Herring  that may be supported are:
2616b0b2baSRob Herring
2716b0b2baSRob Herring   - Dynamic: The device may be disabled or enabled at any time.
2816b0b2baSRob Herring   - System Suspend: The device may request to be disabled or remain
2916b0b2baSRob Herring     awake during system suspend, but will not be disabled until then.
3016b0b2baSRob Herring   - Permanent: The device is disabled permanently (until the next hard
3116b0b2baSRob Herring     reset).
3216b0b2baSRob Herring
3316b0b2baSRob Herring  Some devices may share a clock domain with each other, such that they should
3416b0b2baSRob Herring  only be suspended when none of the devices are in use.  Where reasonable,
3516b0b2baSRob Herring  such nodes should be placed on a virtual bus, where the bus has the sleep
3616b0b2baSRob Herring  property.  If the clock domain is shared among devices that cannot be
3716b0b2baSRob Herring  reasonably grouped in this manner, then create a virtual sleep controller
3816b0b2baSRob Herring  (similar to an interrupt nexus, except that defining a standardized
3916b0b2baSRob Herring  sleep-map should wait until its necessity is demonstrated).
4016b0b2baSRob Herring
4116b0b2baSRob Herringselect: true
4216b0b2baSRob Herring
4316b0b2baSRob Herringproperties:
4416b0b2baSRob Herring  sleep:
45*d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle-array
4616b0b2baSRob Herring
4716b0b2baSRob HerringadditionalProperties: true
48