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