2020-08-23 00:58:49 +08:00
|
|
|
# Copyright (c) 2014-2015 Wind River Systems, Inc.
|
|
|
|
# Copyright (c) 2016 Intel Corporation
|
2019-04-06 21:08:09 +08:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
2020-08-23 00:58:49 +08:00
|
|
|
menu "Power Management"
|
|
|
|
|
2020-09-02 06:31:40 +08:00
|
|
|
config SYS_POWER_MANAGEMENT
|
|
|
|
bool "System Power management"
|
|
|
|
select PM
|
|
|
|
help
|
|
|
|
This option is deprecated. Please use CONFIG_PM instead.
|
|
|
|
|
|
|
|
menuconfig PM
|
2020-08-23 00:58:49 +08:00
|
|
|
bool "System 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.
|
|
|
|
|
2020-09-02 06:31:40 +08:00
|
|
|
if PM
|
|
|
|
config PM_SLEEP_STATES
|
2020-08-23 00:58:49 +08:00
|
|
|
bool "Low Power states"
|
2020-09-02 06:31:40 +08:00
|
|
|
depends on HAS_POWER_STATE_SLEEP_1 || \
|
|
|
|
HAS_POWER_STATE_SLEEP_2 || \
|
|
|
|
HAS_POWER_STATE_SLEEP_3
|
2020-08-23 00:58:49 +08:00
|
|
|
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.
|
|
|
|
|
2020-09-02 06:31:40 +08:00
|
|
|
config PM_DEEP_SLEEP_STATES
|
2020-08-23 00:58:49 +08:00
|
|
|
bool "Deep Sleep states"
|
2020-09-02 06:31:40 +08:00
|
|
|
depends on HAS_POWER_STATE_DEEP_SLEEP_1 || \
|
|
|
|
HAS_POWER_STATE_DEEP_SLEEP_2 || \
|
|
|
|
HAS_POWER_STATE_DEEP_SLEEP_3
|
2020-08-23 00:58:49 +08:00
|
|
|
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.
|
|
|
|
|
|
|
|
|
2020-09-02 06:31:40 +08:00
|
|
|
config PM_STATE_LOCK
|
2019-02-04 22:05:23 +08:00
|
|
|
bool "Enable Power State locking capability"
|
2018-11-05 18:06:04 +08:00
|
|
|
help
|
2019-02-04 22:05:23 +08:00
|
|
|
Enable Power Management system state locking capability
|
2018-11-05 18:06:04 +08:00
|
|
|
if any application wants to temporarily disable certain
|
2019-01-11 17:53:57 +08:00
|
|
|
Power States while doing any critical work or needs quick
|
|
|
|
response from hardware resources.
|
2018-11-05 18:06:04 +08:00
|
|
|
|
2020-09-02 06:31:40 +08:00
|
|
|
config PM_DIRECT_FORCE_MODE
|
2020-01-22 16:36:21 +08:00
|
|
|
bool "Enable system power management direct force trigger mode"
|
|
|
|
help
|
|
|
|
Enable system power management direct force trigger mode. In
|
|
|
|
this mode application thread can directly put system in sleep
|
|
|
|
or deep sleep mode instead of waiting for idle thread to do
|
|
|
|
it, so that it can reduce latency to enter low power mode.
|
|
|
|
|
2020-09-02 06:31:40 +08:00
|
|
|
config PM_DEBUG
|
2019-02-04 22:05:23 +08:00
|
|
|
bool "Enable System Power Management debug hooks"
|
2018-10-24 16:24:20 +08:00
|
|
|
help
|
2019-02-04 22:05:23 +08:00
|
|
|
Enable System Power Management debugging hooks.
|
2018-10-24 16:24:20 +08:00
|
|
|
|
2020-09-02 06:31:40 +08:00
|
|
|
config PM_DEVICE_IDLE
|
2019-02-28 15:37:58 +08:00
|
|
|
bool "Enable device Idle Power Management"
|
2020-09-02 06:31:40 +08:00
|
|
|
depends on PM_DEVICE
|
2019-02-28 15:37:58 +08:00
|
|
|
select POLL
|
|
|
|
help
|
|
|
|
Enable device Idle Power Management to save power.
|
|
|
|
With device Idle PM enabled, devices can be suspended or
|
|
|
|
resumed based on the device usage even while the CPU or
|
|
|
|
system is running.
|
|
|
|
|
2019-02-04 22:05:23 +08:00
|
|
|
source "subsys/power/policy/Kconfig"
|
2018-09-25 20:58:27 +08:00
|
|
|
|
2020-09-02 06:31:40 +08:00
|
|
|
module = PM
|
2019-02-04 22:05:23 +08:00
|
|
|
module-str = System Power Management
|
|
|
|
source "subsys/logging/Kconfig.template.log_config"
|
2020-08-23 00:58:49 +08:00
|
|
|
|
|
|
|
|
2020-09-02 06:31:40 +08:00
|
|
|
endif # PM
|
2020-08-23 00:58:49 +08:00
|
|
|
|
2020-09-02 06:31:40 +08:00
|
|
|
config PM_DEVICE
|
2020-08-23 00:58:49 +08:00
|
|
|
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.
|
|
|
|
|
2020-09-02 06:31:40 +08:00
|
|
|
config DEVICE_POWER_MANAGEMENT
|
|
|
|
bool "Device Power Management"
|
|
|
|
select PM_DEVICE
|
|
|
|
help
|
|
|
|
This option is deprecated, please use CONFIG_PM_DEVICE instead.
|
|
|
|
|
2020-09-06 21:45:40 +08:00
|
|
|
config PM_MAX_DEVICES
|
|
|
|
int "Max number of devices support power management"
|
2020-09-02 06:31:40 +08:00
|
|
|
depends on PM_DEVICE
|
2020-09-06 21:45:40 +08:00
|
|
|
default 15
|
2020-08-23 00:58:49 +08:00
|
|
|
|
|
|
|
endmenu
|
2020-09-02 09:46:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
# Hidden PM feature configs which are to be selected by
|
|
|
|
# individual SoC.
|
|
|
|
#
|
|
|
|
|
|
|
|
config HAS_POWER_STATE_SLEEP_1
|
|
|
|
bool
|
|
|
|
help
|
|
|
|
This option signifies that the target supports the POWER_STATE_SLEEP_1
|
|
|
|
configuration option.
|
|
|
|
|
|
|
|
config HAS_POWER_STATE_SLEEP_2
|
|
|
|
bool
|
|
|
|
help
|
|
|
|
This option signifies that the target supports the POWER_STATE_SLEEP_2
|
|
|
|
configuration option.
|
|
|
|
|
|
|
|
config HAS_POWER_STATE_SLEEP_3
|
|
|
|
bool
|
|
|
|
help
|
|
|
|
This option signifies that the target supports the POWER_STATE_SLEEP_3
|
|
|
|
configuration option.
|
|
|
|
|
|
|
|
config HAS_POWER_STATE_DEEP_SLEEP_1
|
|
|
|
bool
|
|
|
|
help
|
2020-09-02 09:46:30 +08:00
|
|
|
This option signifies that the target supports the POWER_STATE_DEEP_SLEEP_1
|
2020-09-02 09:46:04 +08:00
|
|
|
configuration option.
|
|
|
|
|
|
|
|
config HAS_POWER_STATE_DEEP_SLEEP_2
|
|
|
|
bool
|
|
|
|
help
|
2020-09-02 09:46:30 +08:00
|
|
|
This option signifies that the target supports the POWER_STATE_DEEP_SLEEP_2
|
2020-09-02 09:46:04 +08:00
|
|
|
configuration option.
|
|
|
|
|
|
|
|
config HAS_POWER_STATE_DEEP_SLEEP_3
|
|
|
|
bool
|
|
|
|
help
|
2020-09-02 09:46:30 +08:00
|
|
|
This option signifies that the target supports the POWER_STATE_DEEP_SLEEP_3
|
2020-09-02 09:46:04 +08:00
|
|
|
configuration option.
|