1# Copyright (c) 2014-2015 Wind River Systems, Inc. 2# Copyright (c) 2016 Intel Corporation 3# SPDX-License-Identifier: Apache-2.0 4 5menu "Power Management" 6 7config HAS_PM 8 bool 9 help 10 This option must be selected by SoCs that provide PM hooks, that is, 11 calls to configure low-power states. 12 13config PM 14 bool "System Power Management" 15 depends on SYS_CLOCK_EXISTS && HAS_PM 16 help 17 This option enables the board to implement extra power management 18 policies whenever the kernel becomes idle. The kernel informs the 19 power management subsystem of the number of ticks until the next kernel 20 timer is due to expire. 21 22rsource "policy/Kconfig" 23 24if PM 25 26module = PM 27module-str = System Power Management 28source "subsys/logging/Kconfig.template.log_config" 29 30config PM_STATS 31 bool "System Power Management Stats" 32 depends on STATS 33 help 34 Enable System Power Management Stats. 35 36config PM_S2RAM 37 bool "Suspend-to-RAM (S2RAM)" 38 depends on ARCH_HAS_SUSPEND_TO_RAM 39 help 40 This option enables suspend-to-RAM (S2RAM). 41 42config PM_S2RAM_CUSTOM_MARKING 43 bool "Use custom marking functions" 44 depends on PM_S2RAM 45 help 46 By default a magic word in RAM is used to mark entering suspend-to-RAM. Enabling 47 this option allows custom implementation of functions which handle the marking. 48 49config PM_NEED_ALL_DEVICES_IDLE 50 bool "System Low Power Mode Needs All Devices Idle" 51 depends on PM_DEVICE && !SMP 52 help 53 When this option is enabled, check that no devices are busy before 54 entering into system low power mode. 55 56endif # PM 57 58config PM_DEVICE 59 bool "Device Power Management" 60 help 61 This option enables the device power management interface. The 62 interface implemented by device drivers are called by the power 63 management subsystem. This allows device drivers to do any 64 necessary power management operations like turning off 65 device clocks and peripherals. Device drivers may also save 66 and restore states in these hook functions. 67 68if PM_DEVICE 69 70module = PM_DEVICE 71module-str = Device Power Management 72source "subsys/logging/Kconfig.template.log_config" 73 74config PM_DEVICE_POWER_DOMAIN 75 bool "Power domain" 76 depends on PM_DEVICE 77 default y 78 help 79 Enable support for Power Domain. With power domain enabled, 80 devices that depend on a domain will be notified when this 81 domain is suspended or resumed. 82 83config PM_DEVICE_POWER_DOMAIN_DYNAMIC 84 bool "Dynamically bind devices to a Power Domain" 85 depends on PM_DEVICE_POWER_DOMAIN && DEVICE_DEPS_DYNAMIC 86 help 87 Enable support for dynamically bind devices to a Power Domain. 88 89config PM_DEVICE_POWER_DOMAIN_DYNAMIC_NUM 90 int "Number of devices that can dynamically be bind to a Power Domain" 91 depends on PM_DEVICE_POWER_DOMAIN_DYNAMIC 92 default 1 93 help 94 The number of devices that can dynamically be bind to a Power Domain. 95 96config PM_DEVICE_RUNTIME 97 bool "Runtime Device Power Management" 98 select EVENTS 99 help 100 Enable Runtime Power Management to save power. With device runtime PM 101 enabled, devices can be suspended or resumed based on the device 102 usage even while the CPU or system is running. 103 104config PM_DEVICE_RUNTIME_EXCLUSIVE 105 depends on PM_DEVICE_RUNTIME 106 bool "[DEPRECATED] Use only on Runtime Power Management on system suspend / resume" 107 select DEPRECATED 108 help 109 On system suspend / resume do not trigger the Device PM hooks but 110 only rely on Runtime PM to manage the devices power states. 111 112config PM_DEVICE_SHELL 113 bool "Device Power Management shell" 114 depends on SHELL 115 help 116 Enable the device power management shell, for triggering device power 117 management events through the shell interface. 118 119config PM_DEVICE_SYSTEM_MANAGED 120 bool "System-Managed Device Power Management" 121 default y if !PM_DEVICE_RUNTIME_EXCLUSIVE && !PM_DEVICE_RUNTIME 122 help 123 This option enables the system-managed device power 124 management. The power management subsystem will suspend 125 devices before entering a low power state. Conversely, after 126 the core wakes up from low power mode all suspended devices 127 are resumed. 128 129 130endif # PM_DEVICE 131 132endmenu 133