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

Commit 1097b88b authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge branch 'topic/at_xdmac' of git://git.infradead.org/users/vkoul/slave-dma into next/dt

This is a dependency for the at91 DT support, and marked as a stable branch
by Vinod

* 'topic/at_xdmac' of git://git.infradead.org/users/vkoul/slave-dma

:
  dmaengine: at_xdmac: Add DMA_PRIVATE
  ARM: dts: at_xdmac: fix bad value of dma-cells in documentation
  dmaengine: at_xdmac: fix missing spin_unlock
  dmaengine: at_xdmac: fix a bug in transfer residue computation
  dmaengine: at_xdmac: fix software lockup at_xdmac_tx_status()
  dmaengine: at_xdmac: remove chancnt affectation
  dmaengine: at_xdmac: prefer usage of readl/writel_relaxed
  dmaengine: xdmac: fix print warning on dma_addr_t variable
  dmaengine: xdmac: fix print warning on size_t variable
  dmaengine: at_xdmac: fix usage of read, write wrappers
  dmaengine: at_xdmac: fix semicolon.cocci warnings
  MAINTAINERS: add entry for Atmel XDMA driver
  ARM: dts: at_xdmac: add bindings documentation
  dmaengine: at_xdmac: creation of the atmel eXtended DMA Controller driver

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 9e64b2a4 fef4cbf2
Loading
Loading
Loading
Loading
+54 −0
Original line number Diff line number Diff line
* Atmel Extensible Direct Memory Access Controller (XDMAC)

* XDMA Controller
Required properties:
- compatible: Should be "atmel,<chip>-dma".
  <chip> compatible description:
  - sama5d4: first SoC adding the XDMAC
- reg: Should contain DMA registers location and length.
- interrupts: Should contain DMA interrupt.
- #dma-cells: Must be <1>, used to represent the number of integer cells in
the dmas property of client devices.
  - The 1st cell specifies the channel configuration register:
    - bit 13: SIF, source interface identifier, used to get the memory
    interface identifier,
    - bit 14: DIF, destination interface identifier, used to get the peripheral
    interface identifier,
    - bit 30-24: PERID, peripheral identifier.

Example:

dma1: dma-controller@f0004000 {
	compatible = "atmel,sama5d4-dma";
	reg = <0xf0004000 0x200>;
	interrupts = <50 4 0>;
	#dma-cells = <1>;
};


* DMA clients
DMA clients connected to the Atmel XDMA controller must use the format
described in the dma.txt file, using a one-cell specifier for each channel.
The two cells in order are:
1. A phandle pointing to the DMA controller.
2. Channel configuration register. Configurable fields are:
    - bit 13: SIF, source interface identifier, used to get the memory
    interface identifier,
    - bit 14: DIF, destination interface identifier, used to get the peripheral
    interface identifier,
  - bit 30-24: PERID, peripheral identifier.

Example:

i2c2: i2c@f8024000 {
	compatible = "atmel,at91sam9x5-i2c";
	reg = <0xf8024000 0x4000>;
	interrupts = <34 4 6>;
	dmas = <&dma1
		(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
		 | AT91_XDMAC_DT_PERID(6))>,
	       <&dma1
		(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
		| AT91_XDMAC_DT_PERID(7))>;
	dma-names = "tx", "rx";
};
+7 −0
Original line number Diff line number Diff line
@@ -1713,6 +1713,13 @@ F: drivers/dma/at_hdmac.c
F:	drivers/dma/at_hdmac_regs.h
F:	include/linux/platform_data/dma-atmel.h

ATMEL XDMA DRIVER
M:	Ludovic Desroches <ludovic.desroches@atmel.com>
L:	linux-arm-kernel@lists.infradead.org
L:	dmaengine@vger.kernel.org
S:	Supported
F:	drivers/dma/at_xdmac.c

ATMEL I2C DRIVER
M:	Ludovic Desroches <ludovic.desroches@atmel.com>
L:	linux-i2c@vger.kernel.org
+7 −0
Original line number Diff line number Diff line
@@ -107,6 +107,13 @@ config AT_HDMAC
	help
	  Support the Atmel AHB DMA controller.

config AT_XDMAC
	tristate "Atmel XDMA support"
	depends on ARCH_AT91
	select DMA_ENGINE
	help
	  Support the Atmel XDMA controller.

config FSL_DMA
	tristate "Freescale Elo series DMA support"
	depends on FSL_SOC
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ obj-$(CONFIG_PPC_BESTCOMM) += bestcomm/
obj-$(CONFIG_MV_XOR) += mv_xor.o
obj-$(CONFIG_DW_DMAC_CORE) += dw/
obj-$(CONFIG_AT_HDMAC) += at_hdmac.o
obj-$(CONFIG_AT_XDMAC) += at_xdmac.o
obj-$(CONFIG_MX3_IPU) += ipu/
obj-$(CONFIG_TXX9_DMAC) += txx9dmac.o
obj-$(CONFIG_SH_DMAE_BASE) += sh/

drivers/dma/at_xdmac.c

0 → 100644
+1524 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading