1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/powerpc/sleep.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: PowerPC sleep property 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmaintainers: 10*4882a593Smuzhiyun - Rob Herring <robh@kernel.org> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyundescription: | 13*4882a593Smuzhiyun Devices on SOCs often have mechanisms for placing devices into low-power 14*4882a593Smuzhiyun states that are decoupled from the devices' own register blocks. Sometimes, 15*4882a593Smuzhiyun this information is more complicated than a cell-index property can 16*4882a593Smuzhiyun reasonably describe. Thus, each device controlled in such a manner 17*4882a593Smuzhiyun may contain a "sleep" property which describes these connections. 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun The sleep property consists of one or more sleep resources, each of 20*4882a593Smuzhiyun which consists of a phandle to a sleep controller, followed by a 21*4882a593Smuzhiyun controller-specific sleep specifier of zero or more cells. 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun The semantics of what type of low power modes are possible are defined 24*4882a593Smuzhiyun by the sleep controller. Some examples of the types of low power modes 25*4882a593Smuzhiyun that may be supported are: 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun - Dynamic: The device may be disabled or enabled at any time. 28*4882a593Smuzhiyun - System Suspend: The device may request to be disabled or remain 29*4882a593Smuzhiyun awake during system suspend, but will not be disabled until then. 30*4882a593Smuzhiyun - Permanent: The device is disabled permanently (until the next hard 31*4882a593Smuzhiyun reset). 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun Some devices may share a clock domain with each other, such that they should 34*4882a593Smuzhiyun only be suspended when none of the devices are in use. Where reasonable, 35*4882a593Smuzhiyun such nodes should be placed on a virtual bus, where the bus has the sleep 36*4882a593Smuzhiyun property. If the clock domain is shared among devices that cannot be 37*4882a593Smuzhiyun reasonably grouped in this manner, then create a virtual sleep controller 38*4882a593Smuzhiyun (similar to an interrupt nexus, except that defining a standardized 39*4882a593Smuzhiyun sleep-map should wait until its necessity is demonstrated). 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunselect: true 42*4882a593Smuzhiyun 43*4882a593Smuzhiyunproperties: 44*4882a593Smuzhiyun sleep: 45*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/phandle-array 46*4882a593Smuzhiyun 47*4882a593SmuzhiyunadditionalProperties: true 48