0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # ARM CPU Idle drivers
0004 #
0005 config ARM_CPUIDLE
0006 bool "Generic ARM CPU idle Driver"
0007 depends on ARM
0008 select DT_IDLE_STATES
0009 select CPU_IDLE_MULTIPLE_DRIVERS
0010 help
0011 Select this to enable generic cpuidle driver for ARM.
0012 It provides a generic idle driver whose idle states are configured
0013 at run-time through DT nodes. The CPUidle suspend backend is
0014 initialized by calling the CPU operations init idle hook
0015 provided by architecture code.
0016
0017 config ARM_PSCI_CPUIDLE
0018 bool "PSCI CPU idle Driver"
0019 depends on ARM_PSCI_FW
0020 select DT_IDLE_STATES
0021 select CPU_IDLE_MULTIPLE_DRIVERS
0022 help
0023 Select this to enable PSCI firmware based CPUidle driver for ARM.
0024 It provides an idle driver that is capable of detecting and
0025 managing idle states through the PSCI firmware interface.
0026
0027 config ARM_PSCI_CPUIDLE_DOMAIN
0028 bool "PSCI CPU idle Domain"
0029 depends on ARM_PSCI_CPUIDLE
0030 depends on PM_GENERIC_DOMAINS_OF
0031 select DT_IDLE_GENPD
0032 default y
0033 help
0034 Select this to enable the PSCI based CPUidle driver to use PM domains,
0035 which is needed to support the hierarchical DT based layout of the
0036 idle states.
0037
0038 config ARM_BIG_LITTLE_CPUIDLE
0039 bool "Support for ARM big.LITTLE processors"
0040 depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS || COMPILE_TEST
0041 depends on MCPM && !ARM64
0042 select ARM_CPU_SUSPEND
0043 select CPU_IDLE_MULTIPLE_DRIVERS
0044 select DT_IDLE_STATES
0045 help
0046 Select this option to enable CPU idle driver for big.LITTLE based
0047 ARM systems. Driver manages CPUs coordination through MCPM and
0048 define different C-states for little and big cores through the
0049 multiple CPU idle drivers infrastructure.
0050
0051 config ARM_CLPS711X_CPUIDLE
0052 bool "CPU Idle Driver for CLPS711X processors"
0053 depends on ARCH_CLPS711X && !ARM64 || COMPILE_TEST
0054 help
0055 Select this to enable cpuidle on Cirrus Logic CLPS711X SOCs.
0056
0057 config ARM_HIGHBANK_CPUIDLE
0058 bool "CPU Idle Driver for Calxeda processors"
0059 depends on ARM_PSCI && !ARM64
0060 select ARM_CPU_SUSPEND
0061 help
0062 Select this to enable cpuidle on Calxeda processors.
0063
0064 config ARM_KIRKWOOD_CPUIDLE
0065 bool "CPU Idle Driver for Marvell Kirkwood SoCs"
0066 depends on (MACH_KIRKWOOD || COMPILE_TEST) && !ARM64
0067 help
0068 This adds the CPU Idle driver for Marvell Kirkwood SoCs.
0069
0070 config ARM_ZYNQ_CPUIDLE
0071 bool "CPU Idle Driver for Xilinx Zynq processors"
0072 depends on (ARCH_ZYNQ || COMPILE_TEST) && !ARM64
0073 help
0074 Select this to enable cpuidle on Xilinx Zynq processors.
0075
0076 config ARM_U8500_CPUIDLE
0077 bool "Cpu Idle Driver for the ST-E u8500 processors"
0078 depends on ARCH_U8500 && !ARM64
0079 help
0080 Select this to enable cpuidle for ST-E u8500 processors.
0081
0082 config ARM_AT91_CPUIDLE
0083 bool "Cpu Idle Driver for the AT91 processors"
0084 default y
0085 depends on (ARCH_AT91 || COMPILE_TEST) && !ARM64
0086 help
0087 Select this to enable cpuidle for AT91 processors.
0088
0089 config ARM_EXYNOS_CPUIDLE
0090 bool "Cpu Idle Driver for the Exynos processors"
0091 depends on (ARCH_EXYNOS || COMPILE_TEST) && !ARM64
0092 select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
0093 help
0094 Select this to enable cpuidle for Exynos processors.
0095
0096 config ARM_MVEBU_V7_CPUIDLE
0097 bool "CPU Idle Driver for mvebu v7 family processors"
0098 depends on (ARCH_MVEBU || COMPILE_TEST) && !ARM64
0099 help
0100 Select this to enable cpuidle on Armada 370, 38x and XP processors.
0101
0102 config ARM_TEGRA_CPUIDLE
0103 bool "CPU Idle Driver for NVIDIA Tegra SoCs"
0104 depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU
0105 select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
0106 select ARM_CPU_SUSPEND
0107 help
0108 Select this to enable cpuidle for NVIDIA Tegra20/30/114/124 SoCs.
0109
0110 config ARM_QCOM_SPM_CPUIDLE
0111 bool "CPU Idle Driver for Qualcomm Subsystem Power Manager (SPM)"
0112 depends on (ARCH_QCOM || COMPILE_TEST) && !ARM64 && MMU
0113 select ARM_CPU_SUSPEND
0114 select CPU_IDLE_MULTIPLE_DRIVERS
0115 select DT_IDLE_STATES
0116 select QCOM_SCM
0117 select QCOM_SPM
0118 help
0119 Select this to enable cpuidle for Qualcomm processors.
0120 The Subsystem Power Manager (SPM) controls low power modes for the
0121 CPU and L2 cores. It interface with various system drivers to put
0122 the cores in low power modes.