Data Structures | Defines | Typedefs | Functions
fftc.h File Reference

Header file with data structure and API declarations for FFTC driver. More...

#include <ti/drv/fftc/fftc_lld.h>
#include <ti/drv/qmss/qmss_drv.h>
#include <ti/drv/cppi/cppi_drv.h>
#include <ti/drv/cppi/cppi_desc.h>
#include <ti/csl/csl_chip.h>
#include <ti/drv/fftc/fftcver.h>

Data Structures

struct  _Fftc_DeviceCfg
 Fftc_DeviceCfg. More...
struct  _Fftc_BlockInfo
 Fftc_BlockInfo. More...
struct  _Fftc_BlockResult
 Fftc_BlockResult. More...
struct  _Fftc_Result
 Fftc_Result. More...
struct  _Fftc_CppiDescCfg
 Fftc_CppiDescCfg. More...
struct  _Fftc_InterruptCfg
 Fftc_InterruptCfg. More...
struct  _Fftc_DrvCfg
 Fftc_DrvCfg. More...
struct  _Fftc_TxCfg
 Fftc_TxCfg. More...
struct  _Fftc_RxCfg
 Fftc_RxCfg. More...

Defines

#define FFTC_MAX_NUM_INSTANCES   (CSL_FFTC_PER_CNT)
 The number of FFTC instances in the SoC.
#define FFTC_MAX_NUM_FLOWS   (8)
 The number of CPPI flows reserved for each FFTC instance.
#define FFTC_MAX_NUM_FREEQ   (8)
 The maximum number of free queues that can be created by the FFTC driver for use by various flows.
#define FFTC_MAX_NUM_RXOBJECTS   (32)
 The maximum number of Rx objects that will be tracked by the driver globally in the system across all cores.
#define FFTC_RETVAL_SUCCESS   (0)
 When returned this, indicates the API succeeded in its intent.
#define FFTC_RETVAL_EBAD_HANDLE   (-1)
 When returned this, indicates that the handle passed to the API was invalid.
#define FFTC_RETVAL_EINVALID_PARAMS   (-2)
 When returned this, indicates that the input configuration passed to the API is invalid.
#define FFTC_RETVAL_ENO_MEM   (-3)
 When returned this, indicates that the API's attempt to allocate memory or retrieve descriptors failed and is out of memory/descriptors.
#define FFTC_RETVAL_ENO_RESULT   (-4)
 When returned this, indicates that there is no pending FFT result available for the application's Rx object.
#define FFTC_RETVAL_EINV_DESTID_RESULT   (-5)
 When returned this, indicates a flow id/Rx object Id mismatch, i.e., the destination Id received in the packet doesnt match the flow/Rx object on which it was actually received.
#define FFTC_RETVAL_EFAILURE   (-6)
 When returned this, indicates a general error.

Typedefs

typedef void * Fftc_DrvHandle
 Fftc_DrvHandle.
typedef void * Fftc_TxHandle
 Fftc_TxHandle.
typedef void * Fftc_RxHandle
 Fftc_RxHandle.
typedef void * Fftc_RequestHandle
 Fftc_RequestHandle.
typedef void * Fftc_ResultHandle
 Fftc_ResultHandle.
typedef int32_t Fftc_RetVal
 Fftc_RetVal.
typedef struct _Fftc_DeviceCfg Fftc_DeviceCfg
 Fftc_DeviceCfg.
typedef struct _Fftc_BlockInfo Fftc_BlockInfo
 Fftc_BlockInfo.
typedef struct _Fftc_BlockResult Fftc_BlockResult
 Fftc_BlockResult.
typedef struct _Fftc_Result Fftc_Result
 Fftc_Result.
typedef struct _Fftc_CppiDescCfg Fftc_CppiDescCfg
 Fftc_CppiDescCfg.
typedef struct _Fftc_InterruptCfg Fftc_InterruptCfg
 Fftc_InterruptCfg.
typedef struct _Fftc_DrvCfg Fftc_DrvCfg
 Fftc_DrvCfg.
typedef struct _Fftc_TxCfg Fftc_TxCfg
 Fftc_TxCfg.
typedef struct _Fftc_RxCfg Fftc_RxCfg
 Fftc_RxCfg.

Functions

uint32_t Fftc_getVersionID (void)
const char * Fftc_getVersionStr (void)
Fftc_RetVal Fftc_init (uint8_t instNum, Fftc_GlobalCfg *pFFTCGlobalCfg, Fftc_DeviceCfg *pFFTCDevCfg)
Fftc_RetVal Fftc_deInit (uint8_t instNum)
uint8_t Fftc_isInitialized (uint8_t instNum)
Fftc_DrvHandle Fftc_open (uint8_t instNum, Fftc_DrvCfg *pFFTCDrvCfg, Fftc_RetVal *pRetVal)
Fftc_RetVal Fftc_close (Fftc_DrvHandle hFFTC)
Fftc_LldObj * Fftc_getLLDObject (Fftc_DrvHandle hFFTC)
Fftc_TxHandle Fftc_txOpen (Fftc_DrvHandle hFFTC, Fftc_TxCfg *pFFTCTxCfg)
Fftc_RetVal Fftc_txClose (Fftc_TxHandle hFFTCTxInfo)
Fftc_RxHandle Fftc_rxOpen (Fftc_DrvHandle hFFTC, Fftc_RxCfg *pFFTCRxCfg)
Fftc_RetVal Fftc_rxClose (Fftc_RxHandle hFFTCRxInfo)
Fftc_RetVal Fftc_rxGetRxQueueNumber (Fftc_RxHandle hFFTCRxInfo)
Fftc_RetVal Fftc_rxGetFlowId (Fftc_RxHandle hFFTCRxInfo)
Fftc_RetVal Fftc_findFlowIdByQueueNumber (Fftc_DrvHandle hFFTC, uint32_t rxQueueNumber)
Fftc_RetVal Fftc_txGetRequestBuffer (Fftc_TxHandle hFFTCTxInfo, Fftc_BlockInfo *pDFTBlockSizeInfo, Fftc_QLocalCfg *pFFTCQConfig, uint32_t psInfoLen, uint8_t destnFlowId, uint16_t destnTagInfo, Fftc_RequestHandle *phFFTCRequest, uint8_t **ppReqDataBuffer, uint32_t *pMaxDataBufferLen)
Fftc_RetVal Fftc_txSubmitRequest (Fftc_TxHandle hFFTCTxInfo, Fftc_RequestHandle hRequestInfo, uint32_t reqBufferLen)
Fftc_RetVal Fftc_txFreeRequestBuffer (Fftc_TxHandle hFFTCTxInfo, Fftc_RequestHandle hRequestInfo)
Fftc_RetVal Fftc_rxProcessDesc (Fftc_RxHandle hFFTCRxInfo, Cppi_Desc *pCppiDesc, Fftc_ResultHandle *phResultInfo, uint8_t **ppResultBuffer, uint32_t *pResultBufferLen, uint8_t **ppPSInfo, uint32_t *pPSInfoLen, uint8_t *pFlowId, uint8_t *pSrcId, uint16_t *pDestnTagInfo)
int32_t Fftc_rxGetNumPendingResults (Fftc_RxHandle hFFTCRxInfo)
Fftc_RetVal Fftc_rxGetResult (Fftc_RxHandle hFFTCRxInfo, Fftc_ResultHandle *phResultInfo, uint8_t **ppResultBuffer, uint32_t *pResultBufferLen, uint8_t **ppPSInfo, uint32_t *pPSInfoLen, uint8_t *pFlowId, uint8_t *pSrcId, uint16_t *pDestnTagInfo)
Fftc_RetVal Fftc_rxFreeResult (Fftc_RxHandle hFFTCRxInfo, Fftc_ResultHandle hResultInfo)
Fftc_RetVal Fftc_rxParseResult (Fftc_RxHandle hFFTCRxInfo, Fftc_ResultHandle hResultInfo, uint8_t *pResultBuffer, uint32_t resultBufferLen, Fftc_BlockInfo *pDFTBlockSizeInfo, uint8_t bSupressSideInfo, uint16_t cyclicPrefixAddNum, Fftc_Result *pFFTResult)
void Fftc_rxHiPriorityRxISR (Fftc_RxHandle hFFTCRxInfo)

Detailed Description

Header file with data structure and API declarations for FFTC driver.

============================================================================
(C) Copyright 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 2014, Texas Instruments Incorporated