| # SPDX-License-Identifier: GPL-2.0-only |
| # |
| # ARM CPU Idle drivers |
| # |
| config ARM_CPUIDLE |
| bool "Generic ARM CPU idle Driver" |
| depends on ARM |
| select DT_IDLE_STATES |
| select CPU_IDLE_MULTIPLE_DRIVERS |
| 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. |
| |
| config ARM_PSCI_CPUIDLE |
| bool "PSCI CPU idle Driver" |
| 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. |
| |
| 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). |
| |
| config ARM_PSCI_CPUIDLE_DOMAIN |
| bool "PSCI CPU idle Domain" |
| depends on ARM_PSCI_CPUIDLE |
| depends on PM_GENERIC_DOMAINS_OF |
| select DT_IDLE_GENPD |
| 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. |
| |
| config ARM_BIG_LITTLE_CPUIDLE |
| bool "Support for ARM big.LITTLE processors" |
| depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS || COMPILE_TEST |
| depends on MCPM && !ARM64 |
| select ARM_CPU_SUSPEND |
| select CPU_IDLE_MULTIPLE_DRIVERS |
| select DT_IDLE_STATES |
| 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. |
| |
| config ARM_CLPS711X_CPUIDLE |
| bool "CPU Idle Driver for CLPS711X processors" |
| depends on ARCH_CLPS711X && !ARM64 || COMPILE_TEST |
| help |
| Select this to enable cpuidle on Cirrus Logic CLPS711X SOCs. |
| |
| config ARM_HIGHBANK_CPUIDLE |
| bool "CPU Idle Driver for Calxeda processors" |
| depends on ARM_PSCI && !ARM64 |
| 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" |
| depends on (MACH_KIRKWOOD || COMPILE_TEST) && !ARM64 |
| help |
| This adds the CPU Idle driver for Marvell Kirkwood SoCs. |
| |
| config ARM_ZYNQ_CPUIDLE |
| bool "CPU Idle Driver for Xilinx Zynq processors" |
| depends on (ARCH_ZYNQ || COMPILE_TEST) && !ARM64 |
| help |
| Select this to enable cpuidle on Xilinx Zynq processors. |
| |
| config ARM_U8500_CPUIDLE |
| bool "Cpu Idle Driver for the ST-E u8500 processors" |
| depends on ARCH_U8500 && !ARM64 |
| help |
| Select this to enable cpuidle for ST-E u8500 processors. |
| |
| config ARM_AT91_CPUIDLE |
| bool "Cpu Idle Driver for the AT91 processors" |
| default y |
| depends on (ARCH_AT91 || COMPILE_TEST) && !ARM64 |
| help |
| Select this to enable cpuidle for AT91 processors. |
| |
| config ARM_EXYNOS_CPUIDLE |
| bool "Cpu Idle Driver for the Exynos processors" |
| depends on (ARCH_EXYNOS || COMPILE_TEST) && !ARM64 |
| select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP |
| help |
| Select this to enable cpuidle for Exynos processors. |
| |
| config ARM_MVEBU_V7_CPUIDLE |
| bool "CPU Idle Driver for mvebu v7 family processors" |
| depends on (ARCH_MVEBU || COMPILE_TEST) && !ARM64 |
| help |
| Select this to enable cpuidle on Armada 370, 38x and XP processors. |
| |
| config ARM_TEGRA_CPUIDLE |
| bool "CPU Idle Driver for NVIDIA Tegra SoCs" |
| depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU |
| depends on ARCH_SUSPEND_POSSIBLE |
| 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. |
| |
| config ARM_QCOM_SPM_CPUIDLE |
| bool "CPU Idle Driver for Qualcomm Subsystem Power Manager (SPM)" |
| depends on (ARCH_QCOM || COMPILE_TEST) && !ARM64 && MMU |
| depends on ARCH_SUSPEND_POSSIBLE |
| select ARM_CPU_SUSPEND |
| select CPU_IDLE_MULTIPLE_DRIVERS |
| select DT_IDLE_STATES |
| select QCOM_SCM |
| select QCOM_SPM |
| 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. |