Documentation / devicetree / bindings / dma / fsl,elo-dma.yaml


Based on kernel version 6.15. Page generated on 2025-05-29 09:08 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/fsl,elo-dma.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale Elo DMA Controller

maintainers:
  - J. Neuschäfer <j.ne@posteo.net>

description:
  This is a little-endian 4-channel DMA controller, used in Freescale mpc83xx
  series chips such as mpc8315, mpc8349, mpc8379 etc.

properties:
  compatible:
    items:
      - enum:
          - fsl,mpc8313-dma
          - fsl,mpc8315-dma
          - fsl,mpc8323-dma
          - fsl,mpc8347-dma
          - fsl,mpc8349-dma
          - fsl,mpc8360-dma
          - fsl,mpc8377-dma
          - fsl,mpc8378-dma
          - fsl,mpc8379-dma
      - const: fsl,elo-dma

  reg:
    items:
      - description:
          DMA General Status Register, i.e. DGSR which contains status for
          all the 4 DMA channels.

  cell-index:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Controller index. 0 for controller @ 0x8100.

  ranges: true
 
  "#address-cells":
    const: 1
 
  "#size-cells":
    const: 1

  interrupts:
    maxItems: 1
    description: Controller interrupt.

required:
  - compatible
  - reg

patternProperties:
  "^dma-channel@[0-9a-f]+$":
    type: object
    additionalProperties: false

    properties:
      compatible:
        oneOf:
          # native DMA channel
          - items:
              - enum:
                  - fsl,mpc8315-dma-channel
                  - fsl,mpc8323-dma-channel
                  - fsl,mpc8347-dma-channel
                  - fsl,mpc8349-dma-channel
                  - fsl,mpc8360-dma-channel
                  - fsl,mpc8377-dma-channel
                  - fsl,mpc8378-dma-channel
                  - fsl,mpc8379-dma-channel
              - const: fsl,elo-dma-channel
 
          # audio DMA channel, see fsl,ssi.yaml
          - const: fsl,ssi-dma-channel

      reg:
        maxItems: 1

      cell-index:
        description: DMA channel index starts at 0.

      interrupts:
        maxItems: 1
        description:
          Per-channel interrupt. Only necessary if no controller interrupt has
          been provided.

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
 
    dma@82a8 {
        compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
        reg = <0x82a8 4>;
        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0 0x8100 0x1a4>;
        interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
        cell-index = <0>;
 
        dma-channel@0 {
            compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
            reg = <0 0x80>;
            cell-index = <0>;
            interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
        };
 
        dma-channel@80 {
            compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
            reg = <0x80 0x80>;
            cell-index = <1>;
            interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
        };
 
        dma-channel@100 {
            compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
            reg = <0x100 0x80>;
            cell-index = <2>;
            interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
        };
 
        dma-channel@180 {
            compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
            reg = <0x180 0x80>;
            cell-index = <3>;
            interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
        };
    };

...