diff --git a/XilinxProcessorIPLib/drivers/dp/src/xdprx.c b/XilinxProcessorIPLib/drivers/dp/src/xdprx.c index 3b936f83..050e77b0 100644 --- a/XilinxProcessorIPLib/drivers/dp/src/xdprx.c +++ b/XilinxProcessorIPLib/drivers/dp/src/xdprx.c @@ -217,6 +217,20 @@ void XDprx_SetLinkRate(XDprx *InstancePtr, u8 LinkRate) 0x01); } +void XDprx_SetLaneCount(XDprx *InstancePtr, u8 LaneCount) +{ + InstancePtr->LinkConfig.LaneCount = LaneCount; + + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_OVER_CTRL_DPCD, + 0x01); + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_OVER_LANE_COUNT_SET, + LaneCount); + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_OVER_CTRL_DPCD, + 0x00); + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_LOCAL_EDID_VIDEO, + 0x01); +} + /******************************************************************************/ /** * This function installs a custom delay/sleep function to be used by the XDprx diff --git a/XilinxProcessorIPLib/drivers/dp/src/xdprx.h b/XilinxProcessorIPLib/drivers/dp/src/xdprx.h index 7dfd01a4..401591fd 100644 --- a/XilinxProcessorIPLib/drivers/dp/src/xdprx.h +++ b/XilinxProcessorIPLib/drivers/dp/src/xdprx.h @@ -94,6 +94,7 @@ u32 XDprx_InitializeRx(XDprx *InstancePtr); void XDprx_DtgEn(XDprx *InstancePtr); void XDprx_DtgDis(XDprx *InstancePtr); void XDprx_SetLinkRate(XDprx *InstancePtr, u8 LinkRate); +void XDprx_SetLaneCount(XDprx *InstancePtr, u8 LaneCount); void XDprx_SetUserTimerHandler(XDprx *InstancePtr, XDp_TimerHandler CallbackFunc, void *CallbackRef); void XDprx_WaitUs(XDprx *InstancePtr, u32 MicroSeconds);