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