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