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