xref: /rk3399_rockchip-uboot/drivers/dma/MCD_tasksInit.c (revision 326ea986ac150acdc7656d57fca647db80b50158)
172f56adcSTsiChungLiew /*
272f56adcSTsiChungLiew  * Copyright (C) 2004-2007 Freescale Semiconductor, Inc.
372f56adcSTsiChungLiew  *
4*1a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
572f56adcSTsiChungLiew  */
672f56adcSTsiChungLiew 
772f56adcSTsiChungLiew #include <common.h>
872f56adcSTsiChungLiew 
972f56adcSTsiChungLiew /* Functions for initializing variable tables of different types of tasks. */
1072f56adcSTsiChungLiew 
1172f56adcSTsiChungLiew /*
1272f56adcSTsiChungLiew  * Do not edit!
1372f56adcSTsiChungLiew  */
1472f56adcSTsiChungLiew 
1572f56adcSTsiChungLiew #include <MCD_dma.h>
1672f56adcSTsiChungLiew 
1772f56adcSTsiChungLiew extern dmaRegs *MCD_dmaBar;
1872f56adcSTsiChungLiew 
1972f56adcSTsiChungLiew /* Task 0 */
2072f56adcSTsiChungLiew 
MCD_startDmaChainNoEu(int * currBD,short srcIncr,short destIncr,int xferSize,short xferSizeIncr,int * cSave,volatile TaskTableEntry * taskTable,int channel)2172f56adcSTsiChungLiew void MCD_startDmaChainNoEu(int *currBD, short srcIncr, short destIncr,
2272f56adcSTsiChungLiew 			   int xferSize, short xferSizeIncr, int *cSave,
2372f56adcSTsiChungLiew 			   volatile TaskTableEntry * taskTable, int channel)
2472f56adcSTsiChungLiew {
2572f56adcSTsiChungLiew 	volatile TaskTableEntry *taskChan = taskTable + channel;
2672f56adcSTsiChungLiew 
2772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 2, (u32) currBD);	/* var[2] */
2872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 25, (u32) (0xe000 << 16) | (0xffff & srcIncr));	/* inc[1] */
2972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 24, (u32) (0xe000 << 16) | (0xffff & destIncr));	/* inc[0] */
3072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 11, (u32) xferSize);	/* var[11] */
3172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 26, (u32) (0x2000 << 16) | (0xffff & xferSizeIncr));	/* inc[2] */
3272f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 0, (u32) cSave);	/* var[0] */
3372f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 1, (u32) 0x00000000);	/* var[1] */
3472f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 3, (u32) 0x00000000);	/* var[3] */
3572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 4, (u32) 0x00000000);	/* var[4] */
3672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 5, (u32) 0x00000000);	/* var[5] */
3772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 6, (u32) 0x00000000);	/* var[6] */
3872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 7, (u32) 0x00000000);	/* var[7] */
3972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 8, (u32) 0x00000000);	/* var[8] */
4072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 9, (u32) 0x00000000);	/* var[9] */
4172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 10, (u32) 0x00000000);	/* var[10] */
4272f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 12, (u32) 0x00000000);	/* var[12] */
4372f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 13, (u32) 0x80000000);	/* var[13] */
4472f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 14, (u32) 0x00000010);	/* var[14] */
4572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 15, (u32) 0x00000004);	/* var[15] */
4672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 16, (u32) 0x08000000);	/* var[16] */
4772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 27, (u32) 0x00000000);	/* inc[3] */
4872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 28, (u32) 0x80000000);	/* inc[4] */
4972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 29, (u32) 0x80000001);	/* inc[5] */
5072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 30, (u32) 0x40000000);	/* inc[6] */
5172f56adcSTsiChungLiew 
5272f56adcSTsiChungLiew 	/* Set the task's Enable bit in its Task Control Register */
5372f56adcSTsiChungLiew 	MCD_dmaBar->taskControl[channel] |= (u16) 0x8000;
5472f56adcSTsiChungLiew }
5572f56adcSTsiChungLiew 
5672f56adcSTsiChungLiew /* Task 1 */
5772f56adcSTsiChungLiew 
MCD_startDmaSingleNoEu(char * srcAddr,short srcIncr,char * destAddr,short destIncr,int dmaSize,short xferSizeIncr,int flags,int * currBD,int * cSave,volatile TaskTableEntry * taskTable,int channel)5872f56adcSTsiChungLiew void MCD_startDmaSingleNoEu(char *srcAddr, short srcIncr, char *destAddr,
5972f56adcSTsiChungLiew 			    short destIncr, int dmaSize, short xferSizeIncr,
6072f56adcSTsiChungLiew 			    int flags, int *currBD, int *cSave,
6172f56adcSTsiChungLiew 			    volatile TaskTableEntry * taskTable, int channel)
6272f56adcSTsiChungLiew {
6372f56adcSTsiChungLiew 	volatile TaskTableEntry *taskChan = taskTable + channel;
6472f56adcSTsiChungLiew 
6572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 7, (u32) srcAddr);	/* var[7] */
6672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 25, (u32) (0xe000 << 16) | (0xffff & srcIncr));	/* inc[1] */
6772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 2, (u32) destAddr);	/* var[2] */
6872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 24, (u32) (0xe000 << 16) | (0xffff & destIncr));	/* inc[0] */
6972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 3, (u32) dmaSize);	/* var[3] */
7072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 26, (u32) (0x2000 << 16) | (0xffff & xferSizeIncr));	/* inc[2] */
7172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 5, (u32) flags);	/* var[5] */
7272f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 1, (u32) currBD);	/* var[1] */
7372f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 0, (u32) cSave);	/* var[0] */
7472f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 4, (u32) 0x00000000);	/* var[4] */
7572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 6, (u32) 0x00000000);	/* var[6] */
7672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 8, (u32) 0x00000000);	/* var[8] */
7772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 9, (u32) 0x00000004);	/* var[9] */
7872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 10, (u32) 0x08000000);	/* var[10] */
7972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 27, (u32) 0x00000000);	/* inc[3] */
8072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 28, (u32) 0x80000001);	/* inc[4] */
8172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 29, (u32) 0x40000000);	/* inc[5] */
8272f56adcSTsiChungLiew 
8372f56adcSTsiChungLiew 	/* Set the task's Enable bit in its Task Control Register */
8472f56adcSTsiChungLiew 	MCD_dmaBar->taskControl[channel] |= (u16) 0x8000;
8572f56adcSTsiChungLiew }
8672f56adcSTsiChungLiew 
8772f56adcSTsiChungLiew /* Task 2 */
8872f56adcSTsiChungLiew 
MCD_startDmaChainEu(int * currBD,short srcIncr,short destIncr,int xferSize,short xferSizeIncr,int * cSave,volatile TaskTableEntry * taskTable,int channel)8972f56adcSTsiChungLiew void MCD_startDmaChainEu(int *currBD, short srcIncr, short destIncr,
9072f56adcSTsiChungLiew 			 int xferSize, short xferSizeIncr, int *cSave,
9172f56adcSTsiChungLiew 			 volatile TaskTableEntry * taskTable, int channel)
9272f56adcSTsiChungLiew {
9372f56adcSTsiChungLiew 	volatile TaskTableEntry *taskChan = taskTable + channel;
9472f56adcSTsiChungLiew 
9572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 3, (u32) currBD);	/* var[3] */
9672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 25, (u32) (0xe000 << 16) | (0xffff & srcIncr));	/* inc[1] */
9772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 24, (u32) (0xe000 << 16) | (0xffff & destIncr));	/* inc[0] */
9872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 12, (u32) xferSize);	/* var[12] */
9972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 26, (u32) (0x2000 << 16) | (0xffff & xferSizeIncr));	/* inc[2] */
10072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 0, (u32) cSave);	/* var[0] */
10172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 1, (u32) 0x00000000);	/* var[1] */
10272f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 2, (u32) 0x00000000);	/* var[2] */
10372f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 4, (u32) 0x00000000);	/* var[4] */
10472f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 5, (u32) 0x00000000);	/* var[5] */
10572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 6, (u32) 0x00000000);	/* var[6] */
10672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 7, (u32) 0x00000000);	/* var[7] */
10772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 8, (u32) 0x00000000);	/* var[8] */
10872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 9, (u32) 0x00000000);	/* var[9] */
10972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 10, (u32) 0x00000000);	/* var[10] */
11072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 11, (u32) 0x00000000);	/* var[11] */
11172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 13, (u32) 0x00000000);	/* var[13] */
11272f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 14, (u32) 0x80000000);	/* var[14] */
11372f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 15, (u32) 0x00000010);	/* var[15] */
11472f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 16, (u32) 0x00000001);	/* var[16] */
11572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 17, (u32) 0x00000004);	/* var[17] */
11672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 18, (u32) 0x08000000);	/* var[18] */
11772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 27, (u32) 0x00000000);	/* inc[3] */
11872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 28, (u32) 0x80000000);	/* inc[4] */
11972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 29, (u32) 0xc0000000);	/* inc[5] */
12072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 30, (u32) 0x80000001);	/* inc[6] */
12172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 31, (u32) 0x40000000);	/* inc[7] */
12272f56adcSTsiChungLiew 
12372f56adcSTsiChungLiew 	/* Set the task's Enable bit in its Task Control Register */
12472f56adcSTsiChungLiew 	MCD_dmaBar->taskControl[channel] |= (u16) 0x8000;
12572f56adcSTsiChungLiew }
12672f56adcSTsiChungLiew 
12772f56adcSTsiChungLiew /* Task 3 */
12872f56adcSTsiChungLiew 
MCD_startDmaSingleEu(char * srcAddr,short srcIncr,char * destAddr,short destIncr,int dmaSize,short xferSizeIncr,int flags,int * currBD,int * cSave,volatile TaskTableEntry * taskTable,int channel)12972f56adcSTsiChungLiew void MCD_startDmaSingleEu(char *srcAddr, short srcIncr, char *destAddr,
13072f56adcSTsiChungLiew 			  short destIncr, int dmaSize, short xferSizeIncr,
13172f56adcSTsiChungLiew 			  int flags, int *currBD, int *cSave,
13272f56adcSTsiChungLiew 			  volatile TaskTableEntry * taskTable, int channel)
13372f56adcSTsiChungLiew {
13472f56adcSTsiChungLiew 	volatile TaskTableEntry *taskChan = taskTable + channel;
13572f56adcSTsiChungLiew 
13672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 8, (u32) srcAddr);	/* var[8] */
13772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 25, (u32) (0xe000 << 16) | (0xffff & srcIncr));	/* inc[1] */
13872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 3, (u32) destAddr);	/* var[3] */
13972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 24, (u32) (0xe000 << 16) | (0xffff & destIncr));	/* inc[0] */
14072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 4, (u32) dmaSize);	/* var[4] */
14172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 26, (u32) (0x2000 << 16) | (0xffff & xferSizeIncr));	/* inc[2] */
14272f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 6, (u32) flags);	/* var[6] */
14372f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 2, (u32) currBD);	/* var[2] */
14472f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 0, (u32) cSave);	/* var[0] */
14572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 1, (u32) 0x00000000);	/* var[1] */
14672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 5, (u32) 0x00000000);	/* var[5] */
14772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 7, (u32) 0x00000000);	/* var[7] */
14872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 9, (u32) 0x00000000);	/* var[9] */
14972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 10, (u32) 0x00000001);	/* var[10] */
15072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 11, (u32) 0x00000004);	/* var[11] */
15172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 12, (u32) 0x08000000);	/* var[12] */
15272f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 27, (u32) 0x00000000);	/* inc[3] */
15372f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 28, (u32) 0xc0000000);	/* inc[4] */
15472f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 29, (u32) 0x80000000);	/* inc[5] */
15572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 30, (u32) 0x80000001);	/* inc[6] */
15672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 31, (u32) 0x40000000);	/* inc[7] */
15772f56adcSTsiChungLiew 
15872f56adcSTsiChungLiew 	/* Set the task's Enable bit in its Task Control Register */
15972f56adcSTsiChungLiew 	MCD_dmaBar->taskControl[channel] |= (u16) 0x8000;
16072f56adcSTsiChungLiew }
16172f56adcSTsiChungLiew 
16272f56adcSTsiChungLiew /* Task 4 */
16372f56adcSTsiChungLiew 
MCD_startDmaENetRcv(char * bDBase,char * currBD,char * rcvFifoPtr,volatile TaskTableEntry * taskTable,int channel)16472f56adcSTsiChungLiew void MCD_startDmaENetRcv(char *bDBase, char *currBD, char *rcvFifoPtr,
16572f56adcSTsiChungLiew 			 volatile TaskTableEntry * taskTable, int channel)
16672f56adcSTsiChungLiew {
16772f56adcSTsiChungLiew 	volatile TaskTableEntry *taskChan = taskTable + channel;
16872f56adcSTsiChungLiew 
16972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 0, (u32) bDBase);	/* var[0] */
17072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 3, (u32) currBD);	/* var[3] */
17172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 6, (u32) rcvFifoPtr);	/* var[6] */
17272f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 1, (u32) 0x00000000);	/* var[1] */
17372f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 2, (u32) 0x00000000);	/* var[2] */
17472f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 4, (u32) 0x00000000);	/* var[4] */
17572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 5, (u32) 0x00000000);	/* var[5] */
17672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 7, (u32) 0x00000000);	/* var[7] */
17772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 8, (u32) 0x00000000);	/* var[8] */
17872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 9, (u32) 0x0000ffff);	/* var[9] */
17972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 10, (u32) 0x30000000);	/* var[10] */
18072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 11, (u32) 0x0fffffff);	/* var[11] */
18172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 12, (u32) 0x00000008);	/* var[12] */
18272f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 24, (u32) 0x00000000);	/* inc[0] */
18372f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 25, (u32) 0x60000000);	/* inc[1] */
18472f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 26, (u32) 0x20000004);	/* inc[2] */
18572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 27, (u32) 0x40000000);	/* inc[3] */
18672f56adcSTsiChungLiew 
18772f56adcSTsiChungLiew 	/* Set the task's Enable bit in its Task Control Register */
18872f56adcSTsiChungLiew 	MCD_dmaBar->taskControl[channel] |= (u16) 0x8000;
18972f56adcSTsiChungLiew }
19072f56adcSTsiChungLiew 
19172f56adcSTsiChungLiew /* Task 5 */
19272f56adcSTsiChungLiew 
MCD_startDmaENetXmit(char * bDBase,char * currBD,char * xmitFifoPtr,volatile TaskTableEntry * taskTable,int channel)19372f56adcSTsiChungLiew void MCD_startDmaENetXmit(char *bDBase, char *currBD, char *xmitFifoPtr,
19472f56adcSTsiChungLiew 			  volatile TaskTableEntry * taskTable, int channel)
19572f56adcSTsiChungLiew {
19672f56adcSTsiChungLiew 	volatile TaskTableEntry *taskChan = taskTable + channel;
19772f56adcSTsiChungLiew 
19872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 0, (u32) bDBase);	/* var[0] */
19972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 3, (u32) currBD);	/* var[3] */
20072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 11, (u32) xmitFifoPtr);	/* var[11] */
20172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 1, (u32) 0x00000000);	/* var[1] */
20272f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 2, (u32) 0x00000000);	/* var[2] */
20372f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 4, (u32) 0x00000000);	/* var[4] */
20472f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 5, (u32) 0x00000000);	/* var[5] */
20572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 6, (u32) 0x00000000);	/* var[6] */
20672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 7, (u32) 0x00000000);	/* var[7] */
20772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 8, (u32) 0x00000000);	/* var[8] */
20872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 9, (u32) 0x00000000);	/* var[9] */
20972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 10, (u32) 0x00000000);	/* var[10] */
21072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 12, (u32) 0x00000000);	/* var[12] */
21172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 13, (u32) 0x0000ffff);	/* var[13] */
21272f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 14, (u32) 0xffffffff);	/* var[14] */
21372f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 15, (u32) 0x00000004);	/* var[15] */
21472f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 16, (u32) 0x00000008);	/* var[16] */
21572f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 24, (u32) 0x00000000);	/* inc[0] */
21672f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 25, (u32) 0x60000000);	/* inc[1] */
21772f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 26, (u32) 0x40000000);	/* inc[2] */
21872f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 27, (u32) 0xc000fffc);	/* inc[3] */
21972f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 28, (u32) 0xe0000004);	/* inc[4] */
22072f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 29, (u32) 0x80000000);	/* inc[5] */
22172f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 30, (u32) 0x4000ffff);	/* inc[6] */
22272f56adcSTsiChungLiew 	MCD_SET_VAR(taskChan, 31, (u32) 0xe0000001);	/* inc[7] */
22372f56adcSTsiChungLiew 
22472f56adcSTsiChungLiew 	/* Set the task's Enable bit in its Task Control Register */
22572f56adcSTsiChungLiew 	MCD_dmaBar->taskControl[channel] |= (u16) 0x8000;
22672f56adcSTsiChungLiew }
227