xWRL6432 MMWAVE-L-SDK  05.04.00.01
dpedma.h
Go to the documentation of this file.
1 
39 #ifndef DPEDMA_H
40 #define DPEDMA_H
41 
42 #include <stdint.h>
43 #include <stdbool.h>
44 
45 /* MCU Plus SDK Include Files */
46 #include <drivers/edma.h>
47 
48 /* Include Files */
49 #include <datapath/dpif/dp_error.h>
50 
92 #ifdef __cplusplus
93 extern "C" {
94 #endif
95 
96 #define DPEDMA_NO_ERROR ((int32_t)0)
97 
106 #define DPEDMA_EINVAL (DP_ERRNO_DPEDMA_BASE-1)
107 
111 #define DPEDMA_EINVAL_EDMAADDR (DP_ERRNO_DPEDMA_BASE-2)
112 
116 #define DPEDMA_EDMA_TRIGGER_FAIL (DP_ERRNO_DPEDMA_BASE-3)
117 
131 typedef struct DPEDMA_ChanCfg_t
132 {
134  uint32_t channel;
135 
137  uint32_t paramId;
138 
140  uint16_t channelShadow;
141 
143  uint32_t shadowPramId;
144 
146  uint32_t eventQueue;
147 
149  uint32_t tcc;
151 
162 typedef struct DPEDMA_3LinkChanCfg_t
163 {
165  uint32_t channel;
166 
168  uint32_t paramId;
169 
171  uint32_t ShadowPramId[3];
172 
174  uint32_t eventQueue;
175 
177  uint32_t tcc;
179 
189 typedef struct DPEDMA_2LinkChanCfg_t
190 {
192  uint8_t channel;
193 
195  uint16_t channelShadow[2];
196 
198  uint8_t eventQueue;
200 
210 typedef struct DPEDMA_ChainingCfg_t
211 {
213  uint8_t chainingChan;
214 
217 
221 
231 typedef struct DPEDMA_syncACfg_t
232 {
234  uint32_t srcAddress;
235 
237  uint32_t destAddress;
238 
240  uint16_t aCount;
241 
243  uint16_t bCount;
244 
246  uint16_t cCount;
247 
248 #ifdef EDMA_EXTENDED_B_INDICES
249  int32_t srcBIdx;
250  int32_t dstBIdx;
251 #else
252 
253  int16_t srcBIdx;
254 
256  int16_t dstBIdx;
257 #endif
258 
260  int16_t srcCIdx;
261 
263  int16_t dstCIdx;
264 
266 
276 typedef struct DPEDMA_syncABCfg_t
277 {
279  uint32_t srcAddress;
280 
282  uint32_t destAddress;
283 
285  uint16_t aCount;
286 
288  uint16_t bCount;
289 
291  uint16_t cCount;
292 
293 #ifdef EDMA_EXTENDED_B_INDICES
294  int32_t srcBIdx;
295  int32_t dstBIdx;
296 #else
297 
298  int16_t srcBIdx;
299 
301  int16_t dstBIdx;
302 #endif
303 
305  int16_t srcCIdx;
306 
308  int16_t dstCIdx;
310 
311 extern int32_t DPEDMA_configDummyChannel (EDMA_Handle handle,
312  uint32_t chType,
313  uint32_t *dmaCh,
314  uint32_t *tcc,
315  uint32_t *param);
316 
317 extern int32_t DPEDMA_setSourceAddress(EDMA_Handle handle,
318  uint32_t chanId,
319  uint32_t addressVal);
320 
322  uint32_t chanId,
323  uint32_t addressVal);
324 
325 extern int32_t DPEDMA_setBcntAcnt(EDMA_Handle handle,
326  uint32_t chanId,
327  uint32_t BcntAcnt);
328 
329 extern int32_t DPEDMA_startTransfer(EDMA_Handle handle, uint32_t chanId);
330 
331 extern uint32_t DPEDMA_local2Global(uint32_t addr);
332 
333 
335 (
336  EDMA_Handle handle,
337  DPEDMA_ChanCfg *chanCfg,
338  DPEDMA_ChainingCfg *chainingCfg,
339  DPEDMA_syncABCfg *syncABCfg,
340  bool isEventTriggered,
341  bool isIntermediateTransferCompletionEnabled,
342  bool isTransferCompletionEnabled,
343  Edma_EventCallback transferCompletionCallbackFxn,
344  void* transferCompletionCallbackFxnArg,
345  Edma_IntrObject *intrObj,
346  uint8_t transferType
347 );
348 
349 extern int32_t DPEDMA_linkParamSets(EDMA_Handle handle, uint16_t fromParamId, uint16_t toParamId);
350 
351 
352 extern int32_t DPEDMA_configSyncAB
353 (
354  EDMA_Handle handle,
355  DPEDMA_ChanCfg *chanCfg,
356  DPEDMA_ChainingCfg *chainingCfg,
357  DPEDMA_syncABCfg *syncABCfg,
358  bool isEventTriggered,
359  bool isIntermediateTransferCompletionEnabled,
360  bool isTransferCompletionEnabled,
361  Edma_EventCallback transferCompletionCallbackFxn,
362  void* transferCompletionCallbackFxnArg,
363  Edma_IntrObject *intrObj
364 );
365 
367 (
368  EDMA_Handle handle,
369  DPEDMA_ChanCfg *chanCfg,
370  DPEDMA_ChainingCfg *chainingCfg,
371  DPEDMA_syncACfg *syncACfg,
372  bool isEventTriggered,
373  bool isIntermediateTransferInterruptEnabled,
374  bool isTransferCompletionEnabled,
375  Edma_EventCallback transferCompletionCallbackFxn,
376  void* transferCompletionCallbackFxnArg,
377  Edma_IntrObject *intrObj
378 );
379 
380 extern int32_t DPEDMA_configSyncA
381 (
382  EDMA_Handle handle,
383  DPEDMA_ChanCfg *chanCfg,
384  DPEDMA_ChainingCfg *chainingCfg,
385  DPEDMA_syncACfg *syncACfg,
386  bool isEventTriggered,
387  bool isIntermediateTransferInterruptEnabled,
388  bool isTransferCompletionEnabled,
389  Edma_EventCallback transferCompletionCallbackFxn,
390  void* transferCompletionCallbackFxnArg,
391  Edma_IntrObject *intrObj
392 );
393 
395 (
396  EDMA_Handle handle,
397  uint32_t srcAddress,
398  uint32_t destAddress,
399  uint8_t channel,
400  uint8_t triggerEnabled
401 );
402 
404  uint32_t *dmaCh,
405  uint32_t *tcc,
406  uint32_t *param
407 );
408 
410  uint32_t *dmaCh,
411  uint32_t *tcc,
412  uint32_t *param,
413  uint32_t *shadowParam
414 );
415 
417  uint32_t channel);
418 
419 
420 #ifdef __cplusplus
421 }
422 #endif
423 
424 #endif
DPEDMA_ChanCfg::paramId
uint32_t paramId
EDMA ParamSet triggered by event on channel.
Definition: dpedma.h:137
DPEDMA_syncABCfg::srcAddress
uint32_t srcAddress
Source Address.
Definition: dpedma.h:279
DPEDMA_syncACfg
EDMA configuration for Sync A copy.
Definition: dpedma.h:232
DPEDMA_3LinkChanCfg::eventQueue
uint32_t eventQueue
EDMA event Queue used for the transfer.
Definition: dpedma.h:174
DPEDMA_freeEDMAChannel
void DPEDMA_freeEDMAChannel(EDMA_Handle handle, uint32_t *dmaCh, uint32_t *tcc, uint32_t *param, uint32_t *shadowParam)
DPEDMA_ChainingCfg::isIntermediateChainingEnabled
bool isIntermediateChainingEnabled
EDMA intermediate chaining flag.
Definition: dpedma.h:216
DPEDMA_syncABCfg::dstBIdx
int16_t dstBIdx
destination B index
Definition: dpedma.h:301
DPEDMA_2LinkChanCfg::eventQueue
uint8_t eventQueue
EDMA event Queue used for the transfer.
Definition: dpedma.h:198
DPEDMA_syncACfg::srcBIdx
int16_t srcBIdx
source B index
Definition: dpedma.h:253
Edma_IntrObject
EDMA interrupt configuration object. The object is passed to the EDMA_registerIntr() function....
Definition: edma/v0/edma.h:451
DPEDMA_ChainingCfg
EDMA chaining configuration.
Definition: dpedma.h:211
DPEDMA_ChainingCfg::chainingChan
uint8_t chainingChan
EDMA chaining channel TCC.
Definition: dpedma.h:213
DPEDMA_3LinkChanCfg::channel
uint32_t channel
EDMA channel id.
Definition: dpedma.h:165
DPEDMA_3LinkChanCfg::paramId
uint32_t paramId
EDMA ParamSet triggered by event on channel.
Definition: dpedma.h:168
DPEDMA_setSourceAddress
int32_t DPEDMA_setSourceAddress(EDMA_Handle handle, uint32_t chanId, uint32_t addressVal)
dp_error.h
Base error codes for the data path Modules.
DPEDMA_ChanCfg::eventQueue
uint32_t eventQueue
EDMA event Queue used for the transfer.
Definition: dpedma.h:146
DPEDMA_2LinkChanCfg
EDMA channel configuration with 2 shadow channels.
Definition: dpedma.h:190
DPEDMA_syncACfg::dstCIdx
int16_t dstCIdx
destination C index
Definition: dpedma.h:263
Edma_EventCallback
void(* Edma_EventCallback)(Edma_IntrHandle intrHandle, void *appData)
EDMA interrupt callback function prototype.
Definition: edma/v0/edma.h:440
DPEDMA_3LinkChanCfg
EDMA channel configuration with 3 shadow channels.
Definition: dpedma.h:163
DPEDMA_syncABCfg::srcCIdx
int16_t srcCIdx
source C index
Definition: dpedma.h:305
edma.h
DPEDMA_local2Global
uint32_t DPEDMA_local2Global(uint32_t addr)
DPEDMA_allocateEDMAChannel
void DPEDMA_allocateEDMAChannel(EDMA_Handle handle, uint32_t *dmaCh, uint32_t *tcc, uint32_t *param)
DPEDMA_syncABCfg
EDMA configuration for Sync AB copy.
Definition: dpedma.h:277
DPEDMA_configDummyChannel
int32_t DPEDMA_configDummyChannel(EDMA_Handle handle, uint32_t chType, uint32_t *dmaCh, uint32_t *tcc, uint32_t *param)
DPEDMA_syncACfg::bCount
uint16_t bCount
b count
Definition: dpedma.h:243
DPEDMA_syncACfg::srcCIdx
int16_t srcCIdx
source C index
Definition: dpedma.h:260
DPEDMA_2LinkChanCfg::channel
uint8_t channel
EDMA channel id.
Definition: dpedma.h:192
DPEDMA_configSyncA
int32_t DPEDMA_configSyncA(EDMA_Handle handle, DPEDMA_ChanCfg *chanCfg, DPEDMA_ChainingCfg *chainingCfg, DPEDMA_syncACfg *syncACfg, bool isEventTriggered, bool isIntermediateTransferInterruptEnabled, bool isTransferCompletionEnabled, Edma_EventCallback transferCompletionCallbackFxn, void *transferCompletionCallbackFxnArg, Edma_IntrObject *intrObj)
DPEDMA_ChanCfg::channel
uint32_t channel
EDMA channel id.
Definition: dpedma.h:134
DPEDMA_syncACfg::srcAddress
uint32_t srcAddress
Source Address.
Definition: dpedma.h:234
DPEDMA_3LinkChanCfg::tcc
uint32_t tcc
EDMA event Queue used for the transfer.
Definition: dpedma.h:177
EDMA_Handle
void * EDMA_Handle
A handle that is returned from a EDMA_open() call.
Definition: edma/v0/edma.h:471
DPEDMA_ChanCfg::shadowPramId
uint32_t shadowPramId
EDMA shadow ParamSet id.
Definition: dpedma.h:143
DPEDMA_updateAddressAndTrigger
int32_t DPEDMA_updateAddressAndTrigger(EDMA_Handle handle, uint32_t srcAddress, uint32_t destAddress, uint8_t channel, uint8_t triggerEnabled)
DPEDMA_ChainingCfg::isFinalChainingEnabled
bool isFinalChainingEnabled
EDMA final chaining flag.
Definition: dpedma.h:219
DPEDMA_syncACfg::aCount
uint16_t aCount
a count
Definition: dpedma.h:240
DPEDMA_syncABCfg::aCount
uint16_t aCount
a count
Definition: dpedma.h:285
DPEDMA_syncABCfg::destAddress
uint32_t destAddress
Destination Address.
Definition: dpedma.h:282
DPEDMA_ChanCfg::channelShadow
uint16_t channelShadow
EDMA channel shadow id.
Definition: dpedma.h:140
DPEDMA_syncACfg::cCount
uint16_t cCount
c count
Definition: dpedma.h:246
DPEDMA_configSyncAB
int32_t DPEDMA_configSyncAB(EDMA_Handle handle, DPEDMA_ChanCfg *chanCfg, DPEDMA_ChainingCfg *chainingCfg, DPEDMA_syncABCfg *syncABCfg, bool isEventTriggered, bool isIntermediateTransferCompletionEnabled, bool isTransferCompletionEnabled, Edma_EventCallback transferCompletionCallbackFxn, void *transferCompletionCallbackFxnArg, Edma_IntrObject *intrObj)
DPEDMA_syncACfg::dstBIdx
int16_t dstBIdx
destination B index
Definition: dpedma.h:256
DPEDMA_syncACfg::destAddress
uint32_t destAddress
Destination Address.
Definition: dpedma.h:237
DPEDMA_syncABCfg::srcBIdx
int16_t srcBIdx
source B index
Definition: dpedma.h:298
DPEDMA_configSyncA_singleFrame
int32_t DPEDMA_configSyncA_singleFrame(EDMA_Handle handle, DPEDMA_ChanCfg *chanCfg, DPEDMA_ChainingCfg *chainingCfg, DPEDMA_syncACfg *syncACfg, bool isEventTriggered, bool isIntermediateTransferInterruptEnabled, bool isTransferCompletionEnabled, Edma_EventCallback transferCompletionCallbackFxn, void *transferCompletionCallbackFxnArg, Edma_IntrObject *intrObj)
DPEDMA_configSyncTransfer
int32_t DPEDMA_configSyncTransfer(EDMA_Handle handle, DPEDMA_ChanCfg *chanCfg, DPEDMA_ChainingCfg *chainingCfg, DPEDMA_syncABCfg *syncABCfg, bool isEventTriggered, bool isIntermediateTransferCompletionEnabled, bool isTransferCompletionEnabled, Edma_EventCallback transferCompletionCallbackFxn, void *transferCompletionCallbackFxnArg, Edma_IntrObject *intrObj, uint8_t transferType)
DPEDMA_syncABCfg::bCount
uint16_t bCount
b count
Definition: dpedma.h:288
DPEDMA_startTransfer
int32_t DPEDMA_startTransfer(EDMA_Handle handle, uint32_t chanId)
DPEDMA_syncABCfg::cCount
uint16_t cCount
c count
Definition: dpedma.h:291
DPEDMA_setBcntAcnt
int32_t DPEDMA_setBcntAcnt(EDMA_Handle handle, uint32_t chanId, uint32_t BcntAcnt)
DPEDMA_setDestinationAddress
int32_t DPEDMA_setDestinationAddress(EDMA_Handle handle, uint32_t chanId, uint32_t addressVal)
DPEDMA_syncABCfg::dstCIdx
int16_t dstCIdx
destination C index
Definition: dpedma.h:308
DPEDMA_ChanCfg::tcc
uint32_t tcc
EDMA event Queue used for the transfer.
Definition: dpedma.h:149
DPEDMA_linkParamSets
int32_t DPEDMA_linkParamSets(EDMA_Handle handle, uint16_t fromParamId, uint16_t toParamId)
DPEDMA_ChanCfg
EDMA channel configuration.
Definition: dpedma.h:132
DPEDMA_edmaStartTransferManualTrigger
int32_t DPEDMA_edmaStartTransferManualTrigger(EDMA_Handle handle, uint32_t channel)