# csl_edma3.h File Reference

This is the main header file for the EDMA Module which defines all the data structures and exported API. More...

`#include <ti/csl/csl.h>`
`#include <ti/csl/soc.h>`
`#include <ti/csl/cslr_tpcc.h>`

## Data Structures

struct | CSL_Edma3CfgInfo
| EDMA3 Configuration Information This describes the configuration information for each EDMA instance. This is populated by the SOC layer for each instance. More...
struct | CSL_Edma3Obj
| This object contains the reference to the instance of Edma Module opened using the CSL_edma3Open(). More...
struct | CSL_Edma3ParamSetup
| Edma ParamSetup Structure. More...
struct | CSL_Edma3ChannelObj
| Edma Object Structure. More...
struct | CSL_Edma3MemFaultStat
| Edma Memory Protection Fault Error Status. More...
struct | CSL_Edma3CtrlErrStat
| Edma Controller Error Status. More...
struct | CSL_Edma3QueryInfo
| Edma Controller Information. More...
struct | CSL_Edma3ActivityStat
| Edma Channel Controller Activity Status. More...
struct | CSL_Edma3QueStat
| Edma Controller Que Status. More...
struct | CSL_Edma3CmdRegion
| Edma Control/Query Command Structure for querying region specific attributes. More...
struct | CSL_Edma3CmdQrae
| Edma Control/Query Command Structure for querying qdma region access enable attributes. More...
struct | CSL_Edma3CmdIntr
| Edma Control/Query Control Command structure for issuing commands for Interrupt related APIs An object of this type is allocated by the user and its address is passed to the Control API. More...
struct | CSL_Edma3CmdDrae
| Edma Command Structure for setting region specific attributes. More...
struct | CSL_Edma3CmdQuePri
| Edma Command Structure used for setting Event Que priority level. More...
struct | CSL_Edma3CmdQueThr
| Edma Command Structure used for setting Event Que threshold level. More...
struct | CSL_Edma3ModuleBaseAddress
| This will have the base-address information for the module instance. More...
struct | CSL_Edma3ChannelAttr
| Edma Channel parameter structure used for opening a channel. More...
struct | CSL_Edma3ChannelErr
| Edma Channel Error . More...
struct | CSL_Edma3HwQdmaChannelSetup
| QDMA Edma Channel Setup. More...
struct | CSL_Edma3HwDmaChannelSetup
| QDMA Edma Channel Setup. More...
struct | CSL_Edma3HwSetup
| Edma Hw Setup Structure. More...

## Defines

#define | CSL_EDMA3_REGION_GLOBAL -1
#define | CSL_EDMA3_LINK_NULL 0xFFFF
#define | CSL_EDMA3_LINK_DEFAULT 0xFFFF
#define | CSL_EDMA3_SYNC_A 0
#define | CSL_EDMA3_SYNC_AB 1
#define | CSL_EDMA3_TCC_NORMAL 0
#define | CSL_EDMA3_TCC_EARLY 1
#define | CSL_EDMA3_FIFOWIDTH_NONE 0
#define | CSL_EDMA3_FIFOWIDTH_8BIT 0
#define | CSL_EDMA3_FIFOWIDTH_16BIT 1
#define | CSL_EDMA3_FIFOWIDTH_32BIT 2
#define | CSL_EDMA3_FIFOWIDTH_64BIT 3
#define | CSL_EDMA3_FIFOWIDTH_128BIT 4
#define | CSL_EDMA3_FIFOWIDTH_256BIT 5
#define | CSL_EDMA3_ADDRMODE_INCR 0
#define | CSL_EDMA3_ADDRMODE_CONST 1
#define | CSL_EDMA3_MEMACCESS_UX 0x0001
#define | CSL_EDMA3_MEMACCESS_UW 0x0002
#define | CSL_EDMA3_MEMACCESS_UR 0x0004
#define | CSL_EDMA3_MEMACCESS_SX 0x0008
#define | CSL_EDMA3_MEMACCESS_SW 0x0010
#define | CSL_EDMA3_MEMACCESS_SR 0x0020
#define | CSL_EDMA3_MEMACCESS_EXT 0x0200
#define | CSL_EDMA3_MEMACCESS_AID0 0x0400
#define | CSL_EDMA3_MEMACCESS_AID1 0x0800
#define | CSL_EDMA3_MEMACCESS_AID2 0x1000
#define | CSL_EDMA3_MEMACCESS_AID3 0x2000
#define | CSL_EDMA3_MEMACCESS_AID4 0x4000
#define | CSL_EDMA3_MEMACCESS_AID5 0x8000
#define | CSL_EDMA3_ITCINT_EN 1
#define | CSL_EDMA3_ITCINT_DIS 0
#define | CSL_EDMA3_ITCCH_EN 1
#define | CSL_EDMA3_ITCCH_DIS 0
#define | CSL_EDMA3_TCINT_EN 1
#define | CSL_EDMA3_TCINT_DIS 0
#define | CSL_EDMA3_TCCH_EN 1
#define | CSL_EDMA3_TCCH_DIS 0
#define | CSL_EDMA3_STATIC_EN 1
#define | CSL_EDMA3_STATIC_DIS 0
#define | CSL_EDMA3_TRIGWORD_DEFAULT 7
#define | CSL_EDMA3_TRIGWORD_OPT 0
#define | CSL_EDMA3_TRIGWORD_SRC 1
#define | CSL_EDMA3_TRIGWORD_A_B_CNT 2
#define | CSL_EDMA3_TRIGWORD_DST 3
#define | CSL_EDMA3_TRIGWORD_SRC_DST_BIDX 4
#define | CSL_EDMA3_TRIGWORD_LINK_BCNTRLD 5
#define | CSL_EDMA3_TRIGWORD_SRC_DST_CIDX 6
#define | CSL_EDMA3_TRIGWORD_CCNT 7
#define | CSL_EDMA3_OPT_MAKE(itcchEn, tcchEn, itcintEn, tcintEn, tcc, tccMode, fwid, stat, syncDim, dam, sam)
#define | CSL_EDMA3_CNT_MAKE(aCnt, bCnt)
#define | CSL_EDMA3_LINKBCNTRLD_MAKE(link, bCntRld)
#define | CSL_EDMA3_BIDX_MAKE(src, dst)
#define | CSL_EDMA3_CIDX_MAKE(src, dst)

## Typedefs

typedef void * | CSL_Edma3Context
| Module specific context information. This is a dummy handle.
typedef void * | CSL_Edma3ModuleAttr
| Module Attributes specific information. This is a dummy handle.
typedef struct CSL_Edma3CfgInfo | CSL_Edma3CfgInfo
| EDMA3 Configuration Information This describes the configuration information for each EDMA instance. This is populated by the SOC layer for each instance.
typedef struct CSL_Edma3Obj | CSL_Edma3Obj
| This object contains the reference to the instance of Edma Module opened using the CSL_edma3Open().
typedef struct CSL_Edma3Obj * | CSL_Edma3Handle
| EDMA handle.
typedef volatile CSL_TPCC_ParamsetRegs * | CSL_Edma3ParamHandle
typedef struct CSL_Edma3ParamSetup | CSL_Edma3ParamSetup
| Edma ParamSetup Structure.
typedef struct CSL_Edma3ChannelObj | CSL_Edma3ChannelObj
| Edma Object Structure.
typedef struct CSL_Edma3ChannelObj * | CSL_Edma3ChannelHandle
typedef struct CSL_Edma3MemFaultStat | CSL_Edma3MemFaultStat
| Edma Memory Protection Fault Error Status.
typedef struct CSL_Edma3CtrlErrStat | CSL_Edma3CtrlErrStat
| Edma Controller Error Status.
typedef struct CSL_Edma3QueryInfo | CSL_Edma3QueryInfo
| Edma Controller Information.
typedef struct CSL_Edma3ActivityStat | CSL_Edma3ActivityStat
| Edma Channel Controller Activity Status.
typedef struct CSL_Edma3QueStat | CSL_Edma3QueStat
| Edma Controller Que Status.
typedef struct CSL_Edma3CmdRegion | CSL_Edma3CmdRegion
| Edma Control/Query Command Structure for querying region specific attributes.
typedef struct CSL_Edma3CmdQrae | CSL_Edma3CmdQrae
| Edma Control/Query Command Structure for querying qdma region access enable attributes.
typedef struct CSL_Edma3CmdIntr | CSL_Edma3CmdIntr
| Edma Control/Query Control Command structure for issuing commands for Interrupt related APIs An object of this type is allocated by the user and its address is passed to the Control API.
typedef struct CSL_Edma3CmdDrae | CSL_Edma3CmdDrae
| Edma Command Structure for setting region specific attributes.
typedef struct CSL_Edma3CmdQuePri | CSL_Edma3CmdQuePri
| Edma Command Structure used for setting Event Que priority level.
typedef struct CSL_Edma3CmdQueThr | CSL_Edma3CmdQueThr
| Edma Command Structure used for setting Event Que threshold level.
typedef struct CSL_Edma3ChannelErr | CSL_Edma3ChannelErr
| Edma Channel Error .
typedef struct CSL_Edma3HwQdmaChannelSetup | CSL_Edma3HwQdmaChannelSetup
| QDMA Edma Channel Setup.
typedef struct CSL_Edma3HwDmaChannelSetup | CSL_Edma3HwDmaChannelSetup
| QDMA Edma Channel Setup.

## Enumerations

enum | CSL_Edma3QuePri { CSL_EDMA3_QUE_PRI_0 = 0, CSL_EDMA3_QUE_PRI_1 = 1, CSL_EDMA3_QUE_PRI_2 = 2, CSL_EDMA3_QUE_PRI_3 = 3, CSL_EDMA3_QUE_PRI_4 = 4, CSL_EDMA3_QUE_PRI_5 = 5, CSL_EDMA3_QUE_PRI_6 = 6, CSL_EDMA3_QUE_PRI_7 = 7 }
| Enumeration for System priorities. More...
enum | CSL_Edma3Que { CSL_EDMA3_QUE_DEFAULT = 0, CSL_EDMA3_QUE_0 = 0, CSL_EDMA3_QUE_1 = 1, CSL_EDMA3_QUE_2 = 2, CSL_EDMA3_QUE_3 = 3, CSL_EDMA3_QUE_4 = 4, CSL_EDMA3_QUE_5 = 5, CSL_EDMA3_QUE_6 = 6, CSL_EDMA3_QUE_7 = 7 }
| Enumeration for EDMA Event Queues. More...
enum | CSL_Edma3QueThr { CSL_EDMA3_QUE_THR_0 = 0, CSL_EDMA3_QUE_THR_1 = 1, CSL_EDMA3_QUE_THR_2 = 2, CSL_EDMA3_QUE_THR_3 = 3, CSL_EDMA3_QUE_THR_4 = 4, CSL_EDMA3_QUE_THR_5 = 5, CSL_EDMA3_QUE_THR_6 = 6, CSL_EDMA3_QUE_THR_7 = 7, CSL_EDMA3_QUE_THR_8 = 8, CSL_EDMA3_QUE_THR_9 = 9, CSL_EDMA3_QUE_THR_10 = 10, CSL_EDMA3_QUE_THR_11 = 11,
CSL_EDMA3_QUE_THR_12 = 12, CSL_EDMA3_QUE_THR_13 = 13, CSL_EDMA3_QUE_THR_14 = 14, CSL_EDMA3_QUE_THR_15 = 15,
CSL_EDMA3_QUE_THR_16 = 16
}
| Enumeration for EDMA Que Thresholds. More...
enum | CSL_Edma3HwControlCmd { CSL_EDMA3_CMD_MEMPROTECT_SET, CSL_EDMA3_CMD_MEMFAULT_CLEAR, CSL_EDMA3_CMD_DMAREGION_ENABLE, CSL_EDMA3_CMD_DMAREGION_DISABLE, CSL_EDMA3_CMD_QDMAREGION_ENABLE, CSL_EDMA3_CMD_QDMAREGION_DISABLE, CSL_EDMA3_CMD_QUEPRIORITY_SET, CSL_EDMA3_CMD_QUETHRESHOLD_SET,
CSL_EDMA3_CMD_ERROR_EVAL, CSL_EDMA3_CMD_INTRPEND_CLEAR, CSL_EDMA3_CMD_INTR_ENABLE, CSL_EDMA3_CMD_INTR_DISABLE,
CSL_EDMA3_CMD_INTR_EVAL, CSL_EDMA3_CMD_CTRLERROR_CLEAR, CSL_EDMA3_CMD_EVENTMISSED_CLEAR
}
enum | CSL_Edma3HwStatusQuery { CSL_EDMA3_QUERY_MEMFAULT, CSL_EDMA3_QUERY_MEMPROTECT, CSL_EDMA3_QUERY_CTRLERROR, CSL_EDMA3_QUERY_INTRPEND, CSL_EDMA3_QUERY_EVENTMISSED, CSL_EDMA3_QUERY_QUESTATUS, CSL_EDMA3_QUERY_ACTIVITY, CSL_EDMA3_QUERY_INFO }
| MODULE Level Queries. More...
enum | CSL_Edma3HwChannelControlCmd { CSL_EDMA3_CMD_CHANNEL_ENABLE, CSL_EDMA3_CMD_CHANNEL_DISABLE, CSL_EDMA3_CMD_CHANNEL_SET, CSL_EDMA3_CMD_CHANNEL_CLEAR, CSL_EDMA3_CMD_CHANNEL_CLEARERR }
| CHANNEL Commands. More...
enum | CSL_Edma3HwChannelStatusQuery { CSL_EDMA3_QUERY_CHANNEL_STATUS, CSL_EDMA3_QUERY_CHANNEL_ERR }
| CHANNEL Queries. More...

## Functions

CSL_Status | CSL_edma3Init (CSL_Edma3Context *pContext)
CSL_Edma3Handle | CSL_edma3Open (CSL_Edma3Obj *edmaObj, CSL_InstNum edmaNum, CSL_Edma3ModuleAttr *attr, CSL_Status *status)
CSL_Status | CSL_edma3Close (CSL_Edma3Handle hEdma)
CSL_Status | CSL_edma3HwSetup (CSL_Edma3Handle hMod, CSL_Edma3HwSetup *setup)
CSL_Status | CSL_edma3GetHwSetup (CSL_Edma3Handle hMod, CSL_Edma3HwSetup *setup)
CSL_Status | CSL_edma3HwControl (CSL_Edma3Handle hMod, CSL_Edma3HwControlCmd cmd, void *cmdArg)
CSL_Status | CSL_edma3ccGetModuleBaseAddr (CSL_InstNum edmaNum, CSL_Edma3ModuleAttr *pAttr, CSL_Edma3ModuleBaseAddress *pBaseAddress, CSL_Edma3CfgInfo *pCfgInfo)
CSL_Status | CSL_edma3GetHwStatus (CSL_Edma3Handle hMod, CSL_Edma3HwStatusQuery myQuery, void *response)
CSL_Edma3ChannelHandle | CSL_edma3ChannelOpen (CSL_Edma3ChannelObj *edmaObj, CSL_InstNum edmaNum, CSL_Edma3ChannelAttr *chAttr, CSL_Status *status)
CSL_Status | CSL_edma3ChannelClose (CSL_Edma3ChannelHandle hEdma)
CSL_Status | CSL_edma3HwChannelSetupParam (CSL_Edma3ChannelHandle hEdma, Uint16 paramNum)
CSL_Status | CSL_edma3HwChannelSetupTriggerWord (CSL_Edma3ChannelHandle hEdma, Uint8 triggerWord)
CSL_Status | CSL_edma3HwChannelSetupQue (CSL_Edma3ChannelHandle hEdma, CSL_Edma3Que que)
CSL_Status | CSL_edma3GetHwChannelSetupParam (CSL_Edma3ChannelHandle hEdma, Uint16 *paramNum)
CSL_Status | CSL_edma3GetHwChannelSetupTriggerWord (CSL_Edma3ChannelHandle hEdma, Uint8 *triggerWord)
CSL_Status | CSL_edma3GetHwChannelSetupQue (CSL_Edma3ChannelHandle hEdma, CSL_Edma3Que *que)
CSL_Status | CSL_edma3HwChannelControl (CSL_Edma3ChannelHandle hCh, CSL_Edma3HwChannelControlCmd cmd, void *cmdArg)
CSL_Status | CSL_edma3GetHwChannelStatus (CSL_Edma3ChannelHandle hCh, CSL_Edma3HwChannelStatusQuery myQuery, void *response)
CSL_Edma3ParamHandle | CSL_edma3GetParamHandle (CSL_Edma3ChannelHandle hEdma, Int16 paramNum, CSL_Status *status)
CSL_Status | CSL_edma3ParamSetup (CSL_Edma3ParamHandle hParam, CSL_Edma3ParamSetup *pSetup)
CSL_Status | CSL_edma3ParamWriteWord (CSL_Edma3ParamHandle hParamHndl, Uint16 wordOffset, Uint32 word)

## Detailed Description

This is the main header file for the EDMA Module which defines all the data structures and exported API.

  ============================================================================
  (C) Copyright 2002, 2003, 2004, 2005, 2008, 2009, Texas Instruments, Inc.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of Texas Instruments Incorporated nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright 2012, Texas Instruments Incorporated