499c2bc3cc
Some platforms have channels which are not available for normal use. This information is currently passed though platform data in internal BSP kernels. Once those platforms land, they'll need to configure them appropriately, so we may as well add the infrastructure. Cc: Dan Williams <djbw@fb.com> Cc: Per Forlin <per.forlin@stericsson.com> Cc: Rabin Vincent <rabin@rab.in> Acked-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
67 lines
2.0 KiB
Plaintext
67 lines
2.0 KiB
Plaintext
* DMA40 DMA Controller
|
|
|
|
Required properties:
|
|
- compatible: "stericsson,dma40"
|
|
- reg: Address range of the DMAC registers
|
|
- reg-names: Names of the above areas to use during resource look-up
|
|
- interrupt: Should contain the DMAC interrupt number
|
|
- #dma-cells: must be <3>
|
|
- memcpy-channels: Channels to be used for memcpy
|
|
|
|
Optional properties:
|
|
- dma-channels: Number of channels supported by hardware - if not present
|
|
the driver will attempt to obtain the information from H/W
|
|
- disabled-channels: Channels which can not be used
|
|
|
|
Example:
|
|
|
|
dma: dma-controller@801C0000 {
|
|
compatible = "stericsson,db8500-dma40", "stericsson,dma40";
|
|
reg = <0x801C0000 0x1000 0x40010000 0x800>;
|
|
reg-names = "base", "lcpa";
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <0 25 0x4>;
|
|
|
|
#dma-cells = <2>;
|
|
memcpy-channels = <56 57 58 59 60>;
|
|
disabled-channels = <12>;
|
|
dma-channels = <8>;
|
|
};
|
|
|
|
Clients
|
|
Required properties:
|
|
- dmas: Comma separated list of dma channel requests
|
|
- dma-names: Names of the aforementioned requested channels
|
|
|
|
Each dmas request consists of 4 cells:
|
|
1. A phandle pointing to the DMA controller
|
|
2. Device Type
|
|
3. The DMA request line number (only when 'use fixed channel' is set)
|
|
4. A 32bit mask specifying; mode, direction and endianess [NB: This list will grow]
|
|
0x00000001: Mode:
|
|
Logical channel when unset
|
|
Physical channel when set
|
|
0x00000002: Direction:
|
|
Memory to Device when unset
|
|
Device to Memory when set
|
|
0x00000004: Endianess:
|
|
Little endian when unset
|
|
Big endian when set
|
|
0x00000008: Use fixed channel:
|
|
Use automatic channel selection when unset
|
|
Use DMA request line number when set
|
|
|
|
Example:
|
|
|
|
uart@80120000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x80120000 0x1000>;
|
|
interrupts = <0 11 0x4>;
|
|
|
|
dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */
|
|
<&dma 13 0 0x0>; /* Logical - MemToDev */
|
|
dma-names = "rx", "rx";
|
|
|
|
status = "disabled";
|
|
};
|