# SPDX-License-Identifier: GPL-2.0
menu "Xilinx SoC drivers"

config XILINX_VCU
	tristate "Xilinx VCU logicoreIP Init"
	depends on HAS_IOMEM
	select REGMAP_MMIO
	help
	  Provides the driver to enable and disable the isolation between the
	  processing system and programmable logic part by using the logicoreIP
	  register set. This driver also configures the frequency based on the
	  clock information from the logicoreIP register set.

	  If you say yes here you get support for the logicoreIP.

	  If unsure, say N.

	  To compile this driver as a module, choose M here: the
	  module will be called xlnx_vcu.

config ZYNQMP_POWER
	bool "Enable Xilinx Zynq MPSoC Power Management driver"
	depends on PM && ZYNQMP_FIRMWARE
	default y
	select MAILBOX
	select ZYNQMP_IPI_MBOX
	help
	  Say yes to enable power management support for ZyqnMP SoC.
	  This driver uses firmware driver as an interface for power
	  management request to firmware. It registers isr to handle
	  power management callbacks from firmware. It registers mailbox client
	  to handle power management callbacks from firmware.

	  If in doubt, say N.

config ZYNQMP_PM_DOMAINS
	bool "Enable Zynq MPSoC generic PM domains"
	default y
	depends on PM && ZYNQMP_FIRMWARE
	select PM_GENERIC_DOMAINS
	help
	  Say yes to enable device power management through PM domains
	  If in doubt, say N.

endmenu
