#
# DMA engine configuration for sh
#

config RENESAS_DMA
	bool
	select DMA_ENGINE

#
# DMA Engine Helpers
#

config SH_DMAE_BASE
	bool "Renesas SuperH DMA Engine support"
	depends on SUPERH || ARCH_SHMOBILE || COMPILE_TEST
	depends on !SUPERH || SH_DMA
	depends on !SH_DMA_API
	default y
	select RENESAS_DMA
	help
	  Enable support for the Renesas SuperH DMA controllers.

#
# DMA Controllers
#

config SH_DMAE
	tristate "Renesas SuperH DMAC support"
	depends on SH_DMAE_BASE
	help
	  Enable support for the Renesas SuperH DMA controllers.

if SH_DMAE

config SH_DMAE_R8A73A4
	def_bool y
	depends on ARCH_R8A73A4
	depends on OF

endif

config RCAR_DMAC
	tristate "Renesas R-Car Gen2 DMA Controller"
	depends on ARCH_SHMOBILE || COMPILE_TEST
	select RENESAS_DMA
	help
	  This driver supports the general purpose DMA controller found in the
	  Renesas R-Car second generation SoCs.

config RENESAS_USB_DMAC
	tristate "Renesas USB-DMA Controller"
	depends on ARCH_SHMOBILE || COMPILE_TEST
	select RENESAS_DMA
	select DMA_VIRTUAL_CHANNELS
	help
	  This driver supports the USB-DMA controller found in the Renesas
	  SoCs.

config SUDMAC
	tristate "Renesas SUDMAC support"
	depends on SH_DMAE_BASE
	help
	  Enable support for the Renesas SUDMAC controllers.
