menu "Power Domain Support"

config POWER_DOMAIN
	bool "Enable power domain support using Driver Model"
	depends on DM && OF_CONTROL
	help
	  Enable support for the power domain driver class. Many SoCs allow
	  power to be applied to or removed from portions of the SoC (power
	  domains). This may be used to save power. This API provides the
	  means to control such power management hardware.

config APPLE_PMGR_POWER_DOMAIN
	bool "Enable the Apple PMGR power domain driver"
	depends on POWER_DOMAIN
	default y if ARCH_APPLE
	help
	  Enable support for manipulating power domains on Apple SoCs.
	  This driver is needed to power on parts of the SoC that have
	  not been powered on by previous boot stages.

config BCM6328_POWER_DOMAIN
	bool "Enable the BCM6328 power domain driver"
	depends on POWER_DOMAIN && ARCH_BMIPS
	help
	  Enable support for manipulating BCM6345 power domains via MMIO
	  mapped registers.

config IMX8_POWER_DOMAIN
	bool "Enable i.MX8 power domain driver"
        depends on ARCH_IMX8
        help
          Enable support for manipulating NXP i.MX8 on-SoC power domains via IPC
          requests to the SCU.

config IMX8M_POWER_DOMAIN
	bool "Enable i.MX8M power domain driver"
	depends on POWER_DOMAIN && ARCH_IMX8M
	help
	  Enable support for manipulating NXP i.MX8M on-SoC power domains via
	  requests to the ATF.

config MTK_POWER_DOMAIN
	bool "Enable the MediaTek power domain driver"
	depends on POWER_DOMAIN && ARCH_MEDIATEK
	help
	  Enable support for manipulating MediaTek power domains via MMIO
	  mapped registers.

config MESON_GX_VPU_POWER_DOMAIN
	bool "Enable Amlogic Meson GX VPU power domain driver"
	depends on POWER_DOMAIN && ARCH_MESON
	help
	  Enable support for manipulating Amlogic Meson GX Video Processing
	  Unit power domain.

config MESON_EE_POWER_DOMAIN
	bool "Enable Amlogic Everything-Else power domain driver"
	depends on POWER_DOMAIN && ARCH_MESON
	help
	  Enable support for manipulating Amlogic Meson Everything-Else power
	  domains.

config SANDBOX_POWER_DOMAIN
	bool "Enable the sandbox power domain test driver"
	depends on POWER_DOMAIN && SANDBOX
	help
	  Enable support for a test power domain driver implementation, which
	  simply accepts requests to power on/off various HW modules without
	  actually doing anything beyond a little error checking.

config TEGRA186_POWER_DOMAIN
	bool "Enable Tegra186 BPMP-based power domain driver"
	depends on TEGRA186_BPMP
	help
	  Enable support for manipulating Tegra's on-SoC power domains via IPC
	  requests to the BPMP (Boot and Power Management Processor).

config TI_SCI_POWER_DOMAIN
	bool "Enable the TI SCI-based power domain driver"
	depends on POWER_DOMAIN && TI_SCI_PROTOCOL
	help
	  Generic power domain implementation for TI devices implementing the
	  TI SCI protocol.

config TI_POWER_DOMAIN
	bool "Enable the TI K3 Power domain driver"
	depends on POWER_DOMAIN && ARCH_K3
	help
	  Generic power domain implementation for TI K3 devices.

endmenu
