# CPU power management driver configuration options

# Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com>
# SPDX-License-Identifier: Apache-2.0

menuconfig PM_CPU_OPS
	bool "CPU power management drivers"
	help
	  Enable CPU power management drivers configuration

if PM_CPU_OPS

module = PM_CPU_OPS
module-str = pm_cpu_ops
source "subsys/logging/Kconfig.template.log_config"

config PM_CPU_OPS_HAS_DRIVER
	bool

config PM_CPU_OPS_PSCI
	bool "Support for the ARM Power State Coordination Interface (PSCI)"
	default y
	depends on DT_HAS_ARM_PSCI_0_2_ENABLED || DT_HAS_ARM_PSCI_1_1_ENABLED
	select PM_CPU_OPS_HAS_DRIVER
	select HAS_POWEROFF
	help
	  Say Y here if you want Zephyr to communicate with system firmware
	  implementing the PSCI specification for CPU-centric power
	  management operations described in ARM document number ARM DEN
	  0022A ("Power State Coordination Interface System Software on
	  ARM processors").

config PSCI_SHELL
	bool "Support for PSCI interface shell commands"
	depends on SHELL && PM_CPU_OPS_PSCI
	help
	  Say Y here if you need to enable PSCI interface shell commands
	  like 'warm' and 'cold' reset commands.

endif
