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
	select CLK
	help
	  Enable support for manipulating NXP i.MX8M on-SoC power domains via
	  requests to the ATF.

config IMX8MP_HSIOMIX_BLKCTRL
	bool "Enable i.MX8MP HSIOMIX domain driver"
	depends on POWER_DOMAIN && IMX8MP
	select CLK
	help
	  Enable support for manipulating NXP i.MX8MP on-SoC HSIOMIX block controller.

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 MESON_SECURE_POWER_DOMAIN
	bool "Enable Amlogic Secure power domain driver"
	depends on POWER_DOMAIN && ARCH_MESON && MESON_A1
	help
	  Enable support for manipulating Amlogic Meson Secure power domains.
	  Support for Amlogic A1 series.

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.

config ZYNQMP_POWER_DOMAIN
	bool "Enable the Xilinx ZynqMP Power domain driver"
	depends on POWER_DOMAIN && ZYNQMP_FIRMWARE
	help
	  Generic power domain implementation for Xilinx ZynqMP devices.
	  The driver should be enabled when system starts in very minimal
	  configuration and it is extended at run time. Then enabling
	  the driver will ensure that PMUFW enable access to requested IP.

endmenu
