drivers/cpuidle/Kconfig.arm

Source file repositories/reference/linux-study-clean/drivers/cpuidle/Kconfig.arm

File Facts

System
Linux kernel
Corpus path
drivers/cpuidle/Kconfig.arm
Extension
.arm
Size
4472 bytes
Lines
133
Domain
Driver Families
Bucket
drivers/cpuidle
Inferred role
Driver Families: drivers/cpuidle
Status
atlas-only

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

# 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.

Annotation

Implementation Notes