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