dmadrv.h File Reference
DMADRV API definition.
- Version
 - 5.5.0
 
License
(C) Copyright 2014 Silicon Labs, www.silabs.com
This file is licensed under the Silabs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.
       Definition in file
       
        dmadrv.h
       
       .
      
       #include "
       
        em_device.h
       
       "
      
      
       #include "
       
        ecode.h
       
       "
      
      
       #include "
       
        em_dma.h
       
       "
      
      
       #include "dmadrv_config.h"
      
      
         Macros | 
       |
| #define | DMADRV_MAX_XFER_COUNT ((int)(( _DMA_CTRL_N_MINUS_1_MASK >> _DMA_CTRL_N_MINUS_1_SHIFT ) + 1)) | 
| 
         Maximum length of one DMA transfer.
          | 
       |
| #define | ECODE_EMDRV_DMADRV_ALREADY_FREED ( ECODE_EMDRV_DMADRV_BASE | 0x00000006) | 
| 
         A DMA channel was free.
          | 
       |
| #define | ECODE_EMDRV_DMADRV_ALREADY_INITIALIZED ( ECODE_EMDRV_DMADRV_BASE | 0x00000003) | 
| 
         DMA has already been initialized.
          | 
       |
| #define | ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED ( ECODE_EMDRV_DMADRV_BASE | 0x00000007) | 
| 
         A channel is not reserved.
          | 
       |
| #define | ECODE_EMDRV_DMADRV_CHANNELS_EXHAUSTED ( ECODE_EMDRV_DMADRV_BASE | 0x00000004) | 
| 
         No DMA channels available.
          | 
       |
| #define | ECODE_EMDRV_DMADRV_IN_USE ( ECODE_EMDRV_DMADRV_BASE | 0x00000005) | 
| 
         DMA is in use.
          | 
       |
| #define | ECODE_EMDRV_DMADRV_NOT_INITIALIZED ( ECODE_EMDRV_DMADRV_BASE | 0x00000002) | 
| 
         DMA is not initialized.
          | 
       |
| #define | ECODE_EMDRV_DMADRV_OK ( ECODE_OK ) | 
| 
         A successful return value.
          | 
       |
| #define | ECODE_EMDRV_DMADRV_PARAM_ERROR ( ECODE_EMDRV_DMADRV_BASE | 0x00000001) | 
| 
         An illegal input parameter.
          | 
       |
| #define | EMDRV_DMADRV_DMA_PRESENT | 
| #define | EMDRV_DMADRV_UDMA | 
         Typedefs | 
       |
| typedef bool(* | DMADRV_Callback_t ) (unsigned int channel, unsigned int sequenceNo, void *userParam) | 
| 
         DMADRV transfer completion callback function.
          | 
       |
         Functions | 
       |
| Ecode_t | DMADRV_AllocateChannel (unsigned int *channelId, void *capabilities) | 
| 
         Allocate (reserve) a DMA channel.
          | 
       |
| Ecode_t | DMADRV_DeInit (void) | 
| 
         Deinitialize DMADRV.
          | 
       |
| Ecode_t | DMADRV_FreeChannel (unsigned int channelId) | 
| 
         Free an allocated (reserved) DMA channel.
          | 
       |
| Ecode_t | DMADRV_Init (void) | 
| 
         Initialize DMADRV.
          | 
       |
| Ecode_t | DMADRV_MemoryPeripheral (unsigned int channelId, DMADRV_PeripheralSignal_t peripheralSignal, void *dst, void *src, bool srcInc, int len, DMADRV_DataSize_t size, DMADRV_Callback_t callback, void *cbUserParam) | 
| 
         Start a memory to a peripheral DMA transfer.
          | 
       |
| Ecode_t | DMADRV_MemoryPeripheralPingPong (unsigned int channelId, DMADRV_PeripheralSignal_t peripheralSignal, void *dst, void *src0, void *src1, bool srcInc, int len, DMADRV_DataSize_t size, DMADRV_Callback_t callback, void *cbUserParam) | 
| 
         Start a memory to a peripheral ping-pong DMA transfer.
          | 
       |
| Ecode_t | DMADRV_PauseTransfer (unsigned int channelId) | 
| 
         Pause an ongoing DMA transfer.
          | 
       |
| Ecode_t | DMADRV_PeripheralMemory (unsigned int channelId, DMADRV_PeripheralSignal_t peripheralSignal, void *dst, void *src, bool dstInc, int len, DMADRV_DataSize_t size, DMADRV_Callback_t callback, void *cbUserParam) | 
| 
         Start a peripheral to memory DMA transfer.
          | 
       |
| Ecode_t | DMADRV_PeripheralMemoryPingPong (unsigned int channelId, DMADRV_PeripheralSignal_t peripheralSignal, void *dst0, void *dst1, void *src, bool dstInc, int len, DMADRV_DataSize_t size, DMADRV_Callback_t callback, void *cbUserParam) | 
| 
         Start a peripheral to memory ping-pong DMA transfer.
          | 
       |
| Ecode_t | DMADRV_ResumeTransfer (unsigned int channelId) | 
| 
         Resume an ongoing DMA transfer.
          | 
       |
| Ecode_t | DMADRV_StopTransfer (unsigned int channelId) | 
| 
         Stop an ongoing DMA transfer.
          | 
       |
| Ecode_t | DMADRV_TransferActive (unsigned int channelId, bool *active) | 
| 
         Check if a transfer is running.
          | 
       |
| Ecode_t | DMADRV_TransferCompletePending (unsigned int channelId, bool *pending) | 
| 
         Check if a transfer complete is pending.
          | 
       |
| Ecode_t | DMADRV_TransferDone (unsigned int channelId, bool *done) | 
| 
         Check if a transfer has completed.
          | 
       |
| Ecode_t | DMADRV_TransferRemainingCount (unsigned int channelId, int *remaining) | 
| 
         Get number of items remaining in a transfer.
          | 
       |