blob: 4c0020dd69d7713ff14027d63ee4b7fbea2eea11 [file] [log] [blame]
#
# Copyright (c) 2023 Andes Technology Corporation.
#
# SPDX-License-Identifier: Apache-2.0
compatible: "andestech,atcdmac300"
include: dma-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
chain-transfer:
type: int
"#dma-cells":
const: 3
dma-cells:
- channel
- slot
- channel-config
description: |
Andes DMA controller
channel: a phandle to the DMA controller plus the following four integer cells:
1. channel: the dma channel
2. slot: DMA peripheral request ID
3. channel-config: A 32bit mask specifying the DMA channel configuration
which is device dependent:
-bit 0-1 : Direction (see dma.h)
0x0: MEM to MEM
0x1: MEM to PERIPH
0x2: PERIPH to MEM
0x3: reserved for PERIPH to PERIPH
-bit 2 : Peripheral Increment Address
0x0: no address increment between transfers
0x1: increment address between transfers
-bit 3 : Memory Increment Address
0x0: no address increment between transfers
0x1: increment address between transfers
-bit 4-6 : Peripheral data size
0x0: Byte (8 bits)
0x1: Half-word (16 bits)
0x2: Word (32 bits)
0x3: Double word (64 bits)
0x4: Quad word (128 bits)
0x5: Eight word (256 bits)
0x6-0x7: reserved
-bit 7-9 : Memory data size
0x0: Byte (8 bits)
0x1: Half-word (16 bits)
0x2: Word (32 bits)
0x3: Double word (64 bits)
0x4: Quad word (128 bits)
0x5: Eight word (256 bits)
0x6-0x7: reserved
-bit 10 : Priority level
0x0: lower priority
0x1: higher priority
examples for andes_v5_ae350 DMA instance
dma0: dma0@f0c00000 {
compatible = "andestech,atcdmac300";
...
dma-channels = <8>;
dma-requests = <16>;
status = "disabled";
label = "DMA_0";
};
For the client part, example for andes_ae350 DMA instance
Tx using channel 2, slot 0
Rx using channel 3, slot 1
spi1: spi@f0f00000 {
compatible = "andestech,atcspi200"
dmas = <&dma0 2 0 0x0129>,
<&dma0 3 1 0x012A>;
dma-names = "tx", "rx";
};