1c3d68d8dSHongbo Zhang* Freescale DMA Controllers 2d524dac9SGrant Likely 3c3d68d8dSHongbo Zhang** Freescale Elo DMA Controller 4c3d68d8dSHongbo Zhang This is a little-endian 4-channel DMA controller, used in Freescale mpc83xx 5c3d68d8dSHongbo Zhang series chips such as mpc8315, mpc8349, mpc8379 etc. 6d524dac9SGrant Likely 7d524dac9SGrant LikelyRequired properties: 8d524dac9SGrant Likely 9c3d68d8dSHongbo Zhang- compatible : must include "fsl,elo-dma" 10c3d68d8dSHongbo Zhang- reg : DMA General Status Register, i.e. DGSR which contains 11c3d68d8dSHongbo Zhang status for all the 4 DMA channels 12c3d68d8dSHongbo Zhang- ranges : describes the mapping between the address space of the 13c3d68d8dSHongbo Zhang DMA channels and the address space of the DMA controller 14d524dac9SGrant Likely- cell-index : controller index. 0 for controller @ 0x8100 15c3d68d8dSHongbo Zhang- interrupts : interrupt specifier for DMA IRQ 16d524dac9SGrant Likely 17d524dac9SGrant Likely- DMA channel nodes: 18c3d68d8dSHongbo Zhang - compatible : must include "fsl,elo-dma-channel" 19c3d68d8dSHongbo Zhang However, see note below. 20c3d68d8dSHongbo Zhang - reg : DMA channel specific registers 21c3d68d8dSHongbo Zhang - cell-index : DMA channel index starts at 0. 22d524dac9SGrant Likely 23d524dac9SGrant LikelyOptional properties: 24c3d68d8dSHongbo Zhang - interrupts : interrupt specifier for DMA channel IRQ 25d524dac9SGrant Likely (on 83xx this is expected to be identical to 26d524dac9SGrant Likely the interrupts property of the parent node) 27d524dac9SGrant Likely 28d524dac9SGrant LikelyExample: 29d524dac9SGrant Likely dma@82a8 { 30d524dac9SGrant Likely #address-cells = <1>; 31d524dac9SGrant Likely #size-cells = <1>; 32d524dac9SGrant Likely compatible = "fsl,mpc8349-dma", "fsl,elo-dma"; 33d524dac9SGrant Likely reg = <0x82a8 4>; 34d524dac9SGrant Likely ranges = <0 0x8100 0x1a4>; 35d524dac9SGrant Likely interrupt-parent = <&ipic>; 36d524dac9SGrant Likely interrupts = <71 8>; 37d524dac9SGrant Likely cell-index = <0>; 38d524dac9SGrant Likely dma-channel@0 { 39d524dac9SGrant Likely compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; 40d524dac9SGrant Likely cell-index = <0>; 41d524dac9SGrant Likely reg = <0 0x80>; 42d524dac9SGrant Likely interrupt-parent = <&ipic>; 43d524dac9SGrant Likely interrupts = <71 8>; 44d524dac9SGrant Likely }; 45d524dac9SGrant Likely dma-channel@80 { 46d524dac9SGrant Likely compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; 47d524dac9SGrant Likely cell-index = <1>; 48d524dac9SGrant Likely reg = <0x80 0x80>; 49d524dac9SGrant Likely interrupt-parent = <&ipic>; 50d524dac9SGrant Likely interrupts = <71 8>; 51d524dac9SGrant Likely }; 52d524dac9SGrant Likely dma-channel@100 { 53d524dac9SGrant Likely compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; 54d524dac9SGrant Likely cell-index = <2>; 55d524dac9SGrant Likely reg = <0x100 0x80>; 56d524dac9SGrant Likely interrupt-parent = <&ipic>; 57d524dac9SGrant Likely interrupts = <71 8>; 58d524dac9SGrant Likely }; 59d524dac9SGrant Likely dma-channel@180 { 60d524dac9SGrant Likely compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; 61d524dac9SGrant Likely cell-index = <3>; 62d524dac9SGrant Likely reg = <0x180 0x80>; 63d524dac9SGrant Likely interrupt-parent = <&ipic>; 64d524dac9SGrant Likely interrupts = <71 8>; 65d524dac9SGrant Likely }; 66d524dac9SGrant Likely }; 67d524dac9SGrant Likely 68c3d68d8dSHongbo Zhang** Freescale EloPlus DMA Controller 69c3d68d8dSHongbo Zhang This is a 4-channel DMA controller with extended addresses and chaining, 70c3d68d8dSHongbo Zhang mainly used in Freescale mpc85xx/86xx, Pxxx and BSC series chips, such as 71c3d68d8dSHongbo Zhang mpc8540, mpc8641 p4080, bsc9131 etc. 72d524dac9SGrant Likely 73d524dac9SGrant LikelyRequired properties: 74d524dac9SGrant Likely 75c3d68d8dSHongbo Zhang- compatible : must include "fsl,eloplus-dma" 76c3d68d8dSHongbo Zhang- reg : DMA General Status Register, i.e. DGSR which contains 77c3d68d8dSHongbo Zhang status for all the 4 DMA channels 78d524dac9SGrant Likely- cell-index : controller index. 0 for controller @ 0x21000, 79d524dac9SGrant Likely 1 for controller @ 0xc000 80c3d68d8dSHongbo Zhang- ranges : describes the mapping between the address space of the 81c3d68d8dSHongbo Zhang DMA channels and the address space of the DMA controller 82d524dac9SGrant Likely 83d524dac9SGrant Likely- DMA channel nodes: 84c3d68d8dSHongbo Zhang - compatible : must include "fsl,eloplus-dma-channel" 85c3d68d8dSHongbo Zhang However, see note below. 86c3d68d8dSHongbo Zhang - cell-index : DMA channel index starts at 0. 87c3d68d8dSHongbo Zhang - reg : DMA channel specific registers 88c3d68d8dSHongbo Zhang - interrupts : interrupt specifier for DMA channel IRQ 89d524dac9SGrant Likely 90d524dac9SGrant LikelyExample: 91d524dac9SGrant Likely dma@21300 { 92d524dac9SGrant Likely #address-cells = <1>; 93d524dac9SGrant Likely #size-cells = <1>; 94d524dac9SGrant Likely compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma"; 95d524dac9SGrant Likely reg = <0x21300 4>; 96d524dac9SGrant Likely ranges = <0 0x21100 0x200>; 97d524dac9SGrant Likely cell-index = <0>; 98d524dac9SGrant Likely dma-channel@0 { 99d524dac9SGrant Likely compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel"; 100d524dac9SGrant Likely reg = <0 0x80>; 101d524dac9SGrant Likely cell-index = <0>; 102d524dac9SGrant Likely interrupt-parent = <&mpic>; 103d524dac9SGrant Likely interrupts = <20 2>; 104d524dac9SGrant Likely }; 105d524dac9SGrant Likely dma-channel@80 { 106d524dac9SGrant Likely compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel"; 107d524dac9SGrant Likely reg = <0x80 0x80>; 108d524dac9SGrant Likely cell-index = <1>; 109d524dac9SGrant Likely interrupt-parent = <&mpic>; 110d524dac9SGrant Likely interrupts = <21 2>; 111d524dac9SGrant Likely }; 112d524dac9SGrant Likely dma-channel@100 { 113d524dac9SGrant Likely compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel"; 114d524dac9SGrant Likely reg = <0x100 0x80>; 115d524dac9SGrant Likely cell-index = <2>; 116d524dac9SGrant Likely interrupt-parent = <&mpic>; 117d524dac9SGrant Likely interrupts = <22 2>; 118d524dac9SGrant Likely }; 119d524dac9SGrant Likely dma-channel@180 { 120d524dac9SGrant Likely compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel"; 121d524dac9SGrant Likely reg = <0x180 0x80>; 122d524dac9SGrant Likely cell-index = <3>; 123d524dac9SGrant Likely interrupt-parent = <&mpic>; 124d524dac9SGrant Likely interrupts = <23 2>; 125d524dac9SGrant Likely }; 126d524dac9SGrant Likely }; 127d524dac9SGrant Likely 128*03aa254fSHongbo Zhang** Freescale Elo3 DMA Controller 129*03aa254fSHongbo Zhang DMA controller which has same function as EloPlus except that Elo3 has 8 130*03aa254fSHongbo Zhang channels while EloPlus has only 4, it is used in Freescale Txxx and Bxxx 131*03aa254fSHongbo Zhang series chips, such as t1040, t4240, b4860. 132*03aa254fSHongbo Zhang 133*03aa254fSHongbo ZhangRequired properties: 134*03aa254fSHongbo Zhang 135*03aa254fSHongbo Zhang- compatible : must include "fsl,elo3-dma" 136*03aa254fSHongbo Zhang- reg : contains two entries for DMA General Status Registers, 137*03aa254fSHongbo Zhang i.e. DGSR0 which includes status for channel 1~4, and 138*03aa254fSHongbo Zhang DGSR1 for channel 5~8 139*03aa254fSHongbo Zhang- ranges : describes the mapping between the address space of the 140*03aa254fSHongbo Zhang DMA channels and the address space of the DMA controller 141*03aa254fSHongbo Zhang 142*03aa254fSHongbo Zhang- DMA channel nodes: 143*03aa254fSHongbo Zhang - compatible : must include "fsl,eloplus-dma-channel" 144*03aa254fSHongbo Zhang - reg : DMA channel specific registers 145*03aa254fSHongbo Zhang - interrupts : interrupt specifier for DMA channel IRQ 146*03aa254fSHongbo Zhang 147*03aa254fSHongbo ZhangExample: 148*03aa254fSHongbo Zhangdma@100300 { 149*03aa254fSHongbo Zhang #address-cells = <1>; 150*03aa254fSHongbo Zhang #size-cells = <1>; 151*03aa254fSHongbo Zhang compatible = "fsl,elo3-dma"; 152*03aa254fSHongbo Zhang reg = <0x100300 0x4>, 153*03aa254fSHongbo Zhang <0x100600 0x4>; 154*03aa254fSHongbo Zhang ranges = <0x0 0x100100 0x500>; 155*03aa254fSHongbo Zhang dma-channel@0 { 156*03aa254fSHongbo Zhang compatible = "fsl,eloplus-dma-channel"; 157*03aa254fSHongbo Zhang reg = <0x0 0x80>; 158*03aa254fSHongbo Zhang interrupts = <28 2 0 0>; 159*03aa254fSHongbo Zhang }; 160*03aa254fSHongbo Zhang dma-channel@80 { 161*03aa254fSHongbo Zhang compatible = "fsl,eloplus-dma-channel"; 162*03aa254fSHongbo Zhang reg = <0x80 0x80>; 163*03aa254fSHongbo Zhang interrupts = <29 2 0 0>; 164*03aa254fSHongbo Zhang }; 165*03aa254fSHongbo Zhang dma-channel@100 { 166*03aa254fSHongbo Zhang compatible = "fsl,eloplus-dma-channel"; 167*03aa254fSHongbo Zhang reg = <0x100 0x80>; 168*03aa254fSHongbo Zhang interrupts = <30 2 0 0>; 169*03aa254fSHongbo Zhang }; 170*03aa254fSHongbo Zhang dma-channel@180 { 171*03aa254fSHongbo Zhang compatible = "fsl,eloplus-dma-channel"; 172*03aa254fSHongbo Zhang reg = <0x180 0x80>; 173*03aa254fSHongbo Zhang interrupts = <31 2 0 0>; 174*03aa254fSHongbo Zhang }; 175*03aa254fSHongbo Zhang dma-channel@300 { 176*03aa254fSHongbo Zhang compatible = "fsl,eloplus-dma-channel"; 177*03aa254fSHongbo Zhang reg = <0x300 0x80>; 178*03aa254fSHongbo Zhang interrupts = <76 2 0 0>; 179*03aa254fSHongbo Zhang }; 180*03aa254fSHongbo Zhang dma-channel@380 { 181*03aa254fSHongbo Zhang compatible = "fsl,eloplus-dma-channel"; 182*03aa254fSHongbo Zhang reg = <0x380 0x80>; 183*03aa254fSHongbo Zhang interrupts = <77 2 0 0>; 184*03aa254fSHongbo Zhang }; 185*03aa254fSHongbo Zhang dma-channel@400 { 186*03aa254fSHongbo Zhang compatible = "fsl,eloplus-dma-channel"; 187*03aa254fSHongbo Zhang reg = <0x400 0x80>; 188*03aa254fSHongbo Zhang interrupts = <78 2 0 0>; 189*03aa254fSHongbo Zhang }; 190*03aa254fSHongbo Zhang dma-channel@480 { 191*03aa254fSHongbo Zhang compatible = "fsl,eloplus-dma-channel"; 192*03aa254fSHongbo Zhang reg = <0x480 0x80>; 193*03aa254fSHongbo Zhang interrupts = <79 2 0 0>; 194*03aa254fSHongbo Zhang }; 195*03aa254fSHongbo Zhang}; 196*03aa254fSHongbo Zhang 197d524dac9SGrant LikelyNote on DMA channel compatible properties: The compatible property must say 198d524dac9SGrant Likely"fsl,elo-dma-channel" or "fsl,eloplus-dma-channel" to be used by the Elo DMA 199d524dac9SGrant Likelydriver (fsldma). Any DMA channel used by fsldma cannot be used by another 200d524dac9SGrant LikelyDMA driver, such as the SSI sound drivers for the MPC8610. Therefore, any DMA 201d524dac9SGrant Likelychannel that should be used for another driver should not use 202d524dac9SGrant Likely"fsl,elo-dma-channel" or "fsl,eloplus-dma-channel". For the SSI drivers, for 203d524dac9SGrant Likelyexample, the compatible property should be "fsl,ssi-dma-channel". See ssi.txt 204d524dac9SGrant Likelyfor more information. 205