# Copyright (c) 2022, TOKITA Hiroshi <tokita.hiroshi@gmail.com>
# SPDX-License-Identifier: Apache-2.0

description: |
  GD32 DMA controller

  channel: Select channel for data transmitting

  config: A 32bit mask specifying the DMA channel configuration
    - bit 6-7:   Direction  (see dma.h)
                 - 0x0: MEMORY to MEMORY
                 - 0x1: MEMORY to PERIPH
                 - 0x2: PERIPH to MEMORY
                 - 0x3: reserved for PERIPH to PERIPH

    - bit 9:     Peripheral address increase
                 - 0x0: no address increment between transfers
                 - 0x1: increment address between transfers

    - bit 10:    Memory address increase
                 - 0x0: no address increase between transfers
                 - 0x1: increase address between transfers

    - bit 11-12: Peripheral data width
                 - 0x0: 8 bits
                 - 0x1: 16 bits
                 - 0x2: 32 bits
                 - 0x3: reserved

    - bit 13-14: Memory data width
                 - 0x0: 8 bits
                 - 0x1: 16 bits
                 - 0x2: 32 bits
                 - 0x3: reserved

    - 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
                 - 0x0: low
                 - 0x1: medium
                 - 0x2: high
                 - 0x3: very high

  Example of devicetree configuration

  &spi0 {
        status = "okay";
        pinctrl-0 = <&spi0_default>;
        pinctrl-names = "default";
        cs-gpios = <&gpioa 4 GPIO_ACTIVE_LOW>;

        dmas = <&dma0 3 0>, <&dma0 5 GD32_DMA_PRIORITY_HIGH>;
        dma-names = "rx", "tx";
  };

  "spi0" uses dma0 for transmitting and receiving in the example.
  Each is named "rx" and "tx".
  The channel cell assigns channel 3 to receive and channel 5 to transmit.
  The config cell can take various configs.
  But the setting used depends on each driver implementation.
  Set the priority for the transmitting channel as HIGH, LOW(the default) for receive channel.

compatible: "gd,gd32-dma"

include: ["gd,gd32-dma-base.yaml"]

properties:
  "#dma-cells":
    const: 2

dma-cells:
  - channel
  - config
