# SPDX-License-Identifier: GPL-2.0-only

menuconfig POWER_SEQUENCING
	tristate "Power Sequencing support"
	help
	  Say Y here to enable the Power Sequencing subsystem.

	  This subsystem is designed to control power to devices that share
	  complex resources and/or require specific power sequences to be run
	  during power-up.

	  If unsure, say no.

if POWER_SEQUENCING

config POWER_SEQUENCING_QCOM_WCN
	tristate "Qualcomm WCN family PMU driver"
	default m if ARCH_QCOM
	depends on OF || COMPILE_TEST
	help
	  Say Y here to enable the power sequencing driver for Qualcomm
	  WCN Bluetooth/WLAN chipsets.

	  Typically, a package from the Qualcomm WCN family contains the BT
	  and WLAN modules whose power is controlled by the PMU module. As the
	  former two share the power-up sequence which is executed by the PMU,
	  this driver is needed for correct power control or else we'd risk not
	  respecting the required delays between enabling Bluetooth and WLAN.

config POWER_SEQUENCING_TH1520_GPU
	tristate "T-HEAD TH1520 GPU power sequencing driver"
	depends on (ARCH_THEAD && AUXILIARY_BUS) || COMPILE_TEST
	help
	  Say Y here to enable the power sequencing driver for the TH1520 SoC
	  GPU. This driver handles the complex clock and reset sequence
	  required to power on the Imagination BXM GPU on this platform.

endif
