# Copyright 2024 NXP
# SPDX-License-Identifier: Apache-2.0

description: NXP enhanced Direct Memory Access (eDMA) node

compatible: "nxp,edma"

include: [dma-controller.yaml, base.yaml]

properties:
  reg:
    required: true
  valid-channels:
    type: array
    description: |
      Use this property to specify which channel indexes are
      to be considered valid. The difference between this
      property and "dma-channels" is the fact that this
      property allows you to have "gaps" between the channel
      indexes. This is useful in cases where you know you're
      not going to be using all of the possible channels, thus
      leading to a more readable DTS. Of course, this property
      and "dma-channels" are mutually exclusive, meaning you
      can't specify both properties as this will lead to a
      BUILD_ASSERT() failure.
  hal-cfg-index:
    type: int
    description: |
      Use this property to specify which HAL configuration
      should be used. In the case of some SoCs (e.g: i.MX93),
      there can be multiple eDMA variants, each of them having
      different configurations (e.g: i.MX93 eDMA3 has 31 channels,
      i.MX93 eDMA4 has 64 channels and both of them have slightly
      different register layouts). To overcome this issue, the HAL
      exposes an array of configurations called "edma_hal_configs".
      To perform various operations, the HAL uses an eDMA configuration
      which will tell it what register layout the IP has, the number of
      channels, various flags and offsets. As such, if there's multiple
      configurations available, the user will have to specify which
      configuration to use through this property. If missing, the
      configuration found at index 0 will be used.
  "#dma-cells":
    const: 2

# IMPORTANT: if your EDMA version doesn't support channel MUX-ing please
# leave the MUX cell as 0. This is not mandatory for the driver as the
# MUX value will be ignored in this case but all entities using EDMA should
# be consistent in this regard.
dma-cells:
  - channel
  - mux
