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