summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/dma/fsl-qdma.txt
blob: b076177b4863048c9b2216cdaeee8ea513383c9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
* Freescale queue Direct Memory Access Controller(qDMA) Controller

  The qDMA controller transfers blocks of data between one source and one or more
destinations. The blocks of data transferred can be represented in memory as contiguous
or non-contiguous using scatter/gather table(s). Channel virtualization is supported
through enqueuing of DMA jobs to, or dequeuing DMA jobs from, different work
queues.

* qDMA Controller
Required properties:
- compatible :
	- "fsl,ls1021a-qdma",
	Or "fsl,ls1043a-qdma" followed by "fsl,ls1021a-qdma",
- reg : Specifies base physical address(s) and size of the qDMA registers.
	The region is qDMA control register's address and size.
- interrupts : A list of interrupt-specifiers, one for each entry in
	interrupt-names.
- interrupt-names : Should contain:
	"qdma-error" - the error interrupt
	"qdma-queue" - the queue interrupt
- channels : Number of channels supported by the controller
- queues : Number of queues supported by driver

Optional properties:
- big-endian: If present registers and hardware scatter/gather descriptors
	of the qDMA are implemented in big endian mode, otherwise in little
	mode.


Examples:

	qdma: qdma@8390000 {
		compatible = "fsl,ls1021a-qdma";
		reg = <0x0 0x8398000 0x0 0x2000 /* Controller registers */
		       0x0 0x839a000 0x0 0x2000>; /* Block registers */
		interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
				<GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "qdma-error", "qdma-queue";
		channels = <8>;
		queues = <2>;
		big-endian;
	};