Documentation / devicetree / bindings / dma / fsl,eloplus-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
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/fsl,eloplus-dma.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale EloPlus DMA Controller

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

description:
  This is a 4-channel DMA controller with extended addresses and chaining,
  mainly used in Freescale mpc85xx/86xx, Pxxx and BSC series chips, such as
  mpc8540, mpc8641 p4080, bsc9131 etc.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - fsl,mpc8540-dma
              - fsl,mpc8541-dma
              - fsl,mpc8548-dma
              - fsl,mpc8555-dma
              - fsl,mpc8560-dma
              - fsl,mpc8572-dma
              - fsl,mpc8641-dma
          - const: fsl,eloplus-dma
      - const: fsl,eloplus-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 @ 0x21000, 1 for controller @ 0xc000

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

  interrupts:
    maxItems: 1
    description: Controller interrupt.

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

    properties:
      compatible:
        oneOf:
          # native DMA channel
          - items:
              - enum:
                  - fsl,mpc8540-dma-channel
                  - fsl,mpc8541-dma-channel
                  - fsl,mpc8548-dma-channel
                  - fsl,mpc8555-dma-channel
                  - fsl,mpc8560-dma-channel
                  - fsl,mpc8572-dma-channel
              - const: fsl,eloplus-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@21300 {
        compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma";
        reg = <0x21300 4>;
        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0 0x21100 0x200>;
        cell-index = <0>;
 
        dma-channel@0 {
            compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
            reg = <0 0x80>;
            cell-index = <0>;
            interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
        };
 
        dma-channel@80 {
            compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
            reg = <0x80 0x80>;
            cell-index = <1>;
            interrupts = <21 IRQ_TYPE_EDGE_FALLING>;
        };
 
        dma-channel@100 {
            compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
            reg = <0x100 0x80>;
            cell-index = <2>;
            interrupts = <22 IRQ_TYPE_EDGE_FALLING>;
        };
 
        dma-channel@180 {
            compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
            reg = <0x180 0x80>;
            cell-index = <3>;
            interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
        };
    };

...