blob: 8f504e6bae141f46b184f7fa11f216b8bd6d4d9f [file] [log] [blame]
Jon Hunteraa3da642012-09-14 17:41:56 -05001* Generic DMA Controller and DMA request bindings
2
3Generic binding to provide a way for a driver using DMA Engine to retrieve the
4DMA request or channel information that goes from a hardware device to a DMA
5controller.
6
7
8* DMA controller
9
10Required property:
11- #dma-cells: Must be at least 1. Used to provide DMA controller
12 specific information. See DMA client binding below for
13 more details.
14
15Optional properties:
Matt Porterdeef1242012-09-19 10:49:48 -040016- dma-channels: Number of DMA channels supported by the controller.
17- dma-requests: Number of DMA requests signals supported by the
Jon Hunteraa3da642012-09-14 17:41:56 -050018 controller.
19
20Example:
21
22 dma: dma@48000000 {
Matt Porterdeef1242012-09-19 10:49:48 -040023 compatible = "ti,omap-sdma";
Jon Hunteraa3da642012-09-14 17:41:56 -050024 reg = <0x48000000 0x1000>;
25 interrupts = <0 12 0x4
26 0 13 0x4
27 0 14 0x4
28 0 15 0x4>;
29 #dma-cells = <1>;
Matt Porterdeef1242012-09-19 10:49:48 -040030 dma-channels = <32>;
31 dma-requests = <127>;
Jon Hunteraa3da642012-09-14 17:41:56 -050032 };
33
34
35* DMA client
36
37Client drivers should specify the DMA property using a phandle to the controller
38followed by DMA controller specific data.
39
40Required property:
41- dmas: List of one or more DMA specifiers, each consisting of
42 - A phandle pointing to DMA controller node
43 - A number of integer cells, as determined by the
44 #dma-cells property in the node referenced by phandle
45 containing DMA controller specific information. This
46 typically contains a DMA request line number or a
47 channel number, but can contain any data that is used
48 required for configuring a channel.
49- dma-names: Contains one identifier string for each DMA specifier in
50 the dmas property. The specific strings that can be used
51 are defined in the binding of the DMA client device.
52 Multiple DMA specifiers can be used to represent
53 alternatives and in this case the dma-names for those
54 DMA specifiers must be identical (see examples).
55
56Examples:
57
581. A device with one DMA read channel, one DMA write channel:
59
60 i2c1: i2c@1 {
61 ...
62 dmas = <&dma 2 /* read channel */
63 &dma 3>; /* write channel */
Matt Porterdeef1242012-09-19 10:49:48 -040064 dma-names = "rx", "tx";
Jon Hunteraa3da642012-09-14 17:41:56 -050065 ...
66 };
67
682. A single read-write channel with three alternative DMA controllers:
69
70 dmas = <&dma1 5
71 &dma2 7
72 &dma3 2>;
Matt Porterdeef1242012-09-19 10:49:48 -040073 dma-names = "rx-tx", "rx-tx", "rx-tx";
Jon Hunteraa3da642012-09-14 17:41:56 -050074
753. A device with three channels, one of which has two alternatives:
76
77 dmas = <&dma1 2 /* read channel */
78 &dma1 3 /* write channel */
79 &dma2 0 /* error read */
80 &dma3 0>; /* alternative error read */
81 dma-names = "rx", "tx", "error", "error";