EDMA3: BIOS6 Release 02.00.01.04
[keystone-rtos/edma3_lld.git] / examples / CSL2_DAT_DEMO / src / csl2_legacy_include / csl_dat.h
1 /******************************************************************************\\r
2 *           Copyright (C) 1999-2000 Texas Instruments Incorporated.\r
3 *                           All Rights Reserved\r
4 *------------------------------------------------------------------------------\r
5 * FILENAME...... csl_dat.h\r
6 * DATE CREATED.. 11/11/1999\r
7 * LAST MODIFIED. 10/03/2000\r
8 \******************************************************************************/\r
9 #ifndef _CSL_DAT_H_\r
10 #define _CSL_DAT_H_\r
11 \r
12 #define EDMA_SUPPORT 1\r
13 #define DAT_SUPPORT 1\r
14 \r
15 #include <xdc/std.h>\r
16 \r
17 #if (DAT_SUPPORT)\r
18 /******************************************************************************\\r
19 * scope and inline control macros\r
20 \******************************************************************************/\r
21 #ifdef __cplusplus\r
22 #define CSLAPI extern "C" far\r
23 #else\r
24 #define CSLAPI extern far\r
25 #endif\r
26 \r
27 #undef  USEDEFS\r
28 #undef  IDECL\r
29 #undef  IDEF\r
30 \r
31 #ifdef  _DAT_MOD_\r
32   #define IDECL CSLAPI\r
33   #define USEDEFS\r
34   #define IDEF\r
35 #else\r
36   #ifdef  _INLINE\r
37     #define IDECL static inline\r
38     #define USEDEFS\r
39     #define IDEF  static inline\r
40   #else\r
41     #define IDECL CSLAPI\r
42   #endif\r
43 #endif\r
44 \r
45 \r
46 /******************************************************************************\\r
47 * global macro declarations\r
48 \******************************************************************************/\r
49 #if (DMA_SUPPORT)\r
50   #define DAT_CHAANY    DMA_CHAANY\r
51   #define DAT_CHA0      DMA_CHA0\r
52   #define DAT_CHA1      DMA_CHA1\r
53   #define DAT_CHA2      DMA_CHA2\r
54   #define DAT_CHA3      DMA_CHA3\r
55   #define DAT_PRI_LOW   DMA_PRICTL_PRI_CPU\r
56   #define DAT_PRI_HIGH  DMA_PRICTL_PRI_DMA\r
57 \r
58   #define DAT_1D2D      0x000000D0\r
59   #define DAT_2D1D      0x00000070\r
60   #define DAT_2D2D      0x000000F0\r
61 \r
62 #elif (EDMA_SUPPORT)\r
63   #define DAT_CHAANY    0\r
64   #define DAT_CHA0      0\r
65   #define DAT_CHA1      0\r
66   #define DAT_CHA2      0\r
67   #define DAT_CHA3      0\r
68   #define DAT_PRI_LOW   EDMA_OPT_PRI_LOW\r
69   #define DAT_PRI_HIGH  EDMA_OPT_PRI_HIGH\r
70 \r
71   #define DAT_1D2D      0x01A00001\r
72   #define DAT_2D1D      0x05200001\r
73   #define DAT_2D2D      0x05A00001\r
74 #endif\r
75 \r
76 /* open flags */\r
77 #define DAT_OPEN_2D    1\r
78 \r
79 /* special magic transfer IDs */\r
80 #define DAT_XFRID_WAITALL   0xFFFFFFFF\r
81 #define DAT_XFRID_WAITNONE  0xFFFF0010\r
82 \r
83 \r
84 /******************************************************************************\\r
85 * global typedef declarations\r
86 \******************************************************************************/\r
87 #if (DMA_SUPPORT)\r
88   typedef struct {\r
89     Uint32 useMask;\r
90     Uint32 baseAddr;\r
91     Uint32 gblcntAddr;\r
92     Uint32 gblidxAddr;\r
93     Uint32 initPrictl;\r
94   } _DAT_StateStruct;\r
95 #endif\r
96 \r
97 #if (EDMA_SUPPORT)\r
98   typedef struct {\r
99     Uint32 useMask;\r
100     Uint32 baseAddr;\r
101     Uint32 initOpt;\r
102   } _DAT_StateStruct;\r
103 #endif\r
104 \r
105 \r
106 /******************************************************************************\\r
107 * global variable declarations\r
108 \******************************************************************************/\r
109 extern far _DAT_StateStruct _DAT_stateStruct;\r
110 \r
111 \r
112 /******************************************************************************\\r
113 * global function declarations\r
114 \******************************************************************************/\r
115 CSLAPI int DAT_open(int chaNum, int priority, Uint32 flags);\r
116 CSLAPI void DAT_close();\r
117 \r
118 CSLAPI Uint32 DAT_copy(void *src , void *dst , Uint16 byteCnt);\r
119 CSLAPI Uint32 DAT_fill(void *dst , Uint16 byteCnt, Uint32 *value);\r
120 CSLAPI void   DAT_wait(Uint32 id);\r
121 CSLAPI int    DAT_busy(Uint32 id);\r
122 \r
123 CSLAPI Uint32 DAT_copy2d(Uint32 type, void *src, void *dst, Uint16 lineLen, Uint16 lineCnt, Uint16 linePitch);\r
124 \r
125 \r
126 /******************************************************************************\\r
127 * inline function declarations\r
128 \******************************************************************************/\r
129 IDECL void DAT_setPriority(int priority);\r
130 \r
131 \r
132 /******************************************************************************\\r
133 * inline function definitions\r
134 \******************************************************************************/\r
135 #ifdef USEDEFS\r
136 /*----------------------------------------------------------------------------*/\r
137 IDEF void DAT_setPriority(int priority) {\r
138   #if (DMA_SUPPORT)\r
139     DMA_FSETA(&(_DAT_stateStruct.initPrictl), PRICTL, PRI, priority);\r
140   #endif\r
141 \r
142 #if 0\r
143   #if (EDMA_SUPPORT)\r
144     EDMA_FSETA(&(_DAT_stateStruct.initOpt), OPT, PRI, priority);\r
145   #endif\r
146 #endif\r
147 }\r
148 /*----------------------------------------------------------------------------*/\r
149 #endif /* USEDEFS */\r
150 \r
151 \r
152 #endif /* DAT_SUPPORT */\r
153 #endif /* _CSL_DAT_H_ */\r
154 /******************************************************************************\\r
155 * End of csl_dat.h\r
156 \******************************************************************************/\r
157 \r