hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/cpuidle/Kconfig.arm
....@@ -1,20 +1,41 @@
1
+# SPDX-License-Identifier: GPL-2.0-only
12 #
23 # ARM CPU Idle drivers
34 #
45 config ARM_CPUIDLE
5
- bool "Generic ARM/ARM64 CPU idle Driver"
6
- select DT_IDLE_STATES
6
+ bool "Generic ARM/ARM64 CPU idle Driver"
7
+ select DT_IDLE_STATES
78 select CPU_IDLE_MULTIPLE_DRIVERS
8
- help
9
- Select this to enable generic cpuidle driver for ARM.
10
- It provides a generic idle driver whose idle states are configured
11
- at run-time through DT nodes. The CPUidle suspend backend is
12
- initialized by calling the CPU operations init idle hook
13
- provided by architecture code.
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
+
16
+config 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
+
26
+config ARM_PSCI_CPUIDLE_DOMAIN
27
+ bool "PSCI CPU idle Domain"
28
+ depends on ARM_PSCI_CPUIDLE
29
+ depends on PM_GENERIC_DOMAINS_OF
30
+ default y
31
+ help
32
+ Select this to enable the PSCI based CPUidle driver to use PM domains,
33
+ which is needed to support the hierarchical DT based layout of the
34
+ idle states.
1435
1536 config ARM_BIG_LITTLE_CPUIDLE
1637 bool "Support for ARM big.LITTLE processors"
17
- depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS
38
+ depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS || COMPILE_TEST
1839 depends on MCPM && !ARM64
1940 select ARM_CPU_SUSPEND
2041 select CPU_IDLE_MULTIPLE_DRIVERS
....@@ -40,13 +61,13 @@
4061
4162 config ARM_KIRKWOOD_CPUIDLE
4263 bool "CPU Idle Driver for Marvell Kirkwood SoCs"
43
- depends on MACH_KIRKWOOD && !ARM64
64
+ depends on (MACH_KIRKWOOD || COMPILE_TEST) && !ARM64
4465 help
4566 This adds the CPU Idle driver for Marvell Kirkwood SoCs.
4667
4768 config ARM_ZYNQ_CPUIDLE
4869 bool "CPU Idle Driver for Xilinx Zynq processors"
49
- depends on ARCH_ZYNQ && !ARM64
70
+ depends on (ARCH_ZYNQ || COMPILE_TEST) && !ARM64
5071 help
5172 Select this to enable cpuidle on Xilinx Zynq processors.
5273
....@@ -54,24 +75,45 @@
5475 bool "Cpu Idle Driver for the ST-E u8500 processors"
5576 depends on ARCH_U8500 && !ARM64
5677 help
57
- Select this to enable cpuidle for ST-E u8500 processors
78
+ Select this to enable cpuidle for ST-E u8500 processors.
5879
5980 config ARM_AT91_CPUIDLE
6081 bool "Cpu Idle Driver for the AT91 processors"
6182 default y
62
- depends on ARCH_AT91 && !ARM64
83
+ depends on (ARCH_AT91 || COMPILE_TEST) && !ARM64
6384 help
64
- Select this to enable cpuidle for AT91 processors
85
+ Select this to enable cpuidle for AT91 processors.
6586
6687 config ARM_EXYNOS_CPUIDLE
6788 bool "Cpu Idle Driver for the Exynos processors"
68
- depends on ARCH_EXYNOS && !ARM64
89
+ depends on (ARCH_EXYNOS || COMPILE_TEST) && !ARM64
6990 select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
7091 help
71
- Select this to enable cpuidle for Exynos processors
92
+ Select this to enable cpuidle for Exynos processors.
7293
7394 config ARM_MVEBU_V7_CPUIDLE
7495 bool "CPU Idle Driver for mvebu v7 family processors"
75
- depends on ARCH_MVEBU && !ARM64
96
+ depends on (ARCH_MVEBU || COMPILE_TEST) && !ARM64
7697 help
7798 Select this to enable cpuidle on Armada 370, 38x and XP processors.
99
+
100
+config ARM_TEGRA_CPUIDLE
101
+ bool "CPU Idle Driver for NVIDIA Tegra SoCs"
102
+ depends on ARCH_TEGRA && !ARM64
103
+ select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
104
+ select ARM_CPU_SUSPEND
105
+ help
106
+ Select this to enable cpuidle for NVIDIA Tegra20/30/114/124 SoCs.
107
+
108
+config ARM_QCOM_SPM_CPUIDLE
109
+ bool "CPU Idle Driver for Qualcomm Subsystem Power Manager (SPM)"
110
+ depends on (ARCH_QCOM || COMPILE_TEST) && !ARM64 && MMU
111
+ select ARM_CPU_SUSPEND
112
+ select CPU_IDLE_MULTIPLE_DRIVERS
113
+ select DT_IDLE_STATES
114
+ select QCOM_SCM
115
+ help
116
+ Select this to enable cpuidle for Qualcomm processors.
117
+ The Subsystem Power Manager (SPM) controls low power modes for the
118
+ CPU and L2 cores. It interface with various system drivers to put
119
+ the cores in low power modes.