133 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2#3# ARM CPU Idle drivers4#5config ARM_CPUIDLE6 bool "Generic ARM CPU idle Driver"7 depends on ARM8 select DT_IDLE_STATES9 select CPU_IDLE_MULTIPLE_DRIVERS10 help11 Select this to enable generic cpuidle driver for ARM.12 It provides a generic idle driver whose idle states are configured13 at run-time through DT nodes. The CPUidle suspend backend is14 initialized by calling the CPU operations init idle hook15 provided by architecture code.16 17config ARM_PSCI_CPUIDLE18 bool "PSCI CPU idle Driver"19 depends on ARM_PSCI_FW20 select DT_IDLE_STATES21 select CPU_IDLE_MULTIPLE_DRIVERS22 help23 Select this to enable PSCI firmware based CPUidle driver for ARM.24 It provides an idle driver that is capable of detecting and25 managing idle states through the PSCI firmware interface.26 27 The driver has limitations when used with PREEMPT_RT:28 - If the idle states are described with the non-hierarchical layout,29 all idle states are still available.30 31 - If the idle states are described with the hierarchical layout,32 only the idle states defined per CPU are available, but not the ones33 being shared among a group of CPUs (aka cluster idle states).34 35config ARM_PSCI_CPUIDLE_DOMAIN36 bool "PSCI CPU idle Domain"37 depends on ARM_PSCI_CPUIDLE38 depends on PM_GENERIC_DOMAINS_OF39 select DT_IDLE_GENPD40 default y41 help42 Select this to enable the PSCI based CPUidle driver to use PM domains,43 which is needed to support the hierarchical DT based layout of the44 idle states.45 46config ARM_BIG_LITTLE_CPUIDLE47 bool "Support for ARM big.LITTLE processors"48 depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS || COMPILE_TEST49 depends on MCPM && !ARM6450 select ARM_CPU_SUSPEND51 select CPU_IDLE_MULTIPLE_DRIVERS52 select DT_IDLE_STATES53 help54 Select this option to enable CPU idle driver for big.LITTLE based55 ARM systems. Driver manages CPUs coordination through MCPM and56 define different C-states for little and big cores through the57 multiple CPU idle drivers infrastructure.58 59config ARM_CLPS711X_CPUIDLE60 bool "CPU Idle Driver for CLPS711X processors"61 depends on ARCH_CLPS711X && !ARM64 || COMPILE_TEST62 help63 Select this to enable cpuidle on Cirrus Logic CLPS711X SOCs.64 65config ARM_HIGHBANK_CPUIDLE66 bool "CPU Idle Driver for Calxeda processors"67 depends on ARM_PSCI && !ARM6468 select ARM_CPU_SUSPEND69 help70 Select this to enable cpuidle on Calxeda processors.71 72config ARM_KIRKWOOD_CPUIDLE73 bool "CPU Idle Driver for Marvell Kirkwood SoCs"74 depends on (MACH_KIRKWOOD || COMPILE_TEST) && !ARM6475 help76 This adds the CPU Idle driver for Marvell Kirkwood SoCs.77 78config ARM_ZYNQ_CPUIDLE79 bool "CPU Idle Driver for Xilinx Zynq processors"80 depends on (ARCH_ZYNQ || COMPILE_TEST) && !ARM6481 help82 Select this to enable cpuidle on Xilinx Zynq processors.83 84config ARM_U8500_CPUIDLE85 bool "Cpu Idle Driver for the ST-E u8500 processors"86 depends on ARCH_U8500 && !ARM6487 help88 Select this to enable cpuidle for ST-E u8500 processors.89 90config ARM_AT91_CPUIDLE91 bool "Cpu Idle Driver for the AT91 processors"92 default y93 depends on (ARCH_AT91 || COMPILE_TEST) && !ARM6494 help95 Select this to enable cpuidle for AT91 processors.96 97config ARM_EXYNOS_CPUIDLE98 bool "Cpu Idle Driver for the Exynos processors"99 depends on (ARCH_EXYNOS || COMPILE_TEST) && !ARM64100 select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP101 help102 Select this to enable cpuidle for Exynos processors.103 104config ARM_MVEBU_V7_CPUIDLE105 bool "CPU Idle Driver for mvebu v7 family processors"106 depends on (ARCH_MVEBU || COMPILE_TEST) && !ARM64107 help108 Select this to enable cpuidle on Armada 370, 38x and XP processors.109 110config ARM_TEGRA_CPUIDLE111 bool "CPU Idle Driver for NVIDIA Tegra SoCs"112 depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU113 depends on ARCH_SUSPEND_POSSIBLE114 select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP115 select ARM_CPU_SUSPEND116 help117 Select this to enable cpuidle for NVIDIA Tegra20/30/114/124 SoCs.118 119config ARM_QCOM_SPM_CPUIDLE120 bool "CPU Idle Driver for Qualcomm Subsystem Power Manager (SPM)"121 depends on (ARCH_QCOM || COMPILE_TEST) && !ARM64 && MMU122 depends on ARCH_SUSPEND_POSSIBLE123 select ARM_CPU_SUSPEND124 select CPU_IDLE_MULTIPLE_DRIVERS125 select DT_IDLE_STATES126 select QCOM_SCM127 select QCOM_SPM128 help129 Select this to enable cpuidle for Qualcomm processors.130 The Subsystem Power Manager (SPM) controls low power modes for the131 CPU and L2 cores. It interface with various system drivers to put132 the cores in low power modes.133