forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.2 KiB
84 lines
2.2 KiB
* SHDMA Device Tree bindings |
|
|
|
Sh-/r-mobile and R-Car systems often have multiple identical DMA controller |
|
instances, capable of serving any of a common set of DMA slave devices, using |
|
the same configuration. To describe this topology we require all compatible |
|
SHDMA DT nodes to be placed under a DMA multiplexer node. All such compatible |
|
DMAC instances have the same number of channels and use the same DMA |
|
descriptors. Therefore respective DMA DT bindings can also all be placed in the |
|
multiplexer node. Even if there is only one such DMAC instance on a system, it |
|
still has to be placed under such a multiplexer node. |
|
|
|
* DMA multiplexer |
|
|
|
Required properties: |
|
- compatible: should be "renesas,shdma-mux" |
|
- #dma-cells: should be <1>, see "dmas" property below |
|
|
|
Optional properties (currently unused): |
|
- dma-channels: number of DMA channels |
|
- dma-requests: number of DMA request signals |
|
|
|
* DMA controller |
|
|
|
Required properties: |
|
- compatible: should be of the form "renesas,shdma-<soc>", where <soc> should |
|
be replaced with the desired SoC model, e.g. |
|
"renesas,shdma-r8a73a4" for the system DMAC on r8a73a4 SoC |
|
|
|
Example: |
|
dmac: dma-multiplexer@0 { |
|
compatible = "renesas,shdma-mux"; |
|
#dma-cells = <1>; |
|
dma-channels = <20>; |
|
dma-requests = <256>; |
|
#address-cells = <2>; |
|
#size-cells = <2>; |
|
ranges; |
|
|
|
dma0: dma-controller@e6700020 { |
|
compatible = "renesas,shdma-r8a73a4"; |
|
reg = <0 0xe6700020 0 0x89e0>; |
|
interrupt-parent = <&gic>; |
|
interrupts = <0 220 4 |
|
0 200 4 |
|
0 201 4 |
|
0 202 4 |
|
0 203 4 |
|
0 204 4 |
|
0 205 4 |
|
0 206 4 |
|
0 207 4 |
|
0 208 4 |
|
0 209 4 |
|
0 210 4 |
|
0 211 4 |
|
0 212 4 |
|
0 213 4 |
|
0 214 4 |
|
0 215 4 |
|
0 216 4 |
|
0 217 4 |
|
0 218 4 |
|
0 219 4>; |
|
interrupt-names = "error", |
|
"ch0", "ch1", "ch2", "ch3", |
|
"ch4", "ch5", "ch6", "ch7", |
|
"ch8", "ch9", "ch10", "ch11", |
|
"ch12", "ch13", "ch14", "ch15", |
|
"ch16", "ch17", "ch18", "ch19"; |
|
}; |
|
}; |
|
|
|
* DMA client |
|
|
|
Required properties: |
|
- dmas: a list of <[DMA multiplexer phandle] [MID/RID value]> pairs, |
|
where MID/RID values are fixed handles, specified in the SoC |
|
manual |
|
- dma-names: a list of DMA channel names, one per "dmas" entry |
|
|
|
Example: |
|
dmas = <&dmac 0xd1 |
|
&dmac 0xd2>; |
|
dma-names = "tx", "rx";
|
|
|