mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 14:52:05 +00:00
7c7055c7c5
This bitfield intends to address features to be activated within the driver. Initially the mask was only meant for FIFO Threshold management. Backward compatibility is preserved but the meaning of this field has been extended to features instead of only threshold. Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
84 lines
2.4 KiB
Plaintext
84 lines
2.4 KiB
Plaintext
* STMicroelectronics STM32 DMA controller
|
|
|
|
The STM32 DMA is a general-purpose direct memory access controller capable of
|
|
supporting 8 independent DMA channels. Each channel can have up to 8 requests.
|
|
|
|
Required properties:
|
|
- compatible: Should be "st,stm32-dma"
|
|
- reg: Should contain DMA registers location and length. This should include
|
|
all of the per-channel registers.
|
|
- interrupts: Should contain all of the per-channel DMA interrupts in
|
|
ascending order with respect to the DMA channel index.
|
|
- clocks: Should contain the input clock of the DMA instance.
|
|
- #dma-cells : Must be <4>. See DMA client paragraph for more details.
|
|
|
|
Optional properties:
|
|
- dma-requests : Number of DMA requests supported.
|
|
- resets: Reference to a reset controller asserting the DMA controller
|
|
- st,mem2mem: boolean; if defined, it indicates that the controller supports
|
|
memory-to-memory transfer
|
|
|
|
Example:
|
|
|
|
dma2: dma-controller@40026400 {
|
|
compatible = "st,stm32-dma";
|
|
reg = <0x40026400 0x400>;
|
|
interrupts = <56>,
|
|
<57>,
|
|
<58>,
|
|
<59>,
|
|
<60>,
|
|
<68>,
|
|
<69>,
|
|
<70>;
|
|
clocks = <&clk_hclk>;
|
|
#dma-cells = <4>;
|
|
st,mem2mem;
|
|
resets = <&rcc 150>;
|
|
dma-requests = <8>;
|
|
};
|
|
|
|
* DMA client
|
|
|
|
DMA clients connected to the STM32 DMA controller must use the format
|
|
described in the dma.txt file, using a four-cell specifier for each
|
|
channel: a phandle to the DMA controller plus the following four integer cells:
|
|
|
|
1. The channel id
|
|
2. The request line number
|
|
3. A 32bit mask specifying the DMA channel configuration which are device
|
|
dependent:
|
|
-bit 9: Peripheral Increment Address
|
|
0x0: no address increment between transfers
|
|
0x1: increment address between transfers
|
|
-bit 10: Memory Increment Address
|
|
0x0: no address increment between transfers
|
|
0x1: increment address between transfers
|
|
-bit 15: Peripheral Increment Offset Size
|
|
0x0: offset size is linked to the peripheral bus width
|
|
0x1: offset size is fixed to 4 (32-bit alignment)
|
|
-bit 16-17: Priority level
|
|
0x0: low
|
|
0x1: medium
|
|
0x2: high
|
|
0x3: very high
|
|
4. A 32bit bitfield value specifying DMA features which are device dependent:
|
|
-bit 0-1: DMA FIFO threshold selection
|
|
0x0: 1/4 full FIFO
|
|
0x1: 1/2 full FIFO
|
|
0x2: 3/4 full FIFO
|
|
0x3: full FIFO
|
|
|
|
|
|
Example:
|
|
|
|
usart1: serial@40011000 {
|
|
compatible = "st,stm32-uart";
|
|
reg = <0x40011000 0x400>;
|
|
interrupts = <37>;
|
|
clocks = <&clk_pclk2>;
|
|
dmas = <&dma2 2 4 0x10400 0x3>,
|
|
<&dma2 7 5 0x10200 0x3>;
|
|
dma-names = "rx", "tx";
|
|
};
|