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