mirror of
https://github.com/torvalds/linux.git
synced 2024-12-20 18:11:47 +00:00
f9c6a655a9
The original device tree binding for this driver, from Viresh Kumar unfortunately conflicted with the generic DMA binding, and did not allow to completely seperate slave device configuration from the controller. This is an attempt to replace it with an implementation of the generic binding, but it is currently completely untested, because I do not have any hardware with this particular controller. The patch applies on top of the slave-dma tree, which contains both the base support for the generic DMA binding, as well as the earlier attempt from Viresh. Both of these are currently not merged upstream however. This version incorporates feedback from Viresh Kumar, Andy Shevchenko and Russell King. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Cc: Vinod Koul <vinod.koul@linux.intel.com> Cc: devicetree-discuss@lists.ozlabs.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Vinod Koul <vinod.koul@intel.com>
64 lines
2.0 KiB
Plaintext
64 lines
2.0 KiB
Plaintext
* Synopsys Designware DMA Controller
|
|
|
|
Required properties:
|
|
- compatible: "snps,dma-spear1340"
|
|
- reg: Address range of the DMAC registers
|
|
- interrupt: Should contain the DMAC interrupt number
|
|
- dma-channels: Number of channels supported by hardware
|
|
- dma-requests: Number of DMA request lines supported, up to 16
|
|
- dma-masters: Number of AHB masters supported by the controller
|
|
- #dma-cells: must be <3>
|
|
- chan_allocation_order: order of allocation of channel, 0 (default): ascending,
|
|
1: descending
|
|
- chan_priority: priority of channels. 0 (default): increase from chan 0->n, 1:
|
|
increase from chan n->0
|
|
- block_size: Maximum block size supported by the controller
|
|
- data_width: Maximum data width supported by hardware per AHB master
|
|
(0 - 8bits, 1 - 16bits, ..., 5 - 256bits)
|
|
|
|
|
|
Optional properties:
|
|
- interrupt-parent: Should be the phandle for the interrupt controller
|
|
that services interrupts for this device
|
|
- is_private: The device channels should be marked as private and not for by the
|
|
general purpose DMA channel allocator. False if not passed.
|
|
|
|
Example:
|
|
|
|
dmahost: dma@fc000000 {
|
|
compatible = "snps,dma-spear1340";
|
|
reg = <0xfc000000 0x1000>;
|
|
interrupt-parent = <&vic1>;
|
|
interrupts = <12>;
|
|
|
|
dma-channels = <8>;
|
|
dma-requests = <16>;
|
|
dma-masters = <2>;
|
|
#dma-cells = <3>;
|
|
chan_allocation_order = <1>;
|
|
chan_priority = <1>;
|
|
block_size = <0xfff>;
|
|
data_width = <3 3 0 0>;
|
|
};
|
|
|
|
DMA clients connected to the Designware DMA controller must use the format
|
|
described in the dma.txt file, using a four-cell specifier for each channel.
|
|
The four cells in order are:
|
|
|
|
1. A phandle pointing to the DMA controller
|
|
2. The DMA request line number
|
|
3. Source master for transfers on allocated channel
|
|
4. Destination master for transfers on allocated channel
|
|
|
|
Example:
|
|
|
|
serial@e0000000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0xe0000000 0x1000>;
|
|
interrupts = <0 35 0x4>;
|
|
status = "disabled";
|
|
dmas = <&dmahost 12 0 1>,
|
|
<&dmahost 13 0 1 0>;
|
|
dma-names = "rx", "rx";
|
|
};
|