![]() |
![]() |
This file contains implementation of the EDMA driver APIs in edma.h. It uses at a lower level the edma_low_level.h APIs. More...
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <ti/drivers/osal/DebugP.h>
#include <ti/drivers/osal/HwiP.h>
#include <ti/drivers/edma/edma.h>
#include <ti/drivers/edma/include/edma_low_level.h>
#include <ti/drivers/edma/include/hw_edma_tc.h>
#include <ti/drivers/edma/include/hw_edma_tpcc.h>
#include <ti/drivers/edma/include/edma_xwr1xxx.h>
#include <ti/common/hw_types.h>
#include <ti/common/mmwave_error.h>
Data Structures | |
struct | EDMA_qdmaObject_t_ |
QDMA object (state) information used to trigger the QDMA channel after configuring. More... | |
struct | EDMA_transferControllerErrorIsrArgInfo_t_ |
Transfer controller error Isr argument information storage. More... | |
struct | EDMA_Object_t_ |
EDMA internal object (state) information structure that is required to be preserved between calls to EDMA APIs. More... | |
struct | EDMA_Config_t_ |
Config structure containing object and hardware attributes. This will be casted to the EDMA's handle and returned in open API. More... | |
Typedefs | |
typedef struct EDMA_qdmaObject_t_ | EDMA_qdmaObject_t |
QDMA object (state) information used to trigger the QDMA channel after configuring. | |
typedef struct EDMA_transferControllerErrorIsrArgInfo_t_ | EDMA_transferControllerErrorIsrArgInfo_t |
Transfer controller error Isr argument information storage. | |
typedef struct EDMA_Object_t_ | EDMA_Object_t |
EDMA internal object (state) information structure that is required to be preserved between calls to EDMA APIs. | |
typedef struct EDMA_Config_t_ | EDMA_Config_t |
Config structure containing object and hardware attributes. This will be casted to the EDMA's handle and returned in open API. | |
Functions | |
static int32_t | EDMA_validate_channelIdchannelType (uint8_t channelId, uint8_t channelType) |
static int32_t | EDMA_validate_channel_config (EDMA_Handle handle, EDMA_hwAttrs_t const *hwAttrs, EDMA_channelConfig_t const *config) |
static int32_t | EDMA_validate_param_config (EDMA_Handle handle, EDMA_hwAttrs_t const *hwAttrs, uint16_t paramId, EDMA_paramSetConfig_t const *config, EDMA_transferCompletionCallbackFxn_t transferCompletionCallbackFxn) |
static void | EDMA_paramSetConfig_assist (uint32_t ccBaseAddr, uint16_t paramId, EDMA_paramSetConfig_t const *pSetCfg) |
static int32_t | EDMA_startTransfer_assist (EDMA_Handle handle, uint8_t channelId, uint8_t channelType, bool isStaticSet) |
static void | EDMA_transferComplete_isr (uintptr_t arg) |
static void | EDMA_update_queue_entries (uint32_t qEntry0Addr, uint32_t qEntryAddrJump, uint8_t numEntries, uint8_t *qEntryIndx, EDMA_queueEntryInfo_t *qEntry) |
static void | EDMA_transferController_error_isr (uintptr_t arg) |
static void | EDMA_error_isr (uintptr_t arg) |
static void | EDMA_configQueueThreshold (uint32_t ccBaseAddr, uint8_t queueId, uint8_t threshold) |
static void | EDMA_configQueuePriority (uint32_t ccBaseAddr, uint8_t transferController, uint8_t priority) |
static bool | EDMA_isError (uint32_t ccBaseAddr) |
static void | EDMA_getErrorStatusInfo (EDMA_hwAttrs_t const *hwAttrs, uint32_t ccBaseAddr, EDMA_errorInfo_t *errorInfo) |
static void | EDMA_clearErrors (EDMA_hwAttrs_t const *hwAttrs, uint32_t ccBaseAddr, EDMA_errorInfo_t const *errorInfo) |
int32_t | EDMA_getErrorStatus (EDMA_Handle handle, bool *isAnyError, EDMA_errorInfo_t *errorInfo) |
int32_t | EDMA_getTransferControllerErrorStatus (EDMA_Handle handle, uint8_t transferControllerId, bool *isAnyError, EDMA_transferControllerErrorInfo_t *errorInfo) |
static void | EDMA_configTransferControllerError (uint32_t tcBaseAddr, bool isEnableAllErrors, EDMA_transferControllerErrorConfig_t const *config) |
int32_t | EDMA_configChannel (EDMA_Handle handle, EDMA_channelConfig_t const *config, bool isEnableChannel) |
int32_t | EDMA_enableChannel (EDMA_Handle handle, uint8_t channelId, uint8_t channelType) |
int32_t | EDMA_disableChannel (EDMA_Handle handle, uint8_t channelId, uint8_t channelType) |
int32_t | EDMA_configParamSet (EDMA_Handle handle, uint16_t paramId, EDMA_paramConfig_t const *config) |
int32_t | EDMA_linkParamSets (EDMA_Handle handle, uint16_t fromParamId, uint16_t toParamId) |
int32_t | EDMA_chainChannels (EDMA_Handle handle, uint16_t fromParamId, uint8_t toChannelId) |
int32_t | EDMA_startTransfer (EDMA_Handle handle, uint8_t channelId, uint8_t channelType) |
int32_t | EDMA_startDmaTransfer (EDMA_Handle handle, uint8_t channelId) |
int32_t | EDMA_startQdmaTransfer (EDMA_Handle handle, uint8_t channelId) |
int32_t | EDMA_startFinalQdmaTransfer (EDMA_Handle handle, uint8_t channelId) |
int32_t | EDMA_isTransferComplete (EDMA_Handle handle, uint8_t transferCompletionCode, bool *isTransferComplete) |
int32_t | EDMA_setDestinationAddress (EDMA_Handle handle, uint16_t paramId, uint32_t destinationAddress) |
int32_t | EDMA_setSourceAddress (EDMA_Handle handle, uint16_t paramId, uint32_t sourceAddress) |
int32_t | EDMA_close (EDMA_Handle handle) |
uint8_t | EDMA_getNumInstances (void) |
int32_t | EDMA_init (uint8_t instanceId) |
int32_t | EDMA_getStatusInfo (EDMA_Handle handle, EDMA_statusInfo_t *status) |
EDMA_Handle | EDMA_open (uint8_t instanceId, int32_t *errorCode, EDMA_instanceInfo_t *instanceInfo) |
int32_t | EDMA_configErrorMonitoring (EDMA_Handle handle, EDMA_errorConfig_t const *config) |
int32_t | EDMA_configPerformance (EDMA_Handle handle, EDMA_performanceConfig_t const *config) |
Variables | |
static EDMA_Object_t | EDMA_object [EDMA_NUM_CC] |
EDMA objects storage for each CC. | |
This file contains implementation of the EDMA driver APIs in edma.h. It uses at a lower level the edma_low_level.h APIs.
Copyright (c) 2016, Texas Instruments Incorporated All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
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.