| dfemix Vitis Drivers API Documentation

- Overview
- Data Structures
- APIs
- File List
- Examples

Data Structures | Macros | Enumerations | Functions
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
XDfeMix * | XDfeMix_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.

#define XST_FAILURE (1U)

Failure flag.

Referenced by main(), XDfeMix_AddCC(), XDfeMix_AddCCExample(), XDfeMix_AddCCtoCCCfg(), XDfeMix_InstanceInit(), XDfeMix_MoveCC(), XDfeMix_MultiAddCCExample(), XDfeMix_RemoveCC(), XDfeMix_SelfTestExample(), XDfeMix_SetNextCCCfgAndTrigger(), XDfeMix_SetNextCCCfgAndTriggerSwitchable(), XDfeMix_UpdateCC(), XDfeMix_UpdateCCinCCCfg(), and XDfeSi570_SetMgtOscillator().

#define XST_SUCCESS (0U)

Success flag.

Referenced by main(), XDfeMix_AddCC(), XDfeMix_AddCCExample(), XDfeMix_AddCCtoCCCfg(), XDfeMix_GetCenterTap(), XDfeMix_GetTDataDelay(), XDfeMix_InstanceInit(), XDfeMix_MoveCC(), XDfeMix_MultiAddCCExample(), XDfeMix_RemoveCC(), XDfeMix_SelfTestExample(), XDfeMix_SetNextCCCfgAndTrigger(), XDfeMix_SetNextCCCfgAndTriggerSwitchable(), XDfeMix_UpdateCC(), XDfeMix_UpdateCCinCCCfg(), and XDfeSi570_SetMgtOscillator().

## Enumeration Type Documentation

enum XDfeMix_StateId

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

  InstancePtr | Pointer to the Mixer instance.
  EnableLowPower | Flag 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

  InstancePtr | Pointer to the Mixer instance.
  CCCfg | CC and Auxiliry NCO configuration container.
  AuxId | Auxiliary NCO ID to be disabled, range [0-3].
  NCO | NCO configuration container.
  AuxCfg | Auxiliary 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

  InstancePtr | Pointer to the Mixer instance.
  CCID | Channel 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.
  CarrierCfg | CC configuration container.
  NCO | NCO 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 | ( |  | ) |

This function runs the DFE Mixer device using the driver 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.
- Add CC.
- DeActivate the device.

Returns
  - XST_SUCCESS if the example has completed successfully.
  - XST_FAILURE if the example has failed.//! [testexample1]

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_AddCC(), XDfeMix_ClearEventStatus(), XDfeMix_Configure(), XDfeMix_Deactivate(), XDfeMix_GetVersions(), XDfeMix_Initialize(), XDfeMix_InstanceClose(), XDfeMix_InstanceInit(), XDfeMix_Reset(), XDfeMix_SetAntennaGain(), XDfeMix_SetTriggersCfg(), XST_FAILURE, and XST_SUCCESS.

Referenced by main().

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

  InstancePtr | Pointer to the Mixer instance.
  CCCfg | Component carrier (CC) configuration container.
  CCID | Channel ID to be added to configuration, range [0-15].
  CCSeqBitmap | CC slot position container.
  CarrierCfg | CC configuration container.
  NCO | NCO 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

  InstancePtr | Pointer to the Mixer instance.
  Status | Clear 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_Configure | ( | XDfeMix * | InstancePtr,
|  | XDfeMix_Cfg * | Cfg
| ) |  |

Reads configuration from device tree/xparameters.h and IP registers.

Removes S/W reset and moves the state machine to a Configured state.

Parameters

  InstancePtr | Pointer to the Mixer instance.
  Cfg | Configuration data container.

References XDfeMix_ModelParameters::AntennaInterleave, XDfeMix_Config::AntennaInterleave, XDfeMix::Config, XDfeMix_ModelParameters::DataIWidth, XDfeMix_Config::DataIWidth, XDfeMix_ModelParameters::DataOWidth, XDfeMix_Config::DataOWidth, XDfeMix_ModelParameters::Lanes, XDfeMix_Config::Lanes, XDfeMix_Version::Major, XDfeMix_ModelParameters::MaxUseableCcids, XDfeMix_Config::MaxUseableCcids, XDfeMix_Version::Minor, XDfeMix_ModelParameters::MixerCps, XDfeMix_Config::MixerCps, XDfeMix_ModelParameters::Mode, XDfeMix_Config::Mode, XDfeMix_Cfg::ModelParams, XDfeMix_ModelParameters::NumAntenna, XDfeMix_Config::NumAntenna, XDfeMix_ModelParameters::NumAuxiliary, XDfeMix_Config::NumAuxiliary, XDfeMix_Version::Patch, XDfeMix_Version::Revision, XDfeMix::StateId, XDfeMix_ModelParameters::TUserWidth, XDfeMix_Config::TUserWidth, XDfeMix_Cfg::Version, XDFEMIX_STATE_CONFIGURED, and XDFEMIX_STATE_RESET.

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

void XDfeMix_Deactivate | ( | XDfeMix * | InstancePtr | ) |

Deactivates triggers and moves the state machine to Initialised state.

Parameters

  InstancePtr | Pointer 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

  InstancePtr | Pointer to the Mixer instance.
  CCCfg | Component carrier (CC) configuration container.
  CCID | Channel ID for which configuration parameters are returned, range [0-15].
  CCSeqBitmap | CC slot position container.
  CarrierCfg | CC configuration container.
  NCO | NCO 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

  InstancePtr | Pointer to the Mixer instance.
  Rate | Interpolation/decimation rate index value [1-5].
  CenterTap | Returned 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

  InstancePtr | Pointer to the Mixer instance.
  CurrCCCfg | CC 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

  InstancePtr | Pointer to the Mixer instance.
  CCCfgDownlink | Downlink CC configuration container.
  CCCfgUplink | Uplink 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

  InstancePtr | Pointer to the Mixer instance.
  DUCDDCStatus | DUC/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

  InstancePtr | Pointer to the Mixer instance.
  CCCfg | CC 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
| ) |  |

Gets event status.

Parameters

  InstancePtr | Pointer to the Mixer instance.
  Status | Event status container.

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.

void XDfeMix_GetInterruptMask | ( | const XDfeMix * | InstancePtr,
|  | XDfeMix_InterruptMask * | Mask
| ) |  |

Gets interrupt mask status.

Parameters

  InstancePtr | Pointer to the Mixer instance.
  Mask | Interrupt masks container.

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.

void XDfeMix_GetMixerStatus | ( | const XDfeMix * | InstancePtr,
|  | XDfeMix_MixerStatus * | MixerStatus
| ) |  |

Gets Mixer overflow status.

Parameters

  InstancePtr | Pointer to the Mixer instance.
  MixerStatus | Mixer 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

  InstancePtr | Pointer 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

  InstancePtr | Pointer to the Mixer instance.
  Tap | Tap value.
  TDataDelay | Returned 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

  InstancePtr | Pointer to the Mixer instance.
  TriggerCfg | Trigger 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

  InstancePtr | Pointer 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

  SwVersion | Driver version number.
  HwVersion | HW 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

  InstancePtr | Pointer to the Mixer instance.
  Init | Initialisation 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

  InstancePtr | Pointer 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

  DeviceNodeName | Device 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

  InstancePtr | Pointer to the Mixer instance.
  CCID | Channel ID, range [0-15].
  Rate | NCO rate value [1,2,4].
  FromNCO | NCO value moving from, range [0-7].
  ToNCO | NCO 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

  InstancePtr | Pointer to the Mixer instance.
  CCCfg | Component carrier (CC) configuration container.
  AuxId | Auxiliary 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

  InstancePtr | Pointer to the Mixer instance.
  CCID | Channel 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

  InstancePtr | Pointer to the Mixer instance.
  CCCfg | Component carrier (CC) configuration container.
  CCID | Channel 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

  InstancePtr | Pointer 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

  InstancePtr | Pointer to the Mixer instance.
  CCCfg | CC configuration container.
  AntennaCfg | Array 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

  InstancePtr | Pointer to the Mixer instance.
  AntennaId | Antenna ID, range [0-7].
  AntennaGain | Antenna 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

  InstancePtr | Pointer to the Mixer instance.
  Mask | Interrupt 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

  InstancePtr | Pointer to the Mixer instance.
  CCCfg | CC 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

  InstancePtr | Pointer to the Ccf instance.
  CCCfgDownlink | Downlink CC configuration container.
  CCCfgUplink | Uplink 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

  InstancePtr | Pointer to the Channel Filter instance.
  RegBank | Register 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

  InstancePtr | Pointer to the Mixer instance.
  TriggerCfg | Trigger 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

  InstancePtr | Pointer to the Mixer instance.
  Delay | Requested 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

  InstancePtr | Pointer to the Mixer instance.
  AntennaCfg | Array 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

  InstancePtr | Pointer to the Mixer instance.
  CCID | Channel ID, range [0-15].
  CarrierCfg | CC 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

  InstancePtr | Pointer to the Mixer instance.
  CCCfg | Component carrier (CC) configuration container.
  CCID | Channel ID to be updated, range [0-15].
  CarrierCfg | CC 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.