edma.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00089 #ifndef ti_sdo_linuxutils_edma_interface_edma_
00090 #define ti_sdo_linuxutils_edma_interface_edma_
00091
00092 #if defined (__cplusplus)
00093 extern "C" {
00094 #endif
00095
00098
00099 #define EDMA_VERSION 0x02000000U
00100
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113 #define EDMA_TCCANY 1001
00114 #define EDMA_TCCSYMM 1005
00115 #define EDMA_PARAMANY 1006
00116 #define EDMA_PARAMFIXEDEXACT 1007
00117 #define EDMA_PARAMFIXEDNOTEXACT 1008
00118 #define EDMA_EDMAANY 1003
00119 #define EDMA_QDMAANY 1004
00120 #define EDMA_QDMA0 512
00121
00122 #define EDMA_QDMA1 EDMA_QDMA(1)
00123 #define EDMA_QDMA2 EDMA_QDMA(2)
00124 #define EDMA_QDMA3 EDMA_QDMA(3)
00125 #define EDMA_QDMA4 EDMA_QDMA(4)
00126 #define EDMA_QDMA5 EDMA_QDMA(5)
00127 #define EDMA_QDMA6 EDMA_QDMA(6)
00128 #define EDMA_QDMA7 EDMA_QDMA(7)
00129
00137 #define EDMA_QDMA(n) (EDMA_QDMA0 + (n))
00138
00152 #define EDMA_QDMA2NUM(qdma) (qdma - EDMA_QDMA0)
00153
00157 typedef enum {
00158 EDMA_IOCREQUESTDMA = 1,
00159 EDMA_IOCRELEASEDMA,
00160 EDMA_IOCGETVERSION,
00161 EDMA_IOCGETBASEPHYSADDR,
00162 EDMA_IOCREGUSER
00163 } EDMA_commmands;
00164
00165 #define EDMA_IOCMAGIC 0x0000fd00
00166 #define EDMA_IOCCMDMASK 0x000000ff
00167
00171 struct EDMA_requestDmaParams {
00172 int dev_id;
00173 int eventq_no;
00174 int tcc;
00175 int param;
00176 int nParam;
00177 int channel;
00178 };
00179
00183 struct EDMA_releaseDmaParams {
00184 int channel;
00185 int nParam;
00186 };
00187
00191 typedef enum EDMA_Status {
00192 EDMA_OK = 0,
00193 EDMA_EFAIL,
00194 EDMA_ENOCHANNEL,
00195 EDMA_ENOINIT
00196 } EDMA_Status;
00197
00198
00202 int EDMA_init(void);
00203
00207 int EDMA_exit(void);
00208
00214 EDMA_Status EDMA_mapBaseAddress(void **pvirtAddr);
00215
00251 EDMA_Status EDMA_getResource(int devId, int *tcc, int *channel, int *param,
00252 int nParams);
00253
00270 EDMA_Status EDMA_freeResource(int lch, int nParams);
00271
00279 int EDMA_getVersion(void);
00280
00296 EDMA_Status EDMA_registerResource(int lch);
00297
00313 EDMA_Status EDMA_unregister(int lch, int nParams);
00314
00317 #if defined (__cplusplus)
00318 }
00319 #endif
00320
00321 #endif
00322
00323
00324
00325