133 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # 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.
 |