2019-05-19 20:07:45 +08:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
2013-07-03 16:49:55 +08:00
|
|
|
#
|
|
|
|
# ARM CPU Idle drivers
|
|
|
|
#
|
2015-02-02 23:32:46 +08:00
|
|
|
config ARM_CPUIDLE
|
2022-05-30 02:13:28 +08:00
|
|
|
bool "Generic ARM CPU idle Driver"
|
|
|
|
depends on ARM
|
2019-11-21 11:19:12 +08:00
|
|
|
select DT_IDLE_STATES
|
2017-06-12 23:55:10 +08:00
|
|
|
select CPU_IDLE_MULTIPLE_DRIVERS
|
2019-11-21 11:19:12 +08:00
|
|
|
help
|
|
|
|
Select this to enable generic cpuidle driver for ARM.
|
|
|
|
It provides a generic idle driver whose idle states are configured
|
|
|
|
at run-time through DT nodes. The CPUidle suspend backend is
|
|
|
|
initialized by calling the CPU operations init idle hook
|
|
|
|
provided by architecture code.
|
2015-02-02 23:32:46 +08:00
|
|
|
|
2019-08-09 19:03:10 +08:00
|
|
|
config ARM_PSCI_CPUIDLE
|
2019-08-09 19:03:11 +08:00
|
|
|
bool "PSCI CPU idle Driver"
|
2019-08-09 19:03:10 +08:00
|
|
|
depends on ARM_PSCI_FW
|
|
|
|
select DT_IDLE_STATES
|
|
|
|
select CPU_IDLE_MULTIPLE_DRIVERS
|
|
|
|
help
|
|
|
|
Select this to enable PSCI firmware based CPUidle driver for ARM.
|
|
|
|
It provides an idle driver that is capable of detecting and
|
|
|
|
managing idle states through the PSCI firmware interface.
|
|
|
|
|
2023-01-25 19:34:18 +08:00
|
|
|
The driver has limitations when used with PREEMPT_RT:
|
|
|
|
- If the idle states are described with the non-hierarchical layout,
|
|
|
|
all idle states are still available.
|
|
|
|
|
|
|
|
- If the idle states are described with the hierarchical layout,
|
|
|
|
only the idle states defined per CPU are available, but not the ones
|
|
|
|
being shared among a group of CPUs (aka cluster idle states).
|
|
|
|
|
2020-07-07 20:58:00 +08:00
|
|
|
config ARM_PSCI_CPUIDLE_DOMAIN
|
|
|
|
bool "PSCI CPU idle Domain"
|
|
|
|
depends on ARM_PSCI_CPUIDLE
|
|
|
|
depends on PM_GENERIC_DOMAINS_OF
|
2022-02-10 13:49:44 +08:00
|
|
|
select DT_IDLE_GENPD
|
2020-07-07 20:58:00 +08:00
|
|
|
default y
|
|
|
|
help
|
|
|
|
Select this to enable the PSCI based CPUidle driver to use PM domains,
|
|
|
|
which is needed to support the hierarchical DT based layout of the
|
|
|
|
idle states.
|
|
|
|
|
2013-09-13 23:38:41 +08:00
|
|
|
config ARM_BIG_LITTLE_CPUIDLE
|
|
|
|
bool "Support for ARM big.LITTLE processors"
|
2019-12-30 02:09:12 +08:00
|
|
|
depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS || COMPILE_TEST
|
2015-02-02 23:32:46 +08:00
|
|
|
depends on MCPM && !ARM64
|
2013-09-13 23:38:41 +08:00
|
|
|
select ARM_CPU_SUSPEND
|
|
|
|
select CPU_IDLE_MULTIPLE_DRIVERS
|
2014-06-24 23:20:28 +08:00
|
|
|
select DT_IDLE_STATES
|
2013-09-13 23:38:41 +08:00
|
|
|
help
|
|
|
|
Select this option to enable CPU idle driver for big.LITTLE based
|
|
|
|
ARM systems. Driver manages CPUs coordination through MCPM and
|
|
|
|
define different C-states for little and big cores through the
|
|
|
|
multiple CPU idle drivers infrastructure.
|
|
|
|
|
2014-03-22 13:44:35 +08:00
|
|
|
config ARM_CLPS711X_CPUIDLE
|
|
|
|
bool "CPU Idle Driver for CLPS711X processors"
|
2015-02-02 23:32:46 +08:00
|
|
|
depends on ARCH_CLPS711X && !ARM64 || COMPILE_TEST
|
2014-03-22 13:44:35 +08:00
|
|
|
help
|
|
|
|
Select this to enable cpuidle on Cirrus Logic CLPS711X SOCs.
|
|
|
|
|
2013-07-03 16:49:55 +08:00
|
|
|
config ARM_HIGHBANK_CPUIDLE
|
|
|
|
bool "CPU Idle Driver for Calxeda processors"
|
2015-02-02 23:32:46 +08:00
|
|
|
depends on ARM_PSCI && !ARM64
|
2013-07-03 16:49:55 +08:00
|
|
|
select ARM_CPU_SUSPEND
|
|
|
|
help
|
|
|
|
Select this to enable cpuidle on Calxeda processors.
|
|
|
|
|
|
|
|
config ARM_KIRKWOOD_CPUIDLE
|
|
|
|
bool "CPU Idle Driver for Marvell Kirkwood SoCs"
|
2019-12-30 02:09:12 +08:00
|
|
|
depends on (MACH_KIRKWOOD || COMPILE_TEST) && !ARM64
|
2013-07-03 16:49:55 +08:00
|
|
|
help
|
|
|
|
This adds the CPU Idle driver for Marvell Kirkwood SoCs.
|
|
|
|
|
|
|
|
config ARM_ZYNQ_CPUIDLE
|
|
|
|
bool "CPU Idle Driver for Xilinx Zynq processors"
|
2019-12-30 02:09:12 +08:00
|
|
|
depends on (ARCH_ZYNQ || COMPILE_TEST) && !ARM64
|
2013-07-03 16:49:55 +08:00
|
|
|
help
|
2013-07-10 22:02:04 +08:00
|
|
|
Select this to enable cpuidle on Xilinx Zynq processors.
|
|
|
|
|
|
|
|
config ARM_U8500_CPUIDLE
|
|
|
|
bool "Cpu Idle Driver for the ST-E u8500 processors"
|
2015-02-02 23:32:46 +08:00
|
|
|
depends on ARCH_U8500 && !ARM64
|
2013-07-10 22:02:04 +08:00
|
|
|
help
|
2019-11-29 06:38:03 +08:00
|
|
|
Select this to enable cpuidle for ST-E u8500 processors.
|
2013-07-10 22:02:04 +08:00
|
|
|
|
2013-09-26 23:34:24 +08:00
|
|
|
config ARM_AT91_CPUIDLE
|
|
|
|
bool "Cpu Idle Driver for the AT91 processors"
|
|
|
|
default y
|
2019-12-30 02:09:12 +08:00
|
|
|
depends on (ARCH_AT91 || COMPILE_TEST) && !ARM64
|
2013-09-10 07:08:13 +08:00
|
|
|
help
|
2019-11-29 06:38:03 +08:00
|
|
|
Select this to enable cpuidle for AT91 processors.
|
2014-05-09 05:57:35 +08:00
|
|
|
|
|
|
|
config ARM_EXYNOS_CPUIDLE
|
|
|
|
bool "Cpu Idle Driver for the Exynos processors"
|
2019-12-30 02:09:12 +08:00
|
|
|
depends on (ARCH_EXYNOS || COMPILE_TEST) && !ARM64
|
2015-01-24 13:05:50 +08:00
|
|
|
select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
|
2014-05-09 05:57:35 +08:00
|
|
|
help
|
2019-11-29 06:38:03 +08:00
|
|
|
Select this to enable cpuidle for Exynos processors.
|
2014-07-23 21:00:48 +08:00
|
|
|
|
|
|
|
config ARM_MVEBU_V7_CPUIDLE
|
|
|
|
bool "CPU Idle Driver for mvebu v7 family processors"
|
2019-12-30 02:09:12 +08:00
|
|
|
depends on (ARCH_MVEBU || COMPILE_TEST) && !ARM64
|
2014-07-23 21:00:48 +08:00
|
|
|
help
|
|
|
|
Select this to enable cpuidle on Armada 370, 38x and XP processors.
|
2020-02-25 06:40:52 +08:00
|
|
|
|
|
|
|
config ARM_TEGRA_CPUIDLE
|
|
|
|
bool "CPU Idle Driver for NVIDIA Tegra SoCs"
|
2021-09-13 04:29:06 +08:00
|
|
|
depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU
|
2023-02-07 03:33:06 +08:00
|
|
|
depends on ARCH_SUSPEND_POSSIBLE
|
2020-02-25 06:40:52 +08:00
|
|
|
select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
|
|
|
|
select ARM_CPU_SUSPEND
|
|
|
|
help
|
|
|
|
Select this to enable cpuidle for NVIDIA Tegra20/30/114/124 SoCs.
|
2020-04-16 16:58:21 +08:00
|
|
|
|
|
|
|
config ARM_QCOM_SPM_CPUIDLE
|
|
|
|
bool "CPU Idle Driver for Qualcomm Subsystem Power Manager (SPM)"
|
2021-04-06 20:33:28 +08:00
|
|
|
depends on (ARCH_QCOM || COMPILE_TEST) && !ARM64 && MMU
|
2023-02-07 03:33:06 +08:00
|
|
|
depends on ARCH_SUSPEND_POSSIBLE
|
2020-04-16 16:58:21 +08:00
|
|
|
select ARM_CPU_SUSPEND
|
|
|
|
select CPU_IDLE_MULTIPLE_DRIVERS
|
|
|
|
select DT_IDLE_STATES
|
|
|
|
select QCOM_SCM
|
2021-07-29 23:56:05 +08:00
|
|
|
select QCOM_SPM
|
2020-04-16 16:58:21 +08:00
|
|
|
help
|
|
|
|
Select this to enable cpuidle for Qualcomm processors.
|
|
|
|
The Subsystem Power Manager (SPM) controls low power modes for the
|
|
|
|
CPU and L2 cores. It interface with various system drivers to put
|
|
|
|
the cores in low power modes.
|