123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- * 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 router
- DMA routers are transparent IP blocks used to route DMA request lines from
- devices to the DMA controller. Some SoCs (like TI DRA7x) have more peripherals
- integrated with DMA requests than what the DMA controller can handle directly.
- Required property:
- - dma-masters: phandle of the DMA controller or list of phandles for
- the DMA controllers the router can direct the signal to.
- - #dma-cells: Must be at least 1. Used to provide DMA router specific
- information. See DMA client binding below for more
- details.
- Optional properties:
- - dma-requests: Number of incoming request lines the router can handle.
- - In the node pointed by the dma-masters:
- - dma-requests: The router driver might need to look for this in order
- to configure the routing.
- Example:
- sdma_xbar: dma-router@4a002b78 {
- compatible = "ti,dra7-dma-crossbar";
- reg = <0x4a002b78 0xfc>;
- #dma-cells = <1>;
- dma-requests = <205>;
- ti,dma-safe-map = <0>;
- dma-masters = <&sdma>;
- };
- * 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";
|