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

Commit ec5b103e 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-dmaengine updates from Vinod Koul:
 "This pull brings:
   - Andy's DW driver updates
   - Guennadi's sh driver updates
   - Pl08x driver fixes from Tomasz & Alban
   - Improvements to mmp_pdma by Daniel
   - TI EDMA fixes by Joel
   - New drivers:
     - Hisilicon k3dma driver
     - Renesas rcar dma driver
  - New API for publishing slave driver capablities
  - Various fixes across the subsystem by Andy, Jingoo, Sachin etc..."

* 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (94 commits)
  dma: edma: Remove limits on number of slots
  dma: edma: Leave linked to Null slot instead of DUMMY slot
  dma: edma: Find missed events and issue them
  ARM: edma: Add function to manually trigger an EDMA channel
  dma: edma: Write out and handle MAX_NR_SG at a given time
  dma: edma: Setup parameters to DMA MAX_NR_SG at a time
  dmaengine: pl330: use dma_set_max_seg_size to set the sg limit
  dmaengine: dma_slave_caps: remove sg entries
  dma: replace devm_request_and_ioremap by devm_ioremap_resource
  dma: ste_dma40: Fix potential null pointer dereference
  dma: ste_dma40: Remove duplicate const
  dma: imx-dma: Remove redundant NULL check
  dma: dmagengine: fix function names in comments
  dma: add driver for R-Car HPB-DMAC
  dma: k3dma: use devm_ioremap_resource() instead of devm_request_and_ioremap()
  dma: imx-sdma: Staticize sdma_driver_data structures
  pch_dma: Add MODULE_DEVICE_TABLE
  dmaengine: PL08x: Add cyclic transfer support
  dmaengine: PL08x: Fix reading the byte count in cctl
  dmaengine: PL08x: Add support for different maximum transfer size
  ...
parents d0048f0b 5622ff1a
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
* Freescale Smart Direct Memory Access (SDMA) Controller for i.MX

Required properties:
- compatible : Should be "fsl,<chip>-sdma"
- compatible : Should be "fsl,imx31-sdma", "fsl,imx31-to1-sdma",
  "fsl,imx31-to2-sdma", "fsl,imx35-sdma", "fsl,imx35-to1-sdma",
  "fsl,imx35-to2-sdma", "fsl,imx51-sdma", "fsl,imx53-sdma" or
  "fsl,imx6q-sdma". The -to variants should be preferred since they
  allow to determnine the correct ROM script addresses needed for
  the driver to work without additional firmware.
- reg : Should contain SDMA registers location and length
- interrupts : Should contain SDMA interrupt
- #dma-cells : Must be <3>.
+46 −0
Original line number Diff line number Diff line
* Hisilicon K3 DMA controller

See dma.txt first

Required properties:
- compatible: Should be "hisilicon,k3-dma-1.0"
- reg: Should contain DMA registers location and length.
- interrupts: Should contain one interrupt shared by all channel
- #dma-cells: see dma.txt, should be 1, para number
- dma-channels: physical channels supported
- dma-requests: virtual channels supported, each virtual channel
		have specific request line
- clocks: clock required

Example:

Controller:
		dma0: dma@fcd02000 {
			compatible = "hisilicon,k3-dma-1.0";
			reg = <0xfcd02000 0x1000>;
			#dma-cells = <1>;
			dma-channels = <16>;
			dma-requests = <27>;
			interrupts = <0 12 4>;
			clocks = <&pclk>;
			status = "disable";
		};

Client:
Use specific request line passing from dmax
For example, i2c0 read channel request line is 18, while write channel use 19

		i2c0: i2c@fcb08000 {
			compatible = "snps,designware-i2c";
			dmas =	<&dma0 18          /* read channel */
				 &dma0 19>;        /* write channel */
			dma-names = "rx", "tx";
		};

		i2c1: i2c@fcb09000 {
			compatible = "snps,designware-i2c";
			dmas =	<&dma0 20          /* read channel */
				 &dma0 21>;        /* write channel */
			dma-names = "rx", "tx";
		};
+35 −26
Original line number Diff line number Diff line
@@ -22,42 +22,51 @@ Optional properties (currently unused):
* DMA controller

Required properties:
- compatible:	should be "renesas,shdma"
- compatible:	should be of the form "renesas,shdma-<soc>", where <soc> should
		be replaced with the desired SoC model, e.g.
		"renesas,shdma-r8a73a4" for the system DMAC on r8a73a4 SoC

Example:
	dmac: dma-mux0 {
	dmac: dma-multiplexer@0 {
		compatible = "renesas,shdma-mux";
		#dma-cells = <1>;
		dma-channels = <6>;
		dma-channels = <20>;
		dma-requests = <256>;
		reg = <0 0>;	/* Needed for AUXDATA */
		#address-cells = <1>;
		#size-cells = <1>;
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		dma0: shdma@fe008020 {
			compatible = "renesas,shdma";
			reg = <0xfe008020 0x270>,
				<0xfe009000 0xc>;
		dma0: dma-controller@e6700020 {
			compatible = "renesas,shdma-r8a73a4";
			reg = <0 0xe6700020 0 0x89e0>;
			interrupt-parent = <&gic>;
			interrupts = <0 34 4
					0 28 4
					0 29 4
					0 30 4
					0 31 4
					0 32 4
					0 33 4>;
			interrupts = <0 220 4
					0 200 4
					0 201 4
					0 202 4
					0 203 4
					0 204 4
					0 205 4
					0 206 4
					0 207 4
					0 208 4
					0 209 4
					0 210 4
					0 211 4
					0 212 4
					0 213 4
					0 214 4
					0 215 4
					0 216 4
					0 217 4
					0 218 4
					0 219 4>;
			interrupt-names = "error",
					"ch0", "ch1", "ch2", "ch3",
					"ch4", "ch5";
		};

		dma1: shdma@fe018020 {
			...
		};

		dma2: shdma@fe028020 {
			...
					"ch4", "ch5", "ch6", "ch7",
					"ch8", "ch9", "ch10", "ch11",
					"ch12", "ch13", "ch14", "ch15",
					"ch16", "ch17", "ch18", "ch19";
		};
	};

+3 −0
Original line number Diff line number Diff line
@@ -299,3 +299,6 @@ PWM
PHY
  devm_usb_get_phy()
  devm_usb_put_phy()

SLAVE DMA ENGINE
  devm_acpi_dma_controller_register()
+1 −0
Original line number Diff line number Diff line
@@ -7204,6 +7204,7 @@ F: drivers/tty/serial

SYNOPSYS DESIGNWARE DMAC DRIVER
M:	Viresh Kumar <viresh.linux@gmail.com>
M:	Andy Shevchenko <andriy.shevchenko@linux.intel.com>
S:	Maintained
F:	include/linux/dw_dmac.h
F:	drivers/dma/dw/
Loading