The driver currently supports single-stream transport (SST) functionality.
MODIFICATION HISTORY:
Ver Who Date Changes ----- ---- -------- ----------------------------------------------- 1.00a als 05/17/14 Initial release.
#include "xdptx_hw.h"
#include "xil_assert.h"
#include "xil_types.h"
Data Structures | |
struct | XDptx_DmtMode |
struct | XDptx_Config |
struct | XDptx_SinkConfig |
struct | XDptx_LinkConfig |
struct | XDptx_MainStreamAttributes |
struct | XDptx |
Defines | |
#define | XDptx_IsConnected(InstancePtr) |
Typedefs | |
typedef void(*) | XDptx_TimerHandler (void *InstancePtr, u32 MicroSeconds) |
typedef void(*) | XDptx_HpdEventHandler (void *InstancePtr) |
typedef void(*) | XDptx_HpdPulseHandler (void *InstancePtr) |
Enumerations | |
enum | XDptx_VideoMode |
Functions | |
u32 | XDptx_InitializeTx (XDptx *InstancePtr) |
void | XDptx_CfgInitialize (XDptx *InstancePtr, XDptx_Config *ConfigPtr, u32 EffectiveAddr) |
u32 | XDptx_GetSinkCapabilities (XDptx *InstancePtr) |
u32 | XDptx_GetEdid (XDptx *InstancePtr) |
u32 | XDptx_CfgMainLinkMax (XDptx *InstancePtr) |
u32 | XDptx_EstablishLink (XDptx *InstancePtr) |
u32 | XDptx_CheckLinkStatus (XDptx *InstancePtr, u8 LaneCount) |
void | XDptx_EnableTrainAdaptive (XDptx *InstancePtr, u8 Enable) |
void | XDptx_SetHasRedriverInPath (XDptx *InstancePtr, u8 Set) |
u32 | XDptx_AuxRead (XDptx *InstancePtr, u32 Address, u32 NumBytes, void *Data) |
u32 | XDptx_AuxWrite (XDptx *InstancePtr, u32 Address, u32 NumBytes, void *Data) |
u32 | XDptx_IicWrite (XDptx *InstancePtr, u8 IicAddress, u8 RegStartAddress, u8 NumBytes, u8 *DataBuffer) |
u32 | XDptx_IicRead (XDptx *InstancePtr, u8 IicAddress, u8 RegStartAddress, u8 NumBytes, u8 *DataBuffer) |
u32 | XDptx_SetDownspread (XDptx *InstancePtr, u8 Enable) |
u32 | XDptx_SetEnhancedFrameMode (XDptx *InstancePtr, u8 Enable) |
u32 | XDptx_SetLaneCount (XDptx *InstancePtr, u8 LaneCount) |
u32 | XDptx_SetLinkRate (XDptx *InstancePtr, u8 LinkRate) |
u32 | XDptx_SetScrambler (XDptx *InstancePtr, u8 Enable) |
void | XDptx_EnableMainLink (XDptx *InstancePtr) |
void | XDptx_DisableMainLink (XDptx *InstancePtr) |
void | XDptx_ResetPhy (XDptx *InstancePtr, u32 Reset) |
void | XDptx_WaitUs (XDptx *InstancePtr, u32 MicroSeconds) |
void | XDptx_SetUserTimerHandler (XDptx *InstancePtr, XDptx_TimerHandler CallbackFunc, void *CallbackRef) |
void | XDptx_CfgMsaRecalculate (XDptx *InstancePtr) |
u32 | XDptx_CfgMsaUseStandardVideoMode (XDptx *InstancePtr, XDptx_VideoMode VideoMode) |
void | XDptx_CfgMsaUseEdidPreferredTiming (XDptx *InstancePtr) |
void | XDptx_CfgMsaUseCustom (XDptx *InstancePtr, XDptx_MainStreamAttributes *MsaConfigCustom, u8 Recalculate) |
u32 | XDptx_CfgMsaSetBpc (XDptx *InstancePtr, u8 BitsPerColor) |
void | XDptx_SetVideoMode (XDptx *InstancePtr) |
void | XDptx_SetHpdEventHandler (XDptx *InstancePtr, XDptx_HpdEventHandler CallbackFunc, void *CallbackRef) |
void | XDptx_SetHpdPulseHandler (XDptx *InstancePtr, XDptx_HpdPulseHandler CallbackFunc, void *CallbackRef) |
void | XDptx_HpdInterruptHandler (XDptx *InstancePtr) |
u32 | XDptx_SelfTest (XDptx *InstancePtr) |
XDptx_Config * | XDptx_LookupConfig (u16 DeviceId) |
Variables | |
XDptx_DmtMode | XDptx_DmtModes [] |
#define XDptx_IsConnected | ( | InstancePtr | ) |
Value:
(XDptx_ReadReg(InstancePtr->TxConfig.BaseAddr, \ XDPTX_INTERRUPT_SIG_STATE) & 0x1)
InstancePtr | is a pointer to the XDptx instance. |
typedef void(*) XDptx_HpdEventHandler(void *InstancePtr) |
Callback type which represents the handler for a hot-plug-detect event interrupt.
InstancePtr | is a pointer to the XDptx instance. |
typedef void(*) XDptx_HpdPulseHandler(void *InstancePtr) |
Callback type which represents the handler for a hot-plug-detect pulse interrupt.
InstancePtr | is a pointer to the XDptx instance. |
typedef void(*) XDptx_TimerHandler(void *InstancePtr, u32 MicroSeconds) |
Callback type which represents a custom timer wait handler. This is only used for Microblaze since it doesn't have a native sleep function. To avoid dependency on a hardware timer, the default wait functionality is implemented using loop iterations; this isn't too accurate. If a custom timer handler is used, the user may implement their own wait implementation using a hardware timer (see example/) for better accuracy.
InstancePtr | is a pointer to the XDptx instance. | |
MicroSeconds | is the number of microseconds to be passed to the timer function. |
enum XDptx_VideoMode |
This typedef enumerates the list of available standard display monitor timings as specified in the mode_table.c file. The naming format is:
XDPTX_VM_<RESOLUTION>_<REFRESH RATE (HZ)>_<P|RB>
Where RB stands for reduced blanking.
u32 XDptx_AuxRead | ( | XDptx * | InstancePtr, | |
u32 | Address, | |||
u32 | NumBytes, | |||
void * | Data | |||
) |
This function issues a read request over the AUX channel.
InstancePtr | is a pointer to the XDptx instance. | |
Address | is the starting address to read from the receiver. | |
NumBytes | is the number of bytes to read from the receiver. | |
Data | is a pointer to the data buffer that will be filled with read data. |
u32 XDptx_AuxWrite | ( | XDptx * | InstancePtr, | |
u32 | Address, | |||
u32 | NumBytes, | |||
void * | Data | |||
) |
This function issues a write request over the AUX channel.
InstancePtr | is a pointer to the XDptx instance. | |
Address | is the starting address to write to the receiver. | |
NumBytes | is the number of bytes to write to the receiver. | |
Data | is a pointer to the data buffer that contains the data to be written to the receiver. |
void XDptx_CfgInitialize | ( | XDptx * | InstancePtr, | |
XDptx_Config * | ConfigPtr, | |||
u32 | EffectiveAddr | |||
) |
This function retrieves the configuration for this DisplayPort TX instance and fills in the InstancePtr->TxConfig structure.
InstancePtr | is a pointer to the XDptx instance. | |
ConfigPtr | is a pointer to the configuration structure that will be used to copy the settings from. | |
EffectiveAddr | is the device base address in the virtual memory space. If the address translation is not used, then the physical address is passed. |
u32 XDptx_CfgMainLinkMax | ( | XDptx * | InstancePtr | ) |
This function determines the common capabilities between the DisplayPort TX core and the receiver.
InstancePtr | is a pointer to the XDptx instance. |
void XDptx_CfgMsaRecalculate | ( | XDptx * | InstancePtr | ) |
This function calculates the following main stream attributes:
InstancePtr | is a pointer to the XDptx instance. |
u32 XDptx_CfgMsaSetBpc | ( | XDptx * | InstancePtr, | |
u8 | BitsPerColor | |||
) |
This function sets the bits per color value of the video stream.
InstancePtr | is a pointer to the XDptx instance | |
BitsPerColor | is the new number of bits per color to use. |
void XDptx_CfgMsaUseCustom | ( | XDptx * | InstancePtr, | |
XDptx_MainStreamAttributes * | MsaConfigCustom, | |||
u8 | Recalculate | |||
) |
This function takes a the main stream attributes from MsaConfigCustom and copies them into InstancePtr->MsaConfig. If desired, given a base set of attributes, the rest of the attributes may be derived. The minimal required main stream attributes that must be contained in the MsaConfigCustom structure are:
InstancePtr | is a pointer to the XDptx instance. | |
MsaConfigCustom | is the structure that will be used to copy the main stream attributes from (into InstancePtr->MsaConfig). | |
Recalculate | is a boolean enable that determines whether or not the main stream attributes should be recalculated. |
void XDptx_CfgMsaUseEdidPreferredTiming | ( | XDptx * | InstancePtr | ) |
This function sets the main stream attribute values in the configuration structure to match the preferred timing of the sink monitor. This preferred timing information is stored in the sink's extended display identification data (EDID).
InstancePtr | is a pointer to the XDptx instance |
u32 XDptx_CfgMsaUseStandardVideoMode | ( | XDptx * | InstancePtr, | |
XDptx_VideoMode | VideoMode | |||
) |
This function sets the main stream attribute values in the configuration structure to match one of the standard display mode timings from the XDptx_DmtModes[] table. THe XDptx_VideoMode enumeration in xdptx.h lists the available video modes.
InstancePtr | is a pointer to the XDptx instance. | |
VideoMode | is one of the enumerated standard video modes that is used to determine the main stream attributes to be used. |
u32 XDptx_CheckLinkStatus | ( | XDptx * | InstancePtr, | |
u8 | LaneCount | |||
) |
This function checks if the reciever's DPCD indicates the reciever has achieved and maintained clock recovery, channel equalization, symbol lock, and interlane alignment for all lanes currently in use.
InstancePtr | is a pointer to the XDptx instance. | |
LaneCount | is the number of lanes to check. |
void XDptx_DisableMainLink | ( | XDptx * | InstancePtr | ) |
void XDptx_EnableMainLink | ( | XDptx * | InstancePtr | ) |
void XDptx_EnableTrainAdaptive | ( | XDptx * | InstancePtr, | |
u8 | Enable | |||
) |
This function enables or disables downshifting during the training process.
InstancePtr | is a pointer to the XDptx instance. | |
Enable | controls the downshift feature in the training process. |
u32 XDptx_EstablishLink | ( | XDptx * | InstancePtr | ) |
This function determines the common capabilities between the DisplayPort TX core and the receiver.
InstancePtr | is a pointer to the XDptx instance. |
u32 XDptx_GetEdid | ( | XDptx * | InstancePtr | ) |
This function retrieves the receiver's EDID.
InstancePtr | is a pointer to the XDptx instance. |
u32 XDptx_GetSinkCapabilities | ( | XDptx * | InstancePtr | ) |
This function retrieves sink device capabilities from the receiver's DPCD.
InstancePtr | is a pointer to the XDptx instance. |
void XDptx_HpdInterruptHandler | ( | XDptx * | InstancePtr | ) |
u32 XDptx_IicRead | ( | XDptx * | InstancePtr, | |
u8 | IicAddress, | |||
u8 | RegStartAddress, | |||
u8 | NumBytes, | |||
u8 * | DataBuffer | |||
) |
This function performs an I2C read over the AUX channel.
InstancePtr | is a pointer to the XDptx instance. | |
IicAddress | is the address on the I2C bus of the target device. | |
RegStartAddress | is the subaddress of the targeted I2C device that the read will start from. | |
NumBytes | is the number of bytes to read. | |
DataBuffer | is a pointer to a buffer that will be filled with the I2C read data. |
u32 XDptx_IicWrite | ( | XDptx * | InstancePtr, | |
u8 | IicAddress, | |||
u8 | RegStartAddress, | |||
u8 | NumBytes, | |||
u8 * | DataBuffer | |||
) |
This function performs an I2C write over the AUX channel.
InstancePtr | is a pointer to the XDptx instance. | |
IicAddress | is the address on the I2C bus of the target device. | |
RegStartAddress | is the sub-address of the targeted I2C device that the write will start at. | |
NumBytes | is the number of bytes to write. | |
DataBuffer | is a pointer to a buffer which will be used as the data source for the write. |
u32 XDptx_InitializeTx | ( | XDptx * | InstancePtr | ) |
This function prepares the DisplayPort TX core for use.
InstancePtr | is a pointer to the XDptx instance. |
XDptx_Config* XDptx_LookupConfig | ( | u16 | DeviceId | ) |
This function looks for the device configuration based on the unique device ID. The table XDptx_ConfigTable[] contains the configuration information for each device in the system.
DeviceId | is the unique device ID of the device being looked up. |
void XDptx_ResetPhy | ( | XDptx * | InstancePtr, | |
u32 | Reset | |||
) |
This function does a PHY reset.
InstancePtr | is a pointer to the XDptx instance. & | |
Reset | is the type of reset to assert. |
u32 XDptx_SelfTest | ( | XDptx * | InstancePtr | ) |
This function runs a self-test on the XDptx driver/device. The test attempts to intialize the DisplayPort TX core, train the main link at the highest common capabilities between the core and the sink, and checks the status of the link after training.
InstancePtr | is a pointer to the XDptx instance. |
u32 XDptx_SetDownspread | ( | XDptx * | InstancePtr, | |
u8 | Enable | |||
) |
This function enables or disables 0.5% spreading of the clock for both the DisplayPort and the sink device.
InstancePtr | is a pointer to the XDptx instance. | |
Enable | will enable or disable down-spread control. |
u32 XDptx_SetEnhancedFrameMode | ( | XDptx * | InstancePtr, | |
u8 | Enable | |||
) |
This function enables or disables the enhanced framing symbol sequence for both the DisplayPort TX core and the sink device.
InstancePtr | is a pointer to the XDptx instance. | |
Enable | will enable or disable enhanced frame mode. |
void XDptx_SetHasRedriverInPath | ( | XDptx * | InstancePtr, | |
u8 | Set | |||
) |
This function sets a software switch that signifies whether or not a redriver exists on the DisplayPort output path. XDptx_SetVswingPreemp uses this switch to determine which set of voltage swing and pre-emphasis values to use in the TX core.
InstancePtr | is a pointer to the XDptx instance. | |
Set | establishes that a redriver exists in the DisplayPort output path. |
void XDptx_SetHpdEventHandler | ( | XDptx * | InstancePtr, | |
XDptx_HpdEventHandler | CallbackFunc, | |||
void * | CallbackRef | |||
) |
This function installs a callback function for when a hot-plug-detect event interrupt occurs.
InstancePtr | is a pointer to the XDptx instance. | |
CallbackFunc | is the address to the callback function. | |
CallbackRef | is the user data item that will be passed to the callback function when it is invoked. |
void XDptx_SetHpdPulseHandler | ( | XDptx * | InstancePtr, | |
XDptx_HpdPulseHandler | CallbackFunc, | |||
void * | CallbackRef | |||
) |
This function installs a callback function for when a hot-plug-detect pulse interrupt occurs.
InstancePtr | is a pointer to the XDptx instance. | |
CallbackFunc | is the address to the callback function. | |
CallbackRef | is the user data item that will be passed to the callback function when it is invoked. |
u32 XDptx_SetLaneCount | ( | XDptx * | InstancePtr, | |
u8 | LaneCount | |||
) |
This function sets the number of lanes to be used by the main link for both the DisplayPort TX core and the sink device.
InstancePtr | is a pointer to the XDptx instance. | |
LaneCount | is the number of lanes to be used over the main link. |
u32 XDptx_SetLinkRate | ( | XDptx * | InstancePtr, | |
u8 | LinkRate | |||
) |
This function sets the data rate to be used by the main link for both the DisplayPort TX core and the sink device.
InstancePtr | is a pointer to the XDptx instance. | |
LinkRate | is the link rate to be used over the main link based on one of the following selects:
|
u32 XDptx_SetScrambler | ( | XDptx * | InstancePtr, | |
u8 | Enable | |||
) |
This function enables or disables scrambling of symbols for both the DisplayPort and the sink device.
InstancePtr | is a pointer to the XDptx instance. | |
Enable | will enable or disable scrambling. |
void XDptx_SetUserTimerHandler | ( | XDptx * | InstancePtr, | |
XDptx_TimerHandler | CallbackFunc, | |||
void * | CallbackRef | |||
) |
This function installs a custom delay/sleep function to be used by the XDdptx driver.
InstancePtr | is a pointer to the XDptx instance. | |
CallbackFunc | is the address to the callback function. | |
CallbackRef | is the user data item (microseconds to delay) that will be passed to the custom sleep/delay function when it is invoked. |
void XDptx_SetVideoMode | ( | XDptx * | InstancePtr | ) |
This function clears the main stream attributes registers of the DisplayPort TX core and sets them to the values specified in the main stream attributes configuration structure.
InstancePtr | is a pointer to the XDptx instance |
void XDptx_WaitUs | ( | XDptx * | InstancePtr, | |
u32 | MicroSeconds | |||
) |
This function is the delay/sleep function for the XDptx driver. For the Zynq family, there exists native sleep functionality. For MicroBlaze however, there does not exist such functionality. In the MicroBlaze case, the default method for delaying is to use a predetermined amount of loop iterations. This method is prone to inaccuracy and dependent on system configuration; for greater accuracy, the user may supply their own delay/sleep handler, pointed to by InstancePtr->UserTimerWaitUs, which may have better accuracy if a hardware timer is used.
InstancePtr | is a pointer to the XDptx instance. | |
MicroSeconds | is the number of microseconds to delay/sleep for. |
This table contains the main stream attributes for various standard resolutions.
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.