dp12rxss
Vitis Drivers API Documentation
Overview

Data Structures

struct  XDpRxSs_UsrOpt
 User input structure. More...
 
struct  XDpRxSs_DpSubCore
 DisplayPort Sub-core structure. More...
 
struct  XDpRxSs_IicSubCore
 IIC Sub-core structure. More...
 
struct  XDpRxSs_Config
 This typedef contains configuration information for the DisplayPort Receiver Subsystem core. More...
 
struct  XDpRxSs
 The DisplayPort RX Subsystem driver instance data. More...
 
struct  XDpRxSs_Dp159Data
 DP159 data structure. More...
 

Macros

#define XDPRXSS_H_
 Prevent circular inclusions by using protection macros. More...
 
#define XDpRxSs_TimerHandler   XDp_TimerHandler
 Callback type which represents a custom timer wait handler. More...
 
#define XDpRxSs_DtgEnable(InstancePtr)   XDp_RxDtgEn((InstancePtr)->DpPtr)
 This function macro enables the display timing generator (DTG). More...
 
#define XDpRxSs_DtgDisable(InstancePtr)   XDp_RxDtgDis((InstancePtr)->DpPtr)
 This function macro disables the display timing generator (DTG). More...
 
#define XDpRxSs_AudioEnable(InstancePtr)   XDp_RxAudioEn((InstancePtr)->DpPtr)
 This function macro enables audio stream packets on the main link. More...
 
#define XDpRxSs_AudioDisable(InstancePtr)   XDp_RxAudioDis((InstancePtr)->DpPtr)
 This function macro disables audio stream packets on the main link. More...
 
#define XDpRxSs_AudioReset(InstancePtr)   XDp_RxAudioReset((InstancePtr)->DpPtr)
 This function macro resets the reception of audio stream packets on the main link. More...
 
#define XDpRxSs_WaitUs(InstancePtr, MicroSeconds)   XDp_WaitUs((InstancePtr)->DpPtr, MicroSeconds)
 This function macro is the delay/sleep function for the XDpRxSs driver. More...
 
#define XDPRXSS_DP159_IIC_SLAVE   0x5E
 DP159 slave device address. More...
 
#define XDPRXSS_DP159_RBR   0x06
 1.62 Gbps link rate More...
 
#define XDPRXSS_DP159_HBR   0x0A
 2.70 Gbps link rate More...
 
#define XDPRXSS_DP159_HBR2   0x14
 5.40 Gbps link rate More...
 
#define XDPRXSS_DP159_LANE_COUNT_1   1
 Lane count of 1. More...
 
#define XDPRXSS_DP159_LANE_COUNT_2   2
 Lane count of 2. More...
 
#define XDPRXSS_DP159_LANE_COUNT_4   4
 Lane count of 4. More...
 
#define XDPRXSS_DP159_CPI_PD_RBR   0x1F
 CPI pull down RBR. More...
 
#define XDPRXSS_DP159_CPI_PD_HBR   0x27
 CPI pull down HBR. More...
 
#define XDPRXSS_DP159_CPI_PD_HBR2   0x5F
 CPI pull down HBR2. More...
 
#define XDPRXSS_DP159_PLL_CTRL_PD_RBR   0x30
 PLL control pull down RBR. More...
 
#define XDPRXSS_DP159_PLL_CTRL_PD_HBR   0x30
 PLL control pull down HBR. More...
 
#define XDPRXSS_DP159_PLL_CTRL_PD_HBR2   0x30
 PLL control pull down HBR2. More...
 
#define XDPRXSS_DP159_EQ_LEV   8
 Equivalisation level. More...
 
#define XDPRXSS_DP159_LOCK_WAIT   512
 Lock wait value. More...
 
#define XDPRXSS_HW_H_
 Prevent circular inclusions by using protection macros. More...
 
#define XDPRXSS_LINK_BW_SET_162GBPS   XDP_RX_OVER_LINK_BW_SET_162GBPS
 1.62 Gbps link rate. More...
 
#define XDPRXSS_LINK_BW_SET_270GBPS   XDP_RX_OVER_LINK_BW_SET_270GBPS
 2.70 Gbps link rate. More...
 
#define XDPRXSS_LINK_BW_SET_540GBPS   XDP_RX_OVER_LINK_BW_SET_540GBPS
 5.40 Gbps link rate. More...
 
#define XDPRXSS_LANE_COUNT_SET_1   XDP_RX_OVER_LANE_COUNT_SET_1
 Lane count of 1. More...
 
#define XDPRXSS_LANE_COUNT_SET_2   XDP_RX_OVER_LANE_COUNT_SET_2
 Lane count of 2. More...
 
#define XDPRXSS_LANE_COUNT_SET_4   XDP_RX_OVER_LANE_COUNT_SET_4
 Lane count of 4. More...
 
#define XDPRXSS_RX_PHY_CONFIG   XDP_RX_PHY_CONFIG
 PHY reset and config. More...
 
#define XDPRXSS_PHY_POWER_DOWN   XDP_RX_PHY_POWER_DOWN
 PHY power down. More...
 
#define XDPRXSS_MSA_HRES   XDP_RX_MSA_HRES
 Number of active pixels per line (the horizontal resolution). More...
 
#define XDPRXSS_MSA_VRES   XDP_RX_MSA_VHEIGHT
 Number of active lines (the vertical resolution). More...
 
#define XDPRXSS_NUM_STREAMS   4
 Maximum number of streams supported. More...
 
#define XDPRXSS_MAX_NPORTS   XDP_MAX_NPORTS
 Maximum number of RX ports. More...
 
#define XDPRXSS_GUID_NBYTES   XDP_GUID_NBYTES
 Number of bytes for GUID. More...
 
#define XDPRXSS_TMRCTR_RST_VAL   100000000
 Timer Counter reset value. More...
 

Typedefs

typedef void(* XDpRxSs_Callback )(void *InstancePtr)
 Callback type which represents the handler for events. More...
 

Enumerations

enum  XDpRxSs_HandlerType {
  XDPRXSS_HANDLER_DP_VM_CHG_EVENT = 1, XDPRXSS_HANDLER_DP_PWR_CHG_EVENT, XDPRXSS_HANDLER_DP_NO_VID_EVENT, XDPRXSS_HANDLER_DP_VBLANK_EVENT,
  XDPRXSS_HANDLER_DP_TLOST_EVENT, XDPRXSS_HANDLER_DP_VID_EVENT, XDPRXSS_HANDLER_DP_INFO_PKT_EVENT, XDPRXSS_HANDLER_DP_EXT_PKT_EVENT,
  XDPRXSS_HANDLER_DP_TDONE_EVENT, XDPRXSS_HANDLER_DP_BW_CHG_EVENT, XDPRXSS_HANDLER_DP_DWN_REQ_EVENT, XDPRXSS_HANDLER_DP_DWN_REP_EVENT,
  XDPRXSS_HANDLER_DP_AUD_OVRFLW_EVENT, XDPRXSS_HANDLER_DP_PAYLOAD_ALLOC_EVENT, XDPRXSS_HANDLER_DP_ACT_RX_EVENT, XDPRXSS_HANDLER_DP_CRC_TEST_EVENT,
  XDPRXSS_HANDLER_UNPLUG_EVENT, XDPRXSS_HANDLER_LINKBW_EVENT, XDPRXSS_HANDLER_PLL_RESET_EVENT, XDPRXSS_DRV_HANDLER_DP_PWR_CHG_EVENT,
  XDPRXSS_DRV_HANDLER_DP_VID_EVENT, XDPRXSS_DRV_HANDLER_DP_NO_VID_EVENT
}
 These constants specify different types of handler and used to differentiate interrupt requests from sub-cores. More...
 
enum  XDpRxSs_Dp159ConfigType { XDPRXSS_DP159_CT_TP1 = 1, XDPRXSS_DP159_CT_TP2, XDPRXSS_DP159_CT_TP3, XDPRXSS_DP159_CT_UNPLUG }
 This typedef enumerates the types of configuration types applied to DP159 to configure. More...
 

Functions

u32 XDpRxSs_CfgInitialize (XDpRxSs *InstancePtr, XDpRxSs_Config *CfgPtr, UINTPTR EffectiveAddr)
 This function initializes the DisplayPort Receiver Subsystem core. More...
 
void XDpRxSs_Reset (XDpRxSs *InstancePtr)
 This function resets the DisplayPort Receiver Subsystem including all sub-cores. More...
 
u32 XDpRxSs_Start (XDpRxSs *InstancePtr)
 This function starts the DisplayPort Receiver Subsystem including all sub-cores. More...
 
u32 XDpRxSs_SetLinkRate (XDpRxSs *InstancePtr, u8 LinkRate)
 This function sets the data rate to be used by the DisplayPort RX Subsystem core. More...
 
u32 XDpRxSs_SetLaneCount (XDpRxSs *InstancePtr, u8 LaneCount)
 This function sets the number of lanes to be used by DisplayPort RX Subsystem core. More...
 
u32 XDpRxSs_ExposePort (XDpRxSs *InstancePtr, u8 Port)
 This function allows the user to select number of ports to be exposed when replying to a LINK_ADDRESS sideband message and hides rest of the ports. More...
 
u32 XDpRxSs_CheckLinkStatus (XDpRxSs *InstancePtr)
 This function checks if the receiver's DisplayPort Configuration Data (DPCD) indicates that the receiver has achieved clock recovery, channel equalization, symbol lock, and interlane alignment for all lanes currently in use. More...
 
void XDpRxSs_SetUserPixelWidth (XDpRxSs *InstancePtr, u8 UserPixelWidth)
 This function configures the number of pixels output through the user data interface. More...
 
u32 XDpRxSs_HandleDownReq (XDpRxSs *InstancePtr)
 This function handles incoming sideband messages. More...
 
XDpRxSs_ConfigXDpRxSs_LookupConfig (u16 DeviceId)
 This function returns a reference to an XDpRxSs_Config structure based on the core id, DeviceId. More...
 
void XDpRxSs_ReportCoreInfo (XDpRxSs *InstancePtr)
 This function reports list of sub-cores included in DisplayPort RX Subsystem. More...
 
void XDpRxSs_ReportLinkInfo (XDpRxSs *InstancePtr)
 This function prints the link status, selected resolution, link rate /lane count symbol error. More...
 
void XDpRxSs_ReportMsaInfo (XDpRxSs *InstancePtr)
 This function prints the current main stream attributes from the DisplayPort RX core. More...
 
void XDpRxSs_ReportDp159BitErrCount (XDpRxSs *InstancePtr)
 This function prints the bit error encountered in DP159. More...
 
void XDpRxSs_ReportHdcpInfo (XDpRxSs *InstancePtr)
 This function prints the debug display info of the HDCP interface. More...
 
u32 XDpRxSs_SelfTest (XDpRxSs *InstancePtr)
 This function performs self test on DisplayPort Receiver Subsystem sub-cores. More...
 
void XDpRxSs_DpIntrHandler (void *InstancePtr)
 This function is the interrupt handler for the DisplayPort RX core operating in RX mode. More...
 
u32 XDpRxSs_SetCallBack (XDpRxSs *InstancePtr, u32 HandlerType, void *CallbackFunc, void *CallbackRef)
 This function installs an asynchronous callback function for the given HandlerType: More...
 
void XDpRxSs_SetUserTimerHandler (XDpRxSs *InstancePtr, XDpRxSs_TimerHandler CallbackFunc, void *CallbackRef)
 This function installs a custom delay/sleep function to be used by the DisplayPort RX Subsystem. More...
 
void XDpRxSs_DrvNoVideoHandler (void *InstancePtr)
 This function is the interrupt handler for No Video. More...
 
void XDpRxSs_DrvVideoHandler (void *InstancePtr)
 This function is for the video interrupt handler. More...
 
void XDpRxSs_DrvPowerChangeHandler (void *InstancePtr)
 This function is for the power change interrupt handler. More...
 

Register access macro definition

#define XDpRxSs_In32   Xil_In32
 Input Operations. More...
 
#define XDpRxSs_Out32   Xil_Out32
 Output Operations. More...
 
#define XDpRxSs_ReadReg(BaseAddress, RegOffset)   XDpRxSs_In32((BaseAddress) + ((u32)RegOffset))
 This macro reads a value from a DisplayPort Receiver Subsystem register. More...
 
#define XDpRxSs_WriteReg(BaseAddress, RegOffset, Data)   XDpRxSs_Out32((BaseAddress) + ((u32)RegOffset), (u32)(Data))
 This macro writes a value to a DisplayPort Receiver Subsystem register. More...
 

Macro Definition Documentation

#define XDpRxSs_AudioDisable (   InstancePtr)    XDp_RxAudioDis((InstancePtr)->DpPtr)

This function macro disables audio stream packets on the main link.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
None.
Note
C-style signature: void XDpRxSs_AudioDisable(XDpRxSs *InstancePtr)
#define XDpRxSs_AudioEnable (   InstancePtr)    XDp_RxAudioEn((InstancePtr)->DpPtr)

This function macro enables audio stream packets on the main link.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
None.
Note
C-style signature: void XDpRxSs_AudioEnable(XDpRxSs *InstancePtr)
#define XDpRxSs_AudioReset (   InstancePtr)    XDp_RxAudioReset((InstancePtr)->DpPtr)

This function macro resets the reception of audio stream packets on the main link.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
None.
Note
C-style signature: void XDpRxSs_AudioReset(XDpRxSs *InstancePtr)
#define XDPRXSS_DP159_CPI_PD_HBR   0x27

CPI pull down HBR.

#define XDPRXSS_DP159_CPI_PD_HBR2   0x5F

CPI pull down HBR2.

#define XDPRXSS_DP159_CPI_PD_RBR   0x1F

CPI pull down RBR.

#define XDPRXSS_DP159_EQ_LEV   8

Equivalisation level.

#define XDPRXSS_DP159_HBR   0x0A

2.70 Gbps link rate

#define XDPRXSS_DP159_HBR2   0x14

5.40 Gbps link rate

#define XDPRXSS_DP159_IIC_SLAVE   0x5E

DP159 slave device address.

#define XDPRXSS_DP159_LANE_COUNT_1   1

Lane count of 1.

#define XDPRXSS_DP159_LANE_COUNT_2   2

Lane count of 2.

#define XDPRXSS_DP159_LANE_COUNT_4   4

Lane count of 4.

#define XDPRXSS_DP159_LOCK_WAIT   512

Lock wait value.

#define XDPRXSS_DP159_PLL_CTRL_PD_HBR   0x30

PLL control pull down HBR.

#define XDPRXSS_DP159_PLL_CTRL_PD_HBR2   0x30

PLL control pull down HBR2.

#define XDPRXSS_DP159_PLL_CTRL_PD_RBR   0x30

PLL control pull down RBR.

#define XDPRXSS_DP159_RBR   0x06

1.62 Gbps link rate

#define XDpRxSs_DtgDisable (   InstancePtr)    XDp_RxDtgDis((InstancePtr)->DpPtr)

This function macro disables the display timing generator (DTG).

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
None.
Note
C-style signature: void XDpRxSs_DtgDisable(XDpRxSs *InstancePtr)
#define XDpRxSs_DtgEnable (   InstancePtr)    XDp_RxDtgEn((InstancePtr)->DpPtr)

This function macro enables the display timing generator (DTG).

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
None.
Note
C-style signature: void XDpRxSs_DtgEnable(XDpRxSs *InstancePtr)
#define XDPRXSS_GUID_NBYTES   XDP_GUID_NBYTES

Number of bytes for GUID.

#define XDPRXSS_H_

Prevent circular inclusions by using protection macros.

#define XDPRXSS_HW_H_

Prevent circular inclusions by using protection macros.

#define XDpRxSs_In32   Xil_In32

Input Operations.

#define XDPRXSS_LANE_COUNT_SET_1   XDP_RX_OVER_LANE_COUNT_SET_1

Lane count of 1.

Referenced by XDpRxSs_SetLaneCount().

#define XDPRXSS_LANE_COUNT_SET_2   XDP_RX_OVER_LANE_COUNT_SET_2

Lane count of 2.

Referenced by XDpRxSs_SetLaneCount().

#define XDPRXSS_LANE_COUNT_SET_4   XDP_RX_OVER_LANE_COUNT_SET_4

Lane count of 4.

Referenced by XDpRxSs_SetLaneCount().

#define XDPRXSS_LINK_BW_SET_162GBPS   XDP_RX_OVER_LINK_BW_SET_162GBPS

1.62 Gbps link rate.

Referenced by XDpRxSs_SetLinkRate().

#define XDPRXSS_LINK_BW_SET_270GBPS   XDP_RX_OVER_LINK_BW_SET_270GBPS

2.70 Gbps link rate.

Referenced by XDpRxSs_SetLinkRate().

#define XDPRXSS_LINK_BW_SET_540GBPS   XDP_RX_OVER_LINK_BW_SET_540GBPS

5.40 Gbps link rate.

Referenced by XDpRxSs_SetLinkRate().

#define XDPRXSS_MAX_NPORTS   XDP_MAX_NPORTS

Maximum number of RX ports.

#define XDPRXSS_MSA_HRES   XDP_RX_MSA_HRES

Number of active pixels per line (the horizontal resolution).

Referenced by DpRxSs_DetectResolution().

#define XDPRXSS_MSA_VRES   XDP_RX_MSA_VHEIGHT

Number of active lines (the vertical resolution).

Referenced by DpRxSs_DetectResolution().

#define XDPRXSS_NUM_STREAMS   4

Maximum number of streams supported.

#define XDpRxSs_Out32   Xil_Out32

Output Operations.

#define XDPRXSS_PHY_POWER_DOWN   XDP_RX_PHY_POWER_DOWN

PHY power down.

#define XDpRxSs_ReadReg (   BaseAddress,
  RegOffset 
)    XDpRxSs_In32((BaseAddress) + ((u32)RegOffset))

This macro reads a value from a DisplayPort Receiver Subsystem register.

A 32 bit read is performed. If the component is implemented in a smaller width, only the least significant data is read from the register. The most significant data will be read as 0.

Parameters
BaseAddressis the base address of the XDpRxSs core instance.
RegOffsetis the register offset of the register (defined at the top of this file).
Returns
The 32-bit value of the register.
Note
C-style signature: u32 XDpRxSs_ReadReg(UINTPTR BaseAddress, u32 RegOffset)

Referenced by DpRxSs_DetectResolution(), and XDpRxSs_ReportLinkInfo().

#define XDPRXSS_RX_PHY_CONFIG   XDP_RX_PHY_CONFIG

PHY reset and config.

#define XDpRxSs_TimerHandler   XDp_TimerHandler

Callback type which represents a custom timer wait handler.

#define XDPRXSS_TMRCTR_RST_VAL   100000000

Timer Counter reset value.

Referenced by XDpRxSs_CfgInitialize().

#define XDpRxSs_WaitUs (   InstancePtr,
  MicroSeconds 
)    XDp_WaitUs((InstancePtr)->DpPtr, MicroSeconds)

This function macro is the delay/sleep function for the XDpRxSs driver.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
MicroSecondsis the number of microseconds to delay/sleep for.
Returns
None.
Note
C-style signature: void XDpRxSs_WaitUs(XDpRxSs *InstancePtr)

Referenced by DpRxSs_DetectResolution().

#define XDpRxSs_WriteReg (   BaseAddress,
  RegOffset,
  Data 
)    XDpRxSs_Out32((BaseAddress) + ((u32)RegOffset), (u32)(Data))

This macro writes a value to a DisplayPort Receiver Subsystem register.

A 32 bit write is performed. If the component is implemented in a smaller width, only the least significant data is written.

Parameters
BaseAddressis the base address of the XDpRxSs core instance.
RegOffsetis the register offset of the register (defined at the top of this file) to be written.
Datais the 32-bit value to write into the register.
Returns
None.
Note
C-style signature: void XDpRxSs_WriteReg(UINTPTR BaseAddress, u32 RegOffset, u32 Data)

Referenced by XDpRxSs_Reset().

Typedef Documentation

typedef void(* XDpRxSs_Callback)(void *InstancePtr)

Callback type which represents the handler for events.

Parameters
InstancePtris a pointer to the XDpRxSs instance.
Note
None.

Enumeration Type Documentation

This typedef enumerates the types of configuration types applied to DP159 to configure.

Enumerator
XDPRXSS_DP159_CT_TP1 

DP159 training pattern 1.

XDPRXSS_DP159_CT_TP2 

DP159 training pattern 2.

XDPRXSS_DP159_CT_TP3 

DP159 training pattern 1.

XDPRXSS_DP159_CT_UNPLUG 

DP159 unplug.

These constants specify different types of handler and used to differentiate interrupt requests from sub-cores.

Enumerator
XDPRXSS_HANDLER_DP_VM_CHG_EVENT 

Video mode change event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_PWR_CHG_EVENT 

Power state change interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_NO_VID_EVENT 

No video event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_VBLANK_EVENT 

Vertical blanking event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_TLOST_EVENT 

Training lost event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_VID_EVENT 

Valid video event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_INFO_PKT_EVENT 

Info packet event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_EXT_PKT_EVENT 

Extension packet event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_TDONE_EVENT 

Training done event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_BW_CHG_EVENT 

Bandwidth change event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_DWN_REQ_EVENT 

Down request event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_DWN_REP_EVENT 

Down reply event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_AUD_OVRFLW_EVENT 

Audio packet overflow event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_PAYLOAD_ALLOC_EVENT 

Payload allocation event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_ACT_RX_EVENT 

ACT sequence received event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_DP_CRC_TEST_EVENT 

CRC test start event interrupt type for DisplayPort core.

XDPRXSS_HANDLER_UNPLUG_EVENT 

Unplug event type for DisplayPort RX Subsystem.

XDPRXSS_HANDLER_LINKBW_EVENT 

Link BW event type for DisplayPort RX Subsystem.

XDPRXSS_HANDLER_PLL_RESET_EVENT 

PLL reset event type for DisplayPort RX Subsystem.

XDPRXSS_DRV_HANDLER_DP_PWR_CHG_EVENT 

Drv power state change interrupt type for DisplayPort core.

XDPRXSS_DRV_HANDLER_DP_VID_EVENT 

Drv Valid video event interrupt type for DisplayPort core.

XDPRXSS_DRV_HANDLER_DP_NO_VID_EVENT 

Drv No video event interrupt type for DisplayPort core.

Function Documentation

u32 XDpRxSs_CfgInitialize ( XDpRxSs InstancePtr,
XDpRxSs_Config CfgPtr,
UINTPTR  EffectiveAddr 
)

This function initializes the DisplayPort Receiver Subsystem core.

This function must be called prior to using the core. Initialization of the core includes setting up the instance data and ensuring the hardware is in a quiescent state.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
CfgPtrpoints to the configuration structure associated with the DisplayPort RX Subsystem core.
EffectiveAddris the base address of the device. If address translation is being used, then this parameter must reflect the virtual base address. Otherwise, the physical address should be used.
Returns
  • XST_DEVICE_NOT_FOUND if sub-core not found.
  • XST_FAILURE if sub-core initialization failed.
  • XST_SUCCESS if XDpRxSs_CfgInitialize successful.
Note
None.

References XDpRxSs_Config::BaseAddress, XDpRxSs_UsrOpt::Bpc, XDpRxSs::Config, XDpRxSs_Config::DeviceId, XDpRxSs_DpSubCore::DpConfig, XDpRxSs::DpPtr, XDpRxSs_Config::DpSubCore, XDpRxSs_Config::HdcpEnable, XDpRxSs_IicSubCore::IicConfig, XDpRxSs::IicPtr, XDpRxSs_Config::IicSubCore, XDpRxSs::IsReady, XDpRxSs_UsrOpt::LaneCount, XDpRxSs_UsrOpt::LinkRate, XDpRxSs_Config::MaxBpc, XDpRxSs_Config::MaxLaneCount, XDpRxSs_UsrOpt::MstSupport, XDpRxSs_Config::MstSupport, XDpRxSs_Config::NumMstStreams, XDpRxSs_UsrOpt::NumOfStreams, XDpRxSs::UsrOpt, XDPRXSS_DRV_HANDLER_DP_NO_VID_EVENT, XDPRXSS_DRV_HANDLER_DP_PWR_CHG_EVENT, XDPRXSS_DRV_HANDLER_DP_VID_EVENT, XDpRxSs_DrvNoVideoHandler(), XDpRxSs_DrvPowerChangeHandler(), XDpRxSs_DrvVideoHandler(), XDpRxSs_SetCallBack(), and XDPRXSS_TMRCTR_RST_VAL.

Referenced by DpRxSs_DebugExample(), DpRxSs_HdcpExample(), DpRxSs_IntrExample(), DpRxSs_MstExample(), and DpRxSs_SelfTestExample().

u32 XDpRxSs_CheckLinkStatus ( XDpRxSs InstancePtr)

This function checks if the receiver's DisplayPort Configuration Data (DPCD) indicates that the receiver has achieved clock recovery, channel equalization, symbol lock, and interlane alignment for all lanes currently in use.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
  • XST_SUCCESS if the RX device has achieved clock recovery, channel equalization, symbol lock, and interlane alignment.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE otherwise.
Note
None.

References XDpRxSs::DpPtr.

void XDpRxSs_DpIntrHandler ( void *  InstancePtr)

This function is the interrupt handler for the DisplayPort RX core operating in RX mode.

The application is responsible for connecting this function to the interrupt system. Application beyond this driver is also responsible for providing callbacks to handle interrupts and installing the callbacks using XDpRxSs_SetCallBack() during initialization phase.

Parameters
InstancePtris a pointer to the XDpRxSs core instance that just interrupted.
Returns
None.
Note
None.

References XDpRxSs::DpPtr, and XDpRxSs::IsReady.

void XDpRxSs_DrvNoVideoHandler ( void *  InstancePtr)

This function is the interrupt handler for No Video.

Parameters
InstancePtris a pointer to the XDpRxSs core instance that just interrupted.
Returns
None.
Note
None.

References XDpRxSs::DpPtr, and XDpRxSs::IsReady.

Referenced by XDpRxSs_CfgInitialize().

void XDpRxSs_DrvPowerChangeHandler ( void *  InstancePtr)

This function is for the power change interrupt handler.

Parameters
InstancePtris a pointer to the XDpRxSs core instance that just interrupted.
Returns
None.
Note
None.

References XDpRxSs::DpPtr, XDpRxSs::IicPtr, XDpRxSs::IsReady, XDpRxSs_UsrOpt::LaneCount, XDpRxSs_UsrOpt::LinkRate, XDpRxSs::UsrOpt, and XDPRXSS_DP159_CT_UNPLUG.

Referenced by XDpRxSs_CfgInitialize().

void XDpRxSs_DrvVideoHandler ( void *  InstancePtr)

This function is for the video interrupt handler.

Parameters
InstancePtris a pointer to the XDpRxSs core instance that just interrupted.
Returns
None.
Note
None.

References XDpRxSs::DpPtr, and XDpRxSs::IsReady.

Referenced by XDpRxSs_CfgInitialize().

u32 XDpRxSs_ExposePort ( XDpRxSs InstancePtr,
u8  Port 
)

This function allows the user to select number of ports to be exposed when replying to a LINK_ADDRESS sideband message and hides rest of the ports.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Portspecifies the number of ports to be exposed within the range 1 to 4.
Returns
  • XST_SUCCESS, if ports exposed successfully.
  • XST_FAILURE, if exposing ports which are already exposed or ports are exceeding total number of stream supported by the system.
Note
Number of ports are equal to number of streams.

References XDpRxSs::Config, XDpRxSs::DpPtr, XDpRxSs_UsrOpt::MstSupport, XDpRxSs_Config::NumMstStreams, XDpRxSs_UsrOpt::NumOfStreams, and XDpRxSs::UsrOpt.

u32 XDpRxSs_HandleDownReq ( XDpRxSs InstancePtr)

This function handles incoming sideband messages.

It will 1) Read the contents of the down request registers, 2) Delegate control depending on the request type, and 3) Send a down reply.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
  • XST_SUCCESS if the entire message was sent successfully.
  • XST_DEVICE_NOT_FOUND if no device is connected.
  • XST_ERROR_COUNT_MAX if sending one of the message fragments timed out.
  • XST_FAILURE otherwise.
Note
None.

References XDpRxSs::DpPtr.

Referenced by DpRxSs_DownReqestHandler().

XDpRxSs_Config * XDpRxSs_LookupConfig ( u16  DeviceId)

This function returns a reference to an XDpRxSs_Config structure based on the core id, DeviceId.

The return value will refer to an entry in the device configuration table defined in the xdprxss_g.c file.

Parameters
DeviceIdis the unique core ID of the XDpRxSs core for the lookup operation.
Returns
XDpRxSs_LookupConfig returns a reference to a config record in the configuration table (in xdprxss_g.c) corresponding to DeviceId, or NULL if no match is found.
Note
None.

Referenced by DpRxSs_DebugExample(), DpRxSs_HdcpExample(), DpRxSs_IntrExample(), DpRxSs_MstExample(), and DpRxSs_SelfTestExample().

void XDpRxSs_ReportCoreInfo ( XDpRxSs InstancePtr)
void XDpRxSs_ReportDp159BitErrCount ( XDpRxSs InstancePtr)

This function prints the bit error encountered in DP159.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
None.
Note
None.

References XDpRxSs::IicPtr.

void XDpRxSs_ReportHdcpInfo ( XDpRxSs InstancePtr)

This function prints the debug display info of the HDCP interface.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
None.
Note
None.

Referenced by DpRxSs_DebugExample().

void XDpRxSs_ReportLinkInfo ( XDpRxSs InstancePtr)

This function prints the link status, selected resolution, link rate /lane count symbol error.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
None.
Note
None.

References XDpRxSs::DpPtr, and XDpRxSs_ReadReg.

Referenced by DpRxSs_DebugExample().

void XDpRxSs_ReportMsaInfo ( XDpRxSs InstancePtr)

This function prints the current main stream attributes from the DisplayPort RX core.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
None.
Note
None.

References XDpRxSs::DpPtr.

Referenced by DpRxSs_DebugExample().

void XDpRxSs_Reset ( XDpRxSs InstancePtr)

This function resets the DisplayPort Receiver Subsystem including all sub-cores.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
None.
Note
IIC needs to be reinitialized after reset.

References XDpRxSs::Config, XDpRxSs::DpPtr, XDpRxSs_Config::HdcpEnable, XDpRxSs::IicPtr, and XDpRxSs_WriteReg.

u32 XDpRxSs_SelfTest ( XDpRxSs InstancePtr)

This function performs self test on DisplayPort Receiver Subsystem sub-cores.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
  • XST_SUCCESS if self test passed.
  • Otherwise, prints self test failed message.
Note
None.

References XDpRxSs::Config, XDpRxSs::DpPtr, XDpRxSs_Config::HdcpEnable, and XDpRxSs::IicPtr.

Referenced by DpRxSs_SelfTestExample().

u32 XDpRxSs_SetCallBack ( XDpRxSs InstancePtr,
u32  HandlerType,
void *  CallbackFunc,
void *  CallbackRef 
)

This function installs an asynchronous callback function for the given HandlerType:

HandlerType                              Callback Function Type
---------------------------------------- -----------------------------------
XDPRXSS_HANDLER_DP_VM_CHG_EVENT          XDp_RxSetIntrVmChangeHandler
XDPRXSS_HANDLER_DP_PWR_CHG_EVENT         XDp_RxSetIntrPowerStateHandler
XDPRXSS_HANDLER_DP_NO_VID_EVENT          XDp_RxSetIntrNoVideoHandler
XDPRXSS_HANDLER_DP_VBLANK_EVENT          XDp_RxSetIntrVBlankHandler
XDPRXSS_HANDLER_DP_TLOST_EVENT           XDp_RxSetIntrTrainingLostHandler
XDPRXSS_HANDLER_DP_VID_EVENT             XDp_RxSetIntrVideoHandler
XDPRXSS_HANDLER_DP_INFO_PKT_EVENT        XDp_RxSetIntrInfoPktHandler
XDPRXSS_HANDLER_DP_EXT_PKT_EVENT         XDp_RxSetIntrExtPktHandler
XDPRXSS_HANDLER_DP_TDONE_EVENT           XDp_RxSetIntrTrainingDoneHandler
XDPRXSS_HANDLER_DP_BW_CHG_EVENT          XDp_RxSetIntrBwChangeHandler
XDPRXSS_HANDLER_DP_DWN_REQ_EVENT         XDp_RxSetIntrDownReqHandler
XDPRXSS_HANDLER_DP_DWN_REP_EVENT         XDp_RxSetIntrDownReplyHandler
XDPRXSS_HANDLER_DP_AUD_OVRFLW_EVENT      XDp_RxSetIntrAudioOverHandler
XDPRXSS_HANDLER_DP_PAYLOAD_ALLOC_EVENT   XDp_RxSetIntrPayloadAllocHandler
XDPRXSS_HANDLER_DP_ACT_RX_EVENT          XDp_RxSetIntrActRxHandler
XDPRXSS_HANDLER_DP_CRC_TEST_EVENT        XDp_RxSetIntrCrcTestHandler
XDPRXSS_HANDLER_HDCP_RPTR_TDSA_EVENT     XHdcp1x_SetCallBack
XDPRXSS_HANDLER_UNPLUG_EVENT             UnplugCallback
XDPRXSS_HANDLER_LINKBW_EVENT             LinkBwCallback
XDPRXSS_HANDLER_PLL_RESET_EVENT          PllResetCallback
Parameters
InstancePtris a pointer to the XDpRxSs core instance.
HandlerTypespecifies the type of handler.
CallbackFuncis the address of the callback function.
CallbackRefis a user data item that will be passed to the callback function when it is invoked.
Returns
  • XST_SUCCESS if callback function installed successfully.
  • XST_INVALID_PARAM when HandlerType is invalid.
Note
Invoking this function for a handler that already has been installed replaces it with the new handler.

References XDpRxSs::DpPtr, XDpRxSs::IsReady, XDpRxSs::LinkBwCallback, XDpRxSs::LinkBwRef, XDpRxSs::PllResetCallback, XDpRxSs::PllResetRef, XDpRxSs::UnplugCallback, XDpRxSs::UnplugRef, XDPRXSS_DRV_HANDLER_DP_NO_VID_EVENT, XDPRXSS_DRV_HANDLER_DP_PWR_CHG_EVENT, XDPRXSS_DRV_HANDLER_DP_VID_EVENT, XDPRXSS_HANDLER_DP_ACT_RX_EVENT, XDPRXSS_HANDLER_DP_AUD_OVRFLW_EVENT, XDPRXSS_HANDLER_DP_BW_CHG_EVENT, XDPRXSS_HANDLER_DP_CRC_TEST_EVENT, XDPRXSS_HANDLER_DP_DWN_REP_EVENT, XDPRXSS_HANDLER_DP_DWN_REQ_EVENT, XDPRXSS_HANDLER_DP_EXT_PKT_EVENT, XDPRXSS_HANDLER_DP_INFO_PKT_EVENT, XDPRXSS_HANDLER_DP_NO_VID_EVENT, XDPRXSS_HANDLER_DP_PAYLOAD_ALLOC_EVENT, XDPRXSS_HANDLER_DP_PWR_CHG_EVENT, XDPRXSS_HANDLER_DP_TDONE_EVENT, XDPRXSS_HANDLER_DP_TLOST_EVENT, XDPRXSS_HANDLER_DP_VBLANK_EVENT, XDPRXSS_HANDLER_DP_VID_EVENT, XDPRXSS_HANDLER_DP_VM_CHG_EVENT, XDPRXSS_HANDLER_LINKBW_EVENT, XDPRXSS_HANDLER_PLL_RESET_EVENT, and XDPRXSS_HANDLER_UNPLUG_EVENT.

Referenced by XDpRxSs_CfgInitialize().

u32 XDpRxSs_SetLaneCount ( XDpRxSs InstancePtr,
u8  LaneCount 
)

This function sets the number of lanes to be used by DisplayPort RX Subsystem core.

Parameters
InstancePtris a pointer to the XDpRxSs instance.
LaneCountis the number of lanes to be used.
  • 1 = XDPRXSS_LANE_COUNT_SET_1
  • 2 = XDPRXSS_LANE_COUNT_SET_2
  • 4 = XDPRXSS_LANE_COUNT_SET_4
Returns
  • XST_SUCCESS if setting the new lane count was successful.
  • XST_FAILURE otherwise.
Note
None.

References XDpRxSs::DpPtr, XDpRxSs_UsrOpt::LaneCount, XDpRxSs::UsrOpt, XDPRXSS_LANE_COUNT_SET_1, XDPRXSS_LANE_COUNT_SET_2, and XDPRXSS_LANE_COUNT_SET_4.

Referenced by DpRxSs_DebugExample(), DpRxSs_HdcpExample(), DpRxSs_IntrExample(), and DpRxSs_MstExample().

u32 XDpRxSs_SetLinkRate ( XDpRxSs InstancePtr,
u8  LinkRate 
)

This function sets the data rate to be used by the DisplayPort RX Subsystem core.

Parameters
InstancePtris a pointer to the XDpRxSs instance.
LinkRateis the rate at which link needs to be driven.
  • XDPRXSS_LINK_BW_SET_162GBPS = 0x06(for a 1.62 Gbps data rate)
  • XDPRXSS_LINK_BW_SET_270GBPS = 0x0A(for a 2.70 Gbps data rate)
  • XDPRXSS_LINK_BW_SET_540GBPS = 0x14(for a 5.40 Gbps data rate)
Returns
  • XST_SUCCESS if setting the new lane rate was successful.
  • XST_FAILURE otherwise.
Note
None.

References XDpRxSs::DpPtr, XDpRxSs_UsrOpt::LinkRate, XDpRxSs::UsrOpt, XDPRXSS_LINK_BW_SET_162GBPS, XDPRXSS_LINK_BW_SET_270GBPS, and XDPRXSS_LINK_BW_SET_540GBPS.

Referenced by DpRxSs_DebugExample(), DpRxSs_HdcpExample(), DpRxSs_IntrExample(), and DpRxSs_MstExample().

void XDpRxSs_SetUserPixelWidth ( XDpRxSs InstancePtr,
u8  UserPixelWidth 
)

This function configures the number of pixels output through the user data interface.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
UserPixelWidthis the user pixel width to be configured.
Returns
None.
Note
None.

References XDpRxSs::DpPtr.

void XDpRxSs_SetUserTimerHandler ( XDpRxSs InstancePtr,
XDpRxSs_TimerHandler  CallbackFunc,
void *  CallbackRef 
)

This function installs a custom delay/sleep function to be used by the DisplayPort RX Subsystem.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
CallbackFuncis the address to the callback function.
CallbackRefis the user data item (microseconds to delay) that will be passed to the custom sleep/delay function when it is invoked.
Returns
None.
Note
None.

References XDpRxSs::DpPtr.

Referenced by DpRxSs_SetupTimerHandler().

u32 XDpRxSs_Start ( XDpRxSs InstancePtr)

This function starts the DisplayPort Receiver Subsystem including all sub-cores.

Parameters
InstancePtris a pointer to the XDpRxSs core instance.
Returns
  • XST_SUCCESS, if DP RX Subsystem and its included sub-cores configured successfully.
  • XST_FAILURE, otherwise.
Note
None.

References XDpRxSs::DpPtr, XDpRxSs_UsrOpt::MstSupport, and XDpRxSs::UsrOpt.

Referenced by DpRxSs_DebugExample(), DpRxSs_HdcpExample(), DpRxSs_IntrExample(), and DpRxSs_MstExample().