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