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 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 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 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.
endmenu
