v_hdmirx
Xilinx SDK Drivers API Documentation
xv_hdmirx.h File Reference

Overview

This is the main header file for Xilinx HDMI RX core.

HDMI RX core is used for extracting the video and audio streams from HDMI stream. It consists of

  • Receiver core
  • AXI4-Stream to Video Bridge
  • Video Timing Controller and
  • High-bandwidth Digital Content Protection (HDCP) (Optional)
  • Data Recovery Unit (DRU) (Optional).

Receiver core performs following operations:

  • Aligns incoming data stream to the word boundary and removes inter channel skew.
  • Unscrambles the data if data rates above the 3.4 Gps. Otherwise bypasses the Scrambler.
  • Splits the data stream into video and packet data streams.
  • Optional data streams decrypt by an external HDCP module.
  • Decodes TMDS data into video data.
  • Converts the pixel data from the link domain into the video domain.

AXI Video Bridge converts the captured native video to AXI stream and outputs the video data through the AXI video interface.

Video Timing Controller (VTC) measures the video timing.

Data Recovery Unit (DRU) to recover the data from the HDMI stream if incoming HDMI stream is too slow for the transceiver.

Core Features

For a full description of HDMI RX features, please see the hardware specification.

Software Initialization & Configuration

The application needs to do following steps in order for preparing the HDMI RX core to be ready.

  • Call XV_HdmiRx_LookupConfig using a device ID to find the core configuration.
  • Call XV_HdmiRx_CfgInitialize to initialize the device and the driver instance associated with it.

Interrupts

This driver provides interrupt handlers

  • XV_HdmiRx_IntrHandler, for handling the interrupts from the HDMI RX core peripherals.

Application developer needs to register interrupt handler with the processor, within their examples. Whenever processor calls registered application's interrupt handler associated with interrupt id, application's interrupt handler needs to call appropriate peripheral interrupt handler reading peripheral's Status register.

This driver provides XV_HdmiRx_SetCallback API to register functions with HDMI RX core instance.

Virtual Memory

This driver supports Virtual Memory. The RTOS is responsible for calculating the correct device base address in Virtual Memory space.

Threads

This driver is not thread safe. Any needs for threads or thread mutual exclusion must be satisfied by the layer above this driver.

Asserts

Asserts are used within all Xilinx drivers to enforce constraints on argument values. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development.

Building the driver

The HDMI RX driver is composed of several source files. This allows the user to build and link only those parts of the driver that are necessary.

MODIFICATION HISTORY:
Ver   Who    Date     Changes

1.00 gm, mg 10/07/15 Initial release. 1.01 yh 14/01/16 Added Marco for AxisEnable PIO 1.02 yh 15/01/16 Added 3D Video support 1.03 MG 18/02/16 Added link error callback. 1.04 MG 08/03/16 Added RefClk to structure XV_HdmiRx_Stream 1.05 MG 13/05/16 Added XV_HdmiRx_DdcHdcp22Mode and XV_HdmiRx_DdcHdcp14 Mode macros 1.06 MG 27/05/16 Added VTD timebase macro 1.07 YH 25/07/16 Used UINTPTR instead of u32 for BaseAddress XV_HdmiRx_Config XV_HdmiRx_CfgInitialize 1.08 YH 14/11/16 Added XV_HdmiRx_Bridge_yuv420 & XV_HdmiRx_Bridge_pixel mode macros 1.09 MMO 02/03/17 Added Sync Loss and IsMode Handler for HDCP compliance test.

Data Structures

struct  XV_HdmiRx_VicTable
 This typedef contains Video identification information in tabular form. More...
 
struct  XV_HdmiRx_Config
 This typedef contains configuration information for the HDMI RX core. More...
 
struct  XV_HdmiRx_AudioStream
 This typedef contains HDMI RX audio stream specific data structure. More...
 
struct  XV_HdmiRx_Stream
 This typedef contains HDMI RX stream specific data structure. More...
 
union  XV_HdmiRx_AuxHeader
 This typedef contains Auxiliary header information for infoframe. More...
 
union  XV_HdmiRx_AuxData
 This typedef contains Auxiliary data information for infoframe. More...
 
struct  XV_HdmiRx_Aux
 This typedef holds HDMI RX Auxiliary peripheral specific data structure. More...
 
struct  XV_HdmiRx
 The XHdmiRx driver instance data. More...
 

Macros

#define XV_HDMIRX_H_
 Prevent circular inclusions by using protection macros. More...
 

Enumerations

Handler Types
enum  XV_HdmiRx_HandlerType {
  XV_HDMIRX_HANDLER_CONNECT = 1, XV_HDMIRX_HANDLER_AUX, XV_HDMIRX_HANDLER_AUD, XV_HDMIRX_HANDLER_LNKSTA,
  XV_HDMIRX_HANDLER_DDC, XV_HDMIRX_HANDLER_STREAM_DOWN, XV_HDMIRX_HANDLER_STREAM_INIT, XV_HDMIRX_HANDLER_STREAM_UP,
  XV_HDMIRX_HANDLER_HDCP, XV_HDMIRX_HANDLER_LINK_ERROR, XV_HDMIRX_HANDLER_SYNC_LOSS, XV_HDMIRX_HANDLER_MODE
}
 These constants specify different types of handler and used to differentiate interrupt requests from peripheral. More...
 

HDMI RX stream status

#define XV_HdmiRx_GetVersion(InstancePtr)   XV_HdmiRx_ReadReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_VER_VERSION_OFFSET))
 This macro reads the RX version. More...
 
#define XV_HdmiRx_Reset(InstancePtr, Reset)
 This macro asserts or clears the HDMI RX reset. More...
 
#define XV_HdmiRx_LinkEnable(InstancePtr, SetClr)
 This macro asserts or clears the HDMI RX link enable. More...
 
#define XV_HdmiRx_VideoEnable(InstancePtr, SetClr)
 This macro asserts or clears the HDMI RX video enable. More...
 
#define XV_HdmiRx_SetScrambler(InstancePtr, SetClr)
 This macro controls the HDMI RX Scrambler. More...
 
#define XV_HdmiRx_Bridge_yuv420(InstancePtr, SetClr)
 This macro controls the YUV420 mode for video bridge. More...
 
#define XV_HdmiRx_Bridge_pixel(InstancePtr, SetClr)
 This macro controls the Pixel Drop mode for video bridge. More...
 
#define XV_HdmiRx_AxisEnable(InstancePtr, Enable)
 This macro asserts or clears the AXIS enable output port. More...
 
#define XV_HdmiRx_PioEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_CTRL_SET_OFFSET), (XV_HDMIRX_PIO_CTRL_RUN_MASK))
 This macro enables the HDMI RX PIO peripheral. More...
 
#define XV_HdmiRx_PioDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_CTRL_CLR_OFFSET), (XV_HDMIRX_PIO_CTRL_RUN_MASK))
 This macro disables the HDMI RX PIO peripheral. More...
 
#define XV_HdmiRx_PioIntrEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_CTRL_SET_OFFSET), (XV_HDMIRX_PIO_CTRL_IE_MASK))
 This macro enables interrupts in the HDMI RX PIO peripheral. More...
 
#define XV_HdmiRx_PioIntrDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_CTRL_CLR_OFFSET), (XV_HDMIRX_PIO_CTRL_IE_MASK))
 This macro disables interrupts in the HDMI RX PIO peripheral. More...
 
#define XV_HdmiRx_TmrEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_TMR_CTRL_SET_OFFSET), (XV_HDMIRX_TMR_CTRL_RUN_MASK))
 This macro enables the HDMI RX timer peripheral. More...
 
#define XV_HdmiRx_TmrDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_TMR_CTRL_CLR_OFFSET), (XV_HDMIRX_TMR_CTRL_RUN_MASK))
 This macro disables the HDMI RX timer peripheral. More...
 
#define XV_HdmiRx_TmrIntrEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_TMR_CTRL_SET_OFFSET), (XV_HDMIRX_TMR_CTRL_IE_MASK))
 This macro enables interrupts in the HDMI RX timer peripheral. More...
 
#define XV_HdmiRx_TmrIntrDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_TMR_CTRL_CLR_OFFSET), (XV_HDMIRX_TMR_CTRL_IE_MASK))
 This macro disables interrupt in the HDMI RX timer peripheral. More...
 
#define XV_HdmiRx_TmrStart(InstancePtr, Value)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_TMR_CNT_OFFSET), (u32)(Value))
 This macro starts the HDMI RX timer peripheral. More...
 
#define XV_HdmiRx_VtdEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_VTD_CTRL_SET_OFFSET), (XV_HDMIRX_VTD_CTRL_RUN_MASK))
 This macro enables the HDMI RX Timing Detector peripheral. More...
 
#define XV_HdmiRx_VtdDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_VTD_CTRL_CLR_OFFSET), (XV_HDMIRX_VTD_CTRL_RUN_MASK))
 This macro disables the HDMI RX Timing Detector peripheral. More...
 
#define XV_HdmiRx_VtdIntrEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_VTD_CTRL_SET_OFFSET), (XV_HDMIRX_VTD_CTRL_IE_MASK))
 This macro enables interrupt in the HDMI RX Timing Detector peripheral. More...
 
#define XV_HdmiRx_VtdIntrDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_VTD_CTRL_CLR_OFFSET), (XV_HDMIRX_VTD_CTRL_IE_MASK))
 This macro disables interrupt in the HDMI RX Timing Detector peripheral. More...
 
#define XV_HdmiRx_VtdSetTimebase(InstancePtr, Value)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_VTD_CTRL_OFFSET), (u32)(Value << XV_HDMIRX_VTD_CTRL_TIMEBASE_SHIFT))
 This macro sets the timebase in the HDMI RX Timing Detector peripheral. More...
 
#define XV_HdmiRx_DdcEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_RUN_MASK))
 This macro enables the HDMI RX Display Data Channel (DDC) peripheral. More...
 
#define XV_HdmiRx_DdcScdcEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_SCDC_EN_MASK));
 This macro enables the SCDC in the DDC peripheral. More...
 
#define XV_HdmiRx_DdcHdcpEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_HDCP_EN_MASK));
 This macro enables the HDCP in the DDC peripheral. More...
 
#define XV_HdmiRx_DdcHdcpDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_CLR_OFFSET), (XV_HDMIRX_DDC_CTRL_HDCP_EN_MASK));
 
#define XV_HdmiRx_DdcHdcp14Mode(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_CLR_OFFSET), (XV_HDMIRX_DDC_CTRL_HDCP_MODE_MASK));
 This macro sets the DDC peripheral into HDCP 1.4 mode. More...
 
#define XV_HdmiRx_DdcHdcp22Mode(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_HDCP_MODE_MASK));
 This macro sets the DDC peripheral into HDCP 2.2 mode. More...
 
#define XV_HdmiRx_DdcDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_CLR_OFFSET), (XV_HDMIRX_DDC_CTRL_RUN_MASK))
 This macro disables the HDMI RX Display Data Channel (DDC) peripheral. More...
 
#define XV_HdmiRx_DdcIntrEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_IE_MASK))
 This macro enables interrupts in the HDMI RX Display Data Channel (DDC) peripheral. More...
 
#define XV_HdmiRx_DdcIntrDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_CLR_OFFSET), (XV_HDMIRX_DDC_CTRL_IE_MASK))
 This macro disables interrupts in the HDMI RX Display Data Channel (DDC) peripheral. More...
 
#define XV_HdmiRx_DdcScdcClear(InstancePtr)
 This macro clears the SCDC registers in the DDC peripheral. More...
 
#define XV_HdmiRx_AuxEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUX_CTRL_SET_OFFSET), (XV_HDMIRX_AUX_CTRL_RUN_MASK))
 This macro enables the HDMI RX Auxiliary (AUX) peripheral. More...
 
#define XV_HdmiRx_AuxDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUX_CTRL_CLR_OFFSET), (XV_HDMIRX_AUX_CTRL_RUN_MASK))
 This macro disables the HDMI RX Auxiliary (AUX) peripheral. More...
 
#define XV_HdmiRx_AuxIntrEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUX_CTRL_SET_OFFSET), (XV_HDMIRX_AUX_CTRL_IE_MASK))
 This macro enables interrupts in the HDMI RX Auxiliary (AUX) peripheral. More...
 
#define XV_HdmiRx_AuxIntrDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUX_CTRL_CLR_OFFSET), (XV_HDMIRX_AUX_CTRL_IE_MASK))
 This macro disables interrupts in the HDMI RX Auxiliary (AUX) peripheral. More...
 
#define XV_HdmiRx_AudioEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUD_CTRL_SET_OFFSET), (XV_HDMIRX_AUD_CTRL_RUN_MASK))
 This macro enables the HDMI RX Audio (AUD) peripheral. More...
 
#define XV_HdmiRx_AudioDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUD_CTRL_CLR_OFFSET), (XV_HDMIRX_AUD_CTRL_RUN_MASK))
 This macro disables the HDMI RX Audio (AUD) peripheral. More...
 
#define XV_HdmiRx_AudioIntrEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUD_CTRL_SET_OFFSET), (XV_HDMIRX_AUD_CTRL_IE_MASK))
 This macro enables interrupts in the HDMI RX Audio (AUD) peripheral. More...
 
#define XV_HdmiRx_AudioIntrDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUD_CTRL_CLR_OFFSET), (XV_HDMIRX_AUD_CTRL_IE_MASK))
 This macro disables interrupts in the HDMI RX Audio (AUD) peripheral. More...
 
#define XV_HdmiRx_LnkstaEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_LNKSTA_CTRL_SET_OFFSET), (XV_HDMIRX_LNKSTA_CTRL_RUN_MASK))
 This macro enables the HDMI RX Link Status (LNKSTA) peripheral. More...
 
#define XV_HdmiRx_LnkstaDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_LNKSTA_CTRL_CLR_OFFSET), (XV_HDMIRX_LNKSTA_CTRL_RUN_MASK))
 This macro disables the HDMI RX Link Status (LNKSTA) peripheral. More...
 
#define XV_HdmiRx_LinkIntrEnable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_LNKSTA_CTRL_SET_OFFSET), (XV_HDMIRX_LNKSTA_CTRL_IE_MASK))
 This macro enables interrupt in the HDMI RX Link Status (LNKSTA) peripheral. More...
 
#define XV_HdmiRx_LinkIntrDisable(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_LNKSTA_CTRL_CLR_OFFSET), (XV_HDMIRX_LNKSTA_CTRL_IE_MASK))
 This macro disable interrupt in the HDMI RX Link Status (LNKSTA) peripheral. More...
 
#define XV_HdmiRx_IsAudioActive(InstancePtr)   (InstancePtr)->Stream.Audio.Active
 This macro returns true is the audio stream is active else false. More...
 
#define XV_HdmiRx_GetAudioChannels(InstancePtr)   (InstancePtr)->Stream.Audio.Channels
 This macro returns the number of active audio channels. More...
 
#define XV_HdmiRx_DdcHdcpClearWriteMessageBuffer(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_WMSG_CLR_MASK))
 This macro clears the HDCP write message buffer in the DDC peripheral. More...
 
#define XV_HdmiRx_DdcHdcpClearReadMessageBuffer(InstancePtr)   XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_RMSG_CLR_MASK))
 This macro clears the HDCP read message buffer in the DDC peripheral. More...
 
enum  XV_HdmiRx_State {
  XV_HDMIRX_STATE_STREAM_DOWN, XV_HDMIRX_STATE_STREAM_IDLE, XV_HDMIRX_STATE_STREAM_INIT, XV_HDMIRX_STATE_STREAM_ARM,
  XV_HDMIRX_STATE_STREAM_LOCK, XV_HDMIRX_STATE_STREAM_RDY, XV_HDMIRX_STATE_STREAM_UP
}
 
typedef void(* XV_HdmiRx_Callback) (void *CallbackRef)
 Callback type for interrupt. More...
 
typedef void(* XV_HdmiRx_HdcpCallback) (void *CallbackRef, int Data)
 
XV_HdmiRx_ConfigXV_HdmiRx_LookupConfig (u16 DeviceId)
 This function returns a reference to an XV_HdmiRx_Config structure based on the core id, DeviceId. More...
 
int XV_HdmiRx_CfgInitialize (XV_HdmiRx *InstancePtr, XV_HdmiRx_Config *CfgPtr, UINTPTR EffectiveAddr)
 This function initializes the HDMI RX core. More...
 
void XV_HdmiRx_Clear (XV_HdmiRx *InstancePtr)
 This function clears the HDMI RX variables and sets them to the defaults. More...
 
int XV_HdmiRx_SetStream (XV_HdmiRx *InstancePtr, XVidC_PixelsPerClock Ppc, u32 Clock)
 This function sets the HDMI RX stream parameters. More...
 
int XV_HdmiRx_IsStreamUp (XV_HdmiRx *InstancePtr)
 This function provides status of the stream. More...
 
int XV_HdmiRx_IsStreamScrambled (XV_HdmiRx *InstancePtr)
 This function provides the stream scrambler status. More...
 
int XV_HdmiRx_IsStreamConnected (XV_HdmiRx *InstancePtr)
 This function provides the stream connected status. More...
 
int XV_HdmiRx_SetHpd (XV_HdmiRx *InstancePtr, u8 SetClr)
 This function enables/clear Hot-Plug-Detect. More...
 
int XV_HdmiRx_SetPixelRate (XV_HdmiRx *InstancePtr)
 This function sets the pixel rate. More...
 
void XV_HdmiRx_SetColorFormat (XV_HdmiRx *InstancePtr)
 This function sets the color format. More...
 
int XV_HdmiRx_IsLinkStatusErrMax (XV_HdmiRx *InstancePtr)
 This function provides status of one of the link error counters reached the maximum value. More...
 
void XV_HdmiRx_ClearLinkStatus (XV_HdmiRx *InstancePtr)
 This function clears the link error counters. More...
 
u32 XV_HdmiRx_GetLinkStatus (XV_HdmiRx *InstancePtr, u8 Type)
 This function provides status of the HDMI RX core Link Status peripheral. More...
 
u32 XV_HdmiRx_GetAcrCts (XV_HdmiRx *InstancePtr)
 This function provides audio clock regenerating CTS (Cycle-Time Stamp) value at the HDMI sink device. More...
 
u32 XV_HdmiRx_GetAcrN (XV_HdmiRx *InstancePtr)
 This function provides audio clock regenerating factor N value. More...
 
int XV_HdmiRx_DdcLoadEdid (XV_HdmiRx *InstancePtr, u8 *Data, u16 Length)
 This function loads the EDID data into the DDC slave. More...
 
void XV_HdmiRx_DdcHdcpSetAddress (XV_HdmiRx *InstancePtr, u32 Addr)
 This function sets the HDCP address in the DDC peripheral. More...
 
void XV_HdmiRx_DdcHdcpWriteData (XV_HdmiRx *InstancePtr, u32 Data)
 This function writes HDCP data in the DDC peripheral. More...
 
u32 XV_HdmiRx_DdcHdcpReadData (XV_HdmiRx *InstancePtr)
 This function reads HDCP data from the DDC peripheral. More...
 
u16 XV_HdmiRx_DdcGetHdcpWriteMessageBufferWords (XV_HdmiRx *InstancePtr)
 This function gets the number of bytes of the HDCP 2.2 write buffer in the DDC slave. More...
 
int XV_HdmiRx_DdcIsHdcpWriteMessageBufferEmpty (XV_HdmiRx *InstancePtr)
 This function returns the status of the HDCP 2.2 write buffer in the DDC slave. More...
 
u16 XV_HdmiRx_DdcGetHdcpReadMessageBufferWords (XV_HdmiRx *InstancePtr)
 This function gets the number of bytes of the HDCP 2.2 read buffer in the DDC slave. More...
 
int XV_HdmiRx_DdcIsHdcpReadMessageBufferEmpty (XV_HdmiRx *InstancePtr)
 This function returns the status of the HDCP 2.2 read message buffer in the DDC slave. More...
 
int XV_HdmiRx_GetTmdsClockRatio (XV_HdmiRx *InstancePtr)
 This function gets the SCDC TMDS clock ratio bit. More...
 
u8 XV_HdmiRx_GetAviVic (XV_HdmiRx *InstancePtr)
 This function returns the AVI VIC (captured by the AUX peripheral) More...
 
XVidC_ColorFormat XV_HdmiRx_GetAviColorSpace (XV_HdmiRx *InstancePtr)
 This function returns the AVI colorspace (captured by the AUX peripheral) More...
 
XVidC_ColorDepth XV_HdmiRx_GetGcpColorDepth (XV_HdmiRx *InstancePtr)
 This function returns the GCP color depth (captured by the AUX peripheral) More...
 
int XV_HdmiRx_GetVideoProperties (XV_HdmiRx *InstancePtr)
 This function reads the video properties from the aux peripheral. More...
 
int XV_HdmiRx_GetVideoTiming (XV_HdmiRx *InstancePtr)
 This function reads the video timing from the VTD peripheral. More...
 
u32 XV_HdmiRx_Divide (u32 Dividend, u32 Divisor)
 This function calculates the divider for the frame calculation. More...
 
void XV_HdmiRx_DebugInfo (XV_HdmiRx *InstancePtr)
 This function prints stream and timing information on STDIO/Uart console. More...
 
int XV_HdmiRx_SelfTest (XV_HdmiRx *InstancePtr)
 This function reads ID of PIO peripheral. More...
 
void XV_HdmiRx_IntrHandler (void *InstancePtr)
 This function is the interrupt handler for the HDMI RX driver. More...
 
int XV_HdmiRx_SetCallback (XV_HdmiRx *InstancePtr, u32 HandlerType, void *CallbackFunc, void *CallbackRef)
 This function installs an asynchronous callback function for the given HandlerType: More...
 
int XV_HdmiRx_VSIF_ParsePacket (XV_HdmiRx_Aux *AuxPtr, XV_HdmiRx_VSIF *VSIFPtr)
 This function parses a Vendor Specific InfoFrame (VSIF). More...
 
void XV_HdmiRx_VSIF_DisplayInfo (XV_HdmiRx_VSIF *VSIFPtr)
 This function displays the contents of an XV_HdmiRx_VSIF instance. More...
 
char * XV_HdmiRx_VSIF_3DStructToString (XV_HdmiRx_3D_Struct_Field Item)
 This function returns a string representation of the enumerated type XV_HdmiRx_3D_Struct_Field. More...
 
char * XV_HdmiRx_VSIF_3DSampMethodToString (XV_HdmiRx_3D_Sampling_Method Item)
 This function returns a string representation of the enumerated type XV_HdmiRx_3D_Sampling_Method. More...
 
char * XV_HdmiRx_VSIF_3DSampPosToString (XV_HdmiRx_3D_Sampling_Position Item)
 This function returns a string representation of the enumerated type XV_HdmiRx_3D_Sampling_Position. More...
 

Macro Definition Documentation

◆ XV_HdmiRx_AudioDisable

#define XV_HdmiRx_AudioDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUD_CTRL_CLR_OFFSET), (XV_HDMIRX_AUD_CTRL_RUN_MASK))

This macro disables the HDMI RX Audio (AUD) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_AudioDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_AudioEnable

#define XV_HdmiRx_AudioEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUD_CTRL_SET_OFFSET), (XV_HDMIRX_AUD_CTRL_RUN_MASK))

This macro enables the HDMI RX Audio (AUD) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_AudioEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_AudioIntrDisable

#define XV_HdmiRx_AudioIntrDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUD_CTRL_CLR_OFFSET), (XV_HDMIRX_AUD_CTRL_IE_MASK))

This macro disables interrupts in the HDMI RX Audio (AUD) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_AudioIntrDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_AudioIntrEnable

#define XV_HdmiRx_AudioIntrEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUD_CTRL_SET_OFFSET), (XV_HDMIRX_AUD_CTRL_IE_MASK))

This macro enables interrupts in the HDMI RX Audio (AUD) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_AudioIntrEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_AuxDisable

#define XV_HdmiRx_AuxDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUX_CTRL_CLR_OFFSET), (XV_HDMIRX_AUX_CTRL_RUN_MASK))

This macro disables the HDMI RX Auxiliary (AUX) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_AuxDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_AuxEnable

#define XV_HdmiRx_AuxEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUX_CTRL_SET_OFFSET), (XV_HDMIRX_AUX_CTRL_RUN_MASK))

This macro enables the HDMI RX Auxiliary (AUX) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_AuxEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_AuxIntrDisable

#define XV_HdmiRx_AuxIntrDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUX_CTRL_CLR_OFFSET), (XV_HDMIRX_AUX_CTRL_IE_MASK))

This macro disables interrupts in the HDMI RX Auxiliary (AUX) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_AuxIntrDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_AuxIntrEnable

#define XV_HdmiRx_AuxIntrEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_AUX_CTRL_SET_OFFSET), (XV_HDMIRX_AUX_CTRL_IE_MASK))

This macro enables interrupts in the HDMI RX Auxiliary (AUX) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_AuxIntrEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_AxisEnable

#define XV_HdmiRx_AxisEnable (   InstancePtr,
  Enable 
)
Value:
{ \
if (Enable) { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_SET_OFFSET), (XV_HDMIRX_PIO_OUT_AXIS_EN_MASK)); \
} \
else { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_CLR_OFFSET), (XV_HDMIRX_PIO_OUT_AXIS_EN_MASK)); \
} \
}
#define XV_HDMIRX_PIO_OUT_CLR_OFFSET
PIO Out Register Clear offset.
Definition: xv_hdmirx_hw.h:94
#define XV_HDMIRX_PIO_OUT_SET_OFFSET
PIO Out Register Set offset.
Definition: xv_hdmirx_hw.h:93
#define XV_HDMIRX_PIO_OUT_AXIS_EN_MASK
PIO Out Axis Enable mask.
Definition: xv_hdmirx_hw.h:118

This macro asserts or clears the AXIS enable output port.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Resetspecifies TRUE/FALSE value to either assert or release HDMI RX reset.
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 link and video reset. C-style signature: void XV_HdmiRx_AxisEnable(InstancePtr, Enable)

◆ XV_HdmiRx_Bridge_pixel

#define XV_HdmiRx_Bridge_pixel (   InstancePtr,
  SetClr 
)
Value:
{ \
if (SetClr) { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_SET_OFFSET), (XV_HDMIRX_PIO_OUT_BRIDGE_PIXEL_MASK)); \
} \
else { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_CLR_OFFSET), (XV_HDMIRX_PIO_OUT_BRIDGE_PIXEL_MASK)); \
} \
}
#define XV_HDMIRX_PIO_OUT_CLR_OFFSET
PIO Out Register Clear offset.
Definition: xv_hdmirx_hw.h:94
#define XV_HDMIRX_PIO_OUT_SET_OFFSET
PIO Out Register Set offset.
Definition: xv_hdmirx_hw.h:93
#define XV_HDMIRX_PIO_OUT_BRIDGE_PIXEL_MASK
PIO Out Bridge_Pixel drop mask.
Definition: xv_hdmirx_hw.h:125

This macro controls the Pixel Drop mode for video bridge.

Parameters
InstancePtris a pointer to the XHdmi_Rx core instance.
SetClrspecifies TRUE/FALSE value to either enable or disable the Pixel Repitition.
Returns
None.
Note
C-style signature: void XV_HdmiRx_Bridge_pixel(XV_HdmiRx *InstancePtr, u8 SetClr)

◆ XV_HdmiRx_Bridge_yuv420

#define XV_HdmiRx_Bridge_yuv420 (   InstancePtr,
  SetClr 
)
Value:
{ \
if (SetClr) { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_SET_OFFSET), (XV_HDMIRX_PIO_OUT_BRIDGE_YUV420_MASK)); \
} \
else { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_CLR_OFFSET), (XV_HDMIRX_PIO_OUT_BRIDGE_YUV420_MASK)); \
} \
}
#define XV_HDMIRX_PIO_OUT_CLR_OFFSET
PIO Out Register Clear offset.
Definition: xv_hdmirx_hw.h:94
#define XV_HDMIRX_PIO_OUT_BRIDGE_YUV420_MASK
PIO Out Bridge_YUV420 mask.
Definition: xv_hdmirx_hw.h:124
#define XV_HDMIRX_PIO_OUT_SET_OFFSET
PIO Out Register Set offset.
Definition: xv_hdmirx_hw.h:93

This macro controls the YUV420 mode for video bridge.

Parameters
InstancePtris a pointer to the XHdmi_Rx core instance.
SetClrspecifies TRUE/FALSE value to either enable or disable the YUV 420 Support.
Returns
None.
Note
C-style signature: void XV_HdmiRx_Bridge_yuv420(XV_HdmiRx *InstancePtr, u8 SetClr)

◆ XV_HdmiRx_DdcDisable

#define XV_HdmiRx_DdcDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_CLR_OFFSET), (XV_HDMIRX_DDC_CTRL_RUN_MASK))

This macro disables the HDMI RX Display Data Channel (DDC) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_DdcDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_DdcEnable

#define XV_HdmiRx_DdcEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_RUN_MASK))

This macro enables the HDMI RX Display Data Channel (DDC) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_DdcEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_DdcHdcp14Mode

#define XV_HdmiRx_DdcHdcp14Mode (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_CLR_OFFSET), (XV_HDMIRX_DDC_CTRL_HDCP_MODE_MASK));

This macro sets the DDC peripheral into HDCP 1.4 mode.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_DdcHdcp14Mode(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_DdcHdcp22Mode

#define XV_HdmiRx_DdcHdcp22Mode (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_HDCP_MODE_MASK));

This macro sets the DDC peripheral into HDCP 2.2 mode.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_DdcHdcp22Mode(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_DdcHdcpClearReadMessageBuffer

#define XV_HdmiRx_DdcHdcpClearReadMessageBuffer (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_RMSG_CLR_MASK))

This macro clears the HDCP read message buffer in the DDC peripheral.

Parameters
InstancePtris a pointer to the XHdmi_Rx core instance.
Returns
None.
Note
C-style signature: void XHdmiRx_DdcHdcpClearReadMessageBuffer(XHdmi_Rx *InstancePtr)

◆ XV_HdmiRx_DdcHdcpClearWriteMessageBuffer

#define XV_HdmiRx_DdcHdcpClearWriteMessageBuffer (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_WMSG_CLR_MASK))

This macro clears the HDCP write message buffer in the DDC peripheral.

Parameters
InstancePtris a pointer to the XHdmi_Rx core instance.
Returns
None.
Note
C-style signature: void XHdmiRx_DdcHdcpClearWriteMessageBuffer(XHdmi_Rx *InstancePtr)

◆ XV_HdmiRx_DdcHdcpEnable

#define XV_HdmiRx_DdcHdcpEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_HDCP_EN_MASK));

This macro enables the HDCP in the DDC peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_DdcHdcpEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_DdcIntrDisable

#define XV_HdmiRx_DdcIntrDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_CLR_OFFSET), (XV_HDMIRX_DDC_CTRL_IE_MASK))

This macro disables interrupts in the HDMI RX Display Data Channel (DDC) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_DdcIntrDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_DdcIntrEnable

#define XV_HdmiRx_DdcIntrEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_IE_MASK))

This macro enables interrupts in the HDMI RX Display Data Channel (DDC) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_DdcIntrEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_DdcScdcClear

#define XV_HdmiRx_DdcScdcClear (   InstancePtr)
Value:
{ \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_SCDC_CLR_MASK)); \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_CLR_OFFSET), (XV_HDMIRX_DDC_CTRL_SCDC_CLR_MASK)); \
}
#define XV_HDMIRX_DDC_CTRL_SET_OFFSET
DDC Control Register Set offset.
Definition: xv_hdmirx_hw.h:193
#define XV_HDMIRX_DDC_CTRL_SCDC_CLR_MASK
DDC Control SCDC clear mask.
Definition: xv_hdmirx_hw.h:211
#define XV_HDMIRX_DDC_CTRL_CLR_OFFSET
DDC Control Register Clear offset.
Definition: xv_hdmirx_hw.h:194

This macro clears the SCDC registers in the DDC peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_DdcScdcClear(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_DdcScdcEnable

#define XV_HdmiRx_DdcScdcEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_DDC_CTRL_SET_OFFSET), (XV_HDMIRX_DDC_CTRL_SCDC_EN_MASK));

This macro enables the SCDC in the DDC peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_DdcScdcEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_GetAudioChannels

#define XV_HdmiRx_GetAudioChannels (   InstancePtr)    (InstancePtr)->Stream.Audio.Channels

This macro returns the number of active audio channels.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
Number of active audio channels.
Note
C-style signature: u32 XV_HdmiRx_GetAudioChannels(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_GetVersion

#define XV_HdmiRx_GetVersion (   InstancePtr)    XV_HdmiRx_ReadReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_VER_VERSION_OFFSET))

This macro reads the RX version.

Parameters
InstancePtris a pointer to the XHdmi_RX core instance.
Returns
RX version.

*note C-style signature: u32 XV_HdmiRx_GetVersion(XV_HdmiRx *InstancePtr)

◆ XV_HDMIRX_H_

#define XV_HDMIRX_H_

Prevent circular inclusions by using protection macros.

◆ XV_HdmiRx_IsAudioActive

#define XV_HdmiRx_IsAudioActive (   InstancePtr)    (InstancePtr)->Stream.Audio.Active

This macro returns true is the audio stream is active else false.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
TRUE if the audio stream is active, FALSE if it is not.
Note
C-style signature: u32 XV_HdmiRx_IsAudioActive(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_LinkEnable

#define XV_HdmiRx_LinkEnable (   InstancePtr,
  SetClr 
)
Value:
{ \
if (SetClr) { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_SET_OFFSET), (XV_HDMIRX_PIO_OUT_LNK_EN_MASK)); \
} \
else { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_CLR_OFFSET), (XV_HDMIRX_PIO_OUT_LNK_EN_MASK)); \
} \
}
#define XV_HDMIRX_PIO_OUT_CLR_OFFSET
PIO Out Register Clear offset.
Definition: xv_hdmirx_hw.h:94
#define XV_HDMIRX_PIO_OUT_SET_OFFSET
PIO Out Register Set offset.
Definition: xv_hdmirx_hw.h:93
#define XV_HDMIRX_PIO_OUT_LNK_EN_MASK
PIO Out video enable mask.
Definition: xv_hdmirx_hw.h:111

This macro asserts or clears the HDMI RX link enable.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
SetClrspecifies TRUE/FALSE value to either assert or release HDMI RX link enable.
Returns
None.
Note
C-style signature: void XV_HdmiRx_Reset(XV_HdmiRx *InstancePtr, u8 SetClr)

◆ XV_HdmiRx_LinkIntrDisable

#define XV_HdmiRx_LinkIntrDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_LNKSTA_CTRL_CLR_OFFSET), (XV_HDMIRX_LNKSTA_CTRL_IE_MASK))

This macro disable interrupt in the HDMI RX Link Status (LNKSTA) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_LinkIntrDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_LinkIntrEnable

#define XV_HdmiRx_LinkIntrEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_LNKSTA_CTRL_SET_OFFSET), (XV_HDMIRX_LNKSTA_CTRL_IE_MASK))

This macro enables interrupt in the HDMI RX Link Status (LNKSTA) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_LinkIntrEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_LnkstaDisable

#define XV_HdmiRx_LnkstaDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_LNKSTA_CTRL_CLR_OFFSET), (XV_HDMIRX_LNKSTA_CTRL_RUN_MASK))

This macro disables the HDMI RX Link Status (LNKSTA) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_LinkstaDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_LnkstaEnable

#define XV_HdmiRx_LnkstaEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_LNKSTA_CTRL_SET_OFFSET), (XV_HDMIRX_LNKSTA_CTRL_RUN_MASK))

This macro enables the HDMI RX Link Status (LNKSTA) peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_LinkstaEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_PioDisable

#define XV_HdmiRx_PioDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_CTRL_CLR_OFFSET), (XV_HDMIRX_PIO_CTRL_RUN_MASK))

This macro disables the HDMI RX PIO peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_PioDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_PioEnable

#define XV_HdmiRx_PioEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_CTRL_SET_OFFSET), (XV_HDMIRX_PIO_CTRL_RUN_MASK))

This macro enables the HDMI RX PIO peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_PioEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_PioIntrDisable

#define XV_HdmiRx_PioIntrDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_CTRL_CLR_OFFSET), (XV_HDMIRX_PIO_CTRL_IE_MASK))

This macro disables interrupts in the HDMI RX PIO peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_PioIntrDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_PioIntrEnable

#define XV_HdmiRx_PioIntrEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_CTRL_SET_OFFSET), (XV_HDMIRX_PIO_CTRL_IE_MASK))

This macro enables interrupts in the HDMI RX PIO peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_PioIntrEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_Reset

#define XV_HdmiRx_Reset (   InstancePtr,
  Reset 
)
Value:
{ \
if (Reset) { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_CLR_OFFSET), (XV_HDMIRX_PIO_OUT_RESET_MASK)); \
} \
else { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_SET_OFFSET), (XV_HDMIRX_PIO_OUT_RESET_MASK)); \
} \
}
#define XV_HDMIRX_PIO_OUT_CLR_OFFSET
PIO Out Register Clear offset.
Definition: xv_hdmirx_hw.h:94
#define XV_HDMIRX_PIO_OUT_SET_OFFSET
PIO Out Register Set offset.
Definition: xv_hdmirx_hw.h:93
#define XV_HDMIRX_PIO_OUT_RESET_MASK
PIO Out Reset mask.
Definition: xv_hdmirx_hw.h:110

This macro asserts or clears the HDMI RX reset.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Resetspecifies TRUE/FALSE value to either assert or release HDMI RX reset.
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 link and video reset. C-style signature: void XV_HdmiRx_Reset(XV_HdmiRx *InstancePtr, u8 Reset)

◆ XV_HdmiRx_SetScrambler

#define XV_HdmiRx_SetScrambler (   InstancePtr,
  SetClr 
)
Value:
{ \
if (SetClr) { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_SET_OFFSET), (XV_HDMIRX_PIO_OUT_SCRM_MASK)); \
(InstancePtr)->Stream.IsScrambled = (TRUE); \
} \
else { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_CLR_OFFSET), (XV_HDMIRX_PIO_OUT_SCRM_MASK)); \
(InstancePtr)->Stream.IsScrambled = (FALSE); \
} \
}
#define XV_HDMIRX_PIO_OUT_CLR_OFFSET
PIO Out Register Clear offset.
Definition: xv_hdmirx_hw.h:94
#define XV_HDMIRX_PIO_OUT_SET_OFFSET
PIO Out Register Set offset.
Definition: xv_hdmirx_hw.h:93
#define XV_HDMIRX_PIO_OUT_SCRM_MASK
PIO Out Scrambler mask.
Definition: xv_hdmirx_hw.h:123

This macro controls the HDMI RX Scrambler.

Parameters
InstancePtris a pointer to the XHdmi_Tx core instance.
SetClrspecifies TRUE/FALSE value to either enable or disable the scrambler.
Returns
None.
Note
C-style signature: void XV_HdmiRx_SetScrambler(XV_HdmiRx *InstancePtr, u8 SetClr)

◆ XV_HdmiRx_TmrDisable

#define XV_HdmiRx_TmrDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_TMR_CTRL_CLR_OFFSET), (XV_HDMIRX_TMR_CTRL_RUN_MASK))

This macro disables the HDMI RX timer peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_TmrDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_TmrEnable

#define XV_HdmiRx_TmrEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_TMR_CTRL_SET_OFFSET), (XV_HDMIRX_TMR_CTRL_RUN_MASK))

This macro enables the HDMI RX timer peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_TmrEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_TmrIntrDisable

#define XV_HdmiRx_TmrIntrDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_TMR_CTRL_CLR_OFFSET), (XV_HDMIRX_TMR_CTRL_IE_MASK))

This macro disables interrupt in the HDMI RX timer peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_TmrIntrDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_TmrIntrEnable

#define XV_HdmiRx_TmrIntrEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_TMR_CTRL_SET_OFFSET), (XV_HDMIRX_TMR_CTRL_IE_MASK))

This macro enables interrupts in the HDMI RX timer peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_TmrIntrEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_TmrStart

#define XV_HdmiRx_TmrStart (   InstancePtr,
  Value 
)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_TMR_CNT_OFFSET), (u32)(Value))

This macro starts the HDMI RX timer peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_TmrStart(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_VideoEnable

#define XV_HdmiRx_VideoEnable (   InstancePtr,
  SetClr 
)
Value:
{ \
if (SetClr) { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_SET_OFFSET), (XV_HDMIRX_PIO_OUT_VID_EN_MASK)); \
} \
else { \
XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_PIO_OUT_CLR_OFFSET), (XV_HDMIRX_PIO_OUT_VID_EN_MASK)); \
} \
}
#define XV_HDMIRX_PIO_OUT_CLR_OFFSET
PIO Out Register Clear offset.
Definition: xv_hdmirx_hw.h:94
#define XV_HDMIRX_PIO_OUT_SET_OFFSET
PIO Out Register Set offset.
Definition: xv_hdmirx_hw.h:93
#define XV_HDMIRX_PIO_OUT_VID_EN_MASK
PIO Out video enable mask.
Definition: xv_hdmirx_hw.h:112

This macro asserts or clears the HDMI RX video enable.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
SetClrspecifies TRUE/FALSE value to either assert or release HDMI RX video enable.
Returns
None.
Note
C-style signature: void XV_HdmiRx_Reset(XV_HdmiRx *InstancePtr, u8 SetClr)

◆ XV_HdmiRx_VtdDisable

#define XV_HdmiRx_VtdDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_VTD_CTRL_CLR_OFFSET), (XV_HDMIRX_VTD_CTRL_RUN_MASK))

This macro disables the HDMI RX Timing Detector peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_VtdDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_VtdEnable

#define XV_HdmiRx_VtdEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_VTD_CTRL_SET_OFFSET), (XV_HDMIRX_VTD_CTRL_RUN_MASK))

This macro enables the HDMI RX Timing Detector peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_VtdEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_VtdIntrDisable

#define XV_HdmiRx_VtdIntrDisable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_VTD_CTRL_CLR_OFFSET), (XV_HDMIRX_VTD_CTRL_IE_MASK))

This macro disables interrupt in the HDMI RX Timing Detector peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_VtdIntrDisable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_VtdIntrEnable

#define XV_HdmiRx_VtdIntrEnable (   InstancePtr)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_VTD_CTRL_SET_OFFSET), (XV_HDMIRX_VTD_CTRL_IE_MASK))

This macro enables interrupt in the HDMI RX Timing Detector peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_VtdIntrEnable(XV_HdmiRx *InstancePtr)

◆ XV_HdmiRx_VtdSetTimebase

#define XV_HdmiRx_VtdSetTimebase (   InstancePtr,
  Value 
)    XV_HdmiRx_WriteReg((InstancePtr)->Config.BaseAddress, (XV_HDMIRX_VTD_CTRL_OFFSET), (u32)(Value << XV_HDMIRX_VTD_CTRL_TIMEBASE_SHIFT))

This macro sets the timebase in the HDMI RX Timing Detector peripheral.

Parameters
InstancePtris a pointer to the XV_HdmiRx core instance.
Returns
None.
Note
C-style signature: void XV_HdmiRx_VtdSetTimebase(XV_HdmiRx *InstancePtr, Value)

Typedef Documentation

◆ XV_HdmiRx_Callback

typedef void(* XV_HdmiRx_Callback) (void *CallbackRef)

Callback type for interrupt.

Parameters
CallbackRefis a callback reference passed in by the upper layer when setting the callback functions, and passed back to the upper layer when the callback is invoked.
Returns
None.
Note
None.

Enumeration Type Documentation

◆ XV_HdmiRx_HandlerType

These constants specify different types of handler and used to differentiate interrupt requests from peripheral.

Enumerator
XV_HDMIRX_HANDLER_CONNECT 

A connect event interrupt type.

XV_HDMIRX_HANDLER_AUX 

Interrupt type for AUX peripheral.

XV_HDMIRX_HANDLER_AUD 

Interrupt type for AUD peripheral.

XV_HDMIRX_HANDLER_LNKSTA 

Interrupt type for LNKSTA peripheral.

XV_HDMIRX_HANDLER_DDC 

Interrupt type for DDC peripheral.

XV_HDMIRX_HANDLER_STREAM_DOWN 

Interrupt type for stream down.

XV_HDMIRX_HANDLER_STREAM_INIT 

Interrupt type for stream init.

XV_HDMIRX_HANDLER_STREAM_UP 

Interrupt type for stream up.

XV_HDMIRX_HANDLER_HDCP 

Interrupt type for hdcp.

XV_HDMIRX_HANDLER_LINK_ERROR 

Interrupt type for link error.

XV_HDMIRX_HANDLER_SYNC_LOSS 

Interrupt type for sync loss.

XV_HDMIRX_HANDLER_MODE 

Interrupt type for mode.

◆ XV_HdmiRx_State

Enumerator
XV_HDMIRX_STATE_STREAM_DOWN 

Stream down.

XV_HDMIRX_STATE_STREAM_IDLE 

Stream idle.

XV_HDMIRX_STATE_STREAM_INIT 

Stream init.

XV_HDMIRX_STATE_STREAM_ARM 

Stream arm.

XV_HDMIRX_STATE_STREAM_LOCK 

Stream lock.

XV_HDMIRX_STATE_STREAM_RDY 

Stream ready.

XV_HDMIRX_STATE_STREAM_UP 

Stream up.

Function Documentation

◆ XV_HdmiRx_CfgInitialize()

int XV_HdmiRx_CfgInitialize ( XV_HdmiRx InstancePtr,
XV_HdmiRx_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 XHdmiRx 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_HdmiRx_CfgInitialize was successful.
  • XST_FAILURE if HDMI RX PIO ID mismatched.
Note
None.

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HdmiRx::ConnectCallback, XV_HDMIRX_MASK_16, XV_HDMIRX_PIO_ID, XV_HDMIRX_PIO_ID_OFFSET, XV_HdmiRx_ReadReg, and XV_HDMIRX_SHIFT_16.

◆ XV_HdmiRx_Clear()

◆ XV_HdmiRx_ClearLinkStatus()

void XV_HdmiRx_ClearLinkStatus ( XV_HdmiRx InstancePtr)

This function clears the link error counters.

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

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_LNKSTA_CTRL_CLR_OFFSET, XV_HDMIRX_LNKSTA_CTRL_ERR_CLR_MASK, XV_HDMIRX_LNKSTA_CTRL_SET_OFFSET, and XV_HdmiRx_WriteReg.

◆ XV_HdmiRx_DdcGetHdcpReadMessageBufferWords()

u16 XV_HdmiRx_DdcGetHdcpReadMessageBufferWords ( XV_HdmiRx 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_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_DDC_HDCP_STA_OFFSET, XV_HDMIRX_DDC_STA_HDCP_RMSG_WORDS_MASK, XV_HDMIRX_DDC_STA_HDCP_RMSG_WORDS_SHIFT, and XV_HdmiRx_ReadReg.

◆ XV_HdmiRx_DdcGetHdcpWriteMessageBufferWords()

u16 XV_HdmiRx_DdcGetHdcpWriteMessageBufferWords ( XV_HdmiRx 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_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_DDC_HDCP_STA_OFFSET, XV_HDMIRX_DDC_STA_HDCP_WMSG_WORDS_MASK, XV_HDMIRX_DDC_STA_HDCP_WMSG_WORDS_SHIFT, and XV_HdmiRx_ReadReg.

◆ XV_HdmiRx_DdcHdcpReadData()

u32 XV_HdmiRx_DdcHdcpReadData ( XV_HdmiRx 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 XHdmiRx_DdcHdcpReadData(XHdmi_Rx *InstancePtr)

References XV_HDMIRX_DDC_HDCP_DATA_OFFSET, and XV_HdmiRx_ReadReg.

◆ XV_HdmiRx_DdcHdcpSetAddress()

void XV_HdmiRx_DdcHdcpSetAddress ( XV_HdmiRx 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 XHdmiRx_DdcHdcpSetAddress(XHdmi_Rx *InstancePtr, u8 Address)

References XV_HDMIRX_DDC_HDCP_ADDRESS_OFFSET, and XV_HdmiRx_WriteReg.

◆ XV_HdmiRx_DdcHdcpWriteData()

void XV_HdmiRx_DdcHdcpWriteData ( XV_HdmiRx 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 XHdmiRx_DdcHdcpWriteData(XHdmi_Rx *InstancePtr, u8 Data)

References XV_HDMIRX_DDC_HDCP_DATA_OFFSET, and XV_HdmiRx_WriteReg.

◆ XV_HdmiRx_DdcIsHdcpReadMessageBufferEmpty()

int XV_HdmiRx_DdcIsHdcpReadMessageBufferEmpty ( XV_HdmiRx 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_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_DDC_HDCP_STA_OFFSET, XV_HDMIRX_DDC_STA_HDCP_RMSG_EP_MASK, and XV_HdmiRx_ReadReg.

◆ XV_HdmiRx_DdcIsHdcpWriteMessageBufferEmpty()

int XV_HdmiRx_DdcIsHdcpWriteMessageBufferEmpty ( XV_HdmiRx 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_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_DDC_HDCP_STA_OFFSET, XV_HDMIRX_DDC_STA_HDCP_WMSG_EP_MASK, and XV_HdmiRx_ReadReg.

◆ XV_HdmiRx_DdcLoadEdid()

int XV_HdmiRx_DdcLoadEdid ( XV_HdmiRx InstancePtr,
u8 *  EdidData,
u16  Length 
)

This function loads the EDID data into the DDC slave.

Parameters
InstancePtris a pointer to the XV_HdmiRx 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_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_DDC_CTRL_EDID_EN_MASK, XV_HDMIRX_DDC_CTRL_SET_OFFSET, XV_HDMIRX_DDC_EDID_DATA_OFFSET, XV_HDMIRX_DDC_EDID_WP_OFFSET, XV_HdmiRx_DdcGetEdidWords(), and XV_HdmiRx_WriteReg.

◆ XV_HdmiRx_DebugInfo()

void XV_HdmiRx_DebugInfo ( XV_HdmiRx InstancePtr)

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

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

References XV_HdmiRx::Stream, and XV_HdmiRx_Stream::Video.

◆ XV_HdmiRx_Divide()

u32 XV_HdmiRx_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.

Referenced by XV_HdmiRx_GetVideoTiming().

◆ XV_HdmiRx_GetAcrCts()

u32 XV_HdmiRx_GetAcrCts ( XV_HdmiRx InstancePtr)

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

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

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_AUD_CTS_OFFSET, and XV_HdmiRx_ReadReg.

◆ XV_HdmiRx_GetAcrN()

u32 XV_HdmiRx_GetAcrN ( XV_HdmiRx InstancePtr)

This function provides audio clock regenerating factor N value.

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

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_AUD_N_OFFSET, and XV_HdmiRx_ReadReg.

◆ XV_HdmiRx_GetAviColorSpace()

XVidC_ColorFormat XV_HdmiRx_GetAviColorSpace ( XV_HdmiRx InstancePtr)

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

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

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_AUX_STA_AVI_CS_MASK, XV_HDMIRX_AUX_STA_AVI_CS_SHIFT, XV_HDMIRX_AUX_STA_OFFSET, and XV_HdmiRx_ReadReg.

Referenced by XV_HdmiRx_GetVideoProperties().

◆ XV_HdmiRx_GetAviVic()

u8 XV_HdmiRx_GetAviVic ( XV_HdmiRx InstancePtr)

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

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

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_AUX_STA_AVI_VIC_MASK, XV_HDMIRX_AUX_STA_AVI_VIC_SHIFT, XV_HDMIRX_AUX_STA_OFFSET, and XV_HdmiRx_ReadReg.

Referenced by XV_HdmiRx_GetVideoProperties().

◆ XV_HdmiRx_GetGcpColorDepth()

XVidC_ColorDepth XV_HdmiRx_GetGcpColorDepth ( XV_HdmiRx InstancePtr)

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

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

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_AUX_STA_GCP_CD_MASK, XV_HDMIRX_AUX_STA_GCP_CD_SHIFT, XV_HDMIRX_AUX_STA_OFFSET, and XV_HdmiRx_ReadReg.

Referenced by XV_HdmiRx_GetVideoProperties().

◆ XV_HdmiRx_GetLinkStatus()

u32 XV_HdmiRx_GetLinkStatus ( XV_HdmiRx InstancePtr,
u8  Type 
)

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

Parameters
InstancePtris a pointer to the XV_HdmiRx 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.
  • 3 = Link phase.
  • 4 = Link delay.
  • 5 = Link line length
Returns
Link status of the HDMI RX core link.
Note
None.

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_LNKSTA_LNK_ERR0_OFFSET, and XV_HdmiRx_ReadReg.

◆ XV_HdmiRx_GetTmdsClockRatio()

int XV_HdmiRx_GetTmdsClockRatio ( XV_HdmiRx InstancePtr)

This function gets the SCDC TMDS clock ratio bit.

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

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_PIO_IN_OFFSET, XV_HDMIRX_PIO_IN_SCDC_TMDS_CLOCK_RATIO_MASK, and XV_HdmiRx_ReadReg.

◆ XV_HdmiRx_GetVideoProperties()

int XV_HdmiRx_GetVideoProperties ( XV_HdmiRx InstancePtr)

This function reads the video properties from the aux peripheral.

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

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HdmiRx::Stream, XV_HdmiRx_Stream::Vic, XV_HdmiRx_Stream::Video, XV_HDMIRX_AUX_STA_AVI_MASK, XV_HDMIRX_AUX_STA_OFFSET, XV_HdmiRx_GetAviColorSpace(), XV_HdmiRx_GetAviVic(), XV_HdmiRx_GetGcpColorDepth(), and XV_HdmiRx_ReadReg.

◆ XV_HdmiRx_GetVideoTiming()

◆ XV_HdmiRx_IntrHandler()

void XV_HdmiRx_IntrHandler ( void *  InstancePtr)

This function is the interrupt handler for the HDMI RX driver.

This handler reads the pending interrupt from PIO, DDC, TIMDET, AUX, AUD and LNKSTA peripherals, determines the source of the interrupts, clears the interrupts and calls callbacks accordingly.

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 XV_HdmiRx_SetCallback() during initialization phase. An example delivered with this driver demonstrates how this could be done.

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

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HdmiRx::IsReady, XV_HDMIRX_PIO_STA_IRQ_MASK, XV_HDMIRX_PIO_STA_OFFSET, and XV_HdmiRx_ReadReg.

◆ XV_HdmiRx_IsLinkStatusErrMax()

int XV_HdmiRx_IsLinkStatusErrMax ( XV_HdmiRx InstancePtr)

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

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

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_LNKSTA_STA_ERR_MAX_MASK, XV_HDMIRX_LNKSTA_STA_OFFSET, and XV_HdmiRx_ReadReg.

◆ XV_HdmiRx_IsStreamConnected()

int XV_HdmiRx_IsStreamConnected ( XV_HdmiRx InstancePtr)

This function provides the stream connected status.

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

References XV_HdmiRx_Stream::IsConnected, and XV_HdmiRx::Stream.

◆ XV_HdmiRx_IsStreamScrambled()

int XV_HdmiRx_IsStreamScrambled ( XV_HdmiRx InstancePtr)

This function provides the stream scrambler status.

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

References XV_HdmiRx_Stream::IsScrambled, and XV_HdmiRx::Stream.

◆ XV_HdmiRx_IsStreamUp()

int XV_HdmiRx_IsStreamUp ( XV_HdmiRx InstancePtr)

This function provides status of the stream.

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

References XV_HdmiRx_Stream::State, XV_HdmiRx::Stream, and XV_HDMIRX_STATE_STREAM_UP.

◆ XV_HdmiRx_LookupConfig()

XV_HdmiRx_Config* XV_HdmiRx_LookupConfig ( u16  DeviceId)

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

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

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

◆ XV_HdmiRx_SelfTest()

int XV_HdmiRx_SelfTest ( XV_HdmiRx InstancePtr)

This function reads ID of PIO peripheral.

Parameters
InstancePtris a pointer to the HDMI RX core instance.
Returns
  • XST_SUCCESS if PIO ID was matched.
  • XST_FAILURE if PIO ID was mismatched.
Note
None.

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_MASK_16, XV_HDMIRX_PIO_ID, XV_HDMIRX_PIO_ID_OFFSET, XV_HdmiRx_ReadReg, and XV_HDMIRX_SHIFT_16.

◆ XV_HdmiRx_SetCallback()

int XV_HdmiRx_SetCallback ( XV_HdmiRx InstancePtr,
u32  HandlerType,
void *  CallbackFunc,
void *  CallbackRef 
)

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

HandlerType                 Callback Function Type
-------------------------   -----------------------------------------------
(XV_HDMIRX_HANDLER_VTD)         VtdCallback
(XV_HDMIRX_HANDLER_AUX)      AuxCallback
(XV_HDMIRX_HANDLER_AUD)      AudCallback
(XV_HDMIRX_HANDLER_LNKSTA)   LnkStaCallback
(XV_HDMIRX_HANDLER_PIO)      PioCallback
Parameters
InstancePtris a pointer to the HDMI RX 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 XV_HdmiRx::AudCallback, XV_HdmiRx::AudRef, XV_HdmiRx::AuxCallback, XV_HdmiRx::AuxRef, XV_HdmiRx::ConnectCallback, XV_HdmiRx::ConnectRef, XV_HdmiRx::DdcCallback, XV_HdmiRx::DdcRef, XV_HdmiRx::HdcpCallback, XV_HdmiRx::IsAudCallbackSet, XV_HdmiRx::IsAuxCallbackSet, XV_HdmiRx::IsConnectCallbackSet, XV_HdmiRx::IsDdcCallbackSet, XV_HdmiRx::IsLnkStaCallbackSet, XV_HdmiRx::IsStreamDownCallbackSet, XV_HdmiRx::IsStreamInitCallbackSet, XV_HdmiRx::IsStreamUpCallbackSet, XV_HdmiRx::LnkStaCallback, XV_HdmiRx::LnkStaRef, XV_HdmiRx::StreamDownCallback, XV_HdmiRx::StreamDownRef, XV_HdmiRx::StreamInitCallback, XV_HdmiRx::StreamInitRef, XV_HdmiRx::StreamUpCallback, XV_HdmiRx::StreamUpRef, XV_HDMIRX_HANDLER_AUD, XV_HDMIRX_HANDLER_AUX, XV_HDMIRX_HANDLER_CONNECT, XV_HDMIRX_HANDLER_DDC, XV_HDMIRX_HANDLER_HDCP, XV_HDMIRX_HANDLER_LNKSTA, XV_HDMIRX_HANDLER_STREAM_DOWN, XV_HDMIRX_HANDLER_STREAM_INIT, and XV_HDMIRX_HANDLER_STREAM_UP.

◆ XV_HdmiRx_SetColorFormat()

void XV_HdmiRx_SetColorFormat ( XV_HdmiRx InstancePtr)

◆ XV_HdmiRx_SetHpd()

int XV_HdmiRx_SetHpd ( XV_HdmiRx InstancePtr,
u8  SetClr 
)

This function enables/clear Hot-Plug-Detect.

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

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HDMIRX_PIO_OUT_CLR_OFFSET, XV_HDMIRX_PIO_OUT_HPD_MASK, XV_HDMIRX_PIO_OUT_SET_OFFSET, and XV_HdmiRx_WriteReg.

◆ XV_HdmiRx_SetPixelRate()

int XV_HdmiRx_SetPixelRate ( XV_HdmiRx InstancePtr)

This function sets the pixel rate.

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

References XV_HdmiRx_Config::BaseAddress, XV_HdmiRx::Config, XV_HdmiRx::Stream, XV_HdmiRx_Stream::Video, XV_HDMIRX_PIO_OUT_MSK_OFFSET, XV_HDMIRX_PIO_OUT_OFFSET, XV_HDMIRX_PIO_OUT_PIXEL_RATE_MASK, XV_HDMIRX_PIO_OUT_PIXEL_RATE_SHIFT, and XV_HdmiRx_WriteReg.

Referenced by XV_HdmiRx_SetStream().

◆ XV_HdmiRx_SetStream()

int XV_HdmiRx_SetStream ( XV_HdmiRx InstancePtr,
XVidC_PixelsPerClock  Ppc,
u32  Clock 
)

This function sets the HDMI RX stream parameters.

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

References XV_HdmiRx_Stream::RefClk, XV_HdmiRx::Stream, XV_HdmiRx_Stream::Video, and XV_HdmiRx_SetPixelRate().

◆ XV_HdmiRx_VSIF_3DSampMethodToString()

char* XV_HdmiRx_VSIF_3DSampMethodToString ( XV_HdmiRx_3D_Sampling_Method  Item)

This function returns a string representation of the enumerated type XV_HdmiRx_3D_Sampling_Method.

Parameters
Itemspecifies the value to convert.
Returns
Pointer to the converted string.

References XV_HDMIRX_3D_SAMPLING_HORIZONTAL, and XV_HDMIRX_3D_SAMPLING_QUINCUNX.

◆ XV_HdmiRx_VSIF_3DSampPosToString()

char* XV_HdmiRx_VSIF_3DSampPosToString ( XV_HdmiRx_3D_Sampling_Position  Item)

This function returns a string representation of the enumerated type XV_HdmiRx_3D_Sampling_Position.

Parameters
Itemspecifies the value to convert.
Returns
Pointer to the converted string.

References XV_HDMIRX_3D_SAMPPOS_ELER, XV_HDMIRX_3D_SAMPPOS_ELOR, XV_HDMIRX_3D_SAMPPOS_OLER, and XV_HDMIRX_3D_SAMPPOS_OLOR.

◆ XV_HdmiRx_VSIF_3DStructToString()

char* XV_HdmiRx_VSIF_3DStructToString ( XV_HdmiRx_3D_Struct_Field  Item)

This function returns a string representation of the enumerated type XV_HdmiRx_3D_Struct_Field.

Parameters
Itemspecifies the value to convert.
Returns
Pointer to the converted string.

References XV_HDMIRX_3D_STRUCT_FIELD_ALTERNATIVE, XV_HDMIRX_3D_STRUCT_FRAME_PACKING, XV_HDMIRX_3D_STRUCT_L_DEPTH, XV_HDMIRX_3D_STRUCT_L_DEPTH_GRAPH_GDEPTH, XV_HDMIRX_3D_STRUCT_LINE_ALTERNATIVE, XV_HDMIRX_3D_STRUCT_SIDE_BY_SIDE_FULL, XV_HDMIRX_3D_STRUCT_SIDE_BY_SIDE_HALF, and XV_HDMIRX_3D_STRUCT_TOP_AND_BOTTOM.

Referenced by XV_HdmiRx_VSIF_DisplayInfo().

◆ XV_HdmiRx_VSIF_DisplayInfo()

void XV_HdmiRx_VSIF_DisplayInfo ( XV_HdmiRx_VSIF VSIFPtr)

This function displays the contents of an XV_HdmiRx_VSIF instance.

Parameters
VSIFPtris a pointer to the XV_HdmiRx_VSIF instance.
Returns
None.

References XV_HdmiRx_VSIF::Format, XV_HdmiRx_VSIF::HDMI_VIC, XV_HdmiRx_VSIF_3DStructToString(), XV_HDMIRX_VSIF_VF_3D, and XV_HDMIRX_VSIF_VF_EXTRES.

◆ XV_HdmiRx_VSIF_ParsePacket()

int XV_HdmiRx_VSIF_ParsePacket ( XV_HdmiRx_Aux AuxPtr,
XV_HdmiRx_VSIF VSIFPtr 
)

This function parses a Vendor Specific InfoFrame (VSIF).

Parameters
AuxPtris a pointer to the XV_HdmiRx_Rx_Aux instance.
VSIFPtris a pointer to the XV_HdmiRx_VSIF instance.
Returns
  • XST_SUCCESS if operation was successful
  • XST_FAILURE if an error was detected during parsing

References XV_HdmiRx_AuxHeader::Byte, XV_HdmiRx_AuxData::Byte, XV_HdmiRx_Aux::Data, XV_HdmiRx_Aux::Header, XV_HdmiRx_VSIF::IEEE_ID, and XV_HdmiRx_VSIF::Version.