xref: /openbmc/linux/drivers/cpuidle/Kconfig (revision 0c94efab)
1# SPDX-License-Identifier: GPL-2.0-only
2menu "CPU Idle"
3
4config CPU_IDLE
5	bool "CPU idle PM support"
6	default y if ACPI || PPC_PSERIES
7	select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE)
8	select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE) && !CPU_IDLE_GOV_TEO
9	help
10	  CPU idle is a generic framework for supporting software-controlled
11	  idle processor power management.  It includes modular cross-platform
12	  governors that can be swapped during runtime.
13
14	  If you're using an ACPI-enabled platform, you should say Y here.
15
16if CPU_IDLE
17
18config CPU_IDLE_MULTIPLE_DRIVERS
19        bool
20
21config CPU_IDLE_GOV_LADDER
22	bool "Ladder governor (for periodic timer tick)"
23
24config CPU_IDLE_GOV_MENU
25	bool "Menu governor (for tickless system)"
26
27config CPU_IDLE_GOV_TEO
28	bool "Timer events oriented (TEO) governor (for tickless systems)"
29	help
30	  This governor implements a simplified idle state selection method
31	  focused on timer events and does not do any interactivity boosting.
32
33	  Some workloads benefit from using it and it generally should be safe
34	  to use.  Say Y here if you are not happy with the alternatives.
35
36config DT_IDLE_STATES
37	bool
38
39menu "ARM CPU Idle Drivers"
40depends on ARM || ARM64
41source "drivers/cpuidle/Kconfig.arm"
42endmenu
43
44menu "MIPS CPU Idle Drivers"
45depends on MIPS
46source "drivers/cpuidle/Kconfig.mips"
47endmenu
48
49menu "POWERPC CPU Idle Drivers"
50depends on PPC
51source "drivers/cpuidle/Kconfig.powerpc"
52endmenu
53
54endif
55
56config ARCH_NEEDS_CPU_IDLE_COUPLED
57	def_bool n
58endmenu
59