xref: /OK3568_Linux_fs/kernel/drivers/cpuidle/Kconfig.arm (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# ARM CPU Idle drivers
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyunconfig ARM_CPUIDLE
6*4882a593Smuzhiyun	bool "Generic ARM/ARM64 CPU idle Driver"
7*4882a593Smuzhiyun	select DT_IDLE_STATES
8*4882a593Smuzhiyun	select CPU_IDLE_MULTIPLE_DRIVERS
9*4882a593Smuzhiyun	help
10*4882a593Smuzhiyun	  Select this to enable generic cpuidle driver for ARM.
11*4882a593Smuzhiyun	  It provides a generic idle driver whose idle states are configured
12*4882a593Smuzhiyun	  at run-time through DT nodes. The CPUidle suspend backend is
13*4882a593Smuzhiyun	  initialized by calling the CPU operations init idle hook
14*4882a593Smuzhiyun	  provided by architecture code.
15*4882a593Smuzhiyun
16*4882a593Smuzhiyunconfig ARM_PSCI_CPUIDLE
17*4882a593Smuzhiyun	bool "PSCI CPU idle Driver"
18*4882a593Smuzhiyun	depends on ARM_PSCI_FW
19*4882a593Smuzhiyun	select DT_IDLE_STATES
20*4882a593Smuzhiyun	select CPU_IDLE_MULTIPLE_DRIVERS
21*4882a593Smuzhiyun	help
22*4882a593Smuzhiyun	  Select this to enable PSCI firmware based CPUidle driver for ARM.
23*4882a593Smuzhiyun	  It provides an idle driver that is capable of detecting and
24*4882a593Smuzhiyun	  managing idle states through the PSCI firmware interface.
25*4882a593Smuzhiyun
26*4882a593Smuzhiyunconfig ARM_PSCI_CPUIDLE_DOMAIN
27*4882a593Smuzhiyun	bool "PSCI CPU idle Domain"
28*4882a593Smuzhiyun	depends on ARM_PSCI_CPUIDLE
29*4882a593Smuzhiyun	depends on PM_GENERIC_DOMAINS_OF
30*4882a593Smuzhiyun	default y
31*4882a593Smuzhiyun	help
32*4882a593Smuzhiyun	  Select this to enable the PSCI based CPUidle driver to use PM domains,
33*4882a593Smuzhiyun	  which is needed to support the hierarchical DT based layout of the
34*4882a593Smuzhiyun	  idle states.
35*4882a593Smuzhiyun
36*4882a593Smuzhiyunconfig ARM_BIG_LITTLE_CPUIDLE
37*4882a593Smuzhiyun	bool "Support for ARM big.LITTLE processors"
38*4882a593Smuzhiyun	depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS || COMPILE_TEST
39*4882a593Smuzhiyun	depends on MCPM && !ARM64
40*4882a593Smuzhiyun	select ARM_CPU_SUSPEND
41*4882a593Smuzhiyun	select CPU_IDLE_MULTIPLE_DRIVERS
42*4882a593Smuzhiyun	select DT_IDLE_STATES
43*4882a593Smuzhiyun	help
44*4882a593Smuzhiyun	  Select this option to enable CPU idle driver for big.LITTLE based
45*4882a593Smuzhiyun	  ARM systems. Driver manages CPUs coordination through MCPM and
46*4882a593Smuzhiyun	  define different C-states for little and big cores through the
47*4882a593Smuzhiyun	  multiple CPU idle drivers infrastructure.
48*4882a593Smuzhiyun
49*4882a593Smuzhiyunconfig ARM_CLPS711X_CPUIDLE
50*4882a593Smuzhiyun	bool "CPU Idle Driver for CLPS711X processors"
51*4882a593Smuzhiyun	depends on ARCH_CLPS711X && !ARM64 || COMPILE_TEST
52*4882a593Smuzhiyun	help
53*4882a593Smuzhiyun	  Select this to enable cpuidle on Cirrus Logic CLPS711X SOCs.
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunconfig ARM_HIGHBANK_CPUIDLE
56*4882a593Smuzhiyun	bool "CPU Idle Driver for Calxeda processors"
57*4882a593Smuzhiyun	depends on ARM_PSCI && !ARM64
58*4882a593Smuzhiyun	select ARM_CPU_SUSPEND
59*4882a593Smuzhiyun	help
60*4882a593Smuzhiyun	  Select this to enable cpuidle on Calxeda processors.
61*4882a593Smuzhiyun
62*4882a593Smuzhiyunconfig ARM_KIRKWOOD_CPUIDLE
63*4882a593Smuzhiyun	bool "CPU Idle Driver for Marvell Kirkwood SoCs"
64*4882a593Smuzhiyun	depends on (MACH_KIRKWOOD || COMPILE_TEST) && !ARM64
65*4882a593Smuzhiyun	help
66*4882a593Smuzhiyun	  This adds the CPU Idle driver for Marvell Kirkwood SoCs.
67*4882a593Smuzhiyun
68*4882a593Smuzhiyunconfig ARM_ZYNQ_CPUIDLE
69*4882a593Smuzhiyun	bool "CPU Idle Driver for Xilinx Zynq processors"
70*4882a593Smuzhiyun	depends on (ARCH_ZYNQ || COMPILE_TEST) && !ARM64
71*4882a593Smuzhiyun	help
72*4882a593Smuzhiyun	  Select this to enable cpuidle on Xilinx Zynq processors.
73*4882a593Smuzhiyun
74*4882a593Smuzhiyunconfig ARM_U8500_CPUIDLE
75*4882a593Smuzhiyun	bool "Cpu Idle Driver for the ST-E u8500 processors"
76*4882a593Smuzhiyun	depends on ARCH_U8500 && !ARM64
77*4882a593Smuzhiyun	help
78*4882a593Smuzhiyun	  Select this to enable cpuidle for ST-E u8500 processors.
79*4882a593Smuzhiyun
80*4882a593Smuzhiyunconfig ARM_AT91_CPUIDLE
81*4882a593Smuzhiyun	bool "Cpu Idle Driver for the AT91 processors"
82*4882a593Smuzhiyun	default y
83*4882a593Smuzhiyun	depends on (ARCH_AT91 || COMPILE_TEST) && !ARM64
84*4882a593Smuzhiyun	help
85*4882a593Smuzhiyun	  Select this to enable cpuidle for AT91 processors.
86*4882a593Smuzhiyun
87*4882a593Smuzhiyunconfig ARM_EXYNOS_CPUIDLE
88*4882a593Smuzhiyun	bool "Cpu Idle Driver for the Exynos processors"
89*4882a593Smuzhiyun	depends on (ARCH_EXYNOS || COMPILE_TEST) && !ARM64
90*4882a593Smuzhiyun	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
91*4882a593Smuzhiyun	help
92*4882a593Smuzhiyun	  Select this to enable cpuidle for Exynos processors.
93*4882a593Smuzhiyun
94*4882a593Smuzhiyunconfig ARM_MVEBU_V7_CPUIDLE
95*4882a593Smuzhiyun	bool "CPU Idle Driver for mvebu v7 family processors"
96*4882a593Smuzhiyun	depends on (ARCH_MVEBU || COMPILE_TEST) && !ARM64
97*4882a593Smuzhiyun	help
98*4882a593Smuzhiyun	  Select this to enable cpuidle on Armada 370, 38x and XP processors.
99*4882a593Smuzhiyun
100*4882a593Smuzhiyunconfig ARM_TEGRA_CPUIDLE
101*4882a593Smuzhiyun	bool "CPU Idle Driver for NVIDIA Tegra SoCs"
102*4882a593Smuzhiyun	depends on ARCH_TEGRA && !ARM64
103*4882a593Smuzhiyun	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
104*4882a593Smuzhiyun	select ARM_CPU_SUSPEND
105*4882a593Smuzhiyun	help
106*4882a593Smuzhiyun	  Select this to enable cpuidle for NVIDIA Tegra20/30/114/124 SoCs.
107*4882a593Smuzhiyun
108*4882a593Smuzhiyunconfig ARM_QCOM_SPM_CPUIDLE
109*4882a593Smuzhiyun	bool "CPU Idle Driver for Qualcomm Subsystem Power Manager (SPM)"
110*4882a593Smuzhiyun	depends on (ARCH_QCOM || COMPILE_TEST) && !ARM64 && MMU
111*4882a593Smuzhiyun	select ARM_CPU_SUSPEND
112*4882a593Smuzhiyun	select CPU_IDLE_MULTIPLE_DRIVERS
113*4882a593Smuzhiyun	select DT_IDLE_STATES
114*4882a593Smuzhiyun	select QCOM_SCM
115*4882a593Smuzhiyun	help
116*4882a593Smuzhiyun	  Select this to enable cpuidle for Qualcomm processors.
117*4882a593Smuzhiyun	  The Subsystem Power Manager (SPM) controls low power modes for the
118*4882a593Smuzhiyun	  CPU and L2 cores. It interface with various system drivers to put
119*4882a593Smuzhiyun	  the cores in low power modes.
120