|  | # | 
|  | # Copyright (c) 2014-2015 Wind River Systems, Inc. | 
|  | # Copyright (c) 2016 Intel Corporation | 
|  | # | 
|  | # SPDX-License-Identifier: Apache-2.0 | 
|  | # | 
|  |  | 
|  | menuconfig SYS_POWER_MANAGEMENT | 
|  | bool "Power management" | 
|  | select TICKLESS_IDLE | 
|  | 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 SYS_POWER_MANAGEMENT | 
|  | choice POWER_MANAGEMENT_CONTROL | 
|  | prompt "Power Management Control" | 
|  | default PM_CONTROL_APP | 
|  | help | 
|  | Select the Application managed or OS managed power saving | 
|  | mechanism. | 
|  |  | 
|  | config PM_CONTROL_APP | 
|  | bool | 
|  | prompt "Handled at Application level" | 
|  | help | 
|  | This option enables the Application to handle all the Power | 
|  | Management flows for the platform. | 
|  |  | 
|  | config PM_CONTROL_OS | 
|  | bool | 
|  | prompt "Handle at OS level" | 
|  | help | 
|  | This option allows the OS to handle all the Power | 
|  | Management flows for the platform. | 
|  |  | 
|  | endchoice # POWER_MANAGEMENT_CONTROL | 
|  |  | 
|  | config SYS_POWER_LOW_POWER_STATE | 
|  | bool "Low power state" | 
|  | depends on SYS_POWER_LOW_POWER_STATE_SUPPORTED | 
|  | help | 
|  | This option enables the kernel to interface with a power manager | 
|  | application.  This permits the system to enter a custom CPU low power | 
|  | state when the kernel becomes idle. The low power state could be any of | 
|  | the CPU low power states supported by the processor.  Generally the one | 
|  | saving most power. | 
|  |  | 
|  | config SYS_POWER_DEEP_SLEEP | 
|  | bool "Deep sleep state" | 
|  | depends on SYS_POWER_DEEP_SLEEP_SUPPORTED | 
|  | help | 
|  | This option enables the kernel to interface with a power manager | 
|  | application. This permits the system to enter a Deep sleep state | 
|  | supported by the SOC where the system clock is turned off while RAM is | 
|  | retained. This state would be entered when the kernel becomes idle for | 
|  | extended periods and would have a high wake latency.  Resume would be | 
|  | from the reset vector same as cold boot. The interface allows | 
|  | restoration of states that were saved at the time of suspend. | 
|  |  | 
|  | endif # SYS_POWER_MANAGEMENT | 
|  |  | 
|  | config DEVICE_POWER_MANAGEMENT | 
|  | bool "Device power management" | 
|  | help | 
|  | This option enables the device power management interface.  The | 
|  | interface consists of hook functions implemented by device drivers | 
|  | that get called by the power manager application when the system | 
|  | is going to suspend state or resuming from suspend state. This allows | 
|  | device drivers to do any necessary power management operations | 
|  | like turning off device clocks and peripherals. The device drivers | 
|  | may also save and restore states in these hook functions. |