relayd: move the interface fixup to the right place
[openwrt.git] / target / linux / coldfire / files-2.6.31 / arch / m68k / coldfire / m547x / MCD_tasksInit.c
1 /*
2  * drivers/dma/MCD_tasksInit.c
3  *
4  * Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
5  * Kurt Mahan <kmahan@freescale.com>
6  * Shrek Wu b16972@freescale.com
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of
11  * the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21  * MA 02111-1307 USA
22  */
23
24 /*
25  * Autogenerated - Do not edit!
26  */
27
28 #include "MCD_dma.h"
29
30 extern dmaRegs *MCD_dmaBar;
31
32
33 /*
34  * Task 0
35  */
36
37 void  MCD_startDmaChainNoEu(int *currBD, short srcIncr,
38         short destIncr, int xferSize, short xferSizeIncr,
39         int *cSave, volatile TaskTableEntry *taskTable,
40         int channel)
41 {
42
43     MCD_SET_VAR(taskTable+channel, 2, (u32)currBD); /* var[2] */
44         MCD_SET_VAR(taskTable+channel, 25,
45                 (u32)(0xe000 << 16) | (0xffff & srcIncr));
46         /* inc[1] */
47         MCD_SET_VAR(taskTable+channel, 24,
48                 (u32)(0xe000 << 16) | (0xffff & destIncr));
49         /* inc[0] */
50     MCD_SET_VAR(taskTable+channel, 11, (u32)xferSize);  /* var[11] */
51         MCD_SET_VAR(taskTable+channel, 26,
52                 (u32)(0x2000 << 16) | (0xffff & xferSizeIncr));
53         /* inc[2] */
54     MCD_SET_VAR(taskTable+channel, 0, (u32)cSave);  /* var[0] */
55     MCD_SET_VAR(taskTable+channel, 1, (u32)0x00000000); /* var[1] */
56     MCD_SET_VAR(taskTable+channel, 3, (u32)0x00000000); /* var[3] */
57     MCD_SET_VAR(taskTable+channel, 4, (u32)0x00000000); /* var[4] */
58     MCD_SET_VAR(taskTable+channel, 5, (u32)0x00000000); /* var[5] */
59     MCD_SET_VAR(taskTable+channel, 6, (u32)0x00000000); /* var[6] */
60     MCD_SET_VAR(taskTable+channel, 7, (u32)0x00000000); /* var[7] */
61     MCD_SET_VAR(taskTable+channel, 8, (u32)0x00000000); /* var[8] */
62     MCD_SET_VAR(taskTable+channel, 9, (u32)0x00000000); /* var[9] */
63     MCD_SET_VAR(taskTable+channel, 10, (u32)0x00000000);    /* var[10] */
64     MCD_SET_VAR(taskTable+channel, 12, (u32)0x00000000);    /* var[12] */
65     MCD_SET_VAR(taskTable+channel, 13, (u32)0x80000000);    /* var[13] */
66     MCD_SET_VAR(taskTable+channel, 14, (u32)0x00000010);    /* var[14] */
67     MCD_SET_VAR(taskTable+channel, 15, (u32)0x00000004);    /* var[15] */
68     MCD_SET_VAR(taskTable+channel, 16, (u32)0x08000000);    /* var[16] */
69     MCD_SET_VAR(taskTable+channel, 27, (u32)0x00000000);    /* inc[3] */
70     MCD_SET_VAR(taskTable+channel, 28, (u32)0x80000000);    /* inc[4] */
71     MCD_SET_VAR(taskTable+channel, 29, (u32)0x80000001);    /* inc[5] */
72     MCD_SET_VAR(taskTable+channel, 30, (u32)0x40000000);    /* inc[6] */
73
74     /* Set the task's Enable bit in its Task Control Register */
75     MCD_dmaBar->taskControl[channel] |= (u16)0x8000;
76 }
77
78
79 /*
80  * Task 1
81  */
82
83 void  MCD_startDmaSingleNoEu(char *srcAddr, short srcIncr,
84         char *destAddr, short destIncr, int dmaSize,
85         short xferSizeIncr, int flags, int *currBD, int *cSave,
86         volatile TaskTableEntry *taskTable, int channel)
87 {
88
89     MCD_SET_VAR(taskTable+channel, 7, (u32)srcAddr);    /* var[7] */
90         MCD_SET_VAR(taskTable+channel, 25,
91                 (u32)(0xe000 << 16) | (0xffff & srcIncr));
92         /* inc[1] */
93     MCD_SET_VAR(taskTable+channel, 2, (u32)destAddr);   /* var[2] */
94         MCD_SET_VAR(taskTable+channel, 24,
95                 (u32)(0xe000 << 16) | (0xffff & destIncr));
96         /* inc[0] */
97     MCD_SET_VAR(taskTable+channel, 3, (u32)dmaSize);    /* var[3] */
98         MCD_SET_VAR(taskTable+channel, 26,
99                 (u32)(0x2000 << 16) | (0xffff & xferSizeIncr));
100         /* inc[2] */
101     MCD_SET_VAR(taskTable+channel, 5, (u32)flags);  /* var[5] */
102     MCD_SET_VAR(taskTable+channel, 1, (u32)currBD); /* var[1] */
103     MCD_SET_VAR(taskTable+channel, 0, (u32)cSave);  /* var[0] */
104     MCD_SET_VAR(taskTable+channel, 4, (u32)0x00000000); /* var[4] */
105     MCD_SET_VAR(taskTable+channel, 6, (u32)0x00000000); /* var[6] */
106     MCD_SET_VAR(taskTable+channel, 8, (u32)0x00000000); /* var[8] */
107     MCD_SET_VAR(taskTable+channel, 9, (u32)0x00000004); /* var[9] */
108     MCD_SET_VAR(taskTable+channel, 10, (u32)0x08000000);    /* var[10] */
109     MCD_SET_VAR(taskTable+channel, 27, (u32)0x00000000);    /* inc[3] */
110     MCD_SET_VAR(taskTable+channel, 28, (u32)0x80000001);    /* inc[4] */
111     MCD_SET_VAR(taskTable+channel, 29, (u32)0x40000000);    /* inc[5] */
112
113     /* Set the task's Enable bit in its Task Control Register */
114     MCD_dmaBar->taskControl[channel] |= (u16)0x8000;
115 }
116
117
118 /*
119  * Task 2
120  */
121
122 void  MCD_startDmaChainEu(int *currBD, short srcIncr, short destIncr,
123         int xferSize, short xferSizeIncr, int *cSave,
124         volatile TaskTableEntry *taskTable, int channel)
125 {
126
127         MCD_SET_VAR(taskTable+channel, 3, (u32)currBD); /* var[3] */
128         MCD_SET_VAR(taskTable+channel, 25,
129                 (u32)(0xe000 << 16) | (0xffff & srcIncr));
130         /* inc[1] */
131         MCD_SET_VAR(taskTable+channel, 24,
132                 (u32)(0xe000 << 16) | (0xffff & destIncr));
133         /* inc[0] */
134         MCD_SET_VAR(taskTable+channel, 12, (u32)xferSize);
135         /* var[12] */
136         MCD_SET_VAR(taskTable+channel, 26,
137                 (u32)(0x2000 << 16) | (0xffff & xferSizeIncr));
138         /* inc[2] */
139     MCD_SET_VAR(taskTable+channel, 0, (u32)cSave);  /* var[0] */
140     MCD_SET_VAR(taskTable+channel, 1, (u32)0x00000000); /* var[1] */
141     MCD_SET_VAR(taskTable+channel, 2, (u32)0x00000000); /* var[2] */
142     MCD_SET_VAR(taskTable+channel, 4, (u32)0x00000000); /* var[4] */
143     MCD_SET_VAR(taskTable+channel, 5, (u32)0x00000000); /* var[5] */
144     MCD_SET_VAR(taskTable+channel, 6, (u32)0x00000000); /* var[6] */
145     MCD_SET_VAR(taskTable+channel, 7, (u32)0x00000000); /* var[7] */
146     MCD_SET_VAR(taskTable+channel, 8, (u32)0x00000000); /* var[8] */
147     MCD_SET_VAR(taskTable+channel, 9, (u32)0x00000000); /* var[9] */
148     MCD_SET_VAR(taskTable+channel, 10, (u32)0x00000000);    /* var[10] */
149     MCD_SET_VAR(taskTable+channel, 11, (u32)0x00000000);    /* var[11] */
150     MCD_SET_VAR(taskTable+channel, 13, (u32)0x00000000);    /* var[13] */
151     MCD_SET_VAR(taskTable+channel, 14, (u32)0x80000000);    /* var[14] */
152     MCD_SET_VAR(taskTable+channel, 15, (u32)0x00000010);    /* var[15] */
153     MCD_SET_VAR(taskTable+channel, 16, (u32)0x00000001);    /* var[16] */
154     MCD_SET_VAR(taskTable+channel, 17, (u32)0x00000004);    /* var[17] */
155     MCD_SET_VAR(taskTable+channel, 18, (u32)0x08000000);    /* var[18] */
156     MCD_SET_VAR(taskTable+channel, 27, (u32)0x00000000);    /* inc[3] */
157     MCD_SET_VAR(taskTable+channel, 28, (u32)0x80000000);    /* inc[4] */
158     MCD_SET_VAR(taskTable+channel, 29, (u32)0xc0000000);    /* inc[5] */
159     MCD_SET_VAR(taskTable+channel, 30, (u32)0x80000001);    /* inc[6] */
160     MCD_SET_VAR(taskTable+channel, 31, (u32)0x40000000);    /* inc[7] */
161
162     /* Set the task's Enable bit in its Task Control Register */
163     MCD_dmaBar->taskControl[channel] |= (u16)0x8000;
164 }
165
166
167 /*
168  * Task 3
169  */
170
171 void  MCD_startDmaSingleEu(char *srcAddr, short srcIncr,
172         char *destAddr, short destIncr, int dmaSize,
173         short xferSizeIncr, int flags, int *currBD, int *cSave,
174         volatile TaskTableEntry *taskTable, int channel)
175 {
176
177     MCD_SET_VAR(taskTable+channel, 8, (u32)srcAddr);    /* var[8] */
178     MCD_SET_VAR(taskTable+channel, 25,
179         (u32)(0xe000 << 16) | (0xffff & srcIncr));   /* inc[1] */
180     MCD_SET_VAR(taskTable+channel, 3, (u32)destAddr);   /* var[3] */
181     MCD_SET_VAR(taskTable+channel, 24,
182         (u32)(0xe000 << 16) | (0xffff & destIncr));  /* inc[0] */
183     MCD_SET_VAR(taskTable+channel, 4, (u32)dmaSize);    /* var[4] */
184     MCD_SET_VAR(taskTable+channel, 26,
185         (u32)(0x2000 << 16) | (0xffff & xferSizeIncr)); /* inc[2] */
186     MCD_SET_VAR(taskTable+channel, 6, (u32)flags);  /* var[6] */
187     MCD_SET_VAR(taskTable+channel, 2, (u32)currBD); /* var[2] */
188     MCD_SET_VAR(taskTable+channel, 0, (u32)cSave);  /* var[0] */
189     MCD_SET_VAR(taskTable+channel, 1, (u32)0x00000000); /* var[1] */
190     MCD_SET_VAR(taskTable+channel, 5, (u32)0x00000000); /* var[5] */
191     MCD_SET_VAR(taskTable+channel, 7, (u32)0x00000000); /* var[7] */
192     MCD_SET_VAR(taskTable+channel, 9, (u32)0x00000000); /* var[9] */
193     MCD_SET_VAR(taskTable+channel, 10, (u32)0x00000001);    /* var[10] */
194     MCD_SET_VAR(taskTable+channel, 11, (u32)0x00000004);    /* var[11] */
195     MCD_SET_VAR(taskTable+channel, 12, (u32)0x08000000);    /* var[12] */
196     MCD_SET_VAR(taskTable+channel, 27, (u32)0x00000000);    /* inc[3] */
197     MCD_SET_VAR(taskTable+channel, 28, (u32)0xc0000000);    /* inc[4] */
198     MCD_SET_VAR(taskTable+channel, 29, (u32)0x80000000);    /* inc[5] */
199     MCD_SET_VAR(taskTable+channel, 30, (u32)0x80000001);    /* inc[6] */
200     MCD_SET_VAR(taskTable+channel, 31, (u32)0x40000000);    /* inc[7] */
201
202     /* Set the task's Enable bit in its Task Control Register */
203     MCD_dmaBar->taskControl[channel] |= (u16)0x8000;
204 }
205
206
207 /*
208  * Task 4
209  */
210
211 void  MCD_startDmaENetRcv(char *bDBase, char *currBD, char *rcvFifoPtr,
212         volatile TaskTableEntry *taskTable, int channel)
213 {
214
215     MCD_SET_VAR(taskTable+channel, 0, (u32)bDBase); /* var[0] */
216     MCD_SET_VAR(taskTable+channel, 3, (u32)currBD); /* var[3] */
217     MCD_SET_VAR(taskTable+channel, 6, (u32)rcvFifoPtr); /* var[6] */
218     MCD_SET_VAR(taskTable+channel, 1, (u32)0x00000000); /* var[1] */
219     MCD_SET_VAR(taskTable+channel, 2, (u32)0x00000000); /* var[2] */
220     MCD_SET_VAR(taskTable+channel, 4, (u32)0x00000000); /* var[4] */
221     MCD_SET_VAR(taskTable+channel, 5, (u32)0x00000000); /* var[5] */
222     MCD_SET_VAR(taskTable+channel, 7, (u32)0x00000000); /* var[7] */
223     MCD_SET_VAR(taskTable+channel, 8, (u32)0x00000000); /* var[8] */
224     MCD_SET_VAR(taskTable+channel, 9, (u32)0x0000ffff); /* var[9] */
225     MCD_SET_VAR(taskTable+channel, 10, (u32)0x30000000);    /* var[10] */
226     MCD_SET_VAR(taskTable+channel, 11, (u32)0x0fffffff);    /* var[11] */
227     MCD_SET_VAR(taskTable+channel, 12, (u32)0x00000008);    /* var[12] */
228     MCD_SET_VAR(taskTable+channel, 24, (u32)0x00000000);    /* inc[0] */
229     MCD_SET_VAR(taskTable+channel, 25, (u32)0x60000000);    /* inc[1] */
230     MCD_SET_VAR(taskTable+channel, 26, (u32)0x20000004);    /* inc[2] */
231     MCD_SET_VAR(taskTable+channel, 27, (u32)0x40000000);    /* inc[3] */
232
233     /* Set the task's Enable bit in its Task Control Register */
234     MCD_dmaBar->taskControl[channel] |= (u16)0x8000;
235 }
236
237
238 /*
239  * Task 5
240  */
241
242 void  MCD_startDmaENetXmit(char *bDBase, char *currBD,
243         char *xmitFifoPtr, volatile TaskTableEntry *taskTable,
244         int channel)
245 {
246
247     MCD_SET_VAR(taskTable+channel, 0, (u32)bDBase); /* var[0] */
248     MCD_SET_VAR(taskTable+channel, 3, (u32)currBD); /* var[3] */
249     MCD_SET_VAR(taskTable+channel, 11, (u32)xmitFifoPtr);   /* var[11] */
250     MCD_SET_VAR(taskTable+channel, 1, (u32)0x00000000); /* var[1] */
251     MCD_SET_VAR(taskTable+channel, 2, (u32)0x00000000); /* var[2] */
252     MCD_SET_VAR(taskTable+channel, 4, (u32)0x00000000); /* var[4] */
253     MCD_SET_VAR(taskTable+channel, 5, (u32)0x00000000); /* var[5] */
254     MCD_SET_VAR(taskTable+channel, 6, (u32)0x00000000); /* var[6] */
255     MCD_SET_VAR(taskTable+channel, 7, (u32)0x00000000); /* var[7] */
256     MCD_SET_VAR(taskTable+channel, 8, (u32)0x00000000); /* var[8] */
257     MCD_SET_VAR(taskTable+channel, 9, (u32)0x00000000); /* var[9] */
258     MCD_SET_VAR(taskTable+channel, 10, (u32)0x00000000);    /* var[10] */
259     MCD_SET_VAR(taskTable+channel, 12, (u32)0x00000000);    /* var[12] */
260     MCD_SET_VAR(taskTable+channel, 13, (u32)0x0000ffff);    /* var[13] */
261     MCD_SET_VAR(taskTable+channel, 14, (u32)0xffffffff);    /* var[14] */
262     MCD_SET_VAR(taskTable+channel, 15, (u32)0x00000004);    /* var[15] */
263     MCD_SET_VAR(taskTable+channel, 16, (u32)0x00000008);    /* var[16] */
264     MCD_SET_VAR(taskTable+channel, 24, (u32)0x00000000);    /* inc[0] */
265     MCD_SET_VAR(taskTable+channel, 25, (u32)0x60000000);    /* inc[1] */
266     MCD_SET_VAR(taskTable+channel, 26, (u32)0x40000000);    /* inc[2] */
267     MCD_SET_VAR(taskTable+channel, 27, (u32)0xc000fffc);    /* inc[3] */
268     MCD_SET_VAR(taskTable+channel, 28, (u32)0xe0000004);    /* inc[4] */
269     MCD_SET_VAR(taskTable+channel, 29, (u32)0x80000000);    /* inc[5] */
270     MCD_SET_VAR(taskTable+channel, 30, (u32)0x4000ffff);    /* inc[6] */
271     MCD_SET_VAR(taskTable+channel, 31, (u32)0xe0000001);    /* inc[7] */
272
273     /* Set the task's Enable bit in its Task Control Register */
274     MCD_dmaBar->taskControl[channel] |= (u16)0x8000;
275 }