Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d8902adc authored by Nobuhiro Iwamatsu's avatar Nobuhiro Iwamatsu Committed by Dan Williams
Browse files

dmaengine: sh: Add Support SuperH DMA Engine driver



This supported all DMA channels, and it was tested in SH7722,
SH7780, SH7785 and SH7763.
This can not use with SH DMA API.

Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
Reviewed-by: default avatarMatt Fleming <matt@console-pimps.org>
Acked-by: default avatarMaciej Sosnowski <maciej.sosnowski@intel.com>
Acked-by: default avatarPaul Mundt <lethal@linux-sh.org>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 9134d02b
Loading
Loading
Loading
Loading
+9 −3
Original line number Original line Diff line number Diff line
menu "DMA support"
menu "DMA support"


config SH_DMA_API
	bool


config SH_DMA
config SH_DMA
	bool "SuperH on-chip DMA controller (DMAC) support"
	bool "SuperH on-chip DMA controller (DMAC) support"
	depends on CPU_SH3 || CPU_SH4
	depends on CPU_SH3 || CPU_SH4
	select SH_DMA_API
	default n
	default n


config SH_DMA_IRQ_MULTI
config SH_DMA_IRQ_MULTI
@@ -19,6 +16,15 @@ config SH_DMA_IRQ_MULTI
		     CPU_SUBTYPE_SH7780  || CPU_SUBTYPE_SH7785  || \
		     CPU_SUBTYPE_SH7780  || CPU_SUBTYPE_SH7785  || \
		     CPU_SUBTYPE_SH7760
		     CPU_SUBTYPE_SH7760


config SH_DMA_API
	depends on SH_DMA
	bool "SuperH DMA API support"
	default n
	help
	  SH_DMA_API always enabled DMA API of used SuperH.
	  If you want to use DMA ENGINE, you must not enable this.
	  Please enable DMA_ENGINE and SH_DMAE.

config NR_ONCHIP_DMA_CHANNELS
config NR_ONCHIP_DMA_CHANNELS
	int
	int
	depends on SH_DMA
	depends on SH_DMA
+1 −2
Original line number Original line Diff line number Diff line
@@ -2,8 +2,7 @@
# Makefile for the SuperH DMA specific kernel interface routines under Linux.
# Makefile for the SuperH DMA specific kernel interface routines under Linux.
#
#


obj-$(CONFIG_SH_DMA_API)	+= dma-api.o dma-sysfs.o
obj-$(CONFIG_SH_DMA_API)	+= dma-sh.o dma-api.o dma-sysfs.o
obj-$(CONFIG_SH_DMA)		+= dma-sh.o
obj-$(CONFIG_PVR2_DMA)		+= dma-pvr2.o
obj-$(CONFIG_PVR2_DMA)		+= dma-pvr2.o
obj-$(CONFIG_G2_DMA)		+= dma-g2.o
obj-$(CONFIG_G2_DMA)		+= dma-g2.o
obj-$(CONFIG_SH_DMABRG)		+= dmabrg.o
obj-$(CONFIG_SH_DMABRG)		+= dmabrg.o
+13 −0
Original line number Original line Diff line number Diff line
@@ -115,4 +115,17 @@ static u32 dma_base_addr[] __maybe_unused = {
#define CHCR    0x0C
#define CHCR    0x0C
#define DMAOR	0x40
#define DMAOR	0x40


/*
 * for dma engine
 *
 * SuperH DMA mode
 */
#define SHDMA_MIX_IRQ	(1 << 1)
#define SHDMA_DMAOR1	(1 << 2)
#define SHDMA_DMAE1		(1 << 3)

struct sh_dmae_pdata {
	unsigned int mode;
};

#endif /* __DMA_SH_H */
#endif /* __DMA_SH_H */
+8 −0
Original line number Original line Diff line number Diff line
@@ -101,6 +101,14 @@ config TXX9_DMAC
	  Support the TXx9 SoC internal DMA controller.  This can be
	  Support the TXx9 SoC internal DMA controller.  This can be
	  integrated in chips such as the Toshiba TX4927/38/39.
	  integrated in chips such as the Toshiba TX4927/38/39.


config SH_DMAE
	tristate "Renesas SuperH DMAC support"
	depends on SUPERH && SH_DMA
	depends on !SH_DMA_API
	select DMA_ENGINE
	help
	  Enable support for the Renesas SuperH DMA controllers.

config DMA_ENGINE
config DMA_ENGINE
	bool
	bool


+1 −0
Original line number Original line Diff line number Diff line
@@ -9,3 +9,4 @@ obj-$(CONFIG_DW_DMAC) += dw_dmac.o
obj-$(CONFIG_AT_HDMAC) += at_hdmac.o
obj-$(CONFIG_AT_HDMAC) += at_hdmac.o
obj-$(CONFIG_MX3_IPU) += ipu/
obj-$(CONFIG_MX3_IPU) += ipu/
obj-$(CONFIG_TXX9_DMAC) += txx9dmac.o
obj-$(CONFIG_TXX9_DMAC) += txx9dmac.o
obj-$(CONFIG_SH_DMAE) += shdma.o
Loading