xref: /linux/Documentation/devicetree/bindings/dma/fsl,eloplus-dma.yaml (revision 6315d93541f8a5f77c5ef5c4f25233e66d189603)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/dma/fsl,eloplus-dma.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale EloPlus DMA Controller
8
9maintainers:
10  - J. Neuschäfer <j.ne@posteo.net>
11
12description:
13  This is a 4-channel DMA controller with extended addresses and chaining,
14  mainly used in Freescale mpc85xx/86xx, Pxxx and BSC series chips, such as
15  mpc8540, mpc8641 p4080, bsc9131 etc.
16
17properties:
18  compatible:
19    oneOf:
20      - items:
21          - enum:
22              - fsl,mpc8540-dma
23              - fsl,mpc8541-dma
24              - fsl,mpc8548-dma
25              - fsl,mpc8555-dma
26              - fsl,mpc8560-dma
27              - fsl,mpc8572-dma
28              - fsl,mpc8641-dma
29          - const: fsl,eloplus-dma
30      - const: fsl,eloplus-dma
31
32  reg:
33    items:
34      - description:
35          DMA General Status Register, i.e. DGSR which contains
36          status for all the 4 DMA channels
37
38  cell-index:
39    $ref: /schemas/types.yaml#/definitions/uint32
40    description:
41      controller index.  0 for controller @ 0x21000, 1 for controller @ 0xc000
42
43  ranges: true
44
45  "#address-cells":
46    const: 1
47
48  "#size-cells":
49    const: 1
50
51  interrupts:
52    maxItems: 1
53    description: Controller interrupt.
54
55patternProperties:
56  "^dma-channel@[0-9a-f]+$":
57    type: object
58    additionalProperties: false
59
60    properties:
61      compatible:
62        oneOf:
63          # native DMA channel
64          - items:
65              - enum:
66                  - fsl,mpc8540-dma-channel
67                  - fsl,mpc8541-dma-channel
68                  - fsl,mpc8548-dma-channel
69                  - fsl,mpc8555-dma-channel
70                  - fsl,mpc8560-dma-channel
71                  - fsl,mpc8572-dma-channel
72              - const: fsl,eloplus-dma-channel
73
74          # audio DMA channel, see fsl,ssi.yaml
75          - const: fsl,ssi-dma-channel
76
77      reg:
78        maxItems: 1
79
80      cell-index:
81        description: DMA channel index starts at 0.
82
83      interrupts:
84        maxItems: 1
85        description:
86          Per-channel interrupt. Only necessary if no controller interrupt has
87          been provided.
88
89additionalProperties: false
90
91examples:
92  - |
93    #include <dt-bindings/interrupt-controller/irq.h>
94
95    dma@21300 {
96        compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma";
97        reg = <0x21300 4>;
98        #address-cells = <1>;
99        #size-cells = <1>;
100        ranges = <0 0x21100 0x200>;
101        cell-index = <0>;
102
103        dma-channel@0 {
104            compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
105            reg = <0 0x80>;
106            cell-index = <0>;
107            interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
108        };
109
110        dma-channel@80 {
111            compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
112            reg = <0x80 0x80>;
113            cell-index = <1>;
114            interrupts = <21 IRQ_TYPE_EDGE_FALLING>;
115        };
116
117        dma-channel@100 {
118            compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
119            reg = <0x100 0x80>;
120            cell-index = <2>;
121            interrupts = <22 IRQ_TYPE_EDGE_FALLING>;
122        };
123
124        dma-channel@180 {
125            compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
126            reg = <0x180 0x80>;
127            cell-index = <3>;
128            interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
129        };
130    };
131
132...
133