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

config XILINX_VCU
	tristate "Xilinx VCU logicoreIP Init"
	depends on HAS_IOMEM
	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 && ARCH_ZYNQMP
	default y
	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.
	  If in doubt, say N.

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

endmenu
