82 lines
2.3 KiB
Plaintext
82 lines
2.3 KiB
Plaintext
|
* Generic DMA Controller and DMA request bindings
|
||
|
|
||
|
Generic binding to provide a way for a driver using DMA Engine to retrieve the
|
||
|
DMA request or channel information that goes from a hardware device to a DMA
|
||
|
controller.
|
||
|
|
||
|
|
||
|
* DMA controller
|
||
|
|
||
|
Required property:
|
||
|
- #dma-cells: Must be at least 1. Used to provide DMA controller
|
||
|
specific information. See DMA client binding below for
|
||
|
more details.
|
||
|
|
||
|
Optional properties:
|
||
|
- dma-channels: Number of DMA channels supported by the controller.
|
||
|
- dma-requests: Number of DMA request signals supported by the
|
||
|
controller.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
dma: dma@48000000 {
|
||
|
compatible = "ti,omap-sdma";
|
||
|
reg = <0x48000000 0x1000>;
|
||
|
interrupts = <0 12 0x4
|
||
|
0 13 0x4
|
||
|
0 14 0x4
|
||
|
0 15 0x4>;
|
||
|
#dma-cells = <1>;
|
||
|
dma-channels = <32>;
|
||
|
dma-requests = <127>;
|
||
|
};
|
||
|
|
||
|
|
||
|
* DMA client
|
||
|
|
||
|
Client drivers should specify the DMA property using a phandle to the controller
|
||
|
followed by DMA controller specific data.
|
||
|
|
||
|
Required property:
|
||
|
- dmas: List of one or more DMA specifiers, each consisting of
|
||
|
- A phandle pointing to DMA controller node
|
||
|
- A number of integer cells, as determined by the
|
||
|
#dma-cells property in the node referenced by phandle
|
||
|
containing DMA controller specific information. This
|
||
|
typically contains a DMA request line number or a
|
||
|
channel number, but can contain any data that is
|
||
|
required for configuring a channel.
|
||
|
- dma-names: Contains one identifier string for each DMA specifier in
|
||
|
the dmas property. The specific strings that can be used
|
||
|
are defined in the binding of the DMA client device.
|
||
|
Multiple DMA specifiers can be used to represent
|
||
|
alternatives and in this case the dma-names for those
|
||
|
DMA specifiers must be identical (see examples).
|
||
|
|
||
|
Examples:
|
||
|
|
||
|
1. A device with one DMA read channel, one DMA write channel:
|
||
|
|
||
|
i2c1: i2c@1 {
|
||
|
...
|
||
|
dmas = <&dma 2 /* read channel */
|
||
|
&dma 3>; /* write channel */
|
||
|
dma-names = "rx", "tx";
|
||
|
...
|
||
|
};
|
||
|
|
||
|
2. A single read-write channel with three alternative DMA controllers:
|
||
|
|
||
|
dmas = <&dma1 5
|
||
|
&dma2 7
|
||
|
&dma3 2>;
|
||
|
dma-names = "rx-tx", "rx-tx", "rx-tx";
|
||
|
|
||
|
3. A device with three channels, one of which has two alternatives:
|
||
|
|
||
|
dmas = <&dma1 2 /* read channel */
|
||
|
&dma1 3 /* write channel */
|
||
|
&dma2 0 /* error read */
|
||
|
&dma3 0>; /* alternative error read */
|
||
|
dma-names = "rx", "tx", "error", "error";
|