mmidp
Vitis Drivers API Documentation
xmmidp.h File Reference

Overview

MODIFICATION HISTORY:
Ver   Who  Date     Changes


1.0 ck 03/14/25 Initial Release.

Data Structures

struct  XMmiDp_MainStreamAttributes
 This typedef contains the main stream attributes which determine how the video will be displayed. More...
 
struct  XMmiDp_VideoConfig
 typedef contains VideoConfig values More...
 
struct  XMmiDp
 The XMmiDp driver instance data. More...
 

Enumerations

enum  XMmiDp_PhyLanes
 This typedef describes PHY LANES. More...
 
enum  XMmiDp_PhyRate
 This typedef describes PHY RATE. More...
 
enum  XMmiDp_PhyTrainingPattern
 This typedef describes PHY TrainingPattern. More...
 
enum  XMmiDp_PhyVSwing
 This typedef describes PHY VSWING Level. More...
 
enum  XMmiDp_PhyPreEmp
 This typedef describes PHY PREEMP Level. More...
 
enum  XMmiDp_PhyXmitEn
 This typedef describes PHY XMIT ENABLE. More...
 
enum  XMmiDp_PhyBusy
 This typedef describes PHY BUSY. More...
 
enum  XMmiDp_PhyPwrDown
 This typedef describes PHY POWERDOWN CTRL. More...
 
enum  XMmiDp_PhyWidth
 This typedef describes PHY POWERDOWN CTRL. More...
 
enum  XMmiDp_TrainingState
 This typedef enumerates the list of training states used in the state machine during the link training process. More...
 
enum  XMmiDp_PPC
 This typedef describes Pixels per Clk. More...
 
enum  XMmiDp_VidMap
 This typedef gets Video Input mapping. More...
 

Functions

void XMmiDp_CfgInitialize (XMmiDp *InstancePtr, u32 BaseAddr)
 This function intializes the configuration for the XMmiDp Instance. More...
 
void XMmiDp_Initialize (XMmiDp *InstancePtr)
 This function Initializes the XMmiDp Instance structure. More...
 
u32 XMmiDp_AuxWrite (XMmiDp *InstancePtr, u32 DpcdAddr, u32 Bytes, void *Data)
 This function issues a write request over the AUX channel that will write to the RX device's DisplayPort Configuration Data (DPCD) address space. More...
 
u32 XMmiDp_AuxRead (XMmiDp *InstancePtr, u32 DpcdAddr, u32 Bytes, void *Data)
 This function issues a read request over the AUX channel that will read from the RX device's DisplayPort Configuration Data (DPCD) address space. More...
 
u32 XMmiDp_I2cWrite (XMmiDp *InstancePtr, u32 I2cAddr, u32 Bytes, void *Data)
 This function performs an I2C write over the AUX channel. More...
 
u32 XMmiDp_I2cRead (XMmiDp *InstancePtr, u32 I2cAddr, u16 Offset, u32 Bytes, void *Data)
 This function performs an I2C read over the AUX channel. More...
 
void XMmiDp_RegReadModifyWrite (XMmiDp *InstancePtr, u32 RegOffset, u32 Mask, u32 Shift, u32 Val)
 This helper api reads value from register, computes the new value and writes to the register. More...
 
void XMmiDp_DpcdReadModifyWrite (XMmiDp *InstancePtr, u32 RegOffset, u32 Mask, u32 Shift, u32 Val)
 This helper api reads value from DPCD, computes the new value and writes to the DPCD register. More...
 
void XMmiDp_SetPhyLaneCount (XMmiDp *InstancePtr, XMmiDp_PhyLanes)
 This function sets the number of lanes to be used by the main link for both the DisplayPort TX core and the RX device. More...
 
void XMmiDp_SetPhyLinkRate (XMmiDp *InstancePtr, XMmiDp_PhyRate LinkRate)
 This function sets the data rate to be used by the main link for both the DisplayPort TX core and the RX device. More...
 
void XMmiDp_SetPhyTrainingPattern (XMmiDp *InstancePtr, XMmiDp_PhyTrainingPattern TrainingPattern)
 This function sets the training pattern to be used by the main link for both the DisplayPort TX core and the RX device. More...
 
void XMmiDp_SetPhyVoltageSwing (XMmiDp *InstancePtr, u8 *VsLevel)
 This function sets the VoltageSwing levels in the DisplayPort TX core. More...
 
void XMmiDp_SetPhyPreEmphasis (XMmiDp *InstancePtr, u8 *PeLevel)
 This function sets the VoltagePreEmphasis levels for the DisplayPort TX PHY. More...
 
void XMmiDp_SetPhyXmitEnable (XMmiDp *InstancePtr)
 This function enables phy transfer for lanes. More...
 
void XMmiDp_SetPhyXmitDisable (XMmiDp *InstancePtr)
 This function disables phy transfer for lanes. More...
 
void XMmiDp_PhyScrambleEnable (XMmiDp *InstancePtr)
 This function enables phy scrambler over the main link through CCTL register. More...
 
void XMmiDp_PhyScrambleDisable (XMmiDp *InstancePtr)
 This function disable phy scrambler. More...
 
void XMmiDp_PhySoftReset (XMmiDp *InstancePtr)
 This function does a PHY Soft reset. More...
 
void XMmiDp_PhySSCEnable (XMmiDp *InstancePtr)
 This function enables SSC on the PHY. More...
 
void XMmiDp_PhySSCDisable (XMmiDp *InstancePtr)
 This function disables SSC on the PHY. More...
 
u32 XMmiDp_PhyWaitReady (XMmiDp *InstancePtr)
 This function waits for the DisplayPort PHY to come out of reset. More...
 
void XMmiDp_SetPhyPowerdown (XMmiDp *InstancePtr, XMmiDp_PhyPwrDown Control)
 This function sets the phy powerdown control val. More...
 
void XMmiDp_SetPhyWidth (XMmiDp *InstancePtr, XMmiDp_PhyWidth Width)
 This function sets the phy width control val. More...
 
void XMmiDp_SetAux_250Us_Cnt_Limit (XMmiDp *InstancePtr, u16 Limit)
 This function sets the AUX_250US_CNT_LIMIT. More...
 
void XMmiDp_SetAux_2000Us_Cnt_Limit (XMmiDp *InstancePtr, u16 Limit)
 This function sets the AUX_2000US_CNT_LIMIT. More...
 
void XMmiDp_SetAux_100000Us_Cnt_Limit (XMmiDp *InstancePtr, u16 Limit)
 This function sets the AUX_100000US_CNT_LIMIT. More...
 
void XMmiDp_SetPmConfig1 (XMmiDp *InstancePtr, u32 Val)
 This function sets PM_COFIG1 register. More...
 
void XMmiDp_SetPmConfig2 (XMmiDp *InstancePtr, u32 Val)
 This function sets PM_COFIG2 register. More...
 
u32 XMmiDp_IsConnected (XMmiDp *InstancePtr)
 This function checks if there is a connected RX device. More...
 
void XMmiDp_SetHpdIrqHandler (XMmiDp *InstancePtr, XMmiDp_HpdIrqHandler CallbackFun, void *CallbackRef)
 This function installs a callback function for when a hpd irq event interrupt occurs. More...
 
void XMmiDp_SetHpdHotPlugHandler (XMmiDp *InstancePtr, XMmiDp_HpdHotPlugHandler CallbackFun, void *CallbackRef)
 This function installs a callback function for when a hpd hotplug interrupt occurs. More...
 
void XMmiDp_HpdInterruptHandler (XMmiDp *InstancePtr)
 This function is the HPD Event interrupt handler for the XMmiDp driver. More...
 
u32 XMmiDp_GetEdidBlock (XMmiDp *InstancePtr, u8 *Data, u8 BlockNum)
 This function retrieves connected RX devices Extended Display Identification given the block number. More...
 
void XMmiDp_GeneralInterruptEnable (XMmiDp *InstancePtr, u32 Mask)
 This function enables XMMIDP_GENERAL_INTERRUPT_0 bits based on the mask. More...
 
void XMmiDp_HpdInterruptEnable (XMmiDp *InstancePtr, u32 Mask)
 This function enables XMMIDP_HPD_INTERRUPT_ENABLE bits based on the mask. More...
 
void XMmiDp_SetDpcdLaneCount (XMmiDp *InstancePtr)
 This function sets the number of lanes to be used by the main link for both the DisplayPort TX core and the RX device. More...
 
void XMmiDp_SetDpcdLinkRate (XMmiDp *InstancePtr)
 This function sets the dpcd link bw to be used by the main link for both the DisplayPort TX core and the RX device. More...
 
void XMmiDp_SetDpcdLinkQualPattern (XMmiDp *InstancePtr, XMmiDp_PhyTrainingPattern Pattern)
 This function sets the DPCD Link qual_0 training pattern to be used by the main link for both the DisplayPort TX core and the RX device. More...
 
void XMmiDp_SetDpcdTrainingPattern (XMmiDp *InstancePtr, XMmiDp_PhyTrainingPattern Pattern)
 This function sets the DPCD training pattern to be used by the main link for both the DisplayPort TX core and the RX device. More...
 
void XMmiDp_SetDpcdVoltageSwing (XMmiDp *InstancePtr, XMmiDp_PhyVSwing *VsLevel)
 This function sets the DPCD VoltageSwing levels int the DisplayPort TX core. More...
 
void XMmiDp_SetDpcdPreEmphasis (XMmiDp *InstancePtr, XMmiDp_PhyPreEmp *PeLevel)
 This function sets the DPCD VoltagePreEmphasis levels for the DisplayPort TX PHY. More...
 
u32 XMmiDp_GetRxMaxLaneCount (XMmiDp *InstancePtr)
 This function gets the max lane count supported from DPCD. More...
 
u32 XMmiDp_GetRxMaxLinkRate (XMmiDp *InstancePtr)
 This function gets the max link rate supported from Rx DPCD register. More...
 
u32 XMmiDp_SetSinkDpcdLinkCfgField (XMmiDp *InstancePtr)
 This function configures DPCD Rx Field. More...
 
void XMmiDp_GetDpcdTrainingAuxRdInterval (XMmiDp *InstancePtr)
 This function reads Training Aux Read Interval register of sink DPCD. More...
 
u32 XMmiDp_GetDpcdLaneStatusAdjReqs (XMmiDp *InstancePtr)
 This function will do a burst AUX read from the RX device over the AUX channel. More...
 
void XMmiDp_FastLinkTrainEnable (XMmiDp *InstancePtr)
 This function enables fast link training in the core controller. More...
 
void XMmiDp_FastLinkTrainDisable (XMmiDp *InstancePtr)
 This function disables fast link training in the core controller. More...
 
u32 XMmiDp_StartLinkXmit (XMmiDp *InstancePtr)
 This function initates link training sequence with the Rx. More...
 
void XDpPSu14_EnableCctlEnhanceFraming (XMmiDp *InstancePtr)
 This function configures CCTL enhance framing enable bit. More...
 
void XDpPSu14_DisableCctlEnhanceFraming (XMmiDp *InstancePtr)
 This function configures CCTL enhance framing enable bit. More...
 
u32 XMmiDp_GetTrainingDelay (XMmiDp *InstancePtr)
 This function returngs the training aux interval. More...
 
u32 XMmiDp_CheckClockRecovery (XMmiDp *InstancePtr, u8 LaneCount)
 This function checks if the RX device's DisplayPort Configuration Data (DPCD) indicates that the clock recovery sequence during link training was successful - the RX device's link clock and data recovery unit has realized and maintained the frequency lock for all lanes currently in use. More...
 
u32 XMmiDp_AdjVswingPreemp (XMmiDp *InstancePtr)
 This function reads the adjusted voltage swing and pre-emphasis level settings from the Rx DPCD register and modify the drive settings accordingly during link training. More...
 
u32 XMmiDp_SetTrainingPattern (XMmiDp *InstancePtr, XMmiDp_PhyTrainingPattern Pattern)
 This function sets the training pattern to be used during link training for both the DisplayPort TX core and the RX device. More...
 
void XMmiDp_SetVswingPreemp (XMmiDp *InstancePtr, u8 *AuxData)
 This function sets current voltage swing and pre-emphasis level settings from the LinkConfig structure to Phy and DPCD. More...
 
u32 XMmiDp_SetLinkRate (XMmiDp *InstancePtr, XMmiDp_PhyRate LinkRate)
 This function sets the Rx Dpcd link rate as well as Phy link rate. More...
 
void XMmiDp_SetLaneCount (XMmiDp *InstancePtr, XMmiDp_PhyLanes LaneCount)
 This function sets the Rx Dpcd lane count as well as Phy lane count. More...
 
XMmiDp_TrainingState XMmiDp_TrainingStateClockRecovery (XMmiDp *InstancePtr)
 This function runs the clock recovery sequence as part of link training. More...
 
XMmiDp_TrainingState XMmiDp_TrainingStateAdjustLinkRate (XMmiDp *InstancePtr)
 This function is reached if either the clock recovery or the channel equalization process failed during training. More...
 
XMmiDp_TrainingState XMmiDp_TrainingStateAdjustLaneCount (XMmiDp *InstancePtr)
 This function is reached if either the clock recovery or the channel equalization process failed during training, and a minimal data rate of 1.62 Gbps was being used. More...
 
void XMmiDp_GetDpcdMaxDownspread (XMmiDp *InstancePtr)
 This function reads Rx DPCD MaxDownspread register bits. More...
 
void XMmiDp_GetDpcdRev (XMmiDp *InstancePtr)
 This function reads Rx DPCD revision number. More...
 
u32 XMmiDp_GetRxCapabilities (XMmiDp *InstancePtr)
 This function reads Rx DPCD capability registers to initiate link training. More...
 
u32 XMmiDp_CheckChannelEqualization (XMmiDp *InstancePtr, u8 LaneCount)
 This function checks if the RX device's DisplayPort Configuration Data (DPCD) indicates that the channel equalization sequence during link training was successful - the RX device has achieved channel equalization, symbol lock, and interlane alignment for all lanes currently in use. More...
 
XMmiDp_TrainingState XMmiDp_TrainingStateChannelEqualization (XMmiDp *InstancePtr)
 This function runs the channel equalization sequence as part of link training. More...
 
u32 XMmiDp_CheckLinkStatus (XMmiDp *InstancePtr, u8 LaneCount)
 This function checks if the Rx DisplayPort Configuration Data (DPCD) indicates the receiver has achieved and maintained clock recovery, channel equalization, symbol lock, and interlane alignment for all lanes currently in use. More...
 
u32 XMmiDp_RunTraining (XMmiDp *InstancePtr)
 This function runs the link training process. More...
 
void XMmiDp_WaitUs (XMmiDp *InstancePtr, u32 MicroSeconds)
 This function is the delay/sleep function for the XMmiDp driver. More...
 
void XMmiDp_DisableVideoStream (XMmiDp *InstancePtr, u8 Stream)
 This function disables video stream. More...
 
void XMmiDp_EnableVideoStream (XMmiDp *InstancePtr, u8 Stream)
 This function enabless video stream. More...
 
void XMmiDp_ClearMsaValues (XMmiDp *InstancePtr, u8 Stream)
 This function clears MSA values. More...
 
void XMmiDp_ClearVideoConfigValues (XMmiDp *InstancePtr, u8 Stream)
 This function clears out Video Config Register values. More...
 
void XMmiDp_SetVInputPolarityCtrl (XMmiDp *InstancePtr, u8 Stream)
 This function sets the video input polarity control. More...
 
void XMmiDp_SetVideoConfig1 (XMmiDp *InstancePtr, u8 Stream)
 This function sets the video config1 register. More...
 
void XMmiDp_SetVideoConfig2 (XMmiDp *InstancePtr, u8 Stream)
 This function sets the video config2 register. More...
 
void XMmiDp_SetVideoConfig3 (XMmiDp *InstancePtr, u8 Stream)
 This function sets the video config3 register. More...
 
void XMmiDp_SetVideoConfig4 (XMmiDp *InstancePtr, u8 Stream)
 This function sets the video config4 register. More...
 
void XMmiDp_SetVideoConfig5 (XMmiDp *InstancePtr, u8 Stream)
 This function sets the video config5 register. More...
 
void XMmiDp_SetVSampleCtrl (XMmiDp *InstancePtr, u8 Stream)
 This function sets the vsample register. More...
 
void XMmiDp_SetVideoMsa1 (XMmiDp *InstancePtr, u8 Stream)
 This function sets video msa1 register. More...
 
void XMmiDp_SetVideoMsa2 (XMmiDp *InstancePtr, u8 Stream)
 This function sets video msa2 register. More...
 
void XMmiDp_SetVideoMsa3 (XMmiDp *InstancePtr, u8 Stream)
 This function sets video msa3 register. More...
 
void XMmiDp_SetHBlankInterval (XMmiDp *InstancePtr, u8 Stream)
 This function sets video HBlankInterval register. More...
 
void XMmiDp_ConfigureVideoController (XMmiDp *InstancePtr, u8 Stream)
 This is helper api that programs the VideoController MSA, VideoConfig registers for a specific stream. More...
 
void XMmiDp_ClearVideoController (XMmiDp *InstancePtr)
 This is helper api that clears the VideoController MSA, VideoConfig registers for a specific stream. More...
 
void XMmiDp_SetMsaBpc (XMmiDp *InstancePtr, u8 Stream, u8 BitsPerColor)
 This function sets the bits per color value of the video stream. More...
 
void XMmiDp_SetPixModeSel (XMmiDp *InstancePtr, u8 Stream, XMmiDp_PPC PixModeSel)
 This function sets the pixel mode of the video stream. More...
 
void XMmiDp_SetVideoMapping (XMmiDp *InstancePtr, u8 Stream, XMmiDp_VidMap VidMap)
 This function sets the video format of the video stream. More...
 
void XMmiDp_SetVidStreamEnable (XMmiDp *InstancePtr, u8 Stream, u8 StreamEnable)
 This function sets the video stream to enable or disable. More...
 

Enumeration Type Documentation

This typedef describes PHY BUSY.

This typedef describes PHY LANES.

This typedef describes PHY PREEMP Level.

This typedef describes PHY POWERDOWN CTRL.

This typedef describes PHY RATE.

This typedef describes PHY TrainingPattern.

This typedef describes PHY VSWING Level.

This typedef describes PHY POWERDOWN CTRL.

This typedef describes PHY XMIT ENABLE.

enum XMmiDp_PPC

This typedef describes Pixels per Clk.

This typedef enumerates the list of training states used in the state machine during the link training process.

This typedef gets Video Input mapping.