1608c8adba
Sometimes we want to entirely decouple the system PM from the device PM, leaving the devices to manage its own power states using the runtime PM. This is currently not possible because the suspend / resume code path is triggering the device PM hooks even when the runtime PM is enabled. Introduce a new PM_DEVICE_RUNTIME_EXCLUSIVE symbol to allow the platform to skip the device PM triggers on suspend / resume. Signed-off-by: Carlo Caione <ccaione@baylibre.com>
117 lines
3.4 KiB
Plaintext
117 lines
3.4 KiB
Plaintext
# Copyright (c) 2014-2015 Wind River Systems, Inc.
|
|
# Copyright (c) 2016 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menu "Power Management"
|
|
|
|
menuconfig PM
|
|
bool "System Power Management"
|
|
depends on SYS_CLOCK_EXISTS && !HAS_NO_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.
|
|
|
|
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
|
|
|
|
endif # PM
|
|
|
|
config HAS_NO_PM
|
|
bool
|
|
help
|
|
This option blocks selection of PM. It can be selected in SOC
|
|
targets where system power management is not supported, for example
|
|
on support core of a multi-core device where SoC power management is
|
|
the responsibility of a different core.
|
|
|
|
config PM_DEVICE
|
|
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.
|
|
|
|
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 Pomain"
|
|
depends on PM_DEVICE_POWER_DOMAIN
|
|
select HAS_DYNAMIC_DEVICE_HANDLES
|
|
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"
|
|
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 "Use only on Runtime Power Management on system suspend / resume"
|
|
default y
|
|
help
|
|
On system suspend / resume do not trigger the Device PM hooks but
|
|
only rely on Runtime PM to manage the devices power states.
|
|
|
|
endif # PM_DEVICE
|
|
|
|
endmenu
|