Data Structures | |
struct | EDMA3_DRV_GblXbarToChanConfigParams |
Init-time Configuration structure for EDMA3 controller, to provide Global SoC specific Information. More... | |
Typedefs | |
typedef EDMA3_DRV_Result(* | EDMA3_DRV_mapXbarEvtToChan )(uint32_t eventNum, uint32_t *chanNum, const EDMA3_DRV_GblXbarToChanConfigParams *edmaGblXbarConfig) |
Associates cross bar mapped event to channel. | |
typedef EDMA3_DRV_Result(* | EDMA3_DRV_xbarConfigScr )(uint32_t eventNum, uint32_t chanNum) |
Writes to the cross bar mapped event to channel to system configuration register. | |
Functions | |
EDMA3_DRV_Result | EDMA3_DRV_linkChannel (EDMA3_DRV_Handle hEdma, uint32_t lCh1, uint32_t lCh2) |
Link two logical channels. | |
EDMA3_DRV_Result | EDMA3_DRV_unlinkChannel (EDMA3_DRV_Handle hEdma, uint32_t lCh) |
Unlink the channel from the earlier linked logical channel. | |
EDMA3_DRV_Result | EDMA3_DRV_chainChannel (EDMA3_DRV_Handle hEdma, uint32_t lCh1, uint32_t lCh2, const EDMA3_DRV_ChainOptions *chainOptions) |
Chain the two specified channels. | |
EDMA3_DRV_Result | EDMA3_DRV_unchainChannel (EDMA3_DRV_Handle hEdma, uint32_t lCh) |
Unchain the two channels. | |
EDMA3_DRV_Result | EDMA3_DRV_setQdmaTrigWord (EDMA3_DRV_Handle hEdma, uint32_t lCh, EDMA3_RM_QdmaTrigWord trigWord) |
Assign a Trigger Word to the specified QDMA channel. | |
EDMA3_DRV_Result | EDMA3_DRV_setPaRAM (EDMA3_DRV_Handle hEdma, uint32_t lCh, const EDMA3_DRV_PaRAMRegs *newPaRAM) |
Copy the user specified PaRAM Set onto the PaRAM Set associated with the logical channel (DMA/QDMA/Link). | |
EDMA3_DRV_Result | EDMA3_DRV_getPaRAM (EDMA3_DRV_Handle hEdma, uint32_t lCh, EDMA3_DRV_PaRAMRegs *currPaRAM) |
Retrieve existing PaRAM set associated with specified logical channel (DMA/QDMA/Link). | |
EDMA3_DRV_Result | EDMA3_DRV_setPaRAMEntry (EDMA3_DRV_Handle hEdma, uint32_t lCh, EDMA3_DRV_PaRAMEntry paRAMEntry, uint32_t newPaRAMEntryVal) |
Set a particular PaRAM set entry of the specified PaRAM set. | |
EDMA3_DRV_Result | EDMA3_DRV_getPaRAMEntry (EDMA3_DRV_Handle hEdma, uint32_t lCh, EDMA3_DRV_PaRAMEntry paRAMEntry, uint32_t *paRAMEntryVal) |
Get a particular PaRAM set entry of the specified PaRAM set. | |
EDMA3_DRV_Result | EDMA3_DRV_setPaRAMField (EDMA3_DRV_Handle hEdma, uint32_t lCh, EDMA3_DRV_PaRAMField paRAMField, uint32_t newPaRAMFieldVal) |
Set a particular PaRAM set field of the specified PaRAM set. | |
EDMA3_DRV_Result | EDMA3_DRV_getPaRAMField (EDMA3_DRV_Handle hEdma, uint32_t lCh, EDMA3_DRV_PaRAMField paRAMField, uint32_t *currPaRAMFieldVal) |
Get a particular PaRAM set field of the specified PaRAM set. | |
EDMA3_DRV_Result | EDMA3_DRV_setEvtQPriority (EDMA3_DRV_Handle hEdma, const EDMA3_DRV_EvtQuePriority *evtQPriObj) |
Sets EDMA TC priority. | |
EDMA3_DRV_Result | EDMA3_DRV_mapChToEvtQ (EDMA3_DRV_Handle hEdma, uint32_t channelId, EDMA3_RM_EventQueue eventQ) |
Associate Channel to Event Queue. | |
EDMA3_DRV_Result | EDMA3_DRV_getMapChToEvtQ (EDMA3_DRV_Handle hEdma, uint32_t channelId, uint32_t *mappedEvtQ) |
Get the Event Queue mapped to the specified DMA/QDMA channel. | |
EDMA3_DRV_Result | EDMA3_DRV_setCCRegister (EDMA3_DRV_Handle hEdma, uint32_t regOffset, uint32_t newRegValue) |
Set the Channel Controller (CC) Register value. | |
EDMA3_DRV_Result | EDMA3_DRV_getCCRegister (EDMA3_DRV_Handle hEdma, uint32_t regOffset, uint32_t *regValue) |
Get the Channel Controller (CC) Register value. | |
EDMA3_DRV_Result | EDMA3_DRV_waitAndClearTcc (EDMA3_DRV_Handle hEdma, uint32_t tccNo) |
Wait for a transfer completion interrupt to occur and clear it. | |
EDMA3_DRV_Result | EDMA3_DRV_checkAndClearTcc (EDMA3_DRV_Handle hEdma, uint32_t tccNo, uint16_t *tccStatus) |
Returns the status of a previously initiated transfer. | |
EDMA3_DRV_Result | EDMA3_DRV_getPaRAMPhyAddr (EDMA3_DRV_Handle hEdma, uint32_t lCh, uint32_t *paramPhyAddr) |
Get the PaRAM Set Physical Address associated with a logical channel. | |
EDMA3_DRV_Result | EDMA3_DRV_Ioctl (EDMA3_DRV_Handle hEdma, EDMA3_DRV_IoctlCmd cmd, void *cmdArg, void *param) |
EDMA3 Driver IOCTL. | |
EDMA3_DRV_Handle | EDMA3_DRV_getInstHandle (uint32_t phyCtrllerInstId, EDMA3_RM_RegionId regionId, EDMA3_DRV_Result *errorCode) |
Return the previously opened EDMA3 Driver Instance handle. | |
EDMA3_DRV_Result | EDMA3_DRV_registerTccCb (EDMA3_DRV_Handle hEdma, const uint32_t channelId, EDMA3_RM_TccCallback tccCb, void *cbData) |
Registers a transfer completion handler for a specific DMA/QDMA channel. | |
EDMA3_DRV_Result | EDMA3_DRV_unregisterTccCb (EDMA3_DRV_Handle hEdma, const uint32_t channelId) |
Un-register the previously registered callback function against a DMA/QDMA channel. | |
EDMA3_DRV_Result | EDMA3_DRV_setTcErrorInt (uint32_t phyCtrllerInstId, uint32_t tcId, EDMA3_DRV_Tc_Err tcErr) |
Enable/disable specific EDMA3 Transfer Controller Interrupts. | |
EDMA3_DRV_Result | EDMA3_DRV_getChannelStatus (EDMA3_DRV_Handle hEdma, uint32_t lCh, uint32_t *lchStatus) |
Get the current status of the DMA/QDMA channel. | |
EDMA3_DRV_Result | EDMA3_DRV_mapTccLinkCh (EDMA3_DRV_Handle hEdma, uint32_t linkCh, uint32_t tcc) |
Associates a link channel and a TCC. | |
EDMA3_DRV_Result | EDMA3_DRV_initXbarEventMap (EDMA3_DRV_Handle hEdma, const EDMA3_DRV_GblXbarToChanConfigParams *edmaGblXbarConfig, EDMA3_DRV_mapXbarEvtToChan mapXbarEvtFunc, EDMA3_DRV_xbarConfigScr configXbarScr) |
Initialize the cross bar mapped event to channel function. |
typedef EDMA3_DRV_Result(* EDMA3_DRV_mapXbarEvtToChan)(uint32_t eventNum, uint32_t *chanNum, const EDMA3_DRV_GblXbarToChanConfigParams *edmaGblXbarConfig) |
Associates cross bar mapped event to channel.
This function have to be defined in the configuration file. This function will be called only if the channel requested for is beyond the maximum number of channels. This function should read from the global cross bar mapped configuration data structure and return the mapped channel number to this event.
eventNum | [IN] Event number | |
chanNum | [IN/OUT]Return the channel number to which the request event is mapped to. | |
edmaGblXbarConfig | [IN] This is the configuration data structure for mapping the events to the channel |
typedef EDMA3_DRV_Result(* EDMA3_DRV_xbarConfigScr)(uint32_t eventNum, uint32_t chanNum) |
Writes to the cross bar mapped event to channel to system configuration register.
This function have to be defined in the configuration file. This function will be called only if the event number requested for is beyond the maximum number of channels and if any channel is allocated to this event. This function should read the cross bar mapped event number and write the allocated channel number in Control Config Event Mux registers.
eventNum | [IN] Event number | |
chanNum | [IN/OUT]Return the channel number to which the request event is mapped to. |
EDMA3_DRV_Result EDMA3_DRV_linkChannel | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh1, | |||
uint32_t | lCh2 | |||
) |
Link two logical channels.
This API is used to link two previously allocated logical (DMA/QDMA/Link) channels.
It sets the Link field of the PaRAM set associated with first logical channel (lCh1) to point it to the PaRAM set associated with second logical channel (lCh2).
It also sets the TCC field of PaRAM set of second logical channel to the same as that of the first logical channel, only if the TCC field doesnot contain a valid TCC code. In case the second logical channel has its own TCC, the TCC field remains unchanged.
hEdma | [IN] Handle to the EDMA Driver Instance. | |
lCh1 | [IN] Logical Channel to which particular channel will be linked. | |
lCh2 | [IN] Logical Channel which needs to be linked to the first channel. After the transfer based on the PaRAM set of lCh1 is over, the PaRAM set of lCh2 will be copied to the PaRAM set of lCh1 and transfer will resume. For DMA channels, another sync event is required to initiate the transfer on the Link channel. |
EDMA3_DRV_Result EDMA3_DRV_unlinkChannel | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh | |||
) |
Unlink the channel from the earlier linked logical channel.
This function breaks the link between the specified channel and the earlier linked logical channel by clearing the Link Address field.
hEdma | [IN] Handle to the EDMA Driver Instance. | |
lCh | [IN] Channel for which linking has to be removed |
EDMA3_DRV_Result EDMA3_DRV_chainChannel | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh1, | |||
uint32_t | lCh2, | |||
const EDMA3_DRV_ChainOptions * | chainOptions | |||
) |
Chain the two specified channels.
This API is used to chain a DMA channel to a previously allocated DMA/QDMA channel.
Chaining is different from Linking. The EDMA3 link feature reloads the current channel parameter set with the linked parameter set. The EDMA3 chaining feature does not modify or update any channel parameter set; it provides a synchronization event (or trigger) to the chained DMA channel, as soon as the transfer (final or intermediate) completes on the main DMA/QDMA channel.
hEdma | [IN] Handle to the EDMA Driver Instance. | |
lCh1 | [IN] DMA/QDMA channel to which a particular DMA channel will be chained. | |
lCh2 | [IN] DMA channel which needs to be chained to the first DMA/QDMA channel. | |
chainOptions | [IN] Options such as intermediate interrupts are required or not, intermediate/final chaining is enabled or not etc. |
EDMA3_DRV_Result EDMA3_DRV_unchainChannel | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh | |||
) |
Unchain the two channels.
hEdma | [IN] Handle to the EDMA Driver Instance. | |
lCh | [IN] Channel whose chaining with the other channel has to be removed. |
EDMA3_DRV_Result EDMA3_DRV_setQdmaTrigWord | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh, | |||
EDMA3_RM_QdmaTrigWord | trigWord | |||
) |
Assign a Trigger Word to the specified QDMA channel.
This API sets the Trigger word for the specific QDMA channel in the QCHMAP Register. Default QDMA trigger word is CCNT.
hEdma | [IN] Handle to the EDMA Instance object | |
lCh | [IN] QDMA Channel which needs to be assigned the Trigger Word | |
trigWord | [IN] The Trigger Word for the QDMA channel. Trigger Word is the word in the PaRAM Register Set which, when written to by CPU, will start the QDMA transfer automatically. |
EDMA3_DRV_Result EDMA3_DRV_setPaRAM | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh, | |||
const EDMA3_DRV_PaRAMRegs * | newPaRAM | |||
) |
Copy the user specified PaRAM Set onto the PaRAM Set associated with the logical channel (DMA/QDMA/Link).
This API takes a PaRAM Set as input and copies it onto the actual PaRAM Set associated with the logical channel. OPT field of the PaRAM Set is written first and the CCNT field is written last.
Caution: It should be used carefully when programming the QDMA channels whose trigger words are not CCNT field.
hEdma | [IN] Handle to the EDMA Instance object | |
lCh | [IN] Logical Channel for which new PaRAM set is specified | |
newPaRAM | [IN] Parameter RAM set to be copied onto existing PaRAM |
EDMA3_DRV_Result EDMA3_DRV_getPaRAM | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh, | |||
EDMA3_DRV_PaRAMRegs * | currPaRAM | |||
) |
Retrieve existing PaRAM set associated with specified logical channel (DMA/QDMA/Link).
hEdma | [IN] Handle to the EDMA Instance object | |
lCh | [IN] Logical Channel whose PaRAM set is requested | |
currPaRAM | [IN/OUT] User gets the existing PaRAM here |
EDMA3_DRV_Result EDMA3_DRV_setPaRAMEntry | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh, | |||
EDMA3_DRV_PaRAMEntry | paRAMEntry, | |||
uint32_t | newPaRAMEntryVal | |||
) |
Set a particular PaRAM set entry of the specified PaRAM set.
hEdma | [IN] Handle to the EDMA Driver Instance | |
lCh | [IN] Logical Channel bound to the Parameter RAM set whose specified field needs to be set | |
paRAMEntry | [IN] Specify the PaRAM set entry which needs to be set | |
newPaRAMEntryVal | [IN] The new field setting |
This function is re-entrant for unique lCh values. It is non- re-entrant for same lCh value.
EDMA3_DRV_Result EDMA3_DRV_getPaRAMEntry | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh, | |||
EDMA3_DRV_PaRAMEntry | paRAMEntry, | |||
uint32_t * | paRAMEntryVal | |||
) |
Get a particular PaRAM set entry of the specified PaRAM set.
hEdma | [IN] Handle to the EDMA Driver Instance | |
lCh | [IN] Logical Channel bound to the Parameter RAM set whose specified field value is needed | |
paRAMEntry | [IN] Specify the PaRAM set entry which needs to be obtained | |
paRAMEntryVal | [IN/OUT] The value of the field is returned here |
EDMA3_DRV_Result EDMA3_DRV_setPaRAMField | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh, | |||
EDMA3_DRV_PaRAMField | paRAMField, | |||
uint32_t | newPaRAMFieldVal | |||
) |
Set a particular PaRAM set field of the specified PaRAM set.
hEdma | [IN] Handle to the EDMA Driver Instance | |
lCh | [IN] Logical Channel bound to the PaRAM set whose specified field needs to be set | |
paRAMField | [IN] Specify the PaRAM set field which needs to be set | |
newPaRAMFieldVal | [IN] The new field setting |
This function is re-entrant for unique lCh values. It is non- re-entrant for same lCh value.
EDMA3_DRV_Result EDMA3_DRV_getPaRAMField | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh, | |||
EDMA3_DRV_PaRAMField | paRAMField, | |||
uint32_t * | currPaRAMFieldVal | |||
) |
Get a particular PaRAM set field of the specified PaRAM set.
hEdma | [IN] Handle to the EDMA Driver Instance | |
lCh | [IN] Logical Channel bound to the PaRAM set whose specified field value is needed | |
paRAMField | [IN] Specify the PaRAM set field which needs to be obtained | |
currPaRAMFieldVal | [IN/OUT] The value of the field is returned here |
EDMA3_DRV_Result EDMA3_DRV_setEvtQPriority | ( | EDMA3_DRV_Handle | hEdma, | |
const EDMA3_DRV_EvtQuePriority * | evtQPriObj | |||
) |
Sets EDMA TC priority.
User can program the priority of the Event Queues at a system-wide level. This means that the user can set the priority of an IO initiated by either of the TCs (Transfer Ctrllers) relative to IO initiated by the other bus masters on the device (ARM, DSP, USB, etc)
hEdma | [IN] Handle to the EDMA Driver Instance | |
evtQPriObj | [IN] Priority of the Event Queues |
EDMA3_DRV_Result EDMA3_DRV_mapChToEvtQ | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | channelId, | |||
EDMA3_RM_EventQueue | eventQ | |||
) |
Associate Channel to Event Queue.
hEdma | [IN] Handle to the EDMA Driver Instance | |
channelId | [IN] Logical Channel to which the Event Queue is to be mapped | |
eventQ | [IN] The Event Queue which is to be mapped to the DMA channel |
This function disables the global interrupts while modifying the global CC Registers, to make it re-entrant.
EDMA3_DRV_Result EDMA3_DRV_getMapChToEvtQ | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | channelId, | |||
uint32_t * | mappedEvtQ | |||
) |
Get the Event Queue mapped to the specified DMA/QDMA channel.
hEdma | [IN] Handle to the EDMA Driver Instance | |
channelId | [IN] Logical Channel whose associated Event Queue is needed | |
mappedEvtQ | [IN/OUT] The Event Queue which is mapped to the DMA/QDMA channel |
EDMA3_DRV_Result EDMA3_DRV_setCCRegister | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | regOffset, | |||
uint32_t | newRegValue | |||
) |
Set the Channel Controller (CC) Register value.
hEdma | [IN] Handle to the EDMA Driver Instance | |
regOffset | [IN] CC Register offset whose value needs to be set | |
newRegValue | [IN] New CC Register Value |
EDMA3_DRV_Result EDMA3_DRV_getCCRegister | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | regOffset, | |||
uint32_t * | regValue | |||
) |
Get the Channel Controller (CC) Register value.
hEdma | [IN] Handle to the EDMA Driver Instance | |
regOffset | [IN] CC Register offset whose value is needed | |
regValue | [IN/OUT] CC Register Value |
EDMA3_DRV_Result EDMA3_DRV_waitAndClearTcc | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | tccNo | |||
) |
Wait for a transfer completion interrupt to occur and clear it.
This is a blocking function that returns when the IPR/IPRH bit corresponding to the tccNo specified, is SET. It clears the corresponding bit while returning also.
This function waits for the specific bit indefinitely in a tight loop, with out any delay in between. USE IT CAUTIOUSLY.
hEdma | [IN] Handle to the EDMA Driver Instance | |
tccNo | [IN] TCC, specific to which the function waits on a IPR/IPRH bit. |
EDMA3_DRV_Result EDMA3_DRV_checkAndClearTcc | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | tccNo, | |||
uint16_t * | tccStatus | |||
) |
Returns the status of a previously initiated transfer.
This is a non-blocking function that returns the status of a previously initiated transfer, based on the IPR/IPRH bit. This bit corresponds to the tccNo specified by the user. It clears the corresponding bit, if SET, while returning also.
hEdma | [IN] Handle to the EDMA Driver Instance | |
tccNo | [IN] TCC, specific to which the function checks the status of the IPR/IPRH bit. | |
tccStatus | [IN/OUT] Status of the transfer is returned here. Returns "TRUE" if the transfer has completed (IPR/IPRH bit SET), "FALSE" if the transfer has not completed successfully (IPR/IPRH bit NOT SET). |
EDMA3_DRV_Result EDMA3_DRV_getPaRAMPhyAddr | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh, | |||
uint32_t * | paramPhyAddr | |||
) |
Get the PaRAM Set Physical Address associated with a logical channel.
This function returns the PaRAM Set Phy Address (unsigned 32 bits). The returned address could be used by the advanced users to program the PaRAM Set directly without using any APIs.
Least significant 16 bits of this address could be used to program the LINK field in the PaRAM Set. Users which program the LINK field directly SHOULD use this API to get the associated PaRAM Set address with the LINK channel.
hEdma | [IN] Handle to the EDMA Driver Instance | |
lCh | [IN] Logical Channel for which the PaRAM set physical address is required | |
paramPhyAddr | [IN/OUT] PaRAM Set physical address is returned here. |
EDMA3_DRV_Result EDMA3_DRV_Ioctl | ( | EDMA3_DRV_Handle | hEdma, | |
EDMA3_DRV_IoctlCmd | cmd, | |||
void * | cmdArg, | |||
void * | param | |||
) |
EDMA3 Driver IOCTL.
This function provides IOCTL functionality for EDMA3 Driver.
hEdma | [IN] Handle to the EDMA Driver Instance | |
cmd | [IN] IOCTL command to be performed | |
cmdArg | [IN/OUT] IOCTL command argument (if any) | |
param | [IN/OUT] Device/Cmd specific argument |
EDMA3_DRV_Handle EDMA3_DRV_getInstHandle | ( | uint32_t | phyCtrllerInstId, | |
EDMA3_RM_RegionId | regionId, | |||
EDMA3_DRV_Result * | errorCode | |||
) |
Return the previously opened EDMA3 Driver Instance handle.
This API is used to return the previously opened EDMA3 Driver's Instance Handle (region specific), which could be used to call other EDMA3 Driver APIs. Since EDMA3 Driver does not allow multiple instances, for a single shadow region, this API is provided. This API is meant for users who DO NOT want to / could not open a new Driver Instance and hence re-use the existing Driver Instance to allocate EDMA3 resources and use various other EDMA3 Driver APIs.
In case the Driver Instance is not yet opened, NULL is returned as the function return value whereas EDMA3_DRV_E_INST_NOT_OPENED is returned in the errorCode.
phyCtrllerInstId | [IN] EDMA3 Controller Instance Id (Hardware instance id, starting from 0). | |
regionId | [IN] Shadow Region id for which the previously opened driver's instance handle is required. | |
errorCode | [OUT] Error code while returning Driver Instance Handle. |
2) This function is re-entrant.
EDMA3_DRV_Result EDMA3_DRV_registerTccCb | ( | EDMA3_DRV_Handle | hEdma, | |
const uint32_t | channelId, | |||
EDMA3_RM_TccCallback | tccCb, | |||
void * | cbData | |||
) |
Registers a transfer completion handler for a specific DMA/QDMA channel.
This function registers a non-NULL callback function for a specific DMA or QDMA channel and enables the completion interrupt for the TCC associated with the underlying channel in the IER/IERH register. It also sets the DRAE/DRAEH register for the TCC associated with the specified DMA/QDMA channel. If user enables the transfer completion interrupts (intermediate or final) in the OPT field of the associated PaRAM Set, the registered callback function will be called by the EDMA3 Resource Manager.
If a call-back function is already registered for the channel, the API fails with the error code EDMA3_RM_E_CALLBACK_ALREADY_REGISTERED.
hEdma | [IN] Handle to the EDMA Driver Instance. | |
channelId | [IN] DMA/QDMA channel for which the callback function needs to be registered. | |
tccCb | [IN] The callback function to be registered. | |
cbData | [IN] Callback data to be passed while calling the callback function. |
EDMA3_DRV_Result EDMA3_DRV_unregisterTccCb | ( | EDMA3_DRV_Handle | hEdma, | |
const uint32_t | channelId | |||
) |
Un-register the previously registered callback function against a DMA/QDMA channel.
This function un-registers the previously registered callback function for the DMA/QDMA channel by removing any stored callback function. Moreover, it clears the: Interrupt Enable Register (IER/IERH) by writing to the IECR/IECRH register, for the TCC associated with that particular channel, DRA/DRAEH register for the TCC associated with the specified DMA/QDMA channel
hEdma | [IN] Handle to the EDMA Driver Instance. | |
channelId | [IN] DMA/QDMA channel for which the callback function needs to be un-registered. |
EDMA3_DRV_Result EDMA3_DRV_setTcErrorInt | ( | uint32_t | phyCtrllerInstId, | |
uint32_t | tcId, | |||
EDMA3_DRV_Tc_Err | tcErr | |||
) |
Enable/disable specific EDMA3 Transfer Controller Interrupts.
This function allows one to enable/disable specific EDMA3 Transfer Controller Interrupts. Since these interrupts don't get enabled by default, this API can be used to achieve the same.
phyCtrllerInstId | [IN] EDMA3 Controller Instance Id (Hardware instance id, starting from 0). | |
tcId | [IN] Transfer Controller Id. It starts from 0 for each EDMA3 hardware and can go upto (TCs available on EDMA3 Hardware - 1). | |
tcErr | [IN] TC Error Interrupts which need to be enabled/disabled. |
EDMA3_DRV_Result EDMA3_DRV_getChannelStatus | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | lCh, | |||
uint32_t * | lchStatus | |||
) |
Get the current status of the DMA/QDMA channel.
This function returns the current status of the specific DMA/QDMA channel. For a DMA channel, it checks whether an event is pending in ER, transfer completion interrupt is pending in IPR and event miss error interrupt is pending in EMR or not. For a QDMA channel, it checks whether a transfer completion interrupt is pending in IPR and event miss error interrupt is pending in QEMR or not.
hEdma | [IN] Handle to the EDMA Driver Instance. | |
lCh | [IN] DMA/QDMA channel for which the current status is required. | |
lchStatus | [IN/OUT]Status of the channel. Defines mentioned above are used (and may be combined) to return the actual status. |
EDMA3_DRV_Result EDMA3_DRV_mapTccLinkCh | ( | EDMA3_DRV_Handle | hEdma, | |
uint32_t | linkCh, | |||
uint32_t | tcc | |||
) |
Associates a link channel and a TCC.
This API is used to map a TCC to a LINK channel. It should be used with LINK channels ONLY else it will fail. It will copy the TCC code in the OPT field of the param set associated with the link channel.
hEdma | [IN] Handle to the EDMA Driver Instance. | |
linkCh | [IN] Link Channel to which a particular TCC needs to be mapped. | |
tcc | [IN] TCC which needs to be mapped. |
EDMA3_DRV_Result EDMA3_DRV_initXbarEventMap | ( | EDMA3_DRV_Handle | hEdma, | |
const EDMA3_DRV_GblXbarToChanConfigParams * | edmaGblXbarConfig, | |||
EDMA3_DRV_mapXbarEvtToChan | mapXbarEvtFunc, | |||
EDMA3_DRV_xbarConfigScr | configXbarScr | |||
) |
Initialize the cross bar mapped event to channel function.
This API provides interface to associate the cross bar mapped event to edma channel in the driver. This function will called by the application during initilization. User could pass the application specific configuration structure during init-time. In case user doesn't provide it, this information could be taken from the SoC specific configuration file edma3_<SOC_NAME>_cfg.c, in case it is available.
hEdma | [IN] Handle to the EDMA Driver Instance. | |
edmaGblXbarConfig | [IN] This is the configuration data structure for mapping the events to the channel | |
mapXbarEvtFunc | [IN] This is the user defined function for mapping the cross bar event to channel. |