dma.txt 4.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
* Freescale 83xx DMA Controller

Freescale PowerPC 83xx have on chip general purpose DMA controllers.

Required properties:

- compatible        : compatible list, contains 2 entries, first is
		 "fsl,CHIP-dma", where CHIP is the processor
		 (mpc8349, mpc8360, etc.) and the second is
		 "fsl,elo-dma"
- reg               : <registers mapping for DMA general status reg>
- ranges		: Should be defined as specified in 1) to describe the
		  DMA controller channels.
- cell-index        : controller index.  0 for controller @ 0x8100
- interrupts        : <interrupt mapping for DMA IRQ>
- interrupt-parent  : optional, if needed for interrupt mapping


- DMA channel nodes:
        - compatible        : compatible list, contains 2 entries, first is
			 "fsl,CHIP-dma-channel", where CHIP is the processor
			 (mpc8349, mpc8350, etc.) and the second is
23
			 "fsl,elo-dma-channel". However, see note below.
24 25 26 27 28 29 30 31 32 33 34 35 36 37
        - reg               : <registers mapping for channel>
        - cell-index        : dma channel index starts at 0.

Optional properties:
        - interrupts        : <interrupt mapping for DMA channel IRQ>
			  (on 83xx this is expected to be identical to
			   the interrupts property of the parent node)
        - interrupt-parent  : optional, if needed for interrupt mapping

Example:
	dma@82a8 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
38 39
		reg = <0x82a8 4>;
		ranges = <0 0x8100 0x1a4>;
40
		interrupt-parent = <&ipic>;
41
		interrupts = <71 8>;
42 43 44 45
		cell-index = <0>;
		dma-channel@0 {
			compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
			cell-index = <0>;
46
			reg = <0 0x80>;
47 48 49 50
		};
		dma-channel@80 {
			compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
			cell-index = <1>;
51
			reg = <0x80 0x80>;
52 53 54 55
		};
		dma-channel@100 {
			compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
			cell-index = <2>;
56
			reg = <0x100 0x80>;
57 58 59 60
		};
		dma-channel@180 {
			compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
			cell-index = <3>;
61
			reg = <0x180 0x80>;
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
		};
	};

* Freescale 85xx/86xx DMA Controller

Freescale PowerPC 85xx/86xx have on chip general purpose DMA controllers.

Required properties:

- compatible        : compatible list, contains 2 entries, first is
		 "fsl,CHIP-dma", where CHIP is the processor
		 (mpc8540, mpc8540, etc.) and the second is
		 "fsl,eloplus-dma"
- reg               : <registers mapping for DMA general status reg>
- cell-index        : controller index.  0 for controller @ 0x21000,
                                         1 for controller @ 0xc000
- ranges		: Should be defined as specified in 1) to describe the
		  DMA controller channels.

- DMA channel nodes:
        - compatible        : compatible list, contains 2 entries, first is
			 "fsl,CHIP-dma-channel", where CHIP is the processor
			 (mpc8540, mpc8560, etc.) and the second is
85
			 "fsl,eloplus-dma-channel". However, see note below.
86 87 88 89 90 91 92 93 94 95
        - cell-index        : dma channel index starts at 0.
        - reg               : <registers mapping for channel>
        - interrupts        : <interrupt mapping for DMA channel IRQ>
        - interrupt-parent  : optional, if needed for interrupt mapping

Example:
	dma@21300 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma";
96 97
		reg = <0x21300 4>;
		ranges = <0 0x21100 0x200>;
98 99 100
		cell-index = <0>;
		dma-channel@0 {
			compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
101
			reg = <0 0x80>;
102 103
			cell-index = <0>;
			interrupt-parent = <&mpic>;
104
			interrupts = <20 2>;
105 106 107
		};
		dma-channel@80 {
			compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
108
			reg = <0x80 0x80>;
109 110
			cell-index = <1>;
			interrupt-parent = <&mpic>;
111
			interrupts = <21 2>;
112 113 114
		};
		dma-channel@100 {
			compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
115
			reg = <0x100 0x80>;
116 117
			cell-index = <2>;
			interrupt-parent = <&mpic>;
118
			interrupts = <22 2>;
119 120 121
		};
		dma-channel@180 {
			compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
122
			reg = <0x180 0x80>;
123 124
			cell-index = <3>;
			interrupt-parent = <&mpic>;
125
			interrupts = <23 2>;
126 127
		};
	};
128 129 130 131 132 133 134 135 136

Note on DMA channel compatible properties: The compatible property must say
"fsl,elo-dma-channel" or "fsl,eloplus-dma-channel" to be used by the Elo DMA
driver (fsldma).  Any DMA channel used by fsldma cannot be used by another
DMA driver, such as the SSI sound drivers for the MPC8610.  Therefore, any DMA
channel that should be used for another driver should not use
"fsl,elo-dma-channel" or "fsl,eloplus-dma-channel".  For the SSI drivers, for
example, the compatible property should be "fsl,ssi-dma-channel".  See ssi.txt
for more information.