Commit | Line | Data |
---|---|---|
ec8f24b7 | 1 | # SPDX-License-Identifier: GPL-2.0-only |
b98e01ad S |
2 | # |
3 | # ARM CPU Idle drivers | |
4 | # | |
0e087044 | 5 | config 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 | 17 | config 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 |
35 | config 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 |
46 | config 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 |
59 | config 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 |
65 | config 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 | ||
72 | config 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 | ||
78 | config 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 | ||
84 | config 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 |
90 | config 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 | |
97 | config 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 | |
104 | config 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 | |
110 | config 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 | |
119 | config 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. |