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

Commit ca2a650f authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma

Pull slave-dma updates from Vinod Koul:
 - new driver for BCM2835 used in R-pi
 - new driver for MOXA ART
 - dma_get_any_slave_channel API for DT based systems
 - minor fixes and updates spread acrooss driver

[ The fsl-ssi dual fifo mode support addition clashed badly with the
  other changes to fsl-ssi that came in through the sound merge.  I did
  a very rough cut at fixing up the conflict, but Nicolin Chen (author
  of both sides) will need to verify and check things ]

* 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (36 commits)
  dmaengine: mmp_pdma: fix mismerge
  dma: pl08x: Export pl08x_filter_id
  acpi-dma: align documentation with kernel-doc format
  dma: fix vchan_cookie_complete() debug print
  DMA: dmatest: extend the "device" module parameter to 32 characters
  drivers/dma: fix error return code
  dma: omap: Set debug level to debugging messages
  dmaengine: fix kernel-doc style typos for few comments
  dma: tegra: add support for Tegra148/124
  dma: dw: use %pad instead of casting dma_addr_t
  dma: dw: join split up messages
  dma: dw: fix style of multiline comment
  dmaengine: k3dma: fix sparse warnings
  dma: pl330: Use dma_get_slave_channel() in the of xlate callback
  dma: pl330: Differentiate between submitted and issued descriptors
  dmaengine: sirf: Add device_slave_caps interface
  DMA: Freescale: change BWC from 256 bytes to 1024 bytes
  dmaengine: Add MOXA ART DMA engine driver
  dmaengine: Add DMA_PRIVATE to BCM2835 driver
  dma: imx-sdma: Assign a default script number for ROM firmware cases
  ...
parents e9e352e9 15cec530
Loading
Loading
Loading
Loading
+57 −0
Original line number Diff line number Diff line
* BCM2835 DMA controller

The BCM2835 DMA controller has 16 channels in total.
Only the lower 13 channels have an associated IRQ.
Some arbitrary channels are used by the firmware
(1,3,6,7 in the current firmware version).
The channels 0,2 and 3 have special functionality
and should not be used by the driver.

Required properties:
- compatible: Should be "brcm,bcm2835-dma".
- reg: Should contain DMA registers location and length.
- interrupts: Should contain the DMA interrupts associated
		to the DMA channels in ascending order.
- #dma-cells: Must be <1>, the cell in the dmas property of the
		client device represents the DREQ number.
- brcm,dma-channel-mask: Bit mask representing the channels
			 not used by the firmware in ascending order,
			 i.e. first channel corresponds to LSB.

Example:

dma: dma@7e007000 {
	compatible = "brcm,bcm2835-dma";
	reg = <0x7e007000 0xf00>;
	interrupts = <1 16>,
		     <1 17>,
		     <1 18>,
		     <1 19>,
		     <1 20>,
		     <1 21>,
		     <1 22>,
		     <1 23>,
		     <1 24>,
		     <1 25>,
		     <1 26>,
		     <1 27>,
		     <1 28>;

	#dma-cells = <1>;
	brcm,dma-channel-mask = <0x7f35>;
};

DMA clients connected to the BCM2835 DMA controller must use the format
described in the dma.txt file, using a two-cell specifier for each channel.

Example:

bcm2835_i2s: i2s@7e203000 {
	compatible = "brcm,bcm2835-i2s";
	reg = <	0x7e203000 0x20>,
	      < 0x7e101098 0x02>;

	dmas = <&dma 2>,
	       <&dma 3>;
	dma-names = "tx", "rx";
};
+1 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ The full ID of peripheral types can be found below.
	19	IPU Memory
	20	ASRC
	21	ESAI
	22	SSI Dual FIFO	(needs firmware ver >= 2)

The third cell specifies the transfer priority as below.

+45 −0
Original line number Diff line number Diff line
MOXA ART DMA Controller

See dma.txt first

Required properties:

- compatible :	Must be "moxa,moxart-dma"
- reg :		Should contain registers location and length
- interrupts :	Should contain an interrupt-specifier for the sole
		interrupt generated by the device
- #dma-cells :	Should be 1, a single cell holding a line request number

Example:

	dma: dma@90500000 {
		compatible = "moxa,moxart-dma";
		reg = <0x90500080 0x40>;
		interrupts = <24 0>;
		#dma-cells = <1>;
	};


Clients:

DMA clients connected to the MOXA ART DMA controller must use the format
described in the dma.txt file, using a two-cell specifier for each channel:
a phandle plus one integer cells.
The two cells in order are:

1. A phandle pointing to the DMA controller.
2. Peripheral identifier for the hardware handshaking interface.

Example:
Use specific request line passing from dma
For example, MMC request line is 5

	sdhci: sdhci@98e00000 {
		compatible = "moxa,moxart-sdhci";
		reg = <0x98e00000 0x5C>;
		interrupts = <5 0>;
		clocks = <&clk_apb>;
		dmas =  <&dma 5>,
			<&dma 5>;
		dma-names = "tx", "rx";
	};
+14 −0
Original line number Diff line number Diff line
@@ -306,6 +306,12 @@ config DMA_OMAP
	select DMA_ENGINE
	select DMA_VIRTUAL_CHANNELS

config DMA_BCM2835
	tristate "BCM2835 DMA engine support"
	depends on (ARCH_BCM2835 || MACH_BCM2708)
	select DMA_ENGINE
	select DMA_VIRTUAL_CHANNELS

config TI_CPPI41
	tristate "AM33xx CPPI41 DMA support"
	depends on ARCH_OMAP
@@ -336,6 +342,14 @@ config K3_DMA
	  Support the DMA engine for Hisilicon K3 platform
	  devices.

config MOXART_DMA
	tristate "MOXART DMA support"
	depends on ARCH_MOXART
	select DMA_ENGINE
	select DMA_VIRTUAL_CHANNELS
	help
	  Enable support for the MOXA ART SoC DMA controller.

config DMA_ENGINE
	bool

+2 −0
Original line number Diff line number Diff line
@@ -38,7 +38,9 @@ obj-$(CONFIG_EP93XX_DMA) += ep93xx_dma.o
obj-$(CONFIG_DMA_SA11X0) += sa11x0-dma.o
obj-$(CONFIG_MMP_TDMA) += mmp_tdma.o
obj-$(CONFIG_DMA_OMAP) += omap-dma.o
obj-$(CONFIG_DMA_BCM2835) += bcm2835-dma.o
obj-$(CONFIG_MMP_PDMA) += mmp_pdma.o
obj-$(CONFIG_DMA_JZ4740) += dma-jz4740.o
obj-$(CONFIG_TI_CPPI41) += cppi41.o
obj-$(CONFIG_K3_DMA) += k3dma.o
obj-$(CONFIG_MOXART_DMA) += moxart-dma.o
Loading