summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/dma/fsl,elo-dma.yaml
blob: 92288d76d51be639ac9ca5264e5fa056e418e4d5 (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
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>;
        };
    };

...