dfemix
Vitis Drivers API Documentation
Overview

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_DRIVER_VERSION_MINOR   (7U)
 Driver's minor version number. More...
 
#define XDFEMIX_DRIVER_VERSION_MAJOR   (1U)
 Driver's major version number. More...
 
#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...
 
#define XDFEMIX_COMPATIBLE_STRING   "xlnx,xdfe-cc-mixer-2.0"
 Device name property. More...
 
#define XDFEMIX_PLATFORM_DEVICE_DIR   "/sys/bus/platform/devices/"
 Device location in a file system. More...
 
#define XDFEMIX_COMPATIBLE_PROPERTY   "compatible"
 Device tree property. More...
 
#define XDFEMIX_BUS_NAME   "platform"
 System bus name. More...
 
#define XDFEMIX_BASEADDR_PROPERTY   "reg"
 Base address property. More...
 
#define XDFEMIX_BASEADDR_SIZE   8U
 Base address bit-size. More...
 
#define XDFEMIX_MODE_CFG   "xlnx,mode"
 Mode: 0 = DOWNLINK, 1 = UPLINK. More...
 
#define XDFEMIX_NUM_ANTENNA_CFG   "xlnx,num-antenna"
 Number of antenna property. More...
 
#define XDFEMIX_MAX_USABLE_CCIDS_CFG   "xlnx,max-useable-ccids"
 Maximum number of CC's per antenna. More...
 
#define XDFEMIX_LANES_CFG   "xlnx,lanes"
 Number of parallel data channels required. More...
 
#define XDFEMIX_ANTENNA_INTERLEAVE_CFG   "xlnx,antenna-interleave"
 Number of TDM antenna. More...
 
#define XDFEMIX_MIXER_CPS_CFG   "xlnx,mixer-cps"
 Mixer clock per sample property. More...
 
#define XDFEMIX_NUM_AUXILIARY   "xlnx,num-auxiliary"
 Number of auxiliary NCO. More...
 
#define XDFEMIX_DATA_IWIDTH_CFG   "xlnx,data-iwidth"
 Input stream data bit width. More...
 
#define XDFEMIX_DATA_OWIDTH_CFG   "xlnx,data-owidth"
 Output stream data bit width. More...
 
#define XDFEMIX_TUSER_WIDTH_CFG   "xlnx,tuser-width"
 Width of the tuser input. 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_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...
 
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...
 
int XDfeMix_MultiAddCCExample ()
 This example configures Mixer driver for one CC with multiAddCC APIs. More...
 
int XDfeMix_AddCCExample ()
 This function runs the DFE Mixer device using the driver APIs. More...
 

Macro Definition Documentation

#define XDFEMIX_ANT_NUM_MAX   (8U)

Maximum anntena number.

Referenced by XDfeMix_SetAntennaGain().

#define XDFEMIX_ANTENNA_INTERLEAVE_CFG   "xlnx,antenna-interleave"

Number of TDM antenna.

#define XDFEMIX_AUX_NCO_MAX   (4)

Maximum Fabric NCO number.

#define XDFEMIX_BASEADDR_PROPERTY   "reg"

Base address property.

#define XDFEMIX_BASEADDR_SIZE   8U

Base address bit-size.

#define XDFEMIX_BUS_NAME   "platform"

System bus name.

#define XDFEMIX_CC_GAIN_MAX   (3U)

Maximum CC gain.

Referenced by XDfeMix_AddCC().

#define XDFEMIX_CC_NUM   (16)

Maximum CC number.

Referenced by XDfeMix_GetEmptyCCCfg().

#define XDFEMIX_COMPATIBLE_PROPERTY   "compatible"

Device tree property.

#define XDFEMIX_COMPATIBLE_STRING   "xlnx,xdfe-cc-mixer-2.0"

Device name property.

#define XDFEMIX_DATA_IWIDTH_CFG   "xlnx,data-iwidth"

Input stream data bit width.

#define XDFEMIX_DATA_OWIDTH_CFG   "xlnx,data-owidth"

Output stream data bit width.

#define XDFEMIX_DRIVER_VERSION_MAJOR   (1U)

Driver's major version number.

Referenced by XDfeMix_GetVersions().

#define XDFEMIX_DRIVER_VERSION_MINOR   (7U)

Driver's minor version number.

Referenced by XDfeMix_GetVersions().

#define XDFEMIX_LANES_CFG   "xlnx,lanes"

Number of parallel data channels required.

#define XDFEMIX_MAX_NUM_INSTANCES   (10U)

Maximum number of driver instances running at the same time.

#define XDFEMIX_MAX_USABLE_CCIDS_CFG   "xlnx,max-useable-ccids"

Maximum number of CC's per antenna.

#define XDFEMIX_MIXER_CPS_CFG   "xlnx,mixer-cps"

Mixer clock per sample property.

#define XDFEMIX_MODE_CFG   "xlnx,mode"

Mode: 0 = DOWNLINK, 1 = UPLINK.

#define XDFEMIX_NCO_MAX   (20)

Maximum NCO number, 16 CC NCO + 4 aux NCO.

#define XDFEMIX_NODE_NAME_MAX_LENGTH   (50U)

Node name maximum length.

Referenced by XDfeMix_InstanceInit().

#define XDFEMIX_NUM_ANTENNA_CFG   "xlnx,num-antenna"

Number of antenna property.

#define XDFEMIX_NUM_AUXILIARY   "xlnx,num-auxiliary"

Number of auxiliary NCO.

#define XDFEMIX_PLATFORM_DEVICE_DIR   "/sys/bus/platform/devices/"

Device location in a file system.

#define XDFEMIX_SEQ_LENGTH_MAX   (16U)

Maximum sequence length.

#define XDFEMIX_TUSER_WIDTH_CFG   "xlnx,tuser-width"

Width of the tuser input.

Enumeration Type Documentation

Enumerator
XDFEMIX_STATE_NOT_READY 

Not ready state.

XDFEMIX_STATE_READY 

Ready state.

XDFEMIX_STATE_RESET 

Reset state.

XDFEMIX_STATE_CONFIGURED 

Configured state.

XDFEMIX_STATE_INITIALISED 

Initialised state.

XDFEMIX_STATE_OPERATIONAL 

Operational state.

Function Documentation

void XDfeMix_Activate ( XDfeMix InstancePtr,
bool  EnableLowPower 
)

Enables triggers and moves the state machine to an Activated state.

Parameters
InstancePtrPointer to the Mixer instance.
EnableLowPowerFlag indicating low power.

References XDfeMix::Config, XDfeMix_Config::Mode, XDfeMix::StateId, XDFEMIX_STATE_INITIALISED, and XDFEMIX_STATE_OPERATIONAL.

Referenced by XDfeMix_AddCCExample(), XDfeMix_MultiAddCCExample(), and XDfeMix_SelfTestExample().

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.

Parameters
InstancePtrPointer to the Mixer instance.
CCCfgCC and Auxiliry NCO configuration container.
AuxIdAuxiliary NCO ID to be disabled, range [0-3].
NCONCO configuration container.
AuxCfgAuxiliary NCO configuration container.

References XDfeMix_CCCfg::AuxiliaryCfg, and XDfeMix_CCCfg::NCO.

u32 XDfeMix_AddCC ( XDfeMix InstancePtr,
s32  CCID,
u32  CCSeqBitmap,
const XDfeMix_CarrierCfg CarrierCfg,
const XDfeMix_NCO NCO 
)

Adds specified CCID, with specified configuration.

If there is insufficient capacity for the new CC the function will return an error. Initiates CC update (enable CCUpdate trigger TUSER Single Shot).

Parameters
InstancePtrPointer to the Mixer instance.
CCIDChannel ID, range [0-15].
CCSeqBitmap- up to 16 defined slots into which a CC can be allocated. The number of slots can be from 1 to 16 depending on system initialization. The number of slots is defined by the "sequence length" parameter which is provided during initialization. The Bit offset within the CCSeqBitmap indicates the equivalent Slot number to allocate. e.g. 0x0003 means the caller wants the passed component carrier (CC) to be allocated to slots 0 and 1.
CarrierCfgCC configuration container.
NCONCO configuration container.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.
Note
Clear event status with XDfeMix_ClearEventStatus() before running this API.
For ARCH4/5 mode see XDfeMix_AddCCtoCCCfg() comment.
Attention
: This API is deprecated in the release 2023.2. Source code will be removed from in the release 2024.1 release. The functionality of this API can be reproduced with the following API sequence: XDfeMix_GetCurrentCCCfg(InstancePtr, CCCfg); XDfeMix_AddCCtoCCCfg(InstancePtr, CCCfg, CCID, CCSeqBitmap, CarrierCfg, NCO); XDfeMix_SetNextCCCfgAndTrigger(InstancePtr, CCCfg);

References XDfeMix_DUCDDCCfg::CCGain, XDfeMix_CarrierCfg::DUCDDCCfg, XDfeMix_NCO::FrequencyCfg, XDfeMix_NCO::NCOGain, XDfeMix_DUCDDCCfg::NCOIdx, XDfeMix_CCSequence::NotUsedCCID, XDfeMix::NotUsedCCID, XDfeMix_NCO::PhaseCfg, XDfeMix_CCCfg::Sequence, XDfeMix::StateId, XDFEMIX_CC_GAIN_MAX, XDfeMix_GetCurrentCCCfg(), XDFEMIX_STATE_OPERATIONAL, XST_FAILURE, and XST_SUCCESS.

Referenced by XDfeMix_AddCCExample().

int XDfeMix_AddCCExample ( )
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.

If there is insufficient capacity for the new CC the function will return an error. Initiates CC update (enable CCUpdate trigger TUSER Single Shot).

The CCID sequence register value 0 can define the slot as either used or not used. That's why the register values are translated into CCCfg.Sequence The translation is:

  • CCIDSequence.CCID[i] = -1 - if [i] is unused slot
  • CCIDSequence.CCID[i] = CCID - if [i] is used slot
  • a returned CCIDSequence->Length = length in register + 1

The hardware is implemented in ARCH4 if MAX_USEABLE_CCIDS == 8 and LANES > 1 also, the hardware is implemented in ARCH5 if MAX_USEABLE_CCIDS == 16. When ARCH4 or ARCH5 is implemented NCO to channel allocation will be verified. Each sub-block (4 NCOs in width) can only be allocated a certain percentage of the chosen sequence length, 50% for ARCH4 or 25% for ARCH5.

Parameters
InstancePtrPointer to the Mixer instance.
CCCfgComponent carrier (CC) configuration container.
CCIDChannel ID to be added to configuration, range [0-15].
CCSeqBitmapCC slot position container.
CarrierCfgCC configuration container.
NCONCO configuration container.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.

References XDfeMix_CarrierCfg::DUCDDCCfg, XDfeMix_CCCfg::DUCDDCCfg, XDfeMix_CCCfg::NCO, XDfeMix_InternalDUCDDCCfg::NCOIdx, XDfeMix_DUCDDCCfg::NCOIdx, XDfeMix_CCCfg::Sequence, XST_FAILURE, and XST_SUCCESS.

Referenced by XDfeMix_MultiAddCCExample().

void XDfeMix_ClearEventStatus ( const XDfeMix InstancePtr,
const XDfeMix_Status Status 
)

Clears event status.

Parameters
InstancePtrPointer to the Mixer instance.
StatusClear event status container.
  • 0 - does not clear corresponding event status
  • 1 - clear corresponding event status

References XDfeMix_Status::CCSequenceError, XDfeMix_Status::CCUpdate, XDfeMix_Status::CCUpdateError, XDfeMix_Status::DUCDDCOverflow, XDfeMix_Status::LowPower, XDfeMix_Status::LowPowerError, XDfeMix_Status::MixerOverflow, XDfeMix_Status::Switchable, and XDfeMix_Status::SwitchableError.

Referenced by XDfeMix_AddCCExample(), and XDfeMix_MultiAddCCExample().

void XDfeMix_Deactivate ( XDfeMix InstancePtr)

Deactivates triggers and moves the state machine to Initialised state.

Parameters
InstancePtrPointer to the Mixer instance.

References XDfeMix::Config, XDfeMix_Config::Mode, XDfeMix::StateId, XDFEMIX_STATE_INITIALISED, and XDFEMIX_STATE_OPERATIONAL.

Referenced by XDfeMix_AddCCExample(), XDfeMix_MultiAddCCExample(), and XDfeMix_SelfTestExample().

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.

Parameters
InstancePtrPointer to the Mixer instance.
CCCfgComponent carrier (CC) configuration container.
CCIDChannel ID for which configuration parameters are returned, range [0-15].
CCSeqBitmapCC slot position container.
CarrierCfgCC configuration container.
NCONCO configuration container.

References XDfeMix_InternalDUCDDCCfg::CCGain, XDfeMix_DUCDDCCfg::CCGain, XDfeMix_CCSequence::CCID, XDfeMix_CarrierCfg::DUCDDCCfg, XDfeMix_CCCfg::DUCDDCCfg, XDfeMix_CCSequence::Length, XDfeMix_CCCfg::NCO, XDfeMix_InternalDUCDDCCfg::NCOIdx, XDfeMix_DUCDDCCfg::NCOIdx, and XDfeMix_CCCfg::Sequence.

u32 XDfeMix_GetCenterTap ( const XDfeMix InstancePtr,
u32  Rate,
u32 *  CenterTap 
)

Returns predefined Central Tap value for chosen RATE.

This will determine group delay.

Parameters
InstancePtrPointer to the Mixer instance.
RateInterpolation/decimation rate index value [1-5].
CenterTapReturned Central Tap value.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.

References XST_SUCCESS.

void XDfeMix_GetCurrentCCCfg ( const XDfeMix InstancePtr,
XDfeMix_CCCfg CurrCCCfg 
)

Returns the current CC and NCO configurations.

Not used slot ID in a sequence (Sequence.CCID[Index]) are represented as (-1), not the value in registers.

Parameters
InstancePtrPointer to the Mixer instance.
CurrCCCfgCC configuration container.

References XDfeMix_CCSequence::NotUsedCCID, XDfeMix::NotUsedCCID, and XDfeMix_CCCfg::Sequence.

Referenced by XDfeMix_AddCC(), XDfeMix_MoveCC(), XDfeMix_MultiAddCCExample(), XDfeMix_RemoveCC(), XDfeMix_SetAntennaGain(), XDfeMix_UpdateAntennaCfg(), and XDfeMix_UpdateCC().

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.

Not used slot ID in a sequence (Sequence.CCID[Index]) are represented as (-1), not the value in registers.

Parameters
InstancePtrPointer to the Mixer instance.
CCCfgDownlinkDownlink CC configuration container.
CCCfgUplinkUplink CC configuration container.

References XDfeMix::Config, XDfeMix_Config::Mode, XDfeMix_CCSequence::NotUsedCCID, XDfeMix::NotUsedCCID, XDfeMix::NotUsedCCID_UL, XDfeMix_CCCfg::Sequence, and XDfeMix_SetRegBank().

Referenced by XDfeMix_SetAntennaGain(), and XDfeMix_UpdateAntennaCfg().

void XDfeMix_GetDUCDDCStatus ( const XDfeMix InstancePtr,
XDfeMix_DUCDDCStatus DUCDDCStatus 
)

Gets DUC/DDC overflow status.

Parameters
InstancePtrPointer to the Mixer instance.
DUCDDCStatusDUC/DDC status container.

References XDfeMix_DUCDDCStatus::Antenna, XDfeMix_DUCDDCStatus::NcoId, XDfeMix_DUCDDCStatus::Stage, XDfeMix::StateId, and XDFEMIX_STATE_OPERATIONAL.

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.

Parameters
InstancePtrPointer to the Mixer instance.
CCCfgCC configuration container.

References XDfeMix_CCSequence::CCID, XDfeMix_CCSequence::Length, XDfeMix_CCCfg::Sequence, XDfeMix::SequenceLength, and XDFEMIX_CC_NUM.

void XDfeMix_GetEventStatus ( const XDfeMix InstancePtr,
XDfeMix_Status Status 
)
void XDfeMix_GetInterruptMask ( const XDfeMix InstancePtr,
XDfeMix_InterruptMask Mask 
)
void XDfeMix_GetMixerStatus ( const XDfeMix InstancePtr,
XDfeMix_MixerStatus MixerStatus 
)

Gets Mixer overflow status.

Parameters
InstancePtrPointer to the Mixer instance.
MixerStatusMixer status container.

References XDfeMix_MixerStatus::Antenna, XDfeMix_MixerStatus::NcoId, XDfeMix_MixerStatus::Stage, XDfeMix::StateId, and XDFEMIX_STATE_OPERATIONAL.

XDfeMix_StateId XDfeMix_GetStateID ( XDfeMix InstancePtr)

Gets a state machine state id.

Parameters
InstancePtrPointer to the Mixer instance.
Returns
State machine StateID

References XDfeMix::StateId.

u32 XDfeMix_GetTDataDelay ( const XDfeMix InstancePtr,
u32  Tap,
u32 *  TDataDelay 
)

Returns sum of data latency and number of taps.

Parameters
InstancePtrPointer to the Mixer instance.
TapTap value.
TDataDelayReturned Data latency value.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.

References XST_SUCCESS.

void XDfeMix_GetTriggersCfg ( const XDfeMix InstancePtr,
XDfeMix_TriggerCfg TriggerCfg 
)

Returns current trigger configuration.

In switchable mode ignors LOW_POWER triggers as they are not used, instead reads SWITCH trigger configurations.

Parameters
InstancePtrPointer to the Mixer instance.
TriggerCfgTrigger configuration container.

References XDfeMix_TriggerCfg::Activate, XDfeMix_TriggerCfg::CCUpdate, XDfeMix::Config, XDfeMix_TriggerCfg::LowPower, XDfeMix_Trigger::Mode, XDfeMix_Config::Mode, XDfeMix::StateId, XDfeMix_Trigger::StateOutput, XDfeMix_TriggerCfg::Switch, XDfeMix_Trigger::TriggerEnable, XDfeMix_Trigger::TUSERBit, XDfeMix_Trigger::TuserEdgeLevel, and XDFEMIX_STATE_NOT_READY.

u32 XDfeMix_GetTUserDelay ( const XDfeMix InstancePtr)

Reads the delay, which will be added to TUSER and TLAST (delay matched through the IP).

Parameters
InstancePtrPointer to the Mixer instance.
Returns
Delay value
void XDfeMix_GetVersions ( const XDfeMix InstancePtr,
XDfeMix_Version SwVersion,
XDfeMix_Version HwVersion 
)

This API gets the driver and HW design version.

Parameters
SwVersionDriver version number.
HwVersionHW version number.

References XDfeMix_Version::Major, XDfeMix_Version::Minor, XDfeMix_Version::Patch, XDfeMix_Version::Revision, XDfeMix::StateId, XDFEMIX_DRIVER_VERSION_MAJOR, XDFEMIX_DRIVER_VERSION_MINOR, and XDFEMIX_STATE_NOT_READY.

Referenced by XDfeMix_AddCCExample(), XDfeMix_MultiAddCCExample(), and XDfeMix_SelfTestExample().

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.

Parameters
InstancePtrPointer to the Mixer instance.
InitInitialisation data container.

References XDfeMix::Config, XDfeMix_CCSequence::Length, XDfeMix_Config::Mode, XDfeMix::NotUsedCCID, XDfeMix::NotUsedCCID_UL, XDfeMix_Init::Sequence, XDfeMix::SequenceLength, XDfeMix::StateId, XDfeMix_Init::TuserSelect, XDfeMix_SetRegBank(), XDFEMIX_STATE_CONFIGURED, and XDFEMIX_STATE_INITIALISED.

Referenced by XDfeMix_AddCCExample(), XDfeMix_MultiAddCCExample(), and XDfeMix_SelfTestExample().

void XDfeMix_InstanceClose ( XDfeMix InstancePtr)

API closes the instance of a Mixer driver and moves the state machine to a Not Ready state.

Parameters
InstancePtrPointer to the Mixer instance.

References XDfeMix::Device, XDfeMix::NodeName, XDfeMix::StateId, and XDFEMIX_STATE_NOT_READY.

Referenced by XDfeMix_AddCCExample(), XDfeMix_MultiAddCCExample(), and XDfeMix_SelfTestExample().

XDfeMix * XDfeMix_InstanceInit ( const char *  DeviceNodeName)

API initialises one instance of a Mixer driver.

Traverses "/sys/bus/platform/device" directory (in Linux), to find registered XDfeMix device with the name DeviceNodeName. The first available slot in the instances array XDfeMix_Mixer[] will be taken as a DeviceNodeName object. On success it moves the state machine to a Ready state, while on failure stays in a Not Ready state.

Parameters
DeviceNodeNameDevice node name.
Returns
  • Pointer to the instance if successful.
  • NULL on error.

References XDfeMix::Device, XDfeMix::NodeName, XDfeMix::StateId, XDFEMIX_NODE_NAME_MAX_LENGTH, XDFEMIX_STATE_NOT_READY, XDFEMIX_STATE_READY, XST_FAILURE, and XST_SUCCESS.

Referenced by XDfeMix_AddCCExample(), XDfeMix_MultiAddCCExample(), and XDfeMix_SelfTestExample().

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.

Initiates CC update (enable CCUpdate trigger TUSER Single Shot).

Parameters
InstancePtrPointer to the Mixer instance.
CCIDChannel ID, range [0-15].
RateNCO rate value [1,2,4].
FromNCONCO value moving from, range [0-7].
ToNCONCO value moving to, range [0-7].
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.
Note
Clear event status with XDfeMix_ClearEventStatus() before running this API.
For ARCH4/5 mode see XDfeMix_AddCCtoCCCfg() comment.
Attention
: This API is deprecated in the release 2023.2. Source code will be removed from in the release 2024.1 release. The functionality of this API can be reproduced with the following API sequence: XDfeMix_GetCurrentCCCfg(InstancePtr, CCCfg); XDfeMix_RemoveCCfromCCCfg(InstancePtr, CCCfg, CCID); XDfeMix_AddCCtoCCCfg(InstancePtr, CCCfg, CCID, CCSeqBitmap, CarrierCfg, NCO); XDfeMix_SetNextCCCfgAndTrigger(InstancePtr, CCCfg);

References XDfeMix::Config, XDfeMix_Config::MaxUseableCcids, XDfeMix_CCSequence::NotUsedCCID, XDfeMix::NotUsedCCID, XDfeMix_CCCfg::Sequence, XDfeMix::StateId, XDfeMix_GetCurrentCCCfg(), XDFEMIX_STATE_OPERATIONAL, XST_FAILURE, and XST_SUCCESS.

int XDfeMix_MultiAddCCExample ( )

This example configures Mixer driver for one CC with multiAddCC APIs.

This function does the following tasks:

  • Create and system initialize the device driver instance.
  • Read SW and HW version numbers.
  • Reset the device.
  • Configure the device.
  • Initialize the device.
  • Set the triggers
  • Activate the device.
  • Get current configuration.
  • Add CC.
  • Trigger configuration update.
  • DeActivate the device.
Returns
  • XST_SUCCESS if the example has completed successfully.
  • XST_FAILURE if the example has failed.//! [testexample2]

References XDfeMix_TriggerCfg::Activate, XDfeMix_DUCDDCCfg::CCGain, XDfeMix_Status::CCSequenceError, XDfeMix_TriggerCfg::CCUpdate, XDfeMix_Status::CCUpdate, XDfeMix::Config, XDfeMix_CarrierCfg::DUCDDCCfg, XDfeMix_Status::DUCDDCOverflow, XDfeMix_NCO::FrequencyCfg, XDfeMix_Frequency::FrequencyControlWord, XDfeMix_CCSequence::Length, XDfeMix_Version::Major, XDfeMix_Config::MaxUseableCcids, XDfeMix_Version::Minor, XDfeMix_Status::MixerOverflow, XDfeMix_Trigger::Mode, XDfeMix_NCO::NCOGain, XDfeMix_DUCDDCCfg::NCOIdx, XDfeMix_Version::Patch, XDfeMix_Version::Revision, XDfeMix_Init::Sequence, XDfeMix_Frequency::TriggerUpdateFlag, XDfeMix_Trigger::TUSERBit, XDfeMix_Trigger::TuserEdgeLevel, XDfeMix_Init::TuserSelect, XDfeMix_Activate(), XDfeMix_AddCCtoCCCfg(), XDfeMix_ClearEventStatus(), XDfeMix_Configure(), XDfeMix_Deactivate(), XDfeMix_GetCurrentCCCfg(), XDfeMix_GetVersions(), XDfeMix_Initialize(), XDfeMix_InstanceClose(), XDfeMix_InstanceInit(), XDfeMix_Reset(), XDfeMix_SetAntennaGain(), XDfeMix_SetNextCCCfgAndTrigger(), XDfeMix_SetTriggersCfg(), XST_FAILURE, and XST_SUCCESS.

Referenced by main().

void XDfeMix_RemoveAuxNCOfromCCCfg ( XDfeMix InstancePtr,
XDfeMix_CCCfg CCCfg,
const s32  AuxId 
)

Disables specified auxiliary NCO configuration structure.

Parameters
InstancePtrPointer to the Mixer instance.
CCCfgComponent carrier (CC) configuration container.
AuxIdAuxiliary NCO ID to be disabled, range [0-3].
Note
For a sequence conversion see XDfeMix_AddCCtoCCCfg() comment.

References XDfeMix_CCCfg::AuxiliaryCfg, and XDfeMix_AuxiliaryCfg::Enable.

u32 XDfeMix_RemoveCC ( XDfeMix InstancePtr,
s32  CCID 
)

Removes specified CCID.

Initiates CC update (enable CCUpdate trigger TUSER Single Shot).

Parameters
InstancePtrPointer to the Mixer instance.
CCIDChannel ID, range [0-15].
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.
Note
Clear event status with XDfeMix_ClearEventStatus() before running this API.
Attention
: This API is deprecated in the release 2023.2. Source code will be removed from in the release 2024.1 release. The functionality of this API can be reproduced with the following API sequence: XDfeMix_GetCurrentCCCfg(InstancePtr, CCCfg); XDfeMix_RemoveCCfromCCCfg(InstancePtr, CCCfg, CCID); XDfeMix_SetNextCCCfgAndTrigger(InstancePtr, CCCfg);

References XDfeMix_CCCfg::DUCDDCCfg, XDfeMix_CCSequence::NotUsedCCID, XDfeMix::NotUsedCCID, XDfeMix_InternalDUCDDCCfg::Rate, XDfeMix_CCCfg::Sequence, XDfeMix::StateId, XDfeMix_GetCurrentCCCfg(), XDFEMIX_STATE_OPERATIONAL, XST_FAILURE, and XST_SUCCESS.

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.

Parameters
InstancePtrPointer to the Mixer instance.
CCCfgComponent carrier (CC) configuration container.
CCIDChannel ID to be removed, range [0-15].
Note
For a sequence conversion see XDfeMix_AddCCtoCCCfg() comment.

References XDfeMix_CCCfg::DUCDDCCfg, XDfeMix_InternalDUCDDCCfg::Rate, and XDfeMix_CCCfg::Sequence.

void XDfeMix_Reset ( XDfeMix InstancePtr)

Resets Mixer and puts block into a reset state.

Parameters
InstancePtrPointer to the Mixer instance.

References XDfeMix::StateId, XDFEMIX_STATE_NOT_READY, and XDFEMIX_STATE_RESET.

Referenced by XDfeMix_AddCCExample(), XDfeMix_MultiAddCCExample(), and XDfeMix_SelfTestExample().

void XDfeMix_SetAntennaCfgInCCCfg ( const XDfeMix InstancePtr,
XDfeMix_CCCfg CCCfg,
XDfeMix_AntennaCfg AntennaCfg 
)

Set antenna configuration in CC configuration container.

Parameters
InstancePtrPointer to the Mixer instance.
CCCfgCC configuration container.
AntennaCfgArray of all antenna configurations.

References XDfeMix_CCCfg::AntennaCfg.

u32 XDfeMix_SetAntennaGain ( XDfeMix InstancePtr,
u32  AntennaId,
u32  AntennaGain 
)

Sets antenna gain.

Initiates CC update (enable CCUpdate trigger TUSER Single Shot). Applies gain to downlink only in switchable mode.

Parameters
InstancePtrPointer to the Mixer instance.
AntennaIdAntenna ID, range [0-7].
AntennaGainAntenna gain, 0 for -6dB and 1 for 0dB.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.
Note
Clear event status with XDfeMix_ClearEventStatus() before running this API.

References XDfeMix_CCCfg::AntennaCfg, XDfeMix::Config, XDfeMix_AntennaCfg::Gain, XDfeMix_Config::Mode, XDFEMIX_ANT_NUM_MAX, XDfeMix_GetCurrentCCCfg(), XDfeMix_GetCurrentCCCfgSwitchable(), and XDfeMix_SetNextCCCfgAndTriggerSwitchable().

Referenced by XDfeMix_AddCCExample(), and XDfeMix_MultiAddCCExample().

void XDfeMix_SetInterruptMask ( const XDfeMix InstancePtr,
const XDfeMix_InterruptMask Mask 
)

Sets interrupt mask.

Parameters
InstancePtrPointer to the Mixer instance.
MaskInterrupt mask flags container.
  • 0 - does not mask corresponding interrupt
  • 1 - masks corresponding interrupt

References XDfeMix_Status::CCSequenceError, XDfeMix_Status::CCUpdate, XDfeMix_Status::CCUpdateError, XDfeMix_Status::DUCDDCOverflow, XDfeMix_Status::LowPower, XDfeMix_Status::LowPowerError, XDfeMix_Status::MixerOverflow, XDfeMix_Status::Switchable, and XDfeMix_Status::SwitchableError.

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.

Parameters
InstancePtrPointer to the Mixer instance.
CCCfgCC configuration container.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.

References XDfeMix_CCSequence::NotUsedCCID, XDfeMix::NotUsedCCID, XDfeMix_CCCfg::Sequence, XST_FAILURE, and XST_SUCCESS.

Referenced by XDfeMix_MultiAddCCExample().

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.

Parameters
InstancePtrPointer to the Ccf instance.
CCCfgDownlinkDownlink CC configuration container.
CCCfgUplinkUplink CC configuration container.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.

References XDfeMix::Config, XDfeMix_Config::Mode, XDfeMix_CCSequence::NotUsedCCID, XDfeMix::NotUsedCCID, XDfeMix::NotUsedCCID_UL, XDfeMix_CCCfg::Sequence, XDfeMix_SetRegBank(), XST_FAILURE, and XST_SUCCESS.

Referenced by XDfeMix_SetAntennaGain(), and XDfeMix_UpdateAntennaCfg().

void XDfeMix_SetRegBank ( const XDfeMix InstancePtr,
u32  RegBank 
)

Enables uplink or downlink register bank.

Parameters
InstancePtrPointer to the Channel Filter instance.
RegBankRegister bank value to be set.

Referenced by XDfeMix_GetCurrentCCCfgSwitchable(), XDfeMix_Initialize(), and XDfeMix_SetNextCCCfgAndTriggerSwitchable().

void XDfeMix_SetTriggersCfg ( const XDfeMix InstancePtr,
XDfeMix_TriggerCfg TriggerCfg 
)

Sets trigger configuration.

In switchable mode ignors LOW_POWER triggers as they are not used, instead sets SWITCH trigger configurations.

Parameters
InstancePtrPointer to the Mixer instance.
TriggerCfgTrigger configuration container.

References XDfeMix_TriggerCfg::Activate, XDfeMix_TriggerCfg::CCUpdate, XDfeMix::Config, XDfeMix_TriggerCfg::LowPower, XDfeMix_Trigger::Mode, XDfeMix_Config::Mode, XDfeMix::StateId, XDfeMix_Trigger::StateOutput, XDfeMix_TriggerCfg::Switch, XDfeMix_Trigger::TriggerEnable, XDfeMix_Trigger::TUSERBit, XDfeMix_Trigger::TuserEdgeLevel, and XDFEMIX_STATE_INITIALISED.

Referenced by XDfeMix_AddCCExample(), and XDfeMix_MultiAddCCExample().

void XDfeMix_SetTUserDelay ( const XDfeMix InstancePtr,
u32  Delay 
)

Sets the delay, which will be added to TUSER and TLAST (delay matched through the IP).

Parameters
InstancePtrPointer to the Mixer instance.
DelayRequested delay variable.

References XDfeMix::StateId, and XDFEMIX_STATE_INITIALISED.

u32 XDfeMix_UpdateAntennaCfg ( XDfeMix InstancePtr,
XDfeMix_AntennaCfg AntennaCfg 
)

Updates antenna configuration of all antennas.

Applies gain to downlink only in switchable mode.

Parameters
InstancePtrPointer to the Mixer instance.
AntennaCfgArray of all antenna configurations.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.
Note
Clear event status with XDfeMix_ClearEventStatus() before running this API.

References XDfeMix_CCCfg::AntennaCfg, XDfeMix::Config, XDfeMix_Config::Mode, XDfeMix_GetCurrentCCCfg(), XDfeMix_GetCurrentCCCfgSwitchable(), and XDfeMix_SetNextCCCfgAndTriggerSwitchable().

u32 XDfeMix_UpdateCC ( XDfeMix InstancePtr,
s32  CCID,
const XDfeMix_CarrierCfg CarrierCfg 
)

Updates specified CCID, with a configuration defined in CarrierCfg structure.

If there is insufficient capacity for the new CC the function will return an error.

Parameters
InstancePtrPointer to the Mixer instance.
CCIDChannel ID, range [0-15].
CarrierCfgCC configuration container.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.
Note
Clear event status with XDfeMix_ClearEventStatus() before running this API.
For ARCH4/5 mode see XDfeMix_AddCCtoCCCfg() comment.
Attention
: This API is deprecated in the release 2023.2. Source code will be removed from in the release 2024.1 release. The functionality of this API can be reproduced with the following API sequence: XDfeMix_GetCurrentCCCfg(InstancePtr, CCCfg); XDfeMix_UpdateCCinCCCfg(InstancePtr, CCCfg, CCID, CarrierCfg); XDfeMix_SetNextCCCfgAndTrigger(InstancePtr, CCCfg);

References XDfeMix_InternalDUCDDCCfg::CCGain, XDfeMix_DUCDDCCfg::CCGain, XDfeMix_CarrierCfg::DUCDDCCfg, XDfeMix_CCCfg::DUCDDCCfg, XDfeMix_InternalDUCDDCCfg::NCOIdx, XDfeMix_DUCDDCCfg::NCOIdx, XDfeMix_CCSequence::NotUsedCCID, XDfeMix::NotUsedCCID, XDfeMix_CCCfg::Sequence, XDfeMix::StateId, XDfeMix_GetCurrentCCCfg(), XDFEMIX_STATE_OPERATIONAL, XST_FAILURE, and XST_SUCCESS.

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.

If there is insufficient capacity for the new CC the function will return an error.

Parameters
InstancePtrPointer to the Mixer instance.
CCCfgComponent carrier (CC) configuration container.
CCIDChannel ID to be updated, range [0-15].
CarrierCfgCC configuration container.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.
Note
For ARCH4/5 mode see XDfeMix_AddCCtoCCCfg() comment.

References XDfeMix_CarrierCfg::DUCDDCCfg, XDfeMix_DUCDDCCfg::NCOIdx, XST_FAILURE, and XST_SUCCESS.