v_hdmitx1
Vitis Drivers API Documentation
xv_hdmitx1.c File Reference

Overview

This is the main file for Xilinx HDMI TX core.

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

MODIFICATION HISTORY:
Ver   Who    Date     Changes


1.00 EB 22/05/18 Initial release.

Functions

int XV_HdmiTx1_CfgInitialize (XV_HdmiTx1 *InstancePtr, XV_HdmiTx1_Config *CfgPtr, UINTPTR EffectiveAddr)
 This function initializes the HDMI TX core. More...
 
void XV_HdmiTx1_SetAxiClkFreq (XV_HdmiTx1 *InstancePtr, u32 ClkFreq)
 This function sets the AXI4-Lite Clock Frequency. More...
 
void XV_HdmiTx1_SetHdmiFrlMode (XV_HdmiTx1 *InstancePtr)
 This function sets the core into HDMI FRL mode. More...
 
void XV_HdmiTx1_SetHdmiTmdsMode (XV_HdmiTx1 *InstancePtr)
 This function sets the core into HDMI TMDS mode. More...
 
void XV_HdmiTx1_SetDviMode (XV_HdmiTx1 *InstancePtr)
 This function sets the core into DVI mode. More...
 
void XV_HdmiTx1_AuxEnable (XV_HdmiTx1 *InstancePtr)
 This function enables the HDMI TX Auxiliary (AUX) peripheral. More...
 
void XV_HdmiTx1_AudioEnable (XV_HdmiTx1 *InstancePtr)
 This macro enables audio in HDMI TX core. More...
 
void XV_HdmiTx1_Clear (XV_HdmiTx1 *InstancePtr)
 This function clear the HDMI TX variables and sets it to the defaults. More...
 
void XV_HdmiTx1_Start (XV_HdmiTx1 *InstancePtr)
 This function starts the HDMI TX core. More...
 
void XV_HdmiTx1_Stop (XV_HdmiTx1 *InstancePtr)
 This function stops the HDMI TX core. More...
 
u8 XV_HdmiTx1_LookupVic (XVidC_VideoMode VideoMode)
 This function provides video identification code of video mode. More...
 
u64 XV_HdmiTx1_GetTmdsClk (XV_HdmiTx1 *InstancePtr)
 This function sets and return the TMDS Clock based on Video Parameter from the InstancePtr. More...
 
int XV_HdmiTx1_Scrambler (XV_HdmiTx1 *InstancePtr)
 This function controls the scrambler. More...
 
int XV_HdmiTx1_ClockRatio (XV_HdmiTx1 *InstancePtr)
 This function controls the TMDS clock ratio. More...
 
int XV_HdmiTx1_DetectHdmi20 (XV_HdmiTx1 *InstancePtr)
 This function detects connected sink is a HDMI 2.0/HDMI 1.4 sink device and sets appropriate flag in the TX stream. More...
 
void XV_HdmiTx1_ShowSCDC (XV_HdmiTx1 *InstancePtr)
 This function shows the sinks SCDC registers. More...
 
u32 XV_HdmiTx1_SetStream (XV_HdmiTx1 *InstancePtr, XVidC_VideoTiming VideoTiming, XVidC_FrameRate FrameRate, XVidC_ColorFormat ColorFormat, XVidC_ColorDepth Bpc, XVidC_PixelsPerClock Ppc, XVidC_3DInfo *Info3D, u8 FVaFactor, u8 VrrEnabled, u8 CnmvrrEnabled, u64 *TmdsClock)
 This function sets the HDMI TX stream parameters. More...
 
void XV_HdmiTx1_INT_VRST (XV_HdmiTx1 *InstancePtr, u8 Reset)
 This function asserts or releases the HDMI TX Internal VRST. More...
 
void XV_HdmiTx1_INT_LRST (XV_HdmiTx1 *InstancePtr, u8 Reset)
 This function asserts or releases the HDMI TX Internal LRST. More...
 
void XV_HdmiTx1_EXT_VRST (XV_HdmiTx1 *InstancePtr, u8 Reset)
 This function asserts or releases the HDMI TX External VRST. More...
 
void XV_HdmiTx1_EXT_SYSRST (XV_HdmiTx1 *InstancePtr, u8 Reset)
 This function asserts or releases the HDMI TX External SYSRST. More...
 
void XV_HdmiTx1_SetGcpAvmuteBit (XV_HdmiTx1 *InstancePtr)
 This function sets the HDMI TX AUX GCP register AVMUTE bit. More...
 
void XV_HdmiTx1_ClearGcpAvmuteBit (XV_HdmiTx1 *InstancePtr)
 This function clears the HDMI TX AUX GCP register AVMUTE bit. More...
 
void XV_HdmiTx1_SetGcpClearAvmuteBit (XV_HdmiTx1 *InstancePtr)
 This function sets the HDMI TX AUX GCP register CLEAR_AVMUTE bit. More...
 
void XV_HdmiTx1_ClearGcpClearAvmuteBit (XV_HdmiTx1 *InstancePtr)
 This function clears the HDMI TX AUX GCP register CLEAR_AVMUTE bit. More...
 
void XV_HdmiTx1_SetPixelRate (XV_HdmiTx1 *InstancePtr)
 This function sets the pixel rate at output. More...
 
void XV_HdmiTx1_SetSampleRate (XV_HdmiTx1 *InstancePtr, u8 SampleRate)
 This function sets the sample rate at output. More...
 
void XV_HdmiTx1_SetColorFormat (XV_HdmiTx1 *InstancePtr)
 This function sets the color format. More...
 
void XV_HdmiTx1_SetColorDepth (XV_HdmiTx1 *InstancePtr)
 This function sets the color depth. More...
 
void XV_HdmiTx1_DdcInit (XV_HdmiTx1 *InstancePtr, u32 Frequency)
 This function prepares TX DDC peripheral to use. More...
 
int XV_HdmiTx1_DdcGetAck (XV_HdmiTx1 *InstancePtr)
 This function gets the acknowledge flag. More...
 
int XV_HdmiTx1_DdcWaitForDone (XV_HdmiTx1 *InstancePtr)
 This function waits for the done flag to be set. More...
 
void XV_HdmiTx1_DdcWriteCommand (XV_HdmiTx1 *InstancePtr, u32 Cmd)
 This function writes data into the command fifo. More...
 
u8 XV_HdmiTx1_DdcReadData (XV_HdmiTx1 *InstancePtr)
 This function reads data from the data fifo. More...
 
int XV_HdmiTx1_DdcWrite (XV_HdmiTx1 *InstancePtr, u8 Slave, u16 Length, u8 *Buffer, u8 Stop)
 This function writes data from DDC peripheral from given slave address. More...
 
int XV_HdmiTx1_DdcRead (XV_HdmiTx1 *InstancePtr, u8 Slave, u16 Length, u8 *Buffer, u8 Stop)
 This function reads data from DDC peripheral from given slave address. More...
 
int XV_HdmiTx1_DdcReadReg (XV_HdmiTx1 *InstancePtr, u8 Slave, u16 Length, u8 RegAddr, u8 *Buffer)
 This function reads specified register from DDC peripheral from given slave address. More...
 
int XV_HdmiTx1_DdcWriteField (XV_HdmiTx1 *InstancePtr, XV_HdmiTx1_ScdcFieldType Field, u8 Value)
 This function writes the specified SCDC Field. More...
 
void XV_HdmiTx1_Aux_Dsc_Send_Header (XV_HdmiTx1 *InstancePtr, u32 Data)
 This function transmits the DSC packet header. More...
 
void XV_HdmiTx1_Aux_Dsc_Send_Data (XV_HdmiTx1 *InstancePtr, u32 Data)
 This function transmits the DSC packet data. More...
 
u32 XV_HdmiTx1_AuxSend (XV_HdmiTx1 *InstancePtr)
 This function transmits the infoframes generated by the processor. More...
 
void XV_HdmiTx1_Info (XV_HdmiTx1 *InstancePtr)
 This function prints stream and timing information on STDIO/Uart console. More...
 
void XV_HdmiTx1_DebugInfo (XV_HdmiTx1 *InstancePtr)
 This function prints debug information on STDIO/UART console. More...
 
void XV_HdmiTx1_RegisterDebug (XV_HdmiTx1 *InstancePtr)
 This function prints out HDMI TX register. More...
 
int XV_HdmiTx1_IsStreamScrambled (XV_HdmiTx1 *InstancePtr)
 This function provides status of the stream. More...
 
int XV_HdmiTx1_IsStreamConnected (XV_HdmiTx1 *InstancePtr)
 This function provides the stream connected status. More...
 
void XV_HdmiTx1_FRLACRStart (XV_HdmiTx1 *InstancePtr)
 This function Starts the internal ACR module for FRL. More...
 
void XV_HdmiTx1_TMDSACRStart (XV_HdmiTx1 *InstancePtr)
 This function Starts the internal ACR module for FRL. More...
 
int XV_HdmiTx1_SetAudioChannels (XV_HdmiTx1 *InstancePtr, u8 Value)
 This function sets the active audio channels. More...
 
u32 XV_HdmiTxSs1_GetAudioCtsVal (XV_HdmiTx1 *InstancePtr)
 This function gets the Generated ACR CTS Value. More...
 
u32 XV_HdmiTxSs1_GetAudioNVal (XV_HdmiTx1 *InstancePtr)
 This function gets the programmed ACR N Value. More...
 
int XV_HdmiTx1_SetAudioFormat (XV_HdmiTx1 *InstancePtr, XV_HdmiTx1_AudioFormatType Value)
 This function sets the active audio format. More...
 
XV_HdmiTx1_AudioFormatType XV_HdmiTx1_GetAudioFormat (XV_HdmiTx1 *InstancePtr)
 This function gets the active audio format. More...
 
u8 * XV_HdmiTx1_GetScdcEdRegisters (XV_HdmiTx1 *InstancePtr)
 This function reads the CED and RSED registers from the sink and returns the pointer to the data structure which stores the CED related readings (from SCDC register 0x50 to 0x5A). More...
 

Variables

const XV_HdmiTx1_ScdcField ScdcField [XV_HDMITX1_SCDCFIELD_SIZE]
 This table contains the attributes for SCDC fields Each entry consists of: 1) Register Offset 2) Bits Mask 3) Bits Shift. More...
 

Function Documentation

void XV_HdmiTx1_AudioEnable ( XV_HdmiTx1 InstancePtr)

This macro enables audio in HDMI TX core.

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

References XV_HdmiTx1::Stream, XV_HDMITX1_AUD_CTRL_RUN_MASK, XV_HDMITX1_AUD_CTRL_SET_OFFSET, XV_HdmiTx1_FRLACRStart(), XV_HdmiTx1_TMDSACRStart(), and XV_HdmiTx1_WriteReg.

Referenced by XV_HdmiTx1_SetAudioChannels(), XV_HdmiTx1_SetAudioFormat(), XV_HdmiTx1_SetHdmiFrlMode(), and XV_HdmiTx1_SetHdmiTmdsMode().

void XV_HdmiTx1_Aux_Dsc_Send_Data ( XV_HdmiTx1 InstancePtr,
u32  Data 
)

This function transmits the DSC packet data.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Datavalue to be written
Returns
None.
Note
None.

References XV_HdmiTx1_Config::BaseAddress, XV_HdmiTx1::Config, and XV_HdmiTx1_WriteReg.

void XV_HdmiTx1_Aux_Dsc_Send_Header ( XV_HdmiTx1 InstancePtr,
u32  Data 
)

This function transmits the DSC packet header.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Datavalue to be written
Returns
None.
Note
None.

References XV_HdmiTx1_Config::BaseAddress, XV_HdmiTx1::Config, and XV_HdmiTx1_WriteReg.

void XV_HdmiTx1_AuxEnable ( XV_HdmiTx1 InstancePtr)

This function enables the HDMI TX Auxiliary (AUX) peripheral.

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

References XV_HDMITX1_AUX_CTRL_RUN_MASK, XV_HDMITX1_AUX_CTRL_SET_OFFSET, and XV_HdmiTx1_WriteReg.

Referenced by XV_HdmiTx1_FrlStreamStart(), XV_HdmiTx1_SetHdmiFrlMode(), and XV_HdmiTx1_SetHdmiTmdsMode().

u32 XV_HdmiTx1_AuxSend ( XV_HdmiTx1 InstancePtr)

This function transmits the infoframes generated by the processor.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Returns
  • XST_SUCCESS if infoframes transmitted successfully.
  • XST_FAILURE if AUX FIFO is full.
Note
None.

References XV_HdmiTx1::Aux, XV_HdmiTx1_Config::BaseAddress, XV_HdmiTx1::Config, XV_HDMITX1_AUX_DAT_OFFSET, XV_HDMITX1_AUX_STA_FIFO_FUL_MASK, XV_HDMITX1_AUX_STA_OFFSET, XV_HDMITX1_AUX_STA_PKT_RDY_MASK, XV_HdmiTx1_ReadReg, and XV_HdmiTx1_WriteReg.

int XV_HdmiTx1_CfgInitialize ( XV_HdmiTx1 InstancePtr,
XV_HdmiTx1_Config CfgPtr,
UINTPTR  EffectiveAddr 
)

This function initializes the HDMI TX core.

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

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

References XV_HdmiTx1_Stream::Audio, XV_HdmiTx1_Config::BaseAddress, XV_HdmiTx1::Config, XV_HdmiTx1::ConnectCallback, XV_HdmiTx1_Stream::CorePixPerClk, XV_HdmiTx1::DscDecodeFailCallback, XV_HdmiTx1::DynHdrMtwCallback, XV_HdmiTx1_Stream::Frl, XV_HdmiTx1::FrlConfigCallback, XV_HdmiTx1::FrlFfeCallback, XV_HdmiTx1::FrlStartCallback, XV_HdmiTx1::FrlStopCallback, XV_HdmiTx1_Stream::IsConnected, XV_HdmiTx1::IsReady, XV_HdmiTx1_Frl::Lanes, XV_HdmiTx1_Frl::MaxFrlRate, XV_HdmiTx1_Config::MaxFrlRate, XV_HdmiTx1_Stream::OverrideScrambler, XV_HdmiTx1_Frl::RateLock, XV_HdmiTx1_Stream::State, XV_HdmiTx1::Stream, XV_HdmiTx1::StreamDownCallback, XV_HdmiTx1::StreamUpCallback, XV_HdmiTx1::TmdsConfigCallback, XV_HdmiTx1::ToggleCallback, XV_HdmiTx1_Frl::TrainingState, XV_HdmiTx1::VsCallback, XV_HDMITX1_AUD_CTRL_CLR_OFFSET, XV_HDMITX1_AUD_CTRL_SET_OFFSET, XV_HdmiTx1_AudioDisable, XV_HdmiTx1_AuxDisable, XV_HdmiTx1_Clear(), XV_HDMITX1_CONNECT_CONF_OFFSET, XV_HdmiTx1_DdcDisable, XV_HdmiTx1_DdcIntrClear, XV_HdmiTx1_FrlExecute(), XV_HdmiTx1_FrlExtVidCkeSource(), XV_HdmiTx1_FrlIntrDisable, XV_HdmiTx1_FrlIntrEnable, XV_HdmiTx1_FrlReset(), XV_HdmiTx1_GetTime1Ms, XV_HDMITX1_HPD_TIMEGRID_OFFSET, XV_HDMITX1_MASK_16, XV_HDMITX1_PIO_ID, XV_HDMITX1_PIO_ID_OFFSET, XV_HDMITX1_PIO_IN_BRDG_LOCKED_MASK, XV_HDMITX1_PIO_IN_BRDG_OVERFLOW_MASK, XV_HDMITX1_PIO_IN_BRDG_UNDERFLOW_MASK, XV_HDMITX1_PIO_IN_EVT_FE_OFFSET, XV_HDMITX1_PIO_IN_EVT_RE_OFFSET, XV_HDMITX1_PIO_IN_HPD_MASK, XV_HDMITX1_PIO_IN_HPD_TOGGLE_MASK, XV_HDMITX1_PIO_IN_LNK_RDY_MASK, XV_HDMITX1_PIO_IN_VS_MASK, XV_HdmiTx1_PioDisable, XV_HdmiTx1_PioIntrClear, XV_HdmiTx1_ReadReg, XV_HdmiTx1_SetHdmiTmdsMode(), XV_HDMITX1_SHIFT_16, XV_HDMITX1_TOGGLE_CONF_OFFSET, and XV_HdmiTx1_WriteReg.

void XV_HdmiTx1_Clear ( XV_HdmiTx1 InstancePtr)

This function clear the HDMI TX variables and sets it to the defaults.

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

Referenced by XV_HdmiTx1_CfgInitialize().

void XV_HdmiTx1_ClearGcpAvmuteBit ( XV_HdmiTx1 InstancePtr)

This function clears the HDMI TX AUX GCP register AVMUTE bit.

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

References XV_HDMITX1_PIO_OUT_CLR_OFFSET, XV_HDMITX1_PIO_OUT_GCP_AVMUTE_MASK, and XV_HdmiTx1_WriteReg.

void XV_HdmiTx1_ClearGcpClearAvmuteBit ( XV_HdmiTx1 InstancePtr)

This function clears the HDMI TX AUX GCP register CLEAR_AVMUTE bit.

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

References XV_HDMITX1_PIO_OUT_CLR_OFFSET, XV_HDMITX1_PIO_OUT_GCP_CLEARAVMUTE_MASK, and XV_HdmiTx1_WriteReg.

int XV_HdmiTx1_ClockRatio ( XV_HdmiTx1 InstancePtr)

This function controls the TMDS clock ratio.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Returns
  • XST_SUCCESS if HDMI 2.0
  • XST_FAILURE if HDMI 1.4
Note
None.

References XV_HdmiTx1_Stream::ScdcSupport, XV_HdmiTx1::Stream, XV_HdmiTx1_Stream::TMDSClockRatio, XV_HdmiTx1_DdcRead(), and XV_HdmiTx1_DdcWrite().

Referenced by XV_HdmiTx1_SetStream().

int XV_HdmiTx1_DdcGetAck ( XV_HdmiTx1 InstancePtr)

This function gets the acknowledge flag.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Note
None.

References XV_HdmiTx1_Config::BaseAddress, XV_HdmiTx1::Config, XV_HDMITX1_DDC_STA_ACK_MASK, XV_HDMITX1_DDC_STA_OFFSET, and XV_HdmiTx1_ReadReg.

Referenced by XV_HdmiTx1_DdcRead(), and XV_HdmiTx1_DdcWrite().

void XV_HdmiTx1_DdcInit ( XV_HdmiTx1 InstancePtr,
u32  Frequency 
)

This function prepares TX DDC peripheral to use.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Frequencyspecifies the value that needs to be set.
Returns
None.
Note
None.

References XV_HdmiTx1_Config::BaseAddress, XV_HdmiTx1::Config, XV_HDMITX1_DDC_CTRL_CLK_DIV_MASK, XV_HDMITX1_DDC_CTRL_OFFSET, and XV_HdmiTx1_WriteReg.

Referenced by XV_HdmiTx1_SetAxiClkFreq().

int XV_HdmiTx1_DdcRead ( XV_HdmiTx1 InstancePtr,
u8  Slave,
u16  Length,
u8 *  Buffer,
u8  Stop 
)

This function reads data from DDC peripheral from given slave address.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Slavespecifies the slave address from where data needs to be read.
Lengthspecifies number of bytes to be read.
Bufferspecifies a pointer to u8 variable that will be filled with data.
Stopspecifies the stop flag which is either TRUE/FALSE.
Returns
  • XST_SUCCESS if an acknowledgement received and timeout.
  • XST_FAILURE if no acknowledgement received.
Note
None.

References XV_HDMITX1_DDC_CMD_RD_TOKEN, XV_HDMITX1_DDC_CMD_STP_TOKEN, XV_HDMITX1_DDC_CMD_STR_TOKEN, XV_HDMITX1_DDC_CMD_WR_TOKEN, XV_HdmiTx1_DdcDisable, XV_HdmiTx1_DdcEnable, XV_HdmiTx1_DdcGetAck(), XV_HdmiTx1_DdcIntrDisable, XV_HdmiTx1_DdcReadData(), XV_HdmiTx1_DdcWaitForDone(), XV_HdmiTx1_DdcWriteCommand(), XV_HdmiTx1_GetFrlTimer(), XV_HdmiTx1_PioIntrDisable, XV_HdmiTx1_PioIntrEnable, and XV_HdmiTx1_SetFrlTimerClockCycles().

Referenced by XV_HdmiTx1_ClockRatio(), XV_HdmiTx1_DdcReadReg(), XV_HdmiTx1_DdcWriteField(), XV_HdmiTx1_Scrambler(), and XV_HdmiTx1_ShowSCDC().

u8 XV_HdmiTx1_DdcReadData ( XV_HdmiTx1 InstancePtr)

This function reads data from the data fifo.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Note
None.

References XV_HdmiTx1_Config::BaseAddress, XV_HdmiTx1::Config, XV_HDMITX1_DDC_CTRL_OFFSET, XV_HDMITX1_DDC_CTRL_RUN_MASK, XV_HDMITX1_DDC_DAT_OFFSET, XV_HDMITX1_DDC_STA_DAT_EMPTY, XV_HDMITX1_DDC_STA_OFFSET, and XV_HdmiTx1_ReadReg.

Referenced by XV_HdmiTx1_DdcRead().

int XV_HdmiTx1_DdcReadReg ( XV_HdmiTx1 InstancePtr,
u8  Slave,
u16  Length,
u8  RegAddr,
u8 *  Buffer 
)

This function reads specified register from DDC peripheral from given slave address.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Slavespecifies the slave address from where data needs to be read.
Lengthspecifies number of bytes to be read.
RegAddrspecifies the register address from where data needs to be read.
Bufferspecifies a pointer to u8 variable that will be filled with data.
Stopspecifies the stop flag which is either TRUE/FALSE.
Returns
  • XST_SUCCESS if an acknowledgement received and timeout.
  • XST_FAILURE if no acknowledgement received.
Note
None.

References XV_HdmiTx1_DdcRead(), and XV_HdmiTx1_DdcWrite().

Referenced by XV_HdmiTx1_GetScdcEdRegisters().

int XV_HdmiTx1_DdcWaitForDone ( XV_HdmiTx1 InstancePtr)
int XV_HdmiTx1_DdcWrite ( XV_HdmiTx1 InstancePtr,
u8  Slave,
u16  Length,
u8 *  Buffer,
u8  Stop 
)

This function writes data from DDC peripheral from given slave address.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Slavespecifies the slave address from where data needs to be read.
Lengthspecifies number of bytes to be read.
Bufferspecifies a pointer to u8 variable that will be filled with data.
Stopspecifies the stop flag which is either TRUE/FALSE.
Returns
  • XST_SUCCESS if an acknowledgement received and timeout.
  • XST_FAILURE if no acknowledgement received.
Note
None.

References XV_HDMITX1_DDC_CMD_STP_TOKEN, XV_HDMITX1_DDC_CMD_STR_TOKEN, XV_HDMITX1_DDC_CMD_WR_TOKEN, XV_HdmiTx1_DdcDisable, XV_HdmiTx1_DdcEnable, XV_HdmiTx1_DdcGetAck(), XV_HdmiTx1_DdcIntrDisable, XV_HdmiTx1_DdcWaitForDone(), XV_HdmiTx1_DdcWriteCommand(), XV_HdmiTx1_GetFrlTimer(), XV_HdmiTx1_PioIntrDisable, XV_HdmiTx1_PioIntrEnable, and XV_HdmiTx1_SetFrlTimerClockCycles().

Referenced by XV_HdmiTx1_ClockRatio(), XV_HdmiTx1_DdcReadReg(), XV_HdmiTx1_DdcWriteField(), XV_HdmiTx1_DetectHdmi20(), XV_HdmiTx1_Scrambler(), and XV_HdmiTx1_ShowSCDC().

void XV_HdmiTx1_DdcWriteCommand ( XV_HdmiTx1 InstancePtr,
u32  Cmd 
)
int XV_HdmiTx1_DdcWriteField ( XV_HdmiTx1 InstancePtr,
XV_HdmiTx1_ScdcFieldType  Field,
u8  Value 
)

This function writes the specified SCDC Field.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Fieldspecifies the fields from SCDC channels to be written
Valuespecifies the values to be written
Returns
  • XST_SUCCESS
  • XST_FAILURE
Note
None.

References XV_HdmiTx1_ScdcField::Mask, XV_HdmiTx1_ScdcField::Offset, XV_HdmiTx1_ScdcField::Shift, XV_HdmiTx1_DdcRead(), and XV_HdmiTx1_DdcWrite().

Referenced by XV_HdmiTx1_FrlRate(), and XV_HdmiTx1_FrlTrainingInit().

int XV_HdmiTx1_DetectHdmi20 ( XV_HdmiTx1 InstancePtr)

This function detects connected sink is a HDMI 2.0/HDMI 1.4 sink device and sets appropriate flag in the TX stream.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Returns
  • XST_SUCCESS if HDMI 2.0
  • XST_FAILURE if HDMI 1.4
Note
None.

References XV_HdmiTx1_Stream::ScdcSupport, XV_HdmiTx1::Stream, and XV_HdmiTx1_DdcWrite().

void XV_HdmiTx1_EXT_SYSRST ( XV_HdmiTx1 InstancePtr,
u8  Reset 
)

This function asserts or releases the HDMI TX External SYSRST.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Resetspecifies TRUE/FALSE value to either assert or release HDMI TX 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 TX. Therefore, clearing the PIO reset output will assert the HDMI External system reset. C-style signature: void XV_HdmiTx1_EXT_SYSRST(XV_HdmiTx1 *InstancePtr, u8 Reset)

References XV_HDMITX1_PIO_OUT_CLR_OFFSET, XV_HDMITX1_PIO_OUT_EXT_SYSRST_MASK, XV_HDMITX1_PIO_OUT_SET_OFFSET, and XV_HdmiTx1_WriteReg.

void XV_HdmiTx1_EXT_VRST ( XV_HdmiTx1 InstancePtr,
u8  Reset 
)

This function asserts or releases the HDMI TX External VRST.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Resetspecifies TRUE/FALSE value to either assert or release HDMI TX 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 TX. Therefore, clearing the PIO reset output will assert the HDMI external video reset. C-style signature: void XV_HdmiTx1_EXT_VRST(XV_HdmiTx1 *InstancePtr, u8 Reset)

References XV_HDMITX1_PIO_OUT_CLR_OFFSET, XV_HDMITX1_PIO_OUT_EXT_VRST_MASK, XV_HDMITX1_PIO_OUT_SET_OFFSET, and XV_HdmiTx1_WriteReg.

void XV_HdmiTx1_FRLACRStart ( XV_HdmiTx1 InstancePtr)

This function Starts the internal ACR module for FRL.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Returns
Active audio format of HDMI Tx
Note
None.

References XV_HdmiTx1_Stream::Audio, XV_HdmiTx1_Stream::Frl, XV_HdmiTx1_Frl::LineRate, XV_HdmiTx1::Stream, XV_HDMITX1_AUD_ACR_N_OFFSET, XV_HDMITX1_AUD_CTRL_CLR_OFFSET, XV_HDMITX1_AUD_CTRL_SET_OFFSET, and XV_HdmiTx1_WriteReg.

Referenced by XV_HdmiTx1_AudioEnable().

XV_HdmiTx1_AudioFormatType XV_HdmiTx1_GetAudioFormat ( XV_HdmiTx1 InstancePtr)

This function gets the active audio format.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Returns
Active audio format of HDMI Tx
Note
None.

References XV_HDMITX1_AUD_CTRL_3DAUDFMT_MASK, XV_HDMITX1_AUD_CTRL_AUDFMT_MASK, XV_HDMITX1_AUD_CTRL_AUDFMT_SHIFT, XV_HDMITX1_AUD_CTRL_OFFSET, and XV_HdmiTx1_ReadReg.

u8* XV_HdmiTx1_GetScdcEdRegisters ( XV_HdmiTx1 InstancePtr)

This function reads the CED and RSED registers from the sink and returns the pointer to the data structure which stores the CED related readings (from SCDC register 0x50 to 0x5A).

Parameters
InstancePtris a pointer to the XHdmi_Tx core instance.
Returns
None.
Note
Reading the SCDC registers will clear the values at the sink

References XV_HdmiTx1_Stream::ScdcEd, XV_HdmiTx1::Stream, and XV_HdmiTx1_DdcReadReg().

u64 XV_HdmiTx1_GetTmdsClk ( XV_HdmiTx1 InstancePtr)

This function sets and return the TMDS Clock based on Video Parameter from the InstancePtr.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Returns
  • TMDS Clock
Note
None.

References XV_HdmiTx1_Stream::PixelClk, XV_HdmiTx1::Stream, and XV_HdmiTx1_Stream::Video.

Referenced by XV_HdmiTx1_SetStream().

void XV_HdmiTx1_Info ( XV_HdmiTx1 InstancePtr)

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

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

References XV_HdmiTx1::Stream, and XV_HdmiTx1_Stream::Video.

void XV_HdmiTx1_INT_LRST ( XV_HdmiTx1 InstancePtr,
u8  Reset 
)

This function asserts or releases the HDMI TX Internal LRST.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Resetspecifies TRUE/FALSE value to either assert or release HDMI TX 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 TX. Therefore, clearing the PIO reset output will assert the HDMI Internal link reset. C-style signature: void XV_HdmiTx1_INT_VRST(XV_HdmiTx1 *InstancePtr, u8 Reset)

References XV_HDMITX1_PIO_OUT_CLR_OFFSET, XV_HDMITX1_PIO_OUT_INT_LRST_MASK, XV_HDMITX1_PIO_OUT_SET_OFFSET, and XV_HdmiTx1_WriteReg.

void XV_HdmiTx1_INT_VRST ( XV_HdmiTx1 InstancePtr,
u8  Reset 
)

This function asserts or releases the HDMI TX Internal VRST.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Resetspecifies TRUE/FALSE value to either assert or release HDMI TX 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 TX. Therefore, clearing the PIO reset output will assert the HDMI Internal video reset. C-style signature: void XV_HdmiTx1_INT_VRST(XV_HdmiTx1 *InstancePtr, u8 Reset)

References XV_HDMITX1_PIO_OUT_CLR_OFFSET, XV_HDMITX1_PIO_OUT_INT_VRST_MASK, XV_HDMITX1_PIO_OUT_SET_OFFSET, and XV_HdmiTx1_WriteReg.

int XV_HdmiTx1_IsStreamConnected ( XV_HdmiTx1 InstancePtr)

This function provides the stream connected status.

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

References XV_HdmiTx1_Stream::IsConnected, and XV_HdmiTx1::Stream.

int XV_HdmiTx1_IsStreamScrambled ( XV_HdmiTx1 InstancePtr)

This function provides status of the stream.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Returns
  • TRUE = Scrambled.
  • FALSE = Not scrambled.
Note
None.

References XV_HdmiTx1_Stream::IsScrambled, and XV_HdmiTx1::Stream.

u8 XV_HdmiTx1_LookupVic ( XVidC_VideoMode  VideoMode)

This function provides video identification code of video mode.

Parameters
VideoModespecifies resolution identifier.
Returns
Video identification code defined in the VIC table.
Note
None.
void XV_HdmiTx1_RegisterDebug ( XV_HdmiTx1 InstancePtr)

This function prints out HDMI TX register.

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

References XV_HdmiTx1_Config::BaseAddress, XV_HdmiTx1::Config, XV_HDMITX1_FRL_FEC_ERR_INJ_OFFSET, and XV_HdmiTx1_ReadReg.

int XV_HdmiTx1_Scrambler ( XV_HdmiTx1 InstancePtr)

This function controls the scrambler.

Requires TMDSClock to be up to date in order to force enable scrambler when TMDSClock > 340MHz.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Returns
  • XST_SUCCESS if HDMI 2.0
  • XST_FAILURE if HDMI 1.4
Note
None.

References XV_HdmiTx1_Stream::IsScrambled, XV_HdmiTx1_Stream::OverrideScrambler, XV_HdmiTx1_Stream::ScdcSupport, XV_HdmiTx1::Stream, XV_HdmiTx1_Stream::TMDSClock, XV_HdmiTx1_DdcRead(), XV_HdmiTx1_DdcWrite(), and XV_HdmiTx1_SetScrambler.

Referenced by XV_HdmiTx1_SetStream().

int XV_HdmiTx1_SetAudioChannels ( XV_HdmiTx1 InstancePtr,
u8  Value 
)

This function sets the active audio channels.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Returns
  • XST_SUCCESS if active channels were set.
  • XST_FAILURE if no active channles were set.
Note
None.

References XV_HDMITX1_3DAUD_CTRL_CH_MASK, XV_HDMITX1_3DAUD_CTRL_CH_SHIFT, XV_HDMITX1_AUD_CTRL_CH_MASK, XV_HDMITX1_AUD_CTRL_CH_SHIFT, XV_HDMITX1_AUD_CTRL_CLR_OFFSET, XV_HDMITX1_AUD_CTRL_OFFSET, XV_HDMITX1_AUD_CTRL_RUN_MASK, XV_HDMITX1_AUD_CTRL_SET_OFFSET, XV_HdmiTx1_AudioEnable(), XV_HdmiTx1_ReadReg, and XV_HdmiTx1_WriteReg.

int XV_HdmiTx1_SetAudioFormat ( XV_HdmiTx1 InstancePtr,
XV_HdmiTx1_AudioFormatType  Value 
)

This function sets the active audio format.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Returns
  • XST_SUCCESS if active channels were set.
  • XST_FAILURE if no active channles were set.
Note
None.

References XV_HDMITX1_AUD_CTRL_3DAUDFMT_EN, XV_HDMITX1_AUD_CTRL_3DAUDFMT_MASK, XV_HDMITX1_AUD_CTRL_AUDFMT_MASK, XV_HDMITX1_AUD_CTRL_CLR_OFFSET, XV_HDMITX1_AUD_CTRL_OFFSET, XV_HDMITX1_AUD_CTRL_RUN_MASK, XV_HDMITX1_AUD_CTRL_SET_OFFSET, XV_HdmiTx1_AudioEnable(), XV_HdmiTx1_ReadReg, and XV_HdmiTx1_WriteReg.

void XV_HdmiTx1_SetAxiClkFreq ( XV_HdmiTx1 InstancePtr,
u32  ClkFreq 
)

This function sets the AXI4-Lite Clock Frequency.

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

References XV_HdmiTx1::Config, XV_HdmiTx1::CpuClkFreq, and XV_HdmiTx1_DdcInit().

void XV_HdmiTx1_SetColorDepth ( XV_HdmiTx1 InstancePtr)
void XV_HdmiTx1_SetColorFormat ( XV_HdmiTx1 InstancePtr)
void XV_HdmiTx1_SetDviMode ( XV_HdmiTx1 InstancePtr)

This function sets the core into DVI mode.

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

References XV_HdmiTx1::Stream, XV_HdmiTx1_AudioDisable, XV_HdmiTx1_AuxDisable, and XV_HdmiTx1_ClearMode.

void XV_HdmiTx1_SetGcpAvmuteBit ( XV_HdmiTx1 InstancePtr)

This function sets the HDMI TX AUX GCP register AVMUTE bit.

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

References XV_HDMITX1_PIO_OUT_GCP_AVMUTE_MASK, XV_HDMITX1_PIO_OUT_SET_OFFSET, and XV_HdmiTx1_WriteReg.

void XV_HdmiTx1_SetGcpClearAvmuteBit ( XV_HdmiTx1 InstancePtr)

This function sets the HDMI TX AUX GCP register CLEAR_AVMUTE bit.

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

References XV_HDMITX1_PIO_OUT_GCP_CLEARAVMUTE_MASK, XV_HDMITX1_PIO_OUT_SET_OFFSET, and XV_HdmiTx1_WriteReg.

void XV_HdmiTx1_SetHdmiFrlMode ( XV_HdmiTx1 InstancePtr)

This function sets the core into HDMI FRL mode.

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

References XV_HdmiTx1::Stream, XV_HdmiTx1_AudioEnable(), XV_HdmiTx1_AuxEnable(), and XV_HdmiTx1_SetMode.

void XV_HdmiTx1_SetHdmiTmdsMode ( XV_HdmiTx1 InstancePtr)

This function sets the core into HDMI TMDS mode.

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

References XV_HdmiTx1::Stream, XV_HdmiTx1_AudioEnable(), XV_HdmiTx1_AuxEnable(), and XV_HdmiTx1_SetMode.

Referenced by XV_HdmiTx1_CfgInitialize().

void XV_HdmiTx1_SetPixelRate ( XV_HdmiTx1 InstancePtr)
void XV_HdmiTx1_SetSampleRate ( XV_HdmiTx1 InstancePtr,
u8  SampleRate 
)

This function sets the sample rate at output.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
SampleRatespecifies the value that needs to be set.
  • 2 samples per clock
  • 3 samples per clock.
  • 5 samples per clock.
Returns
None.
Note
None.

References XV_HdmiTx1_Config::BaseAddress, XV_HdmiTx1::Config, XV_HdmiTx1_Stream::SampleRate, XV_HdmiTx1::Stream, XV_HDMITX1_PIO_OUT_MSK_OFFSET, XV_HDMITX1_PIO_OUT_OFFSET, XV_HDMITX1_PIO_OUT_SAMPLE_RATE_MASK, XV_HDMITX1_PIO_OUT_SAMPLE_RATE_SHIFT, and XV_HdmiTx1_WriteReg.

u32 XV_HdmiTx1_SetStream ( XV_HdmiTx1 InstancePtr,
XVidC_VideoTiming  VideoTiming,
XVidC_FrameRate  FrameRate,
XVidC_ColorFormat  ColorFormat,
XVidC_ColorDepth  Bpc,
XVidC_PixelsPerClock  Ppc,
XVidC_3DInfo *  Info3D,
u8  FVaFactor,
u8  VrrEnabled,
u8  CnmvrrEnabled,
u64 *  TmdsClock 
)

This function sets the HDMI TX stream parameters.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
VideoTimingspecifies video timing.
FrameRatespecifies frame rate.
ColorFormatspecifies the type of color format.
  • 0 = XVIDC_CSF_RGB
  • 1 = XVIDC_CSF_YCRCB_444
  • 2 = XVIDC_CSF_YCRCB_422
  • 3 = XVIDC_CSF_YCRCB_420
Bpcspecifies the color depth/bits per color component.
  • 6 = XVIDC_BPC_6
  • 8 = XVIDC_BPC_8
  • 10 = XVIDC_BPC_10
  • 12 = XVIDC_BPC_12
  • 16 = XVIDC_BPC_16
Ppcspecifies the pixel per clock.
  • 4 = XVIDC_PPC_4
Info3D3D info
FVaFactor- Fast Video Active Factor
VrrEnabled- VRR is enabled or not
CnmvrrEnabled- Negative VRR supported flag
TmdsClock,referenceclock calculated based on the input parameters.
Returns
XST_SUCCESS on success else XST_FAILURE
Note
None.

In HDMI the colordepth in YUV422 is always 12 bits, although on the link itself it is being transmitted as 8-bits. Therefore if the colorspace is YUV422, then force the colordepth to 12 bits.

References XV_HdmiTx1_Stream::IsScrambled, XV_HdmiTx1_Stream::ScdcSupport, XV_HdmiTx1::Stream, XV_HdmiTx1_Stream::TMDSClock, XV_HdmiTx1_Stream::TMDSClockRatio, XV_HdmiTx1_Stream::Video, XV_HdmiTx1_ClockRatio(), XV_HdmiTx1_GetTmdsClk(), XV_HdmiTx1_Scrambler(), XV_HdmiTx1_SetColorDepth(), XV_HdmiTx1_SetColorFormat(), and XV_HdmiTx1_SetPixelRate().

void XV_HdmiTx1_ShowSCDC ( XV_HdmiTx1 InstancePtr)

This function shows the sinks SCDC registers.

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

References XV_HdmiTx1_DdcRead(), and XV_HdmiTx1_DdcWrite().

void XV_HdmiTx1_Start ( XV_HdmiTx1 InstancePtr)

This function starts the HDMI TX core.

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

References XV_HdmiTx1_PioEnable, and XV_HdmiTx1_PioIntrEnable.

void XV_HdmiTx1_Stop ( XV_HdmiTx1 InstancePtr)

This function stops the HDMI TX core.

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

References XV_HdmiTx1_PioDisable, and XV_HdmiTx1_PioIntrDisable.

void XV_HdmiTx1_TMDSACRStart ( XV_HdmiTx1 InstancePtr)

This function Starts the internal ACR module for FRL.

Parameters
InstancePtris a pointer to the XV_HdmiTx1 core instance.
Returns
Active audio format of HDMI Tx
Note
None.

References XV_HdmiTx1_Stream::Audio, XV_HdmiTx1::Stream, XV_HdmiTx1_Stream::TMDSClock, XV_HDMITX1_AUD_ACR_N_OFFSET, XV_HDMITX1_AUD_CTRL_CLR_OFFSET, XV_HDMITX1_AUD_CTRL_SET_OFFSET, and XV_HdmiTx1_WriteReg.

Referenced by XV_HdmiTx1_AudioEnable().

u32 XV_HdmiTxSs1_GetAudioCtsVal ( XV_HdmiTx1 InstancePtr)

This function gets the Generated ACR CTS Value.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs1 core instance.
Returns
Generated ACR CTS Value
Note
None.

References XV_HDMITX1_AUD_ACR_CTS_OFFSET, and XV_HdmiTx1_ReadReg.

u32 XV_HdmiTxSs1_GetAudioNVal ( XV_HdmiTx1 InstancePtr)

This function gets the programmed ACR N Value.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs1 core instance.
Returns
Programmed ACR N Value
Note
None.

References XV_HDMITX1_AUD_ACR_N_OFFSET, and XV_HdmiTx1_ReadReg.

Variable Documentation

const XV_HdmiTx1_ScdcField ScdcField[XV_HDMITX1_SCDCFIELD_SIZE]
Initial value:
= {
{0x02, 0xFF, 0},
{0x30, 0xFF, 0},
{0x31, 0xFF, 0},
{0x10, 0x01, 3},
{0x10, 0xFF, 1},
{0x10, 0xFF, 4},
{0x10, 0xFF, 5},
{0x30, 0x01, 1}
}

This table contains the attributes for SCDC fields Each entry consists of: 1) Register Offset 2) Bits Mask 3) Bits Shift.