#
# DMA engine configuration for sh
#

#
# 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 DMA_ENGINE
	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 SUDMAC
	tristate "Renesas SUDMAC support"
	depends on SH_DMAE_BASE
	help
	  Enable support for the Renesas SUDMAC controllers.

config RCAR_HPB_DMAE
	tristate "Renesas R-Car HPB DMAC support"
	depends on SH_DMAE_BASE
	help
	  Enable support for the Renesas R-Car series DMA controllers.

config RCAR_AUDMAC_PP
	tristate "Renesas R-Car Audio DMAC Peripheral Peripheral support"
	depends on SH_DMAE_BASE
	help
	  Enable support for the Renesas R-Car Audio DMAC Peripheral Peripheral controllers.
