| .. | .. |
|---|
| 1 | +# SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | # |
|---|
| 2 | 3 | # ARM CPU Idle drivers |
|---|
| 3 | 4 | # |
|---|
| 4 | 5 | config ARM_CPUIDLE |
|---|
| 5 | | - bool "Generic ARM/ARM64 CPU idle Driver" |
|---|
| 6 | | - select DT_IDLE_STATES |
|---|
| 6 | + bool "Generic ARM/ARM64 CPU idle Driver" |
|---|
| 7 | + select DT_IDLE_STATES |
|---|
| 7 | 8 | select CPU_IDLE_MULTIPLE_DRIVERS |
|---|
| 8 | | - help |
|---|
| 9 | | - Select this to enable generic cpuidle driver for ARM. |
|---|
| 10 | | - It provides a generic idle driver whose idle states are configured |
|---|
| 11 | | - at run-time through DT nodes. The CPUidle suspend backend is |
|---|
| 12 | | - initialized by calling the CPU operations init idle hook |
|---|
| 13 | | - provided by architecture code. |
|---|
| 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 | + |
|---|
| 16 | +config 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 | + |
|---|
| 26 | +config 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. |
|---|
| 14 | 35 | |
|---|
| 15 | 36 | config ARM_BIG_LITTLE_CPUIDLE |
|---|
| 16 | 37 | bool "Support for ARM big.LITTLE processors" |
|---|
| 17 | | - depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS |
|---|
| 38 | + depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS || COMPILE_TEST |
|---|
| 18 | 39 | depends on MCPM && !ARM64 |
|---|
| 19 | 40 | select ARM_CPU_SUSPEND |
|---|
| 20 | 41 | select CPU_IDLE_MULTIPLE_DRIVERS |
|---|
| .. | .. |
|---|
| 40 | 61 | |
|---|
| 41 | 62 | config ARM_KIRKWOOD_CPUIDLE |
|---|
| 42 | 63 | bool "CPU Idle Driver for Marvell Kirkwood SoCs" |
|---|
| 43 | | - depends on MACH_KIRKWOOD && !ARM64 |
|---|
| 64 | + depends on (MACH_KIRKWOOD || COMPILE_TEST) && !ARM64 |
|---|
| 44 | 65 | help |
|---|
| 45 | 66 | This adds the CPU Idle driver for Marvell Kirkwood SoCs. |
|---|
| 46 | 67 | |
|---|
| 47 | 68 | config ARM_ZYNQ_CPUIDLE |
|---|
| 48 | 69 | bool "CPU Idle Driver for Xilinx Zynq processors" |
|---|
| 49 | | - depends on ARCH_ZYNQ && !ARM64 |
|---|
| 70 | + depends on (ARCH_ZYNQ || COMPILE_TEST) && !ARM64 |
|---|
| 50 | 71 | help |
|---|
| 51 | 72 | Select this to enable cpuidle on Xilinx Zynq processors. |
|---|
| 52 | 73 | |
|---|
| .. | .. |
|---|
| 54 | 75 | bool "Cpu Idle Driver for the ST-E u8500 processors" |
|---|
| 55 | 76 | depends on ARCH_U8500 && !ARM64 |
|---|
| 56 | 77 | help |
|---|
| 57 | | - Select this to enable cpuidle for ST-E u8500 processors |
|---|
| 78 | + Select this to enable cpuidle for ST-E u8500 processors. |
|---|
| 58 | 79 | |
|---|
| 59 | 80 | config ARM_AT91_CPUIDLE |
|---|
| 60 | 81 | bool "Cpu Idle Driver for the AT91 processors" |
|---|
| 61 | 82 | default y |
|---|
| 62 | | - depends on ARCH_AT91 && !ARM64 |
|---|
| 83 | + depends on (ARCH_AT91 || COMPILE_TEST) && !ARM64 |
|---|
| 63 | 84 | help |
|---|
| 64 | | - Select this to enable cpuidle for AT91 processors |
|---|
| 85 | + Select this to enable cpuidle for AT91 processors. |
|---|
| 65 | 86 | |
|---|
| 66 | 87 | config ARM_EXYNOS_CPUIDLE |
|---|
| 67 | 88 | bool "Cpu Idle Driver for the Exynos processors" |
|---|
| 68 | | - depends on ARCH_EXYNOS && !ARM64 |
|---|
| 89 | + depends on (ARCH_EXYNOS || COMPILE_TEST) && !ARM64 |
|---|
| 69 | 90 | select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP |
|---|
| 70 | 91 | help |
|---|
| 71 | | - Select this to enable cpuidle for Exynos processors |
|---|
| 92 | + Select this to enable cpuidle for Exynos processors. |
|---|
| 72 | 93 | |
|---|
| 73 | 94 | config ARM_MVEBU_V7_CPUIDLE |
|---|
| 74 | 95 | bool "CPU Idle Driver for mvebu v7 family processors" |
|---|
| 75 | | - depends on ARCH_MVEBU && !ARM64 |
|---|
| 96 | + depends on (ARCH_MVEBU || COMPILE_TEST) && !ARM64 |
|---|
| 76 | 97 | help |
|---|
| 77 | 98 | Select this to enable cpuidle on Armada 370, 38x and XP processors. |
|---|
| 99 | + |
|---|
| 100 | +config ARM_TEGRA_CPUIDLE |
|---|
| 101 | + bool "CPU Idle Driver for NVIDIA Tegra SoCs" |
|---|
| 102 | + depends on ARCH_TEGRA && !ARM64 |
|---|
| 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 | + |
|---|
| 108 | +config 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 | + help |
|---|
| 116 | + Select this to enable cpuidle for Qualcomm processors. |
|---|
| 117 | + The Subsystem Power Manager (SPM) controls low power modes for the |
|---|
| 118 | + CPU and L2 cores. It interface with various system drivers to put |
|---|
| 119 | + the cores in low power modes. |
|---|