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