a7dacb68b3
At this moment in time the memcpy channels which can be used by the D40 are fixed, as each supported platform in Mainline uses the same ones. However, platforms do exist which don't follow this convention, so these will need to be tailored. Fortunately, these platforms will be DT only, so this change has very little impact on platform data. 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>
65 lines
1.9 KiB
Plaintext
65 lines
1.9 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
|
|
|
|
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>;
|
|
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";
|
|
};
|