Data Structures | Defines | Typedefs | Enumerations | Functions
fftc_lld.h File Reference

Header file with data structure and API declarations for FFTC Low Level Driver (LLD). More...

#include <ti/csl/csl.h>
#include <ti/csl/cslr_fftc.h>
#include <ti/csl/soc.h>

Data Structures

struct  _Fftc_DestQRegCfg
 Fftc_DestQRegCfg. More...
struct  _Fftc_ScalingShiftingRegCfg
 Fftc_ScalingShiftingRegCfg. More...
struct  _Fftc_CyclicPrefixRegCfg
 Fftc_CyclicPrefixRegCfg. More...
struct  _Fftc_ControlRegCfg
 Fftc_ControlRegCfg. More...
struct  _Fftc_FreqShiftRegCfg
 Fftc_FreqShiftRegCfg. More...
struct  _Fftc_QLocalCfg
 Fftc_QLocalCfg. More...
struct  _Fftc_GlobalCfg
 Fftc_GlobalCfg. More...
struct  _Fftc_ControlHdr
 Fftc_ControlHdr. More...
struct  _Fftc_QLocalCfgParams
 Fftc_QLocalCfgParams. More...
struct  _Fftc_PeripheralIdParams
 Fftc_PeripheralIdParams. More...
struct  _Fftc_EmulationControlParams
 Fftc_EmulationControlParams. More...
struct  _Fftc_ErrorParams
 Fftc_ErrorParams. More...
struct  _Fftc_ControlStatusReg
 Fftc_ControlStatusReg. More...
struct  _Fftc_PktSizeStatusReg
 Fftc_PktSizeStatusReg. More...
struct  _Fftc_TagStatusReg
 Fftc_TagStatusReg. More...

Defines

#define FFTC_MAX_NUM_BUTTERFLY_STAGES   (7)
 The Maximum number of butterfly stages supported.
#define FFTC_NUM_INTERNAL_BUFFERS   (3)
 The number of internal buffers used by FFTC for simultaneous input, output and calculation operations. A complete FFTC Engine status snapshot can hence be obtained by putting together the status of all the three buffers.
#define FFTC_MAX_NUM_BLOCKS   (128)
 The maximum number of FFT block sizes that can be specified to the FFTC engine hardware.
#define FFTC_MAX_NUM_TXQUEUES   (4)
 The number of Transmit queues dedicated for FFTC from the CPPI-Queue Manager (QM).
#define FFTC_DEF_CPPI_QUEUE_NUM   (0x3FFF)
 Default value for CPPI Destination queue number.
#define FFTC_DEF_DFT_SIZE   (0x3F)
 Default DFT size.
#define FFTC_MAX_NUM_PS_WORDS   (4)
 Maximum number of PS Info words (32 bit words ) supported by the FFTC engine.

Typedefs

typedef struct _Fftc_DestQRegCfg Fftc_DestQRegCfg
 Fftc_DestQRegCfg.
typedef struct
_Fftc_ScalingShiftingRegCfg 
Fftc_ScalingShiftingRegCfg
 Fftc_ScalingShiftingRegCfg.
typedef struct
_Fftc_CyclicPrefixRegCfg 
Fftc_CyclicPrefixRegCfg
 Fftc_CyclicPrefixRegCfg.
typedef struct _Fftc_ControlRegCfg Fftc_ControlRegCfg
 Fftc_ControlRegCfg.
typedef struct
_Fftc_FreqShiftRegCfg 
Fftc_FreqShiftRegCfg
 Fftc_FreqShiftRegCfg.
typedef struct _Fftc_QLocalCfg Fftc_QLocalCfg
 Fftc_QLocalCfg.
typedef struct _Fftc_GlobalCfg Fftc_GlobalCfg
 Fftc_GlobalCfg.
typedef struct _Fftc_ControlHdr Fftc_ControlHdr
 Fftc_ControlHdr.
typedef struct
_Fftc_QLocalCfgParams 
Fftc_QLocalCfgParams
 Fftc_QLocalCfgParams.
typedef struct
_Fftc_PeripheralIdParams 
Fftc_PeripheralIdParams
 Fftc_PeripheralIdParams.
typedef struct
_Fftc_EmulationControlParams 
Fftc_EmulationControlParams
 Fftc_EmulationControlParams.
typedef struct _Fftc_ErrorParams Fftc_ErrorParams
 Fftc_ErrorParams.
typedef struct
_Fftc_ControlStatusReg 
Fftc_ControlStatusReg
 Fftc_ControlStatusReg.
typedef struct
_Fftc_PktSizeStatusReg 
Fftc_PktSizeStatusReg
 Fftc_PktSizeStatusReg.
typedef struct _Fftc_TagStatusReg Fftc_TagStatusReg
 Fftc_TagStatusReg.

Enumerations

enum  Fftc_DFTMode { Fftc_DFTMode_IDFT = 0, Fftc_DFTMode_DFT = 1 }
 Fftc_DFTMode. More...
enum  Fftc_ZeroPadMode { Fftc_ZeroPadMode_ADD = 0, Fftc_ZeroPadMode_MULTIPLY = 1 }
 Fftc_ZeroPadMode. More...
enum  Fftc_FreqShiftDir { Fftc_FreqShiftDir_PLUS = 0, Fftc_FreqShiftDir_MINUS = 1 }
 Fftc_FreqShiftDir. More...
enum  Fftc_FreqShiftIndex { Fftc_FreqShiftIndex_16384 = 0, Fftc_FreqShiftIndex_12288 = 1 }
 Fftc_FreqShiftIndex. More...
enum  Fftc_QueueId { Fftc_QueueId_0 = 0, Fftc_QueueId_1 = 1, Fftc_QueueId_2 = 2, Fftc_QueueId_3 = 3 }
 Fftc_QueueId. More...

Functions

int32_t Fftc_mapDFTSizeToIndex (uint32_t dftBlockSize)
int32_t Fftc_compileQueueLocalConfigParams (Fftc_QLocalCfg *pFFTLocalCfg, uint8_t *pData, uint32_t *pLen)
int32_t Fftc_recompileQueueLocalDFTParams (int32_t dftSize, Fftc_DFTMode dftMode, uint8_t *pData)
int32_t Fftc_recompileQueueLocalCyclicPrefixParams (int32_t cyclicPrefixLen, uint8_t *pData)
int32_t Fftc_createControlHeader (Fftc_ControlHdr *pFFTCfgCtrlHdr, uint8_t *pData, uint32_t *pLen)
int32_t Fftc_modifyLocalCfgPresentControlHeader (int32_t bLocalConfigPresent, uint8_t *pData)
int32_t Fftc_createDftSizeList (uint16_t *pDftSizeList, uint32_t dftSizeListLen, uint8_t *pData, uint32_t *pLen)
int32_t Fftc_lldOpen (uint8_t instNum, void *cfgRegs, Fftc_LldObj *pFFTCLldObj)
int32_t Fftc_lldClose (Fftc_LldObj *pFFTCLldObj)
int32_t Fftc_readPidReg (Fftc_LldObj *pFFTCLldObj, Fftc_PeripheralIdParams *pPIDCfg)
int32_t Fftc_readGlobalConfigReg (Fftc_LldObj *pFFTCLldObj, Fftc_GlobalCfg *pFFTGlobalCfg)
int32_t Fftc_writeGlobalConfigReg (Fftc_LldObj *pFFTCLldObj, Fftc_GlobalCfg *pFFTGlobalCfg)
void Fftc_doSoftwareReset (Fftc_LldObj *pFFTCLldObj)
void Fftc_doSoftwareContinue (Fftc_LldObj *pFFTCLldObj)
int32_t Fftc_isHalted (Fftc_LldObj *pFFTCLldObj)
int32_t Fftc_writeEmulationControlReg (Fftc_LldObj *pFFTCLldObj, Fftc_EmulationControlParams *pEmulationCfg)
int32_t Fftc_readEmulationControlReg (Fftc_LldObj *pFFTCLldObj, Fftc_EmulationControlParams *pEmulationCfg)
int32_t Fftc_writeEoiReg (Fftc_LldObj *pFFTCLldObj, int32_t eoiVal)
int32_t Fftc_readEoiReg (Fftc_LldObj *pFFTCLldObj)
void Fftc_clearQueueClippingDetectReg (Fftc_LldObj *pFFTCLldObj, Fftc_QueueId qNum)
int32_t Fftc_readQueueClippingDetectReg (Fftc_LldObj *pFFTCLldObj, Fftc_QueueId qNum)
int32_t Fftc_writeQueueConfigRegs (Fftc_LldObj *pFFTCLldObj, Fftc_QueueId qNum, Fftc_QLocalCfg *pFFTLocalCfg)
int32_t Fftc_readQueueConfigRegs (Fftc_LldObj *pFFTCLldObj, Fftc_QueueId qNum, Fftc_QLocalCfg *pFFTLocalCfg)
int32_t Fftc_writeDftSizeListGroupReg (Fftc_LldObj *pFFTCLldObj, uint16_t *pDftSizeList, uint32_t dftSizeListLen)
int32_t Fftc_readDftSizeListGroupReg (Fftc_LldObj *pFFTCLldObj, uint16_t *pDftSizeList)
int32_t Fftc_readBlockDestQStatusReg (Fftc_LldObj *pFFTCLldObj, Fftc_DestQStatusReg *pFFTDestQStatus)
int32_t Fftc_readBlockShiftStatusReg (Fftc_LldObj *pFFTCLldObj, Fftc_ScalingShiftingStatusReg *pFFTShiftStatus)
int32_t Fftc_readBlockCyclicPrefixStatusReg (Fftc_LldObj *pFFTCLldObj, Fftc_CyclicPrefixStatusReg *pFFTCyclicStatus)
int32_t Fftc_readBlockControlStatusReg (Fftc_LldObj *pFFTCLldObj, Fftc_ControlStatusReg *pFFTControlStatus)
int32_t Fftc_readBlockFreqShiftStatusReg (Fftc_LldObj *pFFTCLldObj, Fftc_FreqShiftStatusReg *pFFTFreqShiftStatus)
int32_t Fftc_readBlockPktSizeStatusReg (Fftc_LldObj *pFFTCLldObj, Fftc_PktSizeStatusReg *pFFTPktSizeStatus)
int32_t Fftc_readBlockTagStatusReg (Fftc_LldObj *pFFTCLldObj, Fftc_TagStatusReg *pFFTTagStatus)
int32_t Fftc_readErrorIntRawStatusReg (Fftc_LldObj *pFFTCLldObj, Fftc_QueueId qNum, Fftc_ErrorParams *pErrorCfg)
int32_t Fftc_clearErrorIntRawStatusReg (Fftc_LldObj *pFFTCLldObj, Fftc_QueueId qNum, Fftc_ErrorParams *pErrorCfg)
int32_t Fftc_writeErrorIntEnableSetReg (Fftc_LldObj *pFFTCLldObj, Fftc_QueueId qNum, Fftc_ErrorParams *pErrorCfg)
int32_t Fftc_readErrorIntEnableSetReg (Fftc_LldObj *pFFTCLldObj, Fftc_QueueId qNum, Fftc_ErrorParams *pErrorCfg)
int32_t Fftc_clearErrorIntEnableReg (Fftc_LldObj *pFFTCLldObj, Fftc_QueueId qNum, Fftc_ErrorParams *pErrorCfg)
int32_t Fftc_writeHaltOnErrorReg (Fftc_LldObj *pFFTCLldObj, Fftc_QueueId qNum, Fftc_ErrorParams *pErrorCfg)
int32_t Fftc_readHaltOnErrorReg (Fftc_LldObj *pFFTCLldObj, Fftc_QueueId qNum, Fftc_ErrorParams *pErrorCfg)

Detailed Description

Header file with data structure and API declarations for FFTC Low Level Driver (LLD).

============================================================================
(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