xref: /linux/Documentation/devicetree/bindings/dma/fsl,elo-dma.yaml (revision bbfd5594756011167b8f8de9a00e0c946afda1e6)
1*1fe283e8SJ. Neuschäfer# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*1fe283e8SJ. Neuschäfer%YAML 1.2
3*1fe283e8SJ. Neuschäfer---
4*1fe283e8SJ. Neuschäfer$id: http://devicetree.org/schemas/dma/fsl,elo-dma.yaml#
5*1fe283e8SJ. Neuschäfer$schema: http://devicetree.org/meta-schemas/core.yaml#
6*1fe283e8SJ. Neuschäfer
7*1fe283e8SJ. Neuschäfertitle: Freescale Elo DMA Controller
8*1fe283e8SJ. Neuschäfer
9*1fe283e8SJ. Neuschäfermaintainers:
10*1fe283e8SJ. Neuschäfer  - J. Neuschäfer <j.ne@posteo.net>
11*1fe283e8SJ. Neuschäfer
12*1fe283e8SJ. Neuschäferdescription:
13*1fe283e8SJ. Neuschäfer  This is a little-endian 4-channel DMA controller, used in Freescale mpc83xx
14*1fe283e8SJ. Neuschäfer  series chips such as mpc8315, mpc8349, mpc8379 etc.
15*1fe283e8SJ. Neuschäfer
16*1fe283e8SJ. Neuschäferproperties:
17*1fe283e8SJ. Neuschäfer  compatible:
18*1fe283e8SJ. Neuschäfer    items:
19*1fe283e8SJ. Neuschäfer      - enum:
20*1fe283e8SJ. Neuschäfer          - fsl,mpc8313-dma
21*1fe283e8SJ. Neuschäfer          - fsl,mpc8315-dma
22*1fe283e8SJ. Neuschäfer          - fsl,mpc8323-dma
23*1fe283e8SJ. Neuschäfer          - fsl,mpc8347-dma
24*1fe283e8SJ. Neuschäfer          - fsl,mpc8349-dma
25*1fe283e8SJ. Neuschäfer          - fsl,mpc8360-dma
26*1fe283e8SJ. Neuschäfer          - fsl,mpc8377-dma
27*1fe283e8SJ. Neuschäfer          - fsl,mpc8378-dma
28*1fe283e8SJ. Neuschäfer          - fsl,mpc8379-dma
29*1fe283e8SJ. Neuschäfer      - const: fsl,elo-dma
30*1fe283e8SJ. Neuschäfer
31*1fe283e8SJ. Neuschäfer  reg:
32*1fe283e8SJ. Neuschäfer    items:
33*1fe283e8SJ. Neuschäfer      - description:
34*1fe283e8SJ. Neuschäfer          DMA General Status Register, i.e. DGSR which contains status for
35*1fe283e8SJ. Neuschäfer          all the 4 DMA channels.
36*1fe283e8SJ. Neuschäfer
37*1fe283e8SJ. Neuschäfer  cell-index:
38*1fe283e8SJ. Neuschäfer    $ref: /schemas/types.yaml#/definitions/uint32
39*1fe283e8SJ. Neuschäfer    description: Controller index. 0 for controller @ 0x8100.
40*1fe283e8SJ. Neuschäfer
41*1fe283e8SJ. Neuschäfer  ranges: true
42*1fe283e8SJ. Neuschäfer
43*1fe283e8SJ. Neuschäfer  "#address-cells":
44*1fe283e8SJ. Neuschäfer    const: 1
45*1fe283e8SJ. Neuschäfer
46*1fe283e8SJ. Neuschäfer  "#size-cells":
47*1fe283e8SJ. Neuschäfer    const: 1
48*1fe283e8SJ. Neuschäfer
49*1fe283e8SJ. Neuschäfer  interrupts:
50*1fe283e8SJ. Neuschäfer    maxItems: 1
51*1fe283e8SJ. Neuschäfer    description: Controller interrupt.
52*1fe283e8SJ. Neuschäfer
53*1fe283e8SJ. Neuschäferrequired:
54*1fe283e8SJ. Neuschäfer  - compatible
55*1fe283e8SJ. Neuschäfer  - reg
56*1fe283e8SJ. Neuschäfer
57*1fe283e8SJ. NeuschäferpatternProperties:
58*1fe283e8SJ. Neuschäfer  "^dma-channel@[0-9a-f]+$":
59*1fe283e8SJ. Neuschäfer    type: object
60*1fe283e8SJ. Neuschäfer    additionalProperties: false
61*1fe283e8SJ. Neuschäfer
62*1fe283e8SJ. Neuschäfer    properties:
63*1fe283e8SJ. Neuschäfer      compatible:
64*1fe283e8SJ. Neuschäfer        oneOf:
65*1fe283e8SJ. Neuschäfer          # native DMA channel
66*1fe283e8SJ. Neuschäfer          - items:
67*1fe283e8SJ. Neuschäfer              - enum:
68*1fe283e8SJ. Neuschäfer                  - fsl,mpc8315-dma-channel
69*1fe283e8SJ. Neuschäfer                  - fsl,mpc8323-dma-channel
70*1fe283e8SJ. Neuschäfer                  - fsl,mpc8347-dma-channel
71*1fe283e8SJ. Neuschäfer                  - fsl,mpc8349-dma-channel
72*1fe283e8SJ. Neuschäfer                  - fsl,mpc8360-dma-channel
73*1fe283e8SJ. Neuschäfer                  - fsl,mpc8377-dma-channel
74*1fe283e8SJ. Neuschäfer                  - fsl,mpc8378-dma-channel
75*1fe283e8SJ. Neuschäfer                  - fsl,mpc8379-dma-channel
76*1fe283e8SJ. Neuschäfer              - const: fsl,elo-dma-channel
77*1fe283e8SJ. Neuschäfer
78*1fe283e8SJ. Neuschäfer          # audio DMA channel, see fsl,ssi.yaml
79*1fe283e8SJ. Neuschäfer          - const: fsl,ssi-dma-channel
80*1fe283e8SJ. Neuschäfer
81*1fe283e8SJ. Neuschäfer      reg:
82*1fe283e8SJ. Neuschäfer        maxItems: 1
83*1fe283e8SJ. Neuschäfer
84*1fe283e8SJ. Neuschäfer      cell-index:
85*1fe283e8SJ. Neuschäfer        description: DMA channel index starts at 0.
86*1fe283e8SJ. Neuschäfer
87*1fe283e8SJ. Neuschäfer      interrupts:
88*1fe283e8SJ. Neuschäfer        maxItems: 1
89*1fe283e8SJ. Neuschäfer        description:
90*1fe283e8SJ. Neuschäfer          Per-channel interrupt. Only necessary if no controller interrupt has
91*1fe283e8SJ. Neuschäfer          been provided.
92*1fe283e8SJ. Neuschäfer
93*1fe283e8SJ. NeuschäferadditionalProperties: false
94*1fe283e8SJ. Neuschäfer
95*1fe283e8SJ. Neuschäferexamples:
96*1fe283e8SJ. Neuschäfer  - |
97*1fe283e8SJ. Neuschäfer    #include <dt-bindings/interrupt-controller/irq.h>
98*1fe283e8SJ. Neuschäfer
99*1fe283e8SJ. Neuschäfer    dma@82a8 {
100*1fe283e8SJ. Neuschäfer        compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
101*1fe283e8SJ. Neuschäfer        reg = <0x82a8 4>;
102*1fe283e8SJ. Neuschäfer        #address-cells = <1>;
103*1fe283e8SJ. Neuschäfer        #size-cells = <1>;
104*1fe283e8SJ. Neuschäfer        ranges = <0 0x8100 0x1a4>;
105*1fe283e8SJ. Neuschäfer        interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
106*1fe283e8SJ. Neuschäfer        cell-index = <0>;
107*1fe283e8SJ. Neuschäfer
108*1fe283e8SJ. Neuschäfer        dma-channel@0 {
109*1fe283e8SJ. Neuschäfer            compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
110*1fe283e8SJ. Neuschäfer            reg = <0 0x80>;
111*1fe283e8SJ. Neuschäfer            cell-index = <0>;
112*1fe283e8SJ. Neuschäfer            interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
113*1fe283e8SJ. Neuschäfer        };
114*1fe283e8SJ. Neuschäfer
115*1fe283e8SJ. Neuschäfer        dma-channel@80 {
116*1fe283e8SJ. Neuschäfer            compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
117*1fe283e8SJ. Neuschäfer            reg = <0x80 0x80>;
118*1fe283e8SJ. Neuschäfer            cell-index = <1>;
119*1fe283e8SJ. Neuschäfer            interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
120*1fe283e8SJ. Neuschäfer        };
121*1fe283e8SJ. Neuschäfer
122*1fe283e8SJ. Neuschäfer        dma-channel@100 {
123*1fe283e8SJ. Neuschäfer            compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
124*1fe283e8SJ. Neuschäfer            reg = <0x100 0x80>;
125*1fe283e8SJ. Neuschäfer            cell-index = <2>;
126*1fe283e8SJ. Neuschäfer            interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
127*1fe283e8SJ. Neuschäfer        };
128*1fe283e8SJ. Neuschäfer
129*1fe283e8SJ. Neuschäfer        dma-channel@180 {
130*1fe283e8SJ. Neuschäfer            compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
131*1fe283e8SJ. Neuschäfer            reg = <0x180 0x80>;
132*1fe283e8SJ. Neuschäfer            cell-index = <3>;
133*1fe283e8SJ. Neuschäfer            interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
134*1fe283e8SJ. Neuschäfer        };
135*1fe283e8SJ. Neuschäfer    };
136*1fe283e8SJ. Neuschäfer
137*1fe283e8SJ. Neuschäfer...
138