xref: /openbmc/linux/drivers/cpuidle/Kconfig.arm (revision 62975d27)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# ARM CPU Idle drivers
4#
5config ARM_CPUIDLE
6	bool "Generic ARM/ARM64 CPU idle Driver"
7	select DT_IDLE_STATES
8	select CPU_IDLE_MULTIPLE_DRIVERS
9	help
10	  Select this to enable generic cpuidle driver for ARM.
11	  It provides a generic idle driver whose idle states are configured
12	  at run-time through DT nodes. The CPUidle suspend backend is
13	  initialized by calling the CPU operations init idle hook
14	  provided by architecture code.
15
16config ARM_PSCI_CPUIDLE
17	bool "PSCI CPU idle Driver"
18	depends on ARM_PSCI_FW
19	select DT_IDLE_STATES
20	select CPU_IDLE_MULTIPLE_DRIVERS
21	help
22	  Select this to enable PSCI firmware based CPUidle driver for ARM.
23	  It provides an idle driver that is capable of detecting and
24	  managing idle states through the PSCI firmware interface.
25
26config ARM_BIG_LITTLE_CPUIDLE
27	bool "Support for ARM big.LITTLE processors"
28	depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS || COMPILE_TEST
29	depends on MCPM && !ARM64
30	select ARM_CPU_SUSPEND
31	select CPU_IDLE_MULTIPLE_DRIVERS
32	select DT_IDLE_STATES
33	help
34	  Select this option to enable CPU idle driver for big.LITTLE based
35	  ARM systems. Driver manages CPUs coordination through MCPM and
36	  define different C-states for little and big cores through the
37	  multiple CPU idle drivers infrastructure.
38
39config ARM_CLPS711X_CPUIDLE
40	bool "CPU Idle Driver for CLPS711X processors"
41	depends on ARCH_CLPS711X && !ARM64 || COMPILE_TEST
42	help
43	  Select this to enable cpuidle on Cirrus Logic CLPS711X SOCs.
44
45config ARM_HIGHBANK_CPUIDLE
46	bool "CPU Idle Driver for Calxeda processors"
47	depends on ARM_PSCI && !ARM64
48	select ARM_CPU_SUSPEND
49	help
50	  Select this to enable cpuidle on Calxeda processors.
51
52config ARM_KIRKWOOD_CPUIDLE
53	bool "CPU Idle Driver for Marvell Kirkwood SoCs"
54	depends on (MACH_KIRKWOOD || COMPILE_TEST) && !ARM64
55	help
56	  This adds the CPU Idle driver for Marvell Kirkwood SoCs.
57
58config ARM_ZYNQ_CPUIDLE
59	bool "CPU Idle Driver for Xilinx Zynq processors"
60	depends on (ARCH_ZYNQ || COMPILE_TEST) && !ARM64
61	help
62	  Select this to enable cpuidle on Xilinx Zynq processors.
63
64config ARM_U8500_CPUIDLE
65	bool "Cpu Idle Driver for the ST-E u8500 processors"
66	depends on ARCH_U8500 && !ARM64
67	help
68	  Select this to enable cpuidle for ST-E u8500 processors.
69
70config ARM_AT91_CPUIDLE
71	bool "Cpu Idle Driver for the AT91 processors"
72	default y
73	depends on (ARCH_AT91 || COMPILE_TEST) && !ARM64
74	help
75	  Select this to enable cpuidle for AT91 processors.
76
77config ARM_EXYNOS_CPUIDLE
78	bool "Cpu Idle Driver for the Exynos processors"
79	depends on (ARCH_EXYNOS || COMPILE_TEST) && !ARM64
80	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
81	help
82	  Select this to enable cpuidle for Exynos processors.
83
84config ARM_MVEBU_V7_CPUIDLE
85	bool "CPU Idle Driver for mvebu v7 family processors"
86	depends on (ARCH_MVEBU || COMPILE_TEST) && !ARM64
87	help
88	  Select this to enable cpuidle on Armada 370, 38x and XP processors.
89
90config ARM_TEGRA_CPUIDLE
91	bool "CPU Idle Driver for NVIDIA Tegra SoCs"
92	depends on ARCH_TEGRA && !ARM64
93	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
94	select ARM_CPU_SUSPEND
95	help
96	  Select this to enable cpuidle for NVIDIA Tegra20/30/114/124 SoCs.
97
98config ARM_QCOM_SPM_CPUIDLE
99	bool "CPU Idle Driver for Qualcomm Subsystem Power Manager (SPM)"
100	depends on (ARCH_QCOM || COMPILE_TEST) && !ARM64
101	select ARM_CPU_SUSPEND
102	select CPU_IDLE_MULTIPLE_DRIVERS
103	select DT_IDLE_STATES
104	select QCOM_SCM
105	help
106	  Select this to enable cpuidle for Qualcomm processors.
107	  The Subsystem Power Manager (SPM) controls low power modes for the
108	  CPU and L2 cores. It interface with various system drivers to put
109	  the cores in low power modes.
110