Merge tag 'core-urgent-2022-04-03' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / drivers / cpuidle / Kconfig.arm
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # ARM CPU Idle drivers
4 #
5 config 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
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         select DT_IDLE_GENPD
31         default y
32         help
33           Select this to enable the PSCI based CPUidle driver to use PM domains,
34           which is needed to support the hierarchical DT based layout of the
35           idle states.
36
37 config ARM_BIG_LITTLE_CPUIDLE
38         bool "Support for ARM big.LITTLE processors"
39         depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS || COMPILE_TEST
40         depends on MCPM && !ARM64
41         select ARM_CPU_SUSPEND
42         select CPU_IDLE_MULTIPLE_DRIVERS
43         select DT_IDLE_STATES
44         help
45           Select this option to enable CPU idle driver for big.LITTLE based
46           ARM systems. Driver manages CPUs coordination through MCPM and
47           define different C-states for little and big cores through the
48           multiple CPU idle drivers infrastructure.
49
50 config ARM_CLPS711X_CPUIDLE
51         bool "CPU Idle Driver for CLPS711X processors"
52         depends on ARCH_CLPS711X && !ARM64 || COMPILE_TEST
53         help
54           Select this to enable cpuidle on Cirrus Logic CLPS711X SOCs.
55
56 config ARM_HIGHBANK_CPUIDLE
57         bool "CPU Idle Driver for Calxeda processors"
58         depends on ARM_PSCI && !ARM64
59         select ARM_CPU_SUSPEND
60         help
61           Select this to enable cpuidle on Calxeda processors.
62
63 config ARM_KIRKWOOD_CPUIDLE
64         bool "CPU Idle Driver for Marvell Kirkwood SoCs"
65         depends on (MACH_KIRKWOOD || COMPILE_TEST) && !ARM64
66         help
67           This adds the CPU Idle driver for Marvell Kirkwood SoCs.
68
69 config ARM_ZYNQ_CPUIDLE
70         bool "CPU Idle Driver for Xilinx Zynq processors"
71         depends on (ARCH_ZYNQ || COMPILE_TEST) && !ARM64
72         help
73           Select this to enable cpuidle on Xilinx Zynq processors.
74
75 config ARM_U8500_CPUIDLE
76         bool "Cpu Idle Driver for the ST-E u8500 processors"
77         depends on ARCH_U8500 && !ARM64
78         help
79           Select this to enable cpuidle for ST-E u8500 processors.
80
81 config ARM_AT91_CPUIDLE
82         bool "Cpu Idle Driver for the AT91 processors"
83         default y
84         depends on (ARCH_AT91 || COMPILE_TEST) && !ARM64
85         help
86           Select this to enable cpuidle for AT91 processors.
87
88 config ARM_EXYNOS_CPUIDLE
89         bool "Cpu Idle Driver for the Exynos processors"
90         depends on (ARCH_EXYNOS || COMPILE_TEST) && !ARM64
91         select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
92         help
93           Select this to enable cpuidle for Exynos processors.
94
95 config ARM_MVEBU_V7_CPUIDLE
96         bool "CPU Idle Driver for mvebu v7 family processors"
97         depends on (ARCH_MVEBU || COMPILE_TEST) && !ARM64
98         help
99           Select this to enable cpuidle on Armada 370, 38x and XP processors.
100
101 config ARM_TEGRA_CPUIDLE
102         bool "CPU Idle Driver for NVIDIA Tegra SoCs"
103         depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU
104         select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
105         select ARM_CPU_SUSPEND
106         help
107           Select this to enable cpuidle for NVIDIA Tegra20/30/114/124 SoCs.
108
109 config ARM_QCOM_SPM_CPUIDLE
110         bool "CPU Idle Driver for Qualcomm Subsystem Power Manager (SPM)"
111         depends on (ARCH_QCOM || COMPILE_TEST) && !ARM64 && MMU
112         select ARM_CPU_SUSPEND
113         select CPU_IDLE_MULTIPLE_DRIVERS
114         select DT_IDLE_STATES
115         select QCOM_SCM
116         select QCOM_SPM
117         help
118           Select this to enable cpuidle for Qualcomm processors.
119           The Subsystem Power Manager (SPM) controls low power modes for the
120           CPU and L2 cores. It interface with various system drivers to put
121           the cores in low power modes.