summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/dma/ste-dma40.txt
blob: a8c21c256baa5afbcb4b1a43d150ca47a5c4e3ea (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
* DMA40 DMA Controller

Required properties:
- compatible: "stericsson,dma40"
- reg: Address range of the DMAC registers
- reg-names: Names of the above areas to use during resource look-up
- interrupt: Should contain the DMAC interrupt number
- #dma-cells: must be <3>
- memcpy-channels: Channels to be used for memcpy

Optional properties:
- dma-channels: Number of channels supported by hardware - if not present
		the driver will attempt to obtain the information from H/W
- disabled-channels: Channels which can not be used

Example:

	dma: dma-controller@801C0000 {
		compatible = "stericsson,db8500-dma40", "stericsson,dma40";
		reg = <0x801C0000 0x1000  0x40010000 0x800>;
		reg-names = "base", "lcpa";
		interrupt-parent = <&intc>;
		interrupts = <0 25 0x4>;

		#dma-cells = <2>;
		memcpy-channels  = <56 57 58 59 60>;
		disabled-channels  = <12>;
		dma-channels = <8>;
	};

Clients
Required properties:
- dmas: Comma separated list of dma channel requests
- dma-names: Names of the aforementioned requested channels

Each dmas request consists of 4 cells:
  1. A phandle pointing to the DMA controller
  2. Device Type
  3. The DMA request line number (only when 'use fixed channel' is set)
  4. A 32bit mask specifying; mode, direction and endianness [NB: This list will grow]
        0x00000001: Mode:
                Logical channel when unset
                Physical channel when set
        0x00000002: Direction:
                Memory to Device when unset
                Device to Memory when set
        0x00000004: Endianness:
                Little endian when unset
                Big endian when set
        0x00000008: Use fixed channel:
                Use automatic channel selection when unset
                Use DMA request line number when set

Example:

	uart@80120000 {
		compatible = "arm,pl011", "arm,primecell";
		reg = <0x80120000 0x1000>;
		interrupts = <0 11 0x4>;

		dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */
		       <&dma 13 0 0x0>; /* Logical - MemToDev */
		dma-names = "rx", "rx";

		status = "disabled";
	};