Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[linux-2.6-block.git] / drivers / cpuidle / Kconfig.arm
CommitLineData
ec8f24b7 1# SPDX-License-Identifier: GPL-2.0-only
b98e01ad
S
2#
3# ARM CPU Idle drivers
4#
0e087044 5config ARM_CPUIDLE
51280aca
MW
6 bool "Generic ARM CPU idle Driver"
7 depends on ARM
656b4e63 8 select DT_IDLE_STATES
d50a7d8a 9 select CPU_IDLE_MULTIPLE_DRIVERS
656b4e63
KK
10 help
11 Select this to enable generic cpuidle driver for ARM.
12 It provides a generic idle driver whose idle states are configured
13 at run-time through DT nodes. The CPUidle suspend backend is
14 initialized by calling the CPU operations init idle hook
15 provided by architecture code.
0e087044 16
81d549e0 17config ARM_PSCI_CPUIDLE
78896146 18 bool "PSCI CPU idle Driver"
81d549e0
LP
19 depends on ARM_PSCI_FW
20 select DT_IDLE_STATES
21 select CPU_IDLE_MULTIPLE_DRIVERS
22 help
23 Select this to enable PSCI firmware based CPUidle driver for ARM.
24 It provides an idle driver that is capable of detecting and
25 managing idle states through the PSCI firmware interface.
26
f9901f64
KK
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 ones
33 being shared among a group of CPUs (aka cluster idle states).
34
03175619
UH
35config ARM_PSCI_CPUIDLE_DOMAIN
36 bool "PSCI CPU idle Domain"
37 depends on ARM_PSCI_CPUIDLE
38 depends on PM_GENERIC_DOMAINS_OF
9d976d67 39 select DT_IDLE_GENPD
03175619
UH
40 default y
41 help
42 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 the
44 idle states.
45
3880d214
LP
46config ARM_BIG_LITTLE_CPUIDLE
47 bool "Support for ARM big.LITTLE processors"
53eb82b0 48 depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS || COMPILE_TEST
0e087044 49 depends on MCPM && !ARM64
3880d214
LP
50 select ARM_CPU_SUSPEND
51 select CPU_IDLE_MULTIPLE_DRIVERS
d2e5c871 52 select DT_IDLE_STATES
3880d214
LP
53 help
54 Select this option to enable CPU idle driver for big.LITTLE based
55 ARM systems. Driver manages CPUs coordination through MCPM and
56 define different C-states for little and big cores through the
57 multiple CPU idle drivers infrastructure.
58
7c7f8f7f
AS
59config ARM_CLPS711X_CPUIDLE
60 bool "CPU Idle Driver for CLPS711X processors"
0e087044 61 depends on ARCH_CLPS711X && !ARM64 || COMPILE_TEST
7c7f8f7f
AS
62 help
63 Select this to enable cpuidle on Cirrus Logic CLPS711X SOCs.
64
b98e01ad
S
65config ARM_HIGHBANK_CPUIDLE
66 bool "CPU Idle Driver for Calxeda processors"
0e087044 67 depends on ARM_PSCI && !ARM64
b98e01ad
S
68 select ARM_CPU_SUSPEND
69 help
70 Select this to enable cpuidle on Calxeda processors.
71
72config ARM_KIRKWOOD_CPUIDLE
73 bool "CPU Idle Driver for Marvell Kirkwood SoCs"
53eb82b0 74 depends on (MACH_KIRKWOOD || COMPILE_TEST) && !ARM64
b98e01ad
S
75 help
76 This adds the CPU Idle driver for Marvell Kirkwood SoCs.
77
78config ARM_ZYNQ_CPUIDLE
79 bool "CPU Idle Driver for Xilinx Zynq processors"
53eb82b0 80 depends on (ARCH_ZYNQ || COMPILE_TEST) && !ARM64
b98e01ad 81 help
d3f2950f
DL
82 Select this to enable cpuidle on Xilinx Zynq processors.
83
84config ARM_U8500_CPUIDLE
85 bool "Cpu Idle Driver for the ST-E u8500 processors"
0e087044 86 depends on ARCH_U8500 && !ARM64
d3f2950f 87 help
4d30d4a0 88 Select this to enable cpuidle for ST-E u8500 processors.
d3f2950f 89
1ce3c48e
DL
90config ARM_AT91_CPUIDLE
91 bool "Cpu Idle Driver for the AT91 processors"
92 default y
53eb82b0 93 depends on (ARCH_AT91 || COMPILE_TEST) && !ARM64
a35c6322 94 help
4d30d4a0 95 Select this to enable cpuidle for AT91 processors.
ff6a9c03
DL
96
97config ARM_EXYNOS_CPUIDLE
98 bool "Cpu Idle Driver for the Exynos processors"
53eb82b0 99 depends on (ARCH_EXYNOS || COMPILE_TEST) && !ARM64
712eddf7 100 select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
ff6a9c03 101 help
4d30d4a0 102 Select this to enable cpuidle for Exynos processors.
f50ee824
GC
103
104config ARM_MVEBU_V7_CPUIDLE
105 bool "CPU Idle Driver for mvebu v7 family processors"
53eb82b0 106 depends on (ARCH_MVEBU || COMPILE_TEST) && !ARM64
f50ee824
GC
107 help
108 Select this to enable cpuidle on Armada 370, 38x and XP processors.
860fbde4
DO
109
110config ARM_TEGRA_CPUIDLE
111 bool "CPU Idle Driver for NVIDIA Tegra SoCs"
faae6c9f 112 depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU
7787943a 113 depends on ARCH_SUSPEND_POSSIBLE
860fbde4
DO
114 select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
115 select ARM_CPU_SUSPEND
116 help
117 Select this to enable cpuidle for NVIDIA Tegra20/30/114/124 SoCs.
a871be6b
SG
118
119config ARM_QCOM_SPM_CPUIDLE
120 bool "CPU Idle Driver for Qualcomm Subsystem Power Manager (SPM)"
498ba2a8 121 depends on (ARCH_QCOM || COMPILE_TEST) && !ARM64 && MMU
7787943a 122 depends on ARCH_SUSPEND_POSSIBLE
a871be6b
SG
123 select ARM_CPU_SUSPEND
124 select CPU_IDLE_MULTIPLE_DRIVERS
125 select DT_IDLE_STATES
126 select QCOM_SCM
60f3692b 127 select QCOM_SPM
a871be6b
SG
128 help
129 Select this to enable cpuidle for Qualcomm processors.
130 The Subsystem Power Manager (SPM) controls low power modes for the
131 CPU and L2 cores. It interface with various system drivers to put
132 the cores in low power modes.