2012-04-20 22:45:34 +08:00
|
|
|
* Synopsys Designware DMA Controller
|
|
|
|
|
|
|
|
Required properties:
|
|
|
|
- compatible: "snps,dma-spear1340"
|
|
|
|
- reg: Address range of the DMAC registers
|
|
|
|
- interrupt-parent: Should be the phandle for the interrupt controller
|
|
|
|
that services interrupts for this device
|
|
|
|
- interrupt: Should contain the DMAC interrupt number
|
2012-10-16 12:19:17 +08:00
|
|
|
- nr_channels: Number of channels supported by hardware
|
|
|
|
- is_private: The device channels should be marked as private and not for by the
|
|
|
|
general purpose DMA channel allocator. False if not passed.
|
|
|
|
- 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
|
|
|
|
- nr_masters: Number of AHB masters supported by the controller
|
|
|
|
- data_width: Maximum data width supported by hardware per AHB master
|
|
|
|
(0 - 8bits, 1 - 16bits, ..., 5 - 256bits)
|
|
|
|
- slave_info:
|
|
|
|
- bus_id: name of this device channel, not just a device name since
|
|
|
|
devices may have more than one channel e.g. "foo_tx". For using the
|
|
|
|
dw_generic_filter(), slave drivers must pass exactly this string as
|
|
|
|
param to filter function.
|
|
|
|
- cfg_hi: Platform-specific initializer for the CFG_HI register
|
|
|
|
- cfg_lo: Platform-specific initializer for the CFG_LO register
|
|
|
|
- src_master: src master for transfers on allocated channel.
|
|
|
|
- dst_master: dest master for transfers on allocated channel.
|
2012-04-20 22:45:34 +08:00
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
dma@fc000000 {
|
|
|
|
compatible = "snps,dma-spear1340";
|
|
|
|
reg = <0xfc000000 0x1000>;
|
|
|
|
interrupt-parent = <&vic1>;
|
|
|
|
interrupts = <12>;
|
2012-10-16 12:19:17 +08:00
|
|
|
|
|
|
|
nr_channels = <8>;
|
|
|
|
chan_allocation_order = <1>;
|
|
|
|
chan_priority = <1>;
|
|
|
|
block_size = <0xfff>;
|
|
|
|
nr_masters = <2>;
|
|
|
|
data_width = <3 3 0 0>;
|
|
|
|
|
|
|
|
slave_info {
|
|
|
|
uart0-tx {
|
|
|
|
bus_id = "uart0-tx";
|
|
|
|
cfg_hi = <0x4000>; /* 0x8 << 11 */
|
|
|
|
cfg_lo = <0>;
|
|
|
|
src_master = <0>;
|
|
|
|
dst_master = <1>;
|
|
|
|
};
|
|
|
|
spi0-tx {
|
|
|
|
bus_id = "spi0-tx";
|
|
|
|
cfg_hi = <0x2000>; /* 0x4 << 11 */
|
|
|
|
cfg_lo = <0>;
|
|
|
|
src_master = <0>;
|
|
|
|
dst_master = <0>;
|
|
|
|
};
|
|
|
|
};
|
2012-04-20 22:45:34 +08:00
|
|
|
};
|