Lines Matching +full:power +full:- +full:on

1 .. _pm-device-runtime:
3 Device Runtime Power Management
9 The device runtime power management (PM) framework is an active power management
10 mechanism which reduces the overall system power consumption by suspending the
15 on usage count.
17 When device runtime power management is enabled on a device, its state will be
19 not used. On the first device request, it will be resumed and so put into the
29 For devices on a power domain (via the devicetree 'power-domains' property), device runtime
30 power management automatically attempts to request and release the dependent domain
32 calls on the child device.
34 For the previous to automatically control the power domain state, device runtime PM must be enabled
35 on the power domain device (either through the ``zephyr,pm-device-runtime-auto`` devicetree property
49 init -> SUSPENDED;
50 SUSPENDED -> ACTIVE;
51 ACTIVE -> SUSPENDED;
52 ACTIVE -> SUSPENDING [constraint=false]
53 SUSPENDING -> SUSPENDED [constraint=false];
54 SUSPENDED -> SUSPENDING [style=invis];
55 SUSPENDING -> ACTIVE [style=invis];
58 The device runtime power management framework has been designed to minimize
59 devices power consumption with minimal application work. Device drivers are
63 power management for a device. This can be useful, for example, if an
69 When runtime PM is enabled on a device it will no longer be resumed or suspended
70 during system power transitions. Instead, the device is fully responsible to
81 As of today, the device runtime power management API does not manage device
82 dependencies. This effectively means that, if a device depends on other
83 devices to operate (e.g. a sensor may depend on a bus device), the bus will
84 be resumed and suspended on every transaction. In general, it is more
99 .. figure:: images/devr-sync-ops.svg
101 Synchronous operation on a single device
114 .. figure:: images/devr-async-ops.svg
116 Asynchronous operation on a single device
124 .. code-block:: c
139 return -ENOTSUP;
148 To enable device runtime power management on a device, the driver needs to call
156 .. code-block:: c
167 /* enable device runtime power management */
169 if ((ret < 0) && (ret != -ENOSYS)) {
174 Device runtime power management can also be automatically enabled on a device
175 instance by adding the ``zephyr,pm-device-runtime-auto`` flag onto the corresponding
179 .. code-block:: dts
183 zephyr,pm-device-runtime-auto;
189 .. code-block:: c
211 .. code-block:: c
233 Some helpful examples showing device runtime power management features: