# Copyright (c) 2022, CSIRO.
# SPDX-License-Identifier: Apache-2.0

menuconfig POWER_DOMAIN
	bool "Power domain drivers"
	help
	  Include drivers for power domains in system config

if POWER_DOMAIN

module = POWER_DOMAIN
module-str = power_domain
source "subsys/logging/Kconfig.template.log_config"

config POWER_DOMAIN_INIT_PRIORITY
	int "Power domain init priority"
	default 75
	help
	  Power domain initialization priority.

config POWER_DOMAIN_GPIO
	bool "GPIO controlled power domain"
	default y
	depends on DT_HAS_POWER_DOMAIN_GPIO_ENABLED
	depends on GPIO
	depends on PM_DEVICE || !PM_DEVICE_POWER_DOMAIN
	depends on TIMEOUT_64BIT
	select DEVICE_DEPS

if POWER_DOMAIN_GPIO

config POWER_DOMAIN_GPIO_INIT_PRIORITY
	int "GPIO power domain init priority"
	default POWER_DOMAIN_INIT_PRIORITY
	help
	  GPIO power domain initialization priority.

endif #POWER_DOMAIN_GPIO

config POWER_DOMAIN_INTEL_ADSP
	bool "Use Intel ADSP power gating mechanisms"
	default y
	depends on DT_HAS_INTEL_ADSP_POWER_DOMAIN_ENABLED
	select DEVICE_DEPS
	help
	  Include Intel ADSP power domain control mechanisms

if POWER_DOMAIN_INTEL_ADSP

config POWER_DOMAIN_INTEL_ADSP_INIT_PRIORITY
	int "Intel ADSP power domain init priority"
	default KERNEL_INIT_PRIORITY_DEFAULT
	help
	  Intel ADSP power domain initialization priority.

endif #POWER_DOMAIN_INTEL_ADSP

config POWER_DOMAIN_GPIO_MONITOR
	bool "GPIO monitor for sensing power on rail"
	default y
	depends on DT_HAS_POWER_DOMAIN_GPIO_MONITOR_ENABLED
	depends on GPIO
	depends on PM_DEVICE
	select DEVICE_DEPS

if POWER_DOMAIN_GPIO_MONITOR

config POWER_DOMAIN_GPIO_MONITOR_INIT_PRIORITY
	int "GPIO monitor power domain init priority"
	default POWER_DOMAIN_INIT_PRIORITY
	help
	  GPIO monitor power domain initialization priority.

endif #POWER_DOMAIN_GPIO_MONITOR

config POWER_DOMAIN_NXP_SCU
	bool "NXP SCU-managed PD driver"
	default y
	depends on DT_HAS_NXP_SCU_PD_ENABLED
	help
	  Enable support for NXPs SCU-managed power domain driver.

if POWER_DOMAIN_NXP_SCU

config POWER_DOMAIN_NXP_SCU_INIT_PRIORITY
	int "NXP SCU-managed PD driver init priority"
	default 10
	help
	  NXP SCU-managed PD driver initialization priority.

endif #POWER_DOMAIN_NXP_SCU

config POWER_DOMAIN_SOC_PM_STATE
	bool "SoC PM state power domain"
	default y
	depends on DT_HAS_POWER_DOMAIN_SOC_STATE_CHANGE_ENABLED
	select DEVICE_DEPS
	help
	  Generic power domain control to turn on/off devices when the
	  PM subsystem transitions in and out of certain power states.

config POWER_DOMAIN_TISCI
	bool "TISCI managed power domain"
	default y
	depends on DT_HAS_TI_SCI_PM_DOMAIN_ENABLED
	help
	  TISCI managed power domain control to turn on/off devices when the
	  PM subsystem transitions in and out of certain power states.

if POWER_DOMAIN_TISCI

config POWER_DOMAIN_TISCI_INIT_PRIORITY
	int "TISCI managed power domain init priority"
	default 10
	help
	  TISCI managed power domain initialization priority.

config SOC_POWER_DOMAIN_INIT
	bool "Power domain initialization"
	default y
	help
	  Power domain initialization for the SoC.

endif #POWER_DOMAIN_TISCI

# zephyr-keep-sorted-start
rsource "Kconfig.nrfs_gdpwr"
rsource "Kconfig.nrfs_swext"
rsource "Kconfig.silabs_siwx91x"
# zephyr-keep-sorted-stop

endif #POWER_DOMAIN
