18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/powerpc/sleep.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: PowerPC sleep property 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Rob Herring <robh@kernel.org> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cidescription: | 138c2ecf20Sopenharmony_ci Devices on SOCs often have mechanisms for placing devices into low-power 148c2ecf20Sopenharmony_ci states that are decoupled from the devices' own register blocks. Sometimes, 158c2ecf20Sopenharmony_ci this information is more complicated than a cell-index property can 168c2ecf20Sopenharmony_ci reasonably describe. Thus, each device controlled in such a manner 178c2ecf20Sopenharmony_ci may contain a "sleep" property which describes these connections. 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci The sleep property consists of one or more sleep resources, each of 208c2ecf20Sopenharmony_ci which consists of a phandle to a sleep controller, followed by a 218c2ecf20Sopenharmony_ci controller-specific sleep specifier of zero or more cells. 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci The semantics of what type of low power modes are possible are defined 248c2ecf20Sopenharmony_ci by the sleep controller. Some examples of the types of low power modes 258c2ecf20Sopenharmony_ci that may be supported are: 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci - Dynamic: The device may be disabled or enabled at any time. 288c2ecf20Sopenharmony_ci - System Suspend: The device may request to be disabled or remain 298c2ecf20Sopenharmony_ci awake during system suspend, but will not be disabled until then. 308c2ecf20Sopenharmony_ci - Permanent: The device is disabled permanently (until the next hard 318c2ecf20Sopenharmony_ci reset). 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci Some devices may share a clock domain with each other, such that they should 348c2ecf20Sopenharmony_ci only be suspended when none of the devices are in use. Where reasonable, 358c2ecf20Sopenharmony_ci such nodes should be placed on a virtual bus, where the bus has the sleep 368c2ecf20Sopenharmony_ci property. If the clock domain is shared among devices that cannot be 378c2ecf20Sopenharmony_ci reasonably grouped in this manner, then create a virtual sleep controller 388c2ecf20Sopenharmony_ci (similar to an interrupt nexus, except that defining a standardized 398c2ecf20Sopenharmony_ci sleep-map should wait until its necessity is demonstrated). 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ciselect: true 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ciproperties: 448c2ecf20Sopenharmony_ci sleep: 458c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/phandle-array 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ciadditionalProperties: true 48