config QCOM_BAM_DMA
	tristate "QCOM BAM DMA support"
	depends on ARCH_QCOM || (COMPILE_TEST && OF && ARM)
	select DMA_ENGINE
	select DMA_VIRTUAL_CHANNELS
	---help---
	  Enable support for the QCOM BAM DMA controller.  This controller
	  provides DMA capabilities for a variety of on-chip devices.

config QCOM_HIDMA_MGMT
	tristate "Qualcomm Technologies HIDMA Management support"
	depends on HAS_IOMEM
	select DMA_ENGINE
	help
	  Enable support for the Qualcomm Technologies HIDMA Management.
	  Each DMA device requires one management interface driver
	  for basic initialization before QCOM_HIDMA channel driver can
	  start managing the channels. In a virtualized environment,
	  the guest OS would run QCOM_HIDMA channel driver and the
	  host would run the QCOM_HIDMA_MGMT management driver.

config QCOM_HIDMA
	tristate "Qualcomm Technologies HIDMA Channel support"
	select DMA_ENGINE
	help
	  Enable support for the Qualcomm Technologies HIDMA controller.
	  The HIDMA controller supports optimized buffer copies
	  (user to kernel, kernel to kernel, etc.).  It only supports
	  memcpy interface. The core is not intended for general
	  purpose slave DMA.

config QCOM_GPI_DMA
	tristate "Qualcomm Technologies Inc GPI DMA support"
	depends on ARCH_QCOM
	select DMA_ENGINE
	select DMA_VIRTUAL_CHANNELS
	help
	  Enable support for the QCOM GPI DMA controller. This controller
	  provides DMA capabilities for a variety of peripheral buses such
	  as I2C, UART, and SPI. By using GPI dmaengine driver, bus drivers
	  can use a standardize interface that is protocol independent to
	  transfer data between DDR and peripheral.

config QCOM_GPI_DMA_DEBUG
	bool "Qualcomm Technologies Inc GPI debug support"
	depends on QCOM_GPI_DMA
	help
	  Enable detailed logging for QCOM GPI driver. Extra logging will be
	  helpful when debugging critical issues.

config QCOM_PCI_EDMA
	tristate "Qualcomm Technologies Inc PCIe eDMA support"
	select DMA_ENGINE
	help
	  Enable support for the QCOM PCIe eDMA. This DMA is part of QCOM
	  PCIe controller that provides DMA capabilities for clients.
	  By using PCIe eDMA driver, clients can use a standardize
	  interface that is protocol independent to transfer data between DDR
	  and peripheral.

config QCOM_PCI_EDMA_DEBUG
	bool "Qualcomm Technologies Inc PCIe eDMA debug support"
	depends on QCOM_PCI_EDMA
	help
	  Enable detailed logging for QCOM PCIe eDMA driver. Should
	  only be enabled for debugging purpose since excessive logging
	  of all channels information and activity will decrease throughput.
