| # Copyright (c) 2014-2015 Wind River Systems, Inc. |
| # Copyright (c) 2016 Intel Corporation |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| menu "Power Management" |
| |
| config HAS_PM |
| bool |
| help |
| This option must be selected by SoCs that provide PM hooks, that is, |
| calls to configure low-power states. |
| |
| config PM |
| bool "System Power Management" |
| depends on SYS_CLOCK_EXISTS && HAS_PM |
| help |
| This option enables the board to implement extra power management |
| policies whenever the kernel becomes idle. The kernel informs the |
| power management subsystem of the number of ticks until the next kernel |
| timer is due to expire. |
| |
| if PM |
| |
| module = PM |
| module-str = System Power Management |
| source "subsys/logging/Kconfig.template.log_config" |
| |
| config PM_STATS |
| bool "System Power Management Stats" |
| depends on STATS |
| help |
| Enable System Power Management Stats. |
| |
| config PM_S2RAM |
| bool "Suspend-to-RAM (S2RAM)" |
| depends on ARCH_HAS_SUSPEND_TO_RAM |
| help |
| This option enables suspend-to-RAM (S2RAM). |
| |
| config PM_S2RAM_CUSTOM_MARKING |
| bool "Use custom marking functions" |
| depends on PM_S2RAM |
| help |
| By default a magic word in RAM is used to mark entering suspend-to-RAM. Enabling |
| this option allows custom implementation of functions which handles the marking. |
| |
| config PM_NEED_ALL_DEVICES_IDLE |
| bool "System Low Power Mode Needs All Devices Idle" |
| depends on PM_DEVICE && !SMP |
| help |
| When this option is enabled, check that no devices are busy before |
| entering into system low power mode. |
| |
| choice PM_POLICY |
| prompt "Idle State Power Management Policy" |
| default PM_POLICY_DEFAULT |
| help |
| Select the idle state power management policy. |
| |
| config PM_POLICY_DEFAULT |
| bool "Default PM policy" |
| help |
| This option selects the default PM policy. Default policy is based |
| on CPU residency times and other constraints imposed by the drivers or |
| application. |
| |
| config PM_POLICY_CUSTOM |
| bool "Custom PM Policy" |
| help |
| This options allows applications to override the default policy with |
| a custom implementation. |
| |
| endchoice |
| |
| config PM_POLICY_DEVICE_CONSTRAINTS |
| bool "Power state constraints per device" |
| help |
| This option allows devices to have a list of power states |
| that when the system transition to them, cause power loss in the device. |
| This used to set and release power state constraints when |
| it is needed by the device. |
| |
| endif # PM |
| |
| config PM_DEVICE |
| bool "Device Power Management" |
| help |
| This option enables the device power management interface. The |
| interface implemented by device drivers are called by the power |
| management subsystem. This allows device drivers to do any |
| necessary power management operations like turning off |
| device clocks and peripherals. Device drivers may also save |
| and restore states in these hook functions. |
| |
| if PM_DEVICE |
| |
| module = PM_DEVICE |
| module-str = Device Power Management |
| source "subsys/logging/Kconfig.template.log_config" |
| |
| config PM_DEVICE_POWER_DOMAIN |
| bool "Power domain" |
| depends on PM_DEVICE |
| default y |
| help |
| Enable support for Power Domain. With power domain enabled, |
| devices that depend on a domain will be notified when this |
| domain is suspended or resumed. |
| |
| config PM_DEVICE_POWER_DOMAIN_DYNAMIC |
| bool "Dynamically bind devices to a Power Domain" |
| depends on PM_DEVICE_POWER_DOMAIN && DEVICE_DEPS_DYNAMIC |
| help |
| Enable support for dynamically bind devices to a Power Domain. |
| |
| config PM_DEVICE_POWER_DOMAIN_DYNAMIC_NUM |
| int "Number of devices that can dynamically be bind to a Power Domain" |
| depends on PM_DEVICE_POWER_DOMAIN_DYNAMIC |
| default 1 |
| help |
| The number of devices that can dynamically be bind to a Power Domain. |
| |
| config PM_DEVICE_RUNTIME |
| bool "Runtime Device Power Management" |
| select EVENTS |
| help |
| Enable Runtime Power Management to save power. With device runtime PM |
| enabled, devices can be suspended or resumed based on the device |
| usage even while the CPU or system is running. |
| |
| config PM_DEVICE_RUNTIME_EXCLUSIVE |
| depends on PM_DEVICE_RUNTIME |
| bool "[DEPRECATED] Use only on Runtime Power Management on system suspend / resume" |
| default y |
| select DEPRECATED |
| help |
| On system suspend / resume do not trigger the Device PM hooks but |
| only rely on Runtime PM to manage the devices power states. |
| |
| config PM_DEVICE_SHELL |
| bool "Device Power Management shell" |
| depends on SHELL |
| help |
| Enable the device power management shell, for triggering device power |
| management events through the shell interface. |
| |
| config PM_DEVICE_SYSTEM_MANAGED |
| bool "System-Managed Device Power Management" |
| default y if !PM_DEVICE_RUNTIME_EXCLUSIVE |
| default y if !PM_DEVICE_RUNTIME |
| help |
| This option enables the system-managed device power |
| management. The power management subsystem will suspend |
| devices before entering a low power state. Conversely, after |
| the core wakes up from low power mode all suspended devices |
| are resumed. |
| |
| |
| endif # PM_DEVICE |
| |
| endmenu |