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