diff --git a/XilinxProcessorIPLib/drivers/dp/src/xdprx.c b/XilinxProcessorIPLib/drivers/dp/src/xdprx.c index 59ae0e37..3b936f83 100644 --- a/XilinxProcessorIPLib/drivers/dp/src/xdprx.c +++ b/XilinxProcessorIPLib/drivers/dp/src/xdprx.c @@ -203,6 +203,19 @@ void XDprx_DtgDis(XDprx *InstancePtr) XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_SOFT_RESET, 0x00); } +void XDprx_SetLinkRate(XDprx *InstancePtr, u8 LinkRate) +{ + InstancePtr->LinkConfig.LinkRate = LinkRate; + + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_OVER_CTRL_DPCD, + 0x01); + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_OVER_LINK_BW_SET, + LinkRate); + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_OVER_CTRL_DPCD, + 0x00); + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_LOCAL_EDID_VIDEO, + 0x01); +} /******************************************************************************/ /** diff --git a/XilinxProcessorIPLib/drivers/dp/src/xdprx.h b/XilinxProcessorIPLib/drivers/dp/src/xdprx.h index cc2974eb..7dfd01a4 100644 --- a/XilinxProcessorIPLib/drivers/dp/src/xdprx.h +++ b/XilinxProcessorIPLib/drivers/dp/src/xdprx.h @@ -93,6 +93,7 @@ u32 XDprx_InitializeRx(XDprx *InstancePtr); /* xdprx.c: General usage functions. */ void XDprx_DtgEn(XDprx *InstancePtr); void XDprx_DtgDis(XDprx *InstancePtr); +void XDprx_SetLinkRate(XDprx *InstancePtr, u8 LinkRate); void XDprx_SetUserTimerHandler(XDprx *InstancePtr, XDp_TimerHandler CallbackFunc, void *CallbackRef); void XDprx_WaitUs(XDprx *InstancePtr, u32 MicroSeconds);