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 SCMI_POWER_DOMAIN
	bool "Enable SCMI power domain driver"
	depends on POWER_DOMAIN && SCMI_FIRMWARE
	help
	  Enable power domain implementation based on SCMI power domain
	  management protocol.

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
