v_hdmirx1
Vitis Drivers API Documentation
xv_hdmirx1.c File Reference

Overview

This is the main file for Xilinx HDMI RX core.

Please see xv_hdmirx1.h for more details of the driver.

MODIFICATION HISTORY:
Ver   Who    Date     Changes


1.00 EB 02/05/19 Initial release.

Please see xv_hdmirx1.h for more details of the driver.

MODIFICATION HISTORY:
Ver   Who    Date     Changes


1.00 EB 22/06/18 Initial release.

Functions

int XV_HdmiRx1_CfgInitialize (XV_HdmiRx1 *InstancePtr, XV_HdmiRx1_Config *CfgPtr, UINTPTR EffectiveAddr)
 This function initializes the HDMI RX core. More...
 
void XV_HdmiRx1_SetAxiClkFreq (XV_HdmiRx1 *InstancePtr, u32 ClkFreq)
 This function sets the AXI4-Lite Clock Frequency. More...
 
void XV_HdmiRx1_Clear (XV_HdmiRx1 *InstancePtr)
 This function clears the HDMI RX variables and sets them to the defaults. More...
 
void XV_HdmiRx1_Start (XV_HdmiRx1 *InstancePtr)
 This function starts the HDMI RX core. More...
 
void XV_HdmiRx1_Stop (XV_HdmiRx1 *InstancePtr)
 This function stops the HDMI RX core. More...
 
int XV_HdmiRx1_SetStream (XV_HdmiRx1 *InstancePtr, XVidC_PixelsPerClock Ppc, u32 Clock)
 This function sets the HDMI RX stream parameters. More...
 
void XV_HdmiRx1_INT_VRST (XV_HdmiRx1 *InstancePtr, u8 Reset)
 This function asserts or releases the HDMI RX Internal VRST. More...
 
void XV_HdmiRx1_INT_LRST (XV_HdmiRx1 *InstancePtr, u8 Reset)
 This function asserts or releases the HDMI RX Internal LRST. More...
 
void XV_HdmiRx1_EXT_VRST (XV_HdmiRx1 *InstancePtr, u8 Reset)
 This function asserts or releases the HDMI RX External VRST. More...
 
void XV_HdmiRx1_EXT_SYSRST (XV_HdmiRx1 *InstancePtr, u8 Reset)
 This function asserts or releases the HDMI RX External SYSRST. More...
 
int XV_HdmiRx1_SetPixelRate (XV_HdmiRx1 *InstancePtr)
 This function sets the pixel rate. More...
 
void XV_HdmiRx1_SetColorFormat (XV_HdmiRx1 *InstancePtr)
 This function sets the color format. More...
 
int XV_HdmiRx1_SetHpd (XV_HdmiRx1 *InstancePtr, u8 SetClr)
 This function enables/clear Hot-Plug-Detect. More...
 
u32 XV_HdmiRx1_GetLinkStatus (XV_HdmiRx1 *InstancePtr, u8 Type)
 This function provides status of the HDMI RX core Link Status peripheral. More...
 
int XV_HdmiRx1_IsLinkStatusErrMax (XV_HdmiRx1 *InstancePtr)
 This function provides status of one of the link error counters reached the maximum value. More...
 
void XV_HdmiRx1_ClearLinkStatus (XV_HdmiRx1 *InstancePtr)
 This function clears the link error counters. More...
 
u32 XV_HdmiRx1_GetAcrCts (XV_HdmiRx1 *InstancePtr)
 This function provides audio clock regenerating CTS (Cycle-Time Stamp) value at the HDMI sink device. More...
 
u32 XV_HdmiRx1_GetAcrN (XV_HdmiRx1 *InstancePtr)
 This function provides audio clock regenerating factor N value. More...
 
u16 XV_HdmiRx1_DdcGetEdidWords (XV_HdmiRx1 *InstancePtr)
 This function gets the size of the EDID buffer of the DDC slave. More...
 
int XV_HdmiRx1_DdcLoadEdid (XV_HdmiRx1 *InstancePtr, u8 *EdidData, u16 Length)
 This function loads the EDID data into the DDC slave. More...
 
void XV_HdmiRx1_DdcHdcpSetAddress (XV_HdmiRx1 *InstancePtr, u32 Address)
 This function sets the HDCP address in the DDC peripheral. More...
 
void XV_HdmiRx1_DdcHdcpWriteData (XV_HdmiRx1 *InstancePtr, u32 Data)
 This function writes HDCP data in the DDC peripheral. More...
 
u32 XV_HdmiRx1_DdcHdcpReadData (XV_HdmiRx1 *InstancePtr)
 This function reads HDCP data from the DDC peripheral. More...
 
u16 XV_HdmiRx1_DdcGetHdcpWriteMessageBufferWords (XV_HdmiRx1 *InstancePtr)
 This function gets the number of bytes of the HDCP 2.2 write buffer in the DDC slave. More...
 
int XV_HdmiRx1_DdcIsHdcpWriteMessageBufferEmpty (XV_HdmiRx1 *InstancePtr)
 This function returns the status of the HDCP 2.2 write buffer in the DDC slave. More...
 
u16 XV_HdmiRx1_DdcGetHdcpReadMessageBufferWords (XV_HdmiRx1 *InstancePtr)
 This function gets the number of bytes of the HDCP 2.2 read buffer in the DDC slave. More...
 
int XV_HdmiRx1_DdcIsHdcpReadMessageBufferEmpty (XV_HdmiRx1 *InstancePtr)
 This function returns the status of the HDCP 2.2 read message buffer in the DDC slave. More...
 
void XV_HdmiRx1_Info (XV_HdmiRx1 *InstancePtr)
 This function prints stream and timing information on STDIO/UART console. More...
 
void XV_HdmiRx1_DebugInfo (XV_HdmiRx1 *InstancePtr)
 This function prints debug information on STDIO/UART console. More...
 
void XV_HdmiRx1_DdcRegDump (XV_HdmiRx1 *InstancePtr)
 This function prints out RX's SCDC registers and values on STDIO/UART. More...
 
void XV_HdmiRx1_RegisterDebug (XV_HdmiRx1 *InstancePtr)
 This function prints out HDMI RX register. More...
 
int XV_HdmiRx1_IsStreamUp (XV_HdmiRx1 *InstancePtr)
 This function provides status of the stream. More...
 
int XV_HdmiRx1_IsStreamScrambled (XV_HdmiRx1 *InstancePtr)
 This function provides the stream scrambler status. More...
 
int XV_HdmiRx1_IsStreamConnected (XV_HdmiRx1 *InstancePtr)
 This function provides the stream connected status. More...
 
int XV_HdmiRx1_GetTmdsClockRatio (XV_HdmiRx1 *InstancePtr)
 This function gets the SCDC TMDS clock ratio bit. More...
 
u8 XV_HdmiRx1_GetAviVic (XV_HdmiRx1 *InstancePtr)
 This function returns the AVI VIC (captured by the AUX peripheral) More...
 
XVidC_ColorFormat XV_HdmiRx1_GetAviColorSpace (XV_HdmiRx1 *InstancePtr)
 This function returns the AVI colorspace (captured by the AUX peripheral) More...
 
XVidC_ColorDepth XV_HdmiRx1_GetGcpColorDepth (XV_HdmiRx1 *InstancePtr)
 This function returns the GCP color depth (captured by the AUX peripheral) More...
 
u32 XV_HdmiRx1_Divide (u32 Dividend, u32 Divisor)
 This function calculates the divider for the frame calculation. More...
 
XVidC_VideoMode XV_HdmiRx1_LookupVmId (u8 Vic)
 This function searches for the video mode based on the vic. More...
 
int XV_HdmiRx1_GetVideoProperties (XV_HdmiRx1 *InstancePtr)
 This function reads the video properties from the aux peripheral. More...
 
int XV_HdmiRx1_GetVideoTiming (XV_HdmiRx1 *InstancePtr)
 This function reads the video timing from the VTD peripheral. More...
 
void XV_HdmiRx1_SetPixelClk (XV_HdmiRx1 *InstancePtr)
 This function sets the PixelClk based on the current ColorDepth, RefClk and ColorFormatId. More...
 
void XV_HdmiRx1_UpdateEdFlags (XV_HdmiRx1 *InstancePtr)
 This function checks if RX's CED or RSED counters are incrementing at the rate of 4 or higher per second or if they first hit the maximum value (0x7FFF) then set the CED_Update or RSED_Update SCDC flags if true. More...
 
void XV_HdmiRx1_TmrStartMs (XV_HdmiRx1 *InstancePtr, u32 Milliseconds, u8 TimerSelect)
 This function sets the timer of RX Core. More...
 
XV_HdmiC_VrrInfoframeType XV_HdmiRx1_GetVrrIfType (XV_HdmiRx1 *InstancePtr)
 This function returns VRR infoframe type. More...
 
void XV_HdmiRx1_SetVrrIfType (XV_HdmiRx1 *InstancePtr, XV_HdmiC_VrrInfoframeType Type)
 This function Sets VRR infoframe type. More...
 
void XV_HdmiRx1_DynHDR_SetAddr (XV_HdmiRx1 *InstancePtr, u64 Addr)
 This function sets the Dynamic HDR buffer address. More...
 
void XV_HdmiRx1_DynHDR_GetInfo (XV_HdmiRx1 *InstancePtr, XV_HdmiRx1_DynHDR_Info *RxDynHdrInfoPtr)
 This function gets the Dynamic HDR packet type, length, whether graphics overlay and errors if any. More...
 

Function Documentation

int XV_HdmiRx1_CfgInitialize ( XV_HdmiRx1 InstancePtr,
XV_HdmiRx1_Config CfgPtr,
UINTPTR  EffectiveAddr 
)

This function initializes the HDMI RX core.

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

Parameters
InstancePtris a pointer to the XHdmiRx1 core instance.
CfgPtrpoints to the configuration structure associated with the HDMI RX 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_SUCCESS if XV_HdmiRx1_CfgInitialize was successful.
  • XST_FAILURE if HDMI RX PIO ID mismatched.
Note
None.

References XV_HdmiRx1::AudCallback, XV_HdmiRx1::AuxCallback, XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HdmiRx1::ConnectCallback, XV_HdmiRx1_Frl::CurFrlRate, XV_HdmiRx1::DdcCallback, XV_HdmiRx1_Frl::DefaultLtp, XV_HdmiRx1_Config::DSC, XV_HdmiRx1::FrlConfigCallback, XV_HdmiRx1::FrlStartCallback, XV_HdmiRx1::HdcpCallback, XV_HdmiRx1::HdcpRef, XV_HdmiRx1::IsReady, XV_HdmiRx1::LinkErrorCallback, XV_HdmiRx1::LnkStaCallback, XV_HdmiRx1::ModeCallback, XV_HdmiRx1::Stream, XV_HdmiRx1::StreamDownCallback, XV_HdmiRx1::StreamInitCallback, XV_HdmiRx1::StreamUpCallback, XV_HdmiRx1::SyncLossCallback, XV_HdmiRx1::TmdsClkRatioCallback, XV_HdmiRx1::TmdsConfigCallback, XV_HdmiRx1_AudioDisable, XV_HdmiRx1_AudioIntrEnable, XV_HdmiRx1_AuxDisable, XV_HdmiRx1_AuxFSyncVrrChEvtEnable, XV_HdmiRx1_AuxIntrEnable, XV_HdmiRx1_Clear(), XV_HdmiRx1_DdcDisable, XV_HdmiRx1_DdcEnable, XV_HdmiRx1_DdcScdcClear, XV_HdmiRx1_DdcScdcEnable, XV_HdmiRx1_FrlDdcWriteField(), XV_HdmiRx1_FrlReset(), XV_HdmiRx1_GetTime16Ms, XV_HdmiRx1_LnkstaDisable, XV_HdmiRx1_LnkstaEnable, XV_HDMIRX1_MASK_16, XV_HDMIRX1_PIO_ID, XV_HDMIRX1_PIO_ID_OFFSET, XV_HDMIRX1_PIO_IN_BRDG_OVERFLOW_MASK, XV_HDMIRX1_PIO_IN_DET_MASK, XV_HDMIRX1_PIO_IN_DSC_EN_STRM_CHG_EVT_MASK, XV_HDMIRX1_PIO_IN_DSC_PPS_PKT_ERR_MASK, XV_HDMIRX1_PIO_IN_EVT_FE_OFFSET, XV_HDMIRX1_PIO_IN_EVT_RE_OFFSET, XV_HDMIRX1_PIO_IN_LNK_RDY_MASK, XV_HDMIRX1_PIO_IN_MODE_MASK, XV_HDMIRX1_PIO_IN_SCDC_SCRAMBLER_ENABLE_MASK, XV_HDMIRX1_PIO_IN_SCDC_TMDS_CLOCK_RATIO_MASK, XV_HDMIRX1_PIO_IN_VID_RDY_MASK, XV_HdmiRx1_PioDisable, XV_HdmiRx1_PioIntrDisable, XV_HdmiRx1_ReadReg, XV_HdmiRx1_SetFrlRateWrEvent_En(), XV_HdmiRx1_SetHpd(), XV_HDMIRX1_SHIFT_16, XV_HdmiRx1_Tmr1Disable, XV_HdmiRx1_Tmr1Enable, XV_HdmiRx1_Tmr1IntrDisable, XV_HdmiRx1_Tmr1IntrEnable, XV_HdmiRx1_Tmr2Disable, XV_HdmiRx1_Tmr2Enable, XV_HdmiRx1_Tmr2IntrDisable, XV_HdmiRx1_Tmr2IntrEnable, XV_HdmiRx1_Tmr3Disable, XV_HdmiRx1_Tmr3Enable, XV_HdmiRx1_Tmr3IntrDisable, XV_HdmiRx1_Tmr3IntrEnable, XV_HdmiRx1_Tmr4Disable, XV_HdmiRx1_Tmr4IntrDisable, XV_HdmiRx1_VtdDisable, XV_HdmiRx1_VtdIntrDisable, XV_HdmiRx1_VtdSetTimebase, and XV_HdmiRx1_WriteReg.

void XV_HdmiRx1_Clear ( XV_HdmiRx1 InstancePtr)

This function clears the HDMI RX variables and sets them to the defaults.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
None.
Note
This is required after a reset or init.

References XV_HdmiRx1_AudioStream::Active, XV_HdmiRx1::AudCts, XV_HdmiRx1::AudFormat, XV_HdmiRx1::AudN, XV_HdmiRx1::Aux, XV_HdmiRx1_AudioStream::Channels, XV_HdmiRx1::IsErrorPrintCount, XV_HdmiRx1::Stream, XV_HdmiRx1::StreamDownCallback, XV_HdmiRx1::StreamDownRef, XV_HdmiRx1_Frl::TrainingState, XV_HDMIRX1_STATE_STREAM_DOWN, and XV_HdmiRx1_Tmr3Disable.

Referenced by XV_HdmiRx1_CfgInitialize().

void XV_HdmiRx1_ClearLinkStatus ( XV_HdmiRx1 InstancePtr)

This function clears the link error counters.

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

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_LNKSTA_CTRL_CLR_OFFSET, XV_HDMIRX1_LNKSTA_CTRL_ERR_CLR_MASK, XV_HDMIRX1_LNKSTA_CTRL_SET_OFFSET, and XV_HdmiRx1_WriteReg.

u16 XV_HdmiRx1_DdcGetEdidWords ( XV_HdmiRx1 InstancePtr)

This function gets the size of the EDID buffer of the DDC slave.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
  • EDID buffer size
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_DDC_EDID_STA_OFFSET, XV_HDMIRX1_DDC_STA_EDID_WORDS_MASK, XV_HDMIRX1_DDC_STA_EDID_WORDS_SHIFT, and XV_HdmiRx1_ReadReg.

Referenced by XV_HdmiRx1_DdcLoadEdid().

u16 XV_HdmiRx1_DdcGetHdcpReadMessageBufferWords ( XV_HdmiRx1 InstancePtr)

This function gets the number of bytes of the HDCP 2.2 read buffer in the DDC slave.

Parameters
InstancePtris a pointer to the XHdmi_Rx core instance.
Returns
  • HDCP 2.2 read buffer words
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_DDC_HDCP_STA_OFFSET, XV_HDMIRX1_DDC_STA_HDCP_RMSG_WORDS_MASK, XV_HDMIRX1_DDC_STA_HDCP_RMSG_WORDS_SHIFT, and XV_HdmiRx1_ReadReg.

u16 XV_HdmiRx1_DdcGetHdcpWriteMessageBufferWords ( XV_HdmiRx1 InstancePtr)

This function gets the number of bytes of the HDCP 2.2 write buffer in the DDC slave.

Parameters
InstancePtris a pointer to the XHdmi_Rx core instance.
Returns
  • HDCP 2.2 write buffer words
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_DDC_HDCP_STA_OFFSET, XV_HDMIRX1_DDC_STA_HDCP_WMSG_WORDS_MASK, XV_HDMIRX1_DDC_STA_HDCP_WMSG_WORDS_SHIFT, and XV_HdmiRx1_ReadReg.

u32 XV_HdmiRx1_DdcHdcpReadData ( XV_HdmiRx1 InstancePtr)

This function reads HDCP data from the DDC peripheral.

This is implemented as a function and not a macro, so the HDCP driver can bind the function call with a handler.

Parameters
InstancePtris a pointer to the XHdmi_Rx core instance.
Returns
Returns the HDCP data read from the DDC peripheral.
Note
C-style signature: u32 XHdmiRx1_DdcHdcpReadData(XHdmi_Rx *InstancePtr)

References XV_HDMIRX1_DDC_HDCP_DATA_OFFSET, and XV_HdmiRx1_ReadReg.

void XV_HdmiRx1_DdcHdcpSetAddress ( XV_HdmiRx1 InstancePtr,
u32  Address 
)

This function sets the HDCP address in the DDC peripheral.

This is implemented as a function and not a macro, so the HDCP driver can bind the function call with a handler.

Parameters
InstancePtris a pointer to the XHdmi_Rx core instance.
Addressis the HDCP address.
Returns
None.
Note
C-style signature: void XHdmiRx1_DdcHdcpSetAddress(XHdmi_Rx *InstancePtr, u8 Address)

References XV_HDMIRX1_DDC_HDCP_ADDRESS_OFFSET, and XV_HdmiRx1_WriteReg.

void XV_HdmiRx1_DdcHdcpWriteData ( XV_HdmiRx1 InstancePtr,
u32  Data 
)

This function writes HDCP data in the DDC peripheral.

This is implemented as a function and not a macro, so the HDCP driver can bind the function call with a handler.

Parameters
InstancePtris a pointer to the XHdmi_Rx core instance.
Datais the HDCP data to be written.
Returns
None.
Note
C-style signature: void XHdmiRx1_DdcHdcpWriteData(XHdmi_Rx *InstancePtr, u8 Data)

References XV_HDMIRX1_DDC_HDCP_DATA_OFFSET, and XV_HdmiRx1_WriteReg.

int XV_HdmiRx1_DdcIsHdcpReadMessageBufferEmpty ( XV_HdmiRx1 InstancePtr)

This function returns the status of the HDCP 2.2 read message buffer in the DDC slave.

Parameters
InstancePtris a pointer to the XHdmi_Rx core instance.
Returns
  • TRUE = HDCP 2.2 message buffer is empty.
  • FALSE = HDCP 2.2 message buffer contains data.
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_DDC_HDCP_STA_OFFSET, XV_HDMIRX1_DDC_STA_HDCP_RMSG_EP_MASK, and XV_HdmiRx1_ReadReg.

int XV_HdmiRx1_DdcIsHdcpWriteMessageBufferEmpty ( XV_HdmiRx1 InstancePtr)

This function returns the status of the HDCP 2.2 write buffer in the DDC slave.

Parameters
InstancePtris a pointer to the XHdmi_Rx core instance.
Returns
  • TRUE = HDCP 2.2 message buffer is empty.
  • FALSE = HDCP 2.2 message buffer contains data.
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_DDC_HDCP_STA_OFFSET, XV_HDMIRX1_DDC_STA_HDCP_WMSG_EP_MASK, and XV_HdmiRx1_ReadReg.

int XV_HdmiRx1_DdcLoadEdid ( XV_HdmiRx1 InstancePtr,
u8 *  EdidData,
u16  Length 
)

This function loads the EDID data into the DDC slave.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
EdidDatais a pointer to the EDID data array.
Lengthis the length, in bytes, of the EDID array.
Returns
  • XST_SUCCESS if the EDID data was loaded successfully
  • XST_FAILURE if the EDID data load failed
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_DDC_CTRL_EDID_EN_MASK, XV_HDMIRX1_DDC_CTRL_SET_OFFSET, XV_HDMIRX1_DDC_EDID_DATA_OFFSET, XV_HDMIRX1_DDC_EDID_WP_OFFSET, XV_HdmiRx1_DdcGetEdidWords(), and XV_HdmiRx1_WriteReg.

void XV_HdmiRx1_DdcRegDump ( XV_HdmiRx1 InstancePtr)

This function prints out RX's SCDC registers and values on STDIO/UART.

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

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_FRL_SCDC_ADDR_MASK, XV_HDMIRX1_FRL_SCDC_DAT_SHIFT, XV_HDMIRX1_FRL_SCDC_OFFSET, XV_HDMIRX1_FRL_SCDC_RD_MASK, XV_HDMIRX1_FRL_SCDC_RDY_MASK, XV_HdmiRx1_ReadReg, and XV_HdmiRx1_WriteReg.

void XV_HdmiRx1_DebugInfo ( XV_HdmiRx1 InstancePtr)

This function prints debug information on STDIO/UART console.

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

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_DBG_STA_LANE_LOCK_CHGALL_MASK, XV_HDMIRX1_DBG_STA_LANE_LOCK_CHGALL_SHIFT, XV_HDMIRX1_DBG_STA_OFFSET, XV_HDMIRX1_DBG_STA_SCRM_LOCK_CHGALL_MASK, XV_HDMIRX1_DBG_STA_SCRM_LOCK_CHGALL_SHIFT, XV_HDMIRX1_DBG_STA_SKEW_LOCK_CHG_MASK, XV_HDMIRX1_DBG_STA_WA_LOCK_CHGALL_MASK, XV_HDMIRX1_DBG_STA_WA_LOCK_CHGALL_SHIFT, XV_HDMIRX1_DBG_STA_WA_TAP_CHGALL_MASK, XV_HDMIRX1_FRL_ERR_CNT1_OFFSET, XV_HDMIRX1_FRL_RATIO_ACT_OFFSET, XV_HDMIRX1_FRL_RATIO_TOT_OFFSET, XV_HDMIRX1_FRL_RSFC_CNT_OFFSET, XV_HDMIRX1_FRL_STA_FRL_LANES_MASK, XV_HDMIRX1_FRL_STA_FRL_MODE_MASK, XV_HDMIRX1_FRL_STA_FRL_RATE_MASK, XV_HDMIRX1_FRL_STA_FRL_RATE_SHIFT, XV_HDMIRX1_FRL_STA_LANE_LOCK_ALLL_MASK, XV_HDMIRX1_FRL_STA_LANE_LOCK_ALLL_SHIFT, XV_HDMIRX1_FRL_STA_OFFSET, XV_HDMIRX1_FRL_STA_SCRM_LOCK_ALLL_MASK, XV_HDMIRX1_FRL_STA_SCRM_LOCK_ALLL_SHIFT, XV_HDMIRX1_FRL_STA_SKEW_LOCK_MASK, XV_HDMIRX1_FRL_STA_STR_MASK, XV_HDMIRX1_FRL_STA_VID_LOCK_MASK, XV_HDMIRX1_FRL_STA_WA_LOCK_ALLL_MASK, XV_HDMIRX1_FRL_STA_WA_LOCK_ALLL_SHIFT, XV_HDMIRX1_FRL_VID_LOCK_CNT_OFFSET, XV_HdmiRx1_GetFrlActivePixRatio(), XV_HdmiRx1_GetFrlTotalPixRatio(), XV_HDMIRX1_LNKSTA_STA_OFFSET, XV_HDMIRX1_PIO_IN_ALIGNER_LOCK_MASK, XV_HDMIRX1_PIO_IN_MODE_MASK, XV_HDMIRX1_PIO_IN_OFFSET, XV_HDMIRX1_PIO_IN_SCRAMBLER_LOCKALLL_MASK, XV_HDMIRX1_PIO_IN_SCRAMBLER_LOCKALLL_SHIFT, XV_HDMIRX1_PKT_ECC_ERR_OFFSET, XV_HdmiRx1_ReadReg, XV_HDMIRX1_SR_SSB_ERR1_MASK, XV_HDMIRX1_SR_SSB_ERR2_MASK, XV_HDMIRX1_SR_SSB_ERR2_SHIFT, XV_HDMIRX1_SR_SSB_ERR_CNT0_OFFSET, XV_HDMIRX1_SR_SSB_ERR_CNT1_OFFSET, XV_HDMIRX1_SR_SSB_ERR_CNT2_OFFSET, XV_HDMIRX1_SR_SSB_ERR_CNT3_OFFSET, XV_HDMIRX1_TRIB_ANLZ_LN_ACT_ACT_SZ_MASK, XV_HDMIRX1_TRIB_ANLZ_LN_ACT_LN_SZ_MASK, XV_HDMIRX1_TRIB_ANLZ_LN_ACT_LN_SZ_SHIFT, XV_HDMIRX1_TRIB_ANLZ_LN_ACT_OFFSET, XV_HDMIRX1_TRIB_ANLZ_TIM_CHGD_CNT_MASK, XV_HDMIRX1_TRIB_ANLZ_TIM_HS_POL_MASK, XV_HDMIRX1_TRIB_ANLZ_TIM_OFFSET, XV_HDMIRX1_TRIB_ANLZ_TIM_VS_POL_MASK, XV_HDMIRX1_TRIB_HBP_HS_HBP_SZ_MASK, XV_HDMIRX1_TRIB_HBP_HS_HBP_SZ_SHIFT, XV_HDMIRX1_TRIB_HBP_HS_HS_SZ_MASK, XV_HDMIRX1_TRIB_HBP_HS_OFFSET, XV_HDMIRX1_VCKE_SYS_CNT_OFFSET, XV_HDMIRX1_VER_ID_OFFSET, and XV_HDMIRX1_VER_VERSION_OFFSET.

u32 XV_HdmiRx1_Divide ( u32  Dividend,
u32  Divisor 
)

This function calculates the divider for the frame calculation.

Parameters
Dividendis the dividend value to use in the calculation.
Divisoris the divisor value to use in the calculation.
Returns
The result of the calculation.
Note
None.
void XV_HdmiRx1_DynHDR_GetInfo ( XV_HdmiRx1 InstancePtr,
XV_HdmiRx1_DynHDR_Info RxDynHdrInfoPtr 
)

This function gets the Dynamic HDR packet type, length, whether graphics overlay and errors if any.

Parameters
InstancePtris a pointer to the XHdmiRx1 core instance.
RxDynHdrInfoPtris a pointer to XHdmiRx1 Dynamic HDR info instance.
Returns
None.
Note
None.

References XV_HdmiRx1::Config, XV_HdmiRx1_Config::DynamicHDR, XV_HDMIRX1_AUX_DYN_HDR_INFO_OFFSET, XV_HDMIRX1_AUX_DYN_HDR_STS_ERR_MASK, XV_HDMIRX1_AUX_DYN_HDR_STS_GOF_MASK, XV_HDMIRX1_AUX_DYN_HDR_STS_OFFSET, and XV_HdmiRx1_ReadReg.

void XV_HdmiRx1_DynHDR_SetAddr ( XV_HdmiRx1 InstancePtr,
u64  Addr 
)

This function sets the Dynamic HDR buffer address.

Parameters
InstancePtris a pointer to the XHdmiRx1 core instance.
Addris an address in 64bit format.
Returns
None.
Note
None.

References XV_HdmiRx1::Config, XV_HdmiRx1_Config::DynamicHDR, XV_HDMIRX1_AUX_DYN_HDR_MEMADDR_LSB_OFFSET, XV_HDMIRX1_AUX_DYN_HDR_MEMADDR_MSB_OFFSET, and XV_HdmiRx1_WriteReg.

void XV_HdmiRx1_EXT_SYSRST ( XV_HdmiRx1 InstancePtr,
u8  Reset 
)

This function asserts or releases the HDMI RX External SYSRST.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Resetspecifies TRUE/FALSE value to either assert or release HDMI RX External SYSRST.
Returns
None.
Note
The reset output of the PIO is inverted. When the system is in reset, the PIO output is cleared and this will reset the HDMI RX. Therefore, clearing the PIO reset output will assert the HDMI External system reset. C-style signature: void XV_HdmiRx1_EXT_SYSRST(XV_HdmiRx1 *InstancePtr, u8 Reset)

References XV_HDMIRX1_PIO_OUT_CLR_OFFSET, XV_HDMIRX1_PIO_OUT_EXT_SYSRST_MASK, XV_HDMIRX1_PIO_OUT_SET_OFFSET, and XV_HdmiRx1_WriteReg.

void XV_HdmiRx1_EXT_VRST ( XV_HdmiRx1 InstancePtr,
u8  Reset 
)

This function asserts or releases the HDMI RX External VRST.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Resetspecifies TRUE/FALSE value to either assert or release HDMI RX External VRST.
Returns
None.
Note
The reset output of the PIO is inverted. When the system is in reset, the PIO output is cleared and this will reset the HDMI RX. Therefore, clearing the PIO reset output will assert the HDMI external video reset. C-style signature: void XV_HdmiRx1_EXT_VRST(XV_HdmiRx1 *InstancePtr, u8 Reset)

References XV_HDMIRX1_PIO_OUT_CLR_OFFSET, XV_HDMIRX1_PIO_OUT_EXT_VRST_MASK, XV_HDMIRX1_PIO_OUT_SET_OFFSET, and XV_HdmiRx1_WriteReg.

u32 XV_HdmiRx1_GetAcrCts ( XV_HdmiRx1 InstancePtr)

This function provides audio clock regenerating CTS (Cycle-Time Stamp) value at the HDMI sink device.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
Audio clock CTS value.
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_AUD_CTS_OFFSET, and XV_HdmiRx1_ReadReg.

u32 XV_HdmiRx1_GetAcrN ( XV_HdmiRx1 InstancePtr)

This function provides audio clock regenerating factor N value.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
ACR N value.
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_AUD_N_OFFSET, and XV_HdmiRx1_ReadReg.

XVidC_ColorFormat XV_HdmiRx1_GetAviColorSpace ( XV_HdmiRx1 InstancePtr)

This function returns the AVI colorspace (captured by the AUX peripheral)

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
The AVI colorspace value.
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_AUX_STA_AVI_CS_MASK, XV_HDMIRX1_AUX_STA_AVI_CS_SHIFT, XV_HDMIRX1_AUX_STA_OFFSET, and XV_HdmiRx1_ReadReg.

Referenced by XV_HdmiRx1_GetVideoProperties().

u8 XV_HdmiRx1_GetAviVic ( XV_HdmiRx1 InstancePtr)

This function returns the AVI VIC (captured by the AUX peripheral)

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
The AVI VIC code.
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_AUX_STA_AVI_VIC_MASK, XV_HDMIRX1_AUX_STA_AVI_VIC_SHIFT, XV_HDMIRX1_AUX_STA_OFFSET, and XV_HdmiRx1_ReadReg.

Referenced by XV_HdmiRx1_GetVideoProperties().

XVidC_ColorDepth XV_HdmiRx1_GetGcpColorDepth ( XV_HdmiRx1 InstancePtr)

This function returns the GCP color depth (captured by the AUX peripheral)

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
The GCP color depth.
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_AUX_STA_GCP_CD_MASK, XV_HDMIRX1_AUX_STA_GCP_CD_SHIFT, XV_HDMIRX1_AUX_STA_OFFSET, and XV_HdmiRx1_ReadReg.

Referenced by XV_HdmiRx1_GetVideoProperties().

u32 XV_HdmiRx1_GetLinkStatus ( XV_HdmiRx1 InstancePtr,
u8  Type 
)

This function provides status of the HDMI RX core Link Status peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Typespecifies one of the type for which status to be provided:
  • 0 = Link error counter for channel 0.
  • 1 = Link error counter for channel 1.
  • 2 = Link error counter for channel 2.
Returns
Link status of the HDMI RX core link.
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_LNKSTA_LNK_ERR0_OFFSET, and XV_HdmiRx1_ReadReg.

int XV_HdmiRx1_GetTmdsClockRatio ( XV_HdmiRx1 InstancePtr)

This function gets the SCDC TMDS clock ratio bit.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
  • TRUE = TMDS clock ratio bit is set.
  • FALSE = TMDS clock ratio bit is cleared.
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_PIO_IN_OFFSET, XV_HDMIRX1_PIO_IN_SCDC_TMDS_CLOCK_RATIO_MASK, and XV_HdmiRx1_ReadReg.

int XV_HdmiRx1_GetVideoProperties ( XV_HdmiRx1 InstancePtr)

This function reads the video properties from the aux peripheral.

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

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HdmiRx1::Stream, XV_HDMIRX1_AUX_STA_AVI_MASK, XV_HDMIRX1_AUX_STA_OFFSET, XV_HdmiRx1_GetAviColorSpace(), XV_HdmiRx1_GetAviVic(), XV_HdmiRx1_GetGcpColorDepth(), and XV_HdmiRx1_ReadReg.

XV_HdmiC_VrrInfoframeType XV_HdmiRx1_GetVrrIfType ( XV_HdmiRx1 InstancePtr)

This function returns VRR infoframe type.

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

References XV_HdmiRx1::VrrIF.

void XV_HdmiRx1_Info ( XV_HdmiRx1 InstancePtr)

This function prints stream and timing information on STDIO/UART console.

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

References XV_HdmiRx1::Stream.

void XV_HdmiRx1_INT_LRST ( XV_HdmiRx1 InstancePtr,
u8  Reset 
)

This function asserts or releases the HDMI RX Internal LRST.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Resetspecifies TRUE/FALSE value to either assert or release HDMI RX Internal LRST.
Returns
None.
Note
The reset output of the PIO is inverted. When the system is in reset, the PIO output is cleared and this will reset the HDMI RX. Therefore, clearing the PIO reset output will assert the HDMI Internal link reset. C-style signature: void XV_HdmiRx1_INT_VRST(XV_HdmiRx1 *InstancePtr, u8 Reset)

References XV_HDMIRX1_PIO_OUT_CLR_OFFSET, XV_HDMIRX1_PIO_OUT_INT_LRST_MASK, XV_HDMIRX1_PIO_OUT_SET_OFFSET, and XV_HdmiRx1_WriteReg.

void XV_HdmiRx1_INT_VRST ( XV_HdmiRx1 InstancePtr,
u8  Reset 
)

This function asserts or releases the HDMI RX Internal VRST.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Resetspecifies TRUE/FALSE value to either assert or release HDMI RX Internal VRST.
Returns
None.
Note
The reset output of the PIO is inverted. When the system is in reset, the PIO output is cleared and this will reset the HDMI RX. Therefore, clearing the PIO reset output will assert the HDMI Internal video reset. C-style signature: void XV_HdmiRx1_INT_VRST(XV_HdmiRx1 *InstancePtr, u8 Reset)

References XV_HDMIRX1_PIO_OUT_CLR_OFFSET, XV_HDMIRX1_PIO_OUT_INT_VRST_MASK, XV_HDMIRX1_PIO_OUT_SET_OFFSET, and XV_HdmiRx1_WriteReg.

int XV_HdmiRx1_IsLinkStatusErrMax ( XV_HdmiRx1 InstancePtr)

This function provides status of one of the link error counters reached the maximum value.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
  • TRUE = Maximum error counter reached.
  • FALSE = Maximum error counter not reached.
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_LNKSTA_STA_ERR_MAX_MASK, XV_HDMIRX1_LNKSTA_STA_OFFSET, and XV_HdmiRx1_ReadReg.

int XV_HdmiRx1_IsStreamConnected ( XV_HdmiRx1 InstancePtr)

This function provides the stream connected status.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
  • TRUE = Stream is connected.
  • FALSE = Stream is connected.
Note
None.

References XV_HdmiRx1::Stream.

int XV_HdmiRx1_IsStreamScrambled ( XV_HdmiRx1 InstancePtr)

This function provides the stream scrambler status.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
  • TRUE = Stream is scrambled.
  • FALSE = Stream is not scrambled.
Note
None.

References XV_HdmiRx1::Stream.

int XV_HdmiRx1_IsStreamUp ( XV_HdmiRx1 InstancePtr)

This function provides status of the stream.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
  • TRUE = Stream is up.
  • FALSE = Stream is down.
Note
None.

References XV_HdmiRx1::Stream, and XV_HDMIRX1_STATE_STREAM_UP.

XVidC_VideoMode XV_HdmiRx1_LookupVmId ( u8  Vic)

This function searches for the video mode based on the vic.

Parameters
Vic
Returns
Vic defined in the VIC table.
Note
None.
void XV_HdmiRx1_RegisterDebug ( XV_HdmiRx1 InstancePtr)

This function prints out HDMI RX register.

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

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HDMIRX1_FRL_VID_LOCK_CNT_OFFSET, and XV_HdmiRx1_ReadReg.

void XV_HdmiRx1_SetAxiClkFreq ( XV_HdmiRx1 InstancePtr,
u32  ClkFreq 
)

This function sets the AXI4-Lite Clock Frequency.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
ClkFreqspecifies the value that needs to be set.
Returns
Note
This is required after a reset or init.

References XV_HdmiRx1::Config.

void XV_HdmiRx1_SetColorFormat ( XV_HdmiRx1 InstancePtr)

This function sets the color format.

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

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HdmiRx1::Stream, XV_HDMIRX1_PIO_OUT_COLOR_SPACE_MASK, XV_HDMIRX1_PIO_OUT_COLOR_SPACE_SHIFT, XV_HDMIRX1_PIO_OUT_MSK_OFFSET, XV_HDMIRX1_PIO_OUT_OFFSET, and XV_HdmiRx1_WriteReg.

int XV_HdmiRx1_SetHpd ( XV_HdmiRx1 InstancePtr,
u8  SetClr 
)

This function enables/clear Hot-Plug-Detect.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
SetClrspecifies TRUE/FALSE value to either enable or clear HPD respectively.
Returns
  • XST_SUCCESS is always returned.
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HdmiRx1_FrlReset(), XV_HDMIRX1_PIO_OUT_CLR_OFFSET, XV_HDMIRX1_PIO_OUT_HPD_MASK, XV_HDMIRX1_PIO_OUT_SET_OFFSET, and XV_HdmiRx1_WriteReg.

Referenced by XV_HdmiRx1_CfgInitialize().

void XV_HdmiRx1_SetPixelClk ( XV_HdmiRx1 InstancePtr)

This function sets the PixelClk based on the current ColorDepth, RefClk and ColorFormatId.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
None.

References XV_HdmiRx1::Stream.

int XV_HdmiRx1_SetPixelRate ( XV_HdmiRx1 InstancePtr)

This function sets the pixel rate.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
  • XST_SUCCESS is always returned.
Note
None.

References XV_HdmiRx1_Config::BaseAddress, XV_HdmiRx1::Config, XV_HdmiRx1::Stream, XV_HDMIRX1_PIO_OUT_MSK_OFFSET, XV_HDMIRX1_PIO_OUT_OFFSET, XV_HDMIRX1_PIO_OUT_PIXEL_RATE_MASK, XV_HDMIRX1_PIO_OUT_PIXEL_RATE_SHIFT, and XV_HdmiRx1_WriteReg.

Referenced by XV_HdmiRx1_SetStream().

int XV_HdmiRx1_SetStream ( XV_HdmiRx1 InstancePtr,
XVidC_PixelsPerClock  Ppc,
u32  Clock 
)

This function sets the HDMI RX stream parameters.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Ppcspecifies the pixel per clock.
  • 4 = XVIDC_PPC_4
Clockspecifies reference pixel clock frequency.
Returns
  • XST_SUCCESS is always returned.
Note
None.

References XV_HdmiRx1::Stream, and XV_HdmiRx1_SetPixelRate().

void XV_HdmiRx1_SetVrrIfType ( XV_HdmiRx1 InstancePtr,
XV_HdmiC_VrrInfoframeType  Type 
)

This function Sets VRR infoframe type.

Parameters
InstancePtris a pointer to the XHdmiRx1 core instance.
Typeof type XV_HdmiRx1_VrrInfoframeType
Returns
None.
Note
None.

References XV_HdmiRx1::VrrIF.

void XV_HdmiRx1_Start ( XV_HdmiRx1 InstancePtr)

This function starts the HDMI RX core.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
None.
Note
This is required after a reset or initialization.

References XV_HdmiRx1_PioEnable, and XV_HdmiRx1_PioIntrEnable.

void XV_HdmiRx1_Stop ( XV_HdmiRx1 InstancePtr)

This function stops the HDMI RX core.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
None.

References XV_HdmiRx1_PioDisable, and XV_HdmiRx1_PioIntrDisable.

void XV_HdmiRx1_TmrStartMs ( XV_HdmiRx1 InstancePtr,
u32  Milliseconds,
u8  TimerSelect 
)

This function sets the timer of RX Core.

Parameters
InstancePtris a pointer to the XHdmi_Rx core instance.
Millisecondsspecifies the timer's frequency (in milliseconds)
TimerSelectselects which of the timer unit to be used
Returns
None.
Note
None.

References XV_HdmiRx1::Config, XV_HdmiRx1_Tmr1Start, XV_HdmiRx1_Tmr2Start, XV_HdmiRx1_Tmr3Start, and XV_HdmiRx1_Tmr4Start.

Referenced by XV_HdmiRx1_PhyResetPoll().

void XV_HdmiRx1_UpdateEdFlags ( XV_HdmiRx1 InstancePtr)

This function checks if RX's CED or RSED counters are incrementing at the rate of 4 or higher per second or if they first hit the maximum value (0x7FFF) then set the CED_Update or RSED_Update SCDC flags if true.

Parameters
InstancePtris a pointer to the XV_HdmiRx1 core instance.
Returns
None.
Note
This function needs to be called every 1 second to comply with the spec on CED_Update and RSED_Update flags updating.

References XV_HdmiRx1::Stream, XV_HdmiRx1_FrlDdcReadField(), and XV_HdmiRx1_FrlDdcWriteField().