dfemix
Vitis Drivers API Documentation
xdfemix.h File Reference

Data Structures

struct  XDfeMix_Version
 Logicore version. More...
 
struct  XDfeMix_Trigger
 Trigger configuration. More...
 
struct  XDfeMix_TriggerCfg
 All IP triggers. More...
 
struct  XDfeMix_CCSequence
 Defines a CCID sequence. More...
 
struct  XDfeMix_ModelParameters
 Mixer model parameters structure. More...
 
struct  XDfeMix_Cfg
 Configuration. More...
 
struct  XDfeMix_Init
 Initialization, "one-time" configuration parameters. More...
 
struct  XDfeMix_PhaseOffset
 Phase Offset. More...
 
struct  XDfeMix_Frequency
 Defines frequency for single CC's NCO. More...
 
struct  XDfeMix_Phase
 Defined phase for single CC's NCO. More...
 
struct  XDfeMix_NCO
 Defines settings for single CC's NCO. More...
 
struct  XDfeMix_InternalDUCDDCCfg
 Defines settings for internal single CC's DUC/DDC. More...
 
struct  XDfeMix_DUCDDCCfg
 Defines settings for single CC's DUC/DDC. More...
 
struct  XDfeMix_AuxiliaryCfg
 Defines settings for single auxiliary NCO. More...
 
struct  XDfeMix_CarrierCfg
 Configuration for a single CC (implementation note: notice that there are two parts, one part (DUCDDCCfg) mapping to the CCCfg state, and another that is written directly to NCO registers (XDfeMix_NCO). More...
 
struct  XDfeMix_AntennaCfg
 Configuration to all antennas. More...
 
struct  XDfeMix_CCCfg
 Full CC configuration. More...
 
struct  XDfeMix_DUCDDCStatus
 DUC/DDC status. More...
 
struct  XDfeMix_MixerStatus
 Mixer status. More...
 
struct  XDfeMix_Status
 Event status and interrupt mask. More...
 
struct  XDfeMix_Config
 Mixer Config Structure. More...
 
struct  XDfeMix
 Mixer Structure. More...
 

Macros

#define XDFEMIX_MAX_NUM_INSTANCES   (10U)
 Maximum number of driver instances running at the same time. More...
 
#define XST_SUCCESS   (0U)
 Success flag. More...
 
#define XST_FAILURE   (1U)
 Failure flag. More...
 
#define XDFEMIX_NODE_NAME_MAX_LENGTH   (50U)
 Node name maximum length. More...
 
#define XDFEMIX_CC_NUM   (16)
 Maximum CC number. More...
 
#define XDFEMIX_ANT_NUM_MAX   (8U)
 Maximum anntena number. More...
 
#define XDFEMIX_SEQ_LENGTH_MAX   (16U)
 Maximum sequence length. More...
 
#define XDFEMIX_AUX_NCO_MAX   (4)
 Maximum Fabric NCO number. More...
 
#define XDFEMIX_NCO_MAX   (20)
 Maximum NCO number, 16 CC NCO + 4 aux NCO. More...
 
#define XDFEMIX_CC_GAIN_MAX   (3U)
 Maximum CC gain. More...
 

Enumerations

enum  XDfeMix_StateId {
  XDFEMIX_STATE_NOT_READY = 0, XDFEMIX_STATE_READY, XDFEMIX_STATE_RESET, XDFEMIX_STATE_CONFIGURED,
  XDFEMIX_STATE_INITIALISED, XDFEMIX_STATE_OPERATIONAL
}
 

Functions

XDfeMixXDfeMix_InstanceInit (const char *DeviceNodeName)
 API initialises one instance of a Mixer driver. More...
 
void XDfeMix_InstanceClose (XDfeMix *InstancePtr)
 API closes the instance of a Mixer driver and moves the state machine to a Not Ready state. More...
 
void XDfeMix_Reset (XDfeMix *InstancePtr)
 Resets Mixer and puts block into a reset state. More...
 
void XDfeMix_Configure (XDfeMix *InstancePtr, XDfeMix_Cfg *Cfg)
 Reads configuration from device tree/xparameters.h and IP registers. More...
 
void XDfeMix_Initialize (XDfeMix *InstancePtr, XDfeMix_Init *Init)
 DFE Mixer driver one time initialisation which sets registers to initialisation values, moves the state machine to Initialised state and in switchable mode sets Uplink registers to initialisation value. More...
 
void XDfeMix_Activate (XDfeMix *InstancePtr, bool EnableLowPower)
 Enables triggers and moves the state machine to an Activated state. More...
 
void XDfeMix_Deactivate (XDfeMix *InstancePtr)
 Deactivates triggers and moves the state machine to Initialised state. More...
 
XDfeMix_StateId XDfeMix_GetStateID (XDfeMix *InstancePtr)
 Gets a state machine state id. More...
 
void XDfeMix_GetCurrentCCCfg (const XDfeMix *InstancePtr, XDfeMix_CCCfg *CurrCCCfg)
 Returns the current CC and NCO configurations. More...
 
void XDfeMix_GetCurrentCCCfgSwitchable (const XDfeMix *InstancePtr, XDfeMix_CCCfg *CCCfgDownlink, XDfeMix_CCCfg *CCCfgUplink)
 Returns the current CC and NCO configuration for Downlink and Uplink in switchable mode. More...
 
void XDfeMix_GetEmptyCCCfg (const XDfeMix *InstancePtr, XDfeMix_CCCfg *CCCfg)
 Returns configuration structure CCCfg with CCCfg->Sequence.Length value set in XDfeMix_Configure(), array CCCfg->Sequence.CCID[] members are set to not used value (-1) and the other CCCfg members are set to 0. More...
 
void XDfeMix_GetCarrierCfgAndNCO (const XDfeMix *InstancePtr, XDfeMix_CCCfg *CCCfg, s32 CCID, u32 *CCSeqBitmap, XDfeMix_CarrierCfg *CarrierCfg, XDfeMix_NCO *NCO)
 Returns the current CC sequence bitmap, CCID carrier configuration and NCO configuration. More...
 
void XDfeMix_SetAntennaCfgInCCCfg (const XDfeMix *InstancePtr, XDfeMix_CCCfg *CCCfg, XDfeMix_AntennaCfg *AntennaCfg)
 Set antenna configuration in CC configuration container. More...
 
u32 XDfeMix_AddCCtoCCCfg (XDfeMix *InstancePtr, XDfeMix_CCCfg *CCCfg, s32 CCID, u32 CCSeqBitmap, const XDfeMix_CarrierCfg *CarrierCfg, const XDfeMix_NCO *NCO)
 Adds specified CCID, with specified configuration, to a local CC configuration structure. More...
 
void XDfeMix_RemoveCCfromCCCfg (XDfeMix *InstancePtr, XDfeMix_CCCfg *CCCfg, s32 CCID)
 Removes specified CCID from a local CC configuration structure and the slots in the sequence for that CCID are set to -1. More...
 
void XDfeMix_AddAuxNCOtoCCCfg (XDfeMix *InstancePtr, XDfeMix_CCCfg *CCCfg, const s32 AuxId, const XDfeMix_NCO *NCO, const XDfeMix_AuxiliaryCfg *AuxCfg)
 Adds specified auxiliary NCO, with specified configuration, to a local CCCfg. More...
 
void XDfeMix_RemoveAuxNCOfromCCCfg (XDfeMix *InstancePtr, XDfeMix_CCCfg *CCCfg, const s32 AuxId)
 Disables specified auxiliary NCO configuration structure. More...
 
u32 XDfeMix_UpdateCCinCCCfg (XDfeMix *InstancePtr, XDfeMix_CCCfg *CCCfg, s32 CCID, const XDfeMix_CarrierCfg *CarrierCfg)
 Updates specified CCID, with specified configuration to a local CC configuration structure. More...
 
u32 XDfeMix_SetNextCCCfgAndTrigger (XDfeMix *InstancePtr, const XDfeMix_CCCfg *CCCfg)
 Writes local CC configuration to the shadow (NEXT) registers and triggers copying from shadow to operational registers. More...
 
u32 XDfeMix_SetNextCCCfgAndTriggerSwitchable (XDfeMix *InstancePtr, XDfeMix_CCCfg *CCCfgDownlink, XDfeMix_CCCfg *CCCfgUplink)
 Writes local CC configuration to the shadow (NEXT) registers and triggers copying from shadow to operational (CURRENT) registers for both Downlink and Upling in switchable mode. More...
 
u32 XDfeMix_AddCC (XDfeMix *InstancePtr, s32 CCID, u32 CCSeqBitmap, const XDfeMix_CarrierCfg *CarrierCfg, const XDfeMix_NCO *NCO)
 Adds specified CCID, with specified configuration. More...
 
u32 XDfeMix_RemoveCC (XDfeMix *InstancePtr, s32 CCID)
 Removes specified CCID. More...
 
u32 XDfeMix_MoveCC (XDfeMix *InstancePtr, s32 CCID, u32 Rate, u32 FromNCO, u32 ToNCO)
 Moves specified CCID from one NCO to another aligning phase to make it transparent. More...
 
u32 XDfeMix_UpdateCC (XDfeMix *InstancePtr, s32 CCID, const XDfeMix_CarrierCfg *CarrierCfg)
 Updates specified CCID, with a configuration defined in CarrierCfg structure. More...
 
u32 XDfeMix_SetAntennaGain (XDfeMix *InstancePtr, u32 AntennaId, u32 AntennaGain)
 Sets antenna gain. More...
 
u32 XDfeMix_UpdateAntennaCfg (XDfeMix *InstancePtr, XDfeMix_AntennaCfg *AntennaCfg)
 Updates antenna configuration of all antennas. More...
 
void XDfeMix_GetTriggersCfg (const XDfeMix *InstancePtr, XDfeMix_TriggerCfg *TriggerCfg)
 Returns current trigger configuration. More...
 
void XDfeMix_SetTriggersCfg (const XDfeMix *InstancePtr, XDfeMix_TriggerCfg *TriggerCfg)
 Sets trigger configuration. More...
 
void XDfeMix_GetDUCDDCStatus (const XDfeMix *InstancePtr, XDfeMix_DUCDDCStatus *DUCDDCStatus)
 Gets DUC/DDC overflow status. More...
 
void XDfeMix_GetMixerStatus (const XDfeMix *InstancePtr, XDfeMix_MixerStatus *MixerStatus)
 Gets Mixer overflow status. More...
 
void XDfeMix_GetInterruptMask (const XDfeMix *InstancePtr, XDfeMix_InterruptMask *Mask)
 Gets interrupt mask status. More...
 
void XDfeMix_SetInterruptMask (const XDfeMix *InstancePtr, const XDfeMix_InterruptMask *Mask)
 Sets interrupt mask. More...
 
void XDfeMix_GetEventStatus (const XDfeMix *InstancePtr, XDfeMix_Status *Status)
 Gets event status. More...
 
void XDfeMix_ClearEventStatus (const XDfeMix *InstancePtr, const XDfeMix_Status *Status)
 Clears event status. More...
 
void XDfeMix_SetTUserDelay (const XDfeMix *InstancePtr, u32 Delay)
 Sets the delay, which will be added to TUSER and TLAST (delay matched through the IP). More...
 
u32 XDfeMix_GetTUserDelay (const XDfeMix *InstancePtr)
 Reads the delay, which will be added to TUSER and TLAST (delay matched through the IP). More...
 
u32 XDfeMix_GetTDataDelay (const XDfeMix *InstancePtr, u32 Tap, u32 *TDataDelay)
 Returns sum of data latency and number of taps. More...
 
u32 XDfeMix_GetCenterTap (const XDfeMix *InstancePtr, u32 Rate, u32 *CenterTap)
 Returns predefined Central Tap value for chosen RATE. More...
 
void XDfeMix_SetRegBank (const XDfeMix *InstancePtr, u32 RegBank)
 Enables uplink or downlink register bank. More...
 
void XDfeMix_GetVersions (const XDfeMix *InstancePtr, XDfeMix_Version *SwVersion, XDfeMix_Version *HwVersion)
 This API gets the driver and HW design version. More...