# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/stm32/st,stm32-dmamux.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectronics STM32 DMA MUX (DMA request router)

maintainers:
  - Amelie Delaunay <amelie.delaunay@foss.st.com>

allOf:
  - $ref: /schemas/dma/dma-router.yaml#

properties:
  "#dma-cells":
    const: 3
    description: |
      Each cell represents the following:
      1. The mux input number/line for the request
      2. Bitfield representing DMA channel configuration that is passed
         to the real DMA controller
      3. Bitfield representing device dependent DMA features passed to
         the real DMA controller

      For bitfield definitions of cells 2 and 3, see the associated
      bindings doc for the actual DMA controller in st,stm32-dma.yaml.

  compatible:
    const: st,stm32h7-dmamux

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  resets:
    maxItems: 1

  access-controllers:
    minItems: 1
    maxItems: 2

required:
  - compatible
  - reg
  - dma-masters

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/stm32mp1-clks.h>
    #include <dt-bindings/reset/stm32mp1-resets.h>
    dma-router@40020800 {
      compatible = "st,stm32h7-dmamux";
      reg = <0x40020800 0x3c>;
      #dma-cells = <3>;
      dma-requests = <128>;
      dma-channels = <16>;
      dma-masters = <&dma1>, <&dma2>;
      clocks = <&timer_clk>;
    };

...