| # |
| # 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"; |
| }; |