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
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/fsl,eloplus-dma.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale EloPlus DMA Controller
maintainers:
- J. Neuschäfer <j.ne@posteo.net>
description:
This is a 4-channel DMA controller with extended addresses and chaining,
mainly used in Freescale mpc85xx/86xx, Pxxx and BSC series chips, such as
mpc8540, mpc8641 p4080, bsc9131 etc.
properties:
compatible:
oneOf:
- items:
- enum:
- fsl,mpc8540-dma
- fsl,mpc8541-dma
- fsl,mpc8548-dma
- fsl,mpc8555-dma
- fsl,mpc8560-dma
- fsl,mpc8572-dma
- fsl,mpc8641-dma
- const: fsl,eloplus-dma
- const: fsl,eloplus-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 @ 0x21000, 1 for controller @ 0xc000
ranges: true
"#address-cells":
const: 1
"#size-cells":
const: 1
interrupts:
maxItems: 1
description: Controller interrupt.
patternProperties:
"^dma-channel@[0-9a-f]+$":
type: object
additionalProperties: false
properties:
compatible:
oneOf:
# native DMA channel
- items:
- enum:
- fsl,mpc8540-dma-channel
- fsl,mpc8541-dma-channel
- fsl,mpc8548-dma-channel
- fsl,mpc8555-dma-channel
- fsl,mpc8560-dma-channel
- fsl,mpc8572-dma-channel
- const: fsl,eloplus-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@21300 {
compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma";
reg = <0x21300 4>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x21100 0x200>;
cell-index = <0>;
dma-channel@0 {
compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
reg = <0 0x80>;
cell-index = <0>;
interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
};
dma-channel@80 {
compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
reg = <0x80 0x80>;
cell-index = <1>;
interrupts = <21 IRQ_TYPE_EDGE_FALLING>;
};
dma-channel@100 {
compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
reg = <0x100 0x80>;
cell-index = <2>;
interrupts = <22 IRQ_TYPE_EDGE_FALLING>;
};
dma-channel@180 {
compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
reg = <0x180 0x80>;
cell-index = <3>;
interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
};
};
...
|