Logo Search packages:      
Sourcecode: linux version File versions  Download package

Functions | Variables

dmacHw_extra.c File Reference

Extra Low level DMA controller driver routines. More...

#include <csp/stdint.h>
#include <stddef.h>
#include <csp/dmacHw.h>
#include <mach/csp/dmacHw_reg.h>
#include <mach/csp/dmacHw_priv.h>
Include dependency graph for dmacHw_extra.c:

Go to the source code of this file.


static void DisplayDescRing (void *pDescriptor, int(*fpPrint)(const char *,...))
 Helper function to display descriptor ring.
static void DisplayRegisterContents (int module, int channel, int(*fpPrint)(const char *,...))
 Helper function to display DMA registers.
int dmacHw_calculateDescriptorCount (dmacHw_CONFIG_t *pConfig, void *pSrcAddr, void *pDstAddr, size_t dataLen)
 Estimates number of descriptor needed to perform certain DMA transfer.
void dmacHw_clearInterrupt (dmacHw_HANDLE_t handle)
 Clears the interrupt.
uint32_t dmacHw_descriptorPending (dmacHw_HANDLE_t handle, void *pDescriptor)
 Check the existance of pending descriptor.
int dmacHw_freeMem (dmacHw_CONFIG_t *pConfig, void *pDescriptor, void(*fpFree)(void *))
 Deallocates source or destination memory, allocated.
void * dmacHw_getChannelUserData (dmacHw_HANDLE_t handle)
 Gets channel specific user data.
dmacHw_HANDLE_t dmacHw_getInterruptSource (void)
 Indentifies a DMA channel causing interrupt.
dmacHw_INTERRUPT_STATUS_e dmacHw_getInterruptStatus (dmacHw_HANDLE_t handle)
 Returns the cause of channel specific DMA interrupt.
void dmacHw_printDebugInfo (dmacHw_HANDLE_t handle, void *pDescriptor, int(*fpPrint)(const char *,...))
 Displays channel specific registers and other control parameters.
int dmacHw_readTransferredData (dmacHw_HANDLE_t handle, dmacHw_CONFIG_t *pConfig, void *pDescriptor, void **ppBbuf, size_t *pLlen)
 Read data DMAed to memory.
void dmacHw_resetDescriptorControl (void *pDescriptor)
 Resets descriptor control information.
void dmacHw_setChannelUserData (dmacHw_HANDLE_t handle, void *userData)
 Sets channel specific user data.
int dmacHw_setControlDescriptor (dmacHw_CONFIG_t *pConfig, void *pDescriptor, uint32_t ctlAddress, uint32_t control)
 Set descriptor carrying control information.
void dmacHw_setDataLength (dmacHw_CONFIG_t *pConfig, void *pDescriptor, size_t dataLen)
 Overwrites data length in the descriptor.
int dmacHw_setVariableDataDescriptor (dmacHw_HANDLE_t handle, dmacHw_CONFIG_t *pConfig, void *pDescriptor, uint32_t srcAddr, void *(*fpAlloc)(int len), int len, int num)
 Prepares descriptor ring, when source peripheral working as a flow controller.
void dmacHw_stopTransfer (dmacHw_HANDLE_t handle)
 Program channel register to stop transfer.
static int DmaIsFlowController (void *pDescriptor)
 Check if DMA channel is the flow controller.


dmacHw_CBLK_t dmacHw_gCblk [dmacHw_MAX_CHANNEL_COUNT]

Detailed Description

Extra Low level DMA controller driver routines.


These routines provide basic DMA functionality only.

Definition in file dmacHw_extra.c.

Generated by  Doxygen 1.6.0   Back to index