summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/dma/fsl,eloplus-dma.yaml
blob: 8992f244c4db41ac13104ca64b7f8bf4b1b5c756 (plain)
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>;
        };
    };

...