![]() |
![]() |
Functions | |
CSL_IDEF_INLINE CSL_SERDES_RESULT | CSL_IQNSerdesInit (uint32_t base_addr, CSL_SERDES_REF_CLOCK ref_clock, CSL_SERDES_LINK_RATE rate) |
CSL_IDEF_INLINE void | CSL_IQNSerdesLaneEnable (uint32_t base_addr, uint32_t lane_num, CSL_SERDES_LOOPBACK loopback_mode, CSL_SERDES_LANE_CTRL_RATE lane_ctrl_rate) |
CSL_IDEF_INLINE void | CSL_IQNSerdesPllEnable (uint32_t base_addr) |
CSL_IDEF_INLINE void | CSL_IQNSerdesLaneDisable (uint32_t base_addr, uint32_t lane_num) |
CSL_IDEF_INLINE CSL_SERDES_STATUS | CSL_IQNSerdesGetStatus (uint32_t base_addr, uint32_t num_lanes) |
CSL_IDEF_INLINE CSL_SERDES_STATUS | CSL_IQNSerdesGetLaneStatus (uint32_t base_addr, uint32_t lane_num) |
CSL_IDEF_INLINE void | CSL_IQNSerdesShutdown (uint32_t base_addr) |
CSL_IDEF_INLINE uint32_t | CSL_IQN2SerdesIsReset (uint32_t base_addr) |
============================================================================
This module deals with setting up SERDES configuration for IQN. The API flow should be as follows:
CSL_IQNSerdesInit (base_addr, ref_clock, rate);
CSL_IQNSerdesLaneEnable (base_addr, lane_num, link_rate);
CSL_IQNSerdesPllEnable (base_addr);
CSL_IQNSerdesGetStatus (base_addr);
============================================================================
CSL_IDEF_INLINE uint32_t CSL_IQN2SerdesIsReset | ( | uint32_t | base_addr | ) |
============================================================================
CSL_IQN2SerdesIsReset
Description
This API returns a flag indicating whether the SerDes is in reset (1), or whether a previous configuration was applied to the SerDes
Arguments base_addr
Return Value None
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
uint32_t serdesIsReset; serdesIsReset = CSL_IQN2SerdesIsReset(CSL_CSISC2_0_SERDES_CFG_REGS);
===========================================================================
CSL_IDEF_INLINE CSL_SERDES_STATUS CSL_IQNSerdesGetLaneStatus | ( | uint32_t | base_addr, |
uint32_t | lane_num | ||
) |
============================================================================
CSL_IQNSerdesGetLaneStatus
Description
This API returns the lane specific status of the Serdes Lane PLL lock
Arguments base_addr, lane_num
Return Value CSL_SERDES_STATUS
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_IQNSerdesGetLaneStatus(CSL_CSISC2_0_SERDES_CFG_REGS, 0);
===========================================================================
CSL_IDEF_INLINE CSL_SERDES_STATUS CSL_IQNSerdesGetStatus | ( | uint32_t | base_addr, |
uint32_t | num_lanes | ||
) |
============================================================================
CSL_IQNSerdesGetStatus
Description
This API returns the status of the Serdes Lane PLL lock
Arguments base_addr, num_lanes
Return Value CSL_SERDES_STATUS
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_IQNSerdesGetStatus(CSL_CSISC2_0_SERDES_CFG_REGS, 2);
===========================================================================
CSL_IDEF_INLINE CSL_SERDES_RESULT CSL_IQNSerdesInit | ( | uint32_t | base_addr, |
CSL_SERDES_REF_CLOCK | ref_clock, | ||
CSL_SERDES_LINK_RATE | rate | ||
) |
============================================================================
CSL_IQNSerdesInit
Description
This API initializes the Serdes CMU and COMLANE registersL.
Arguments base_addr, ref_clock, rate
Return Value CSL_SERDES_RESULT
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
csl_retval = CSL_IQNSerdesInit(CSL_CSISC2_0_SERDES_CFG_REGS, CSL_SERDES_REF_CLOCK_122p88M, CSL_SERDES_LINK_RATE_6p144G);
===========================================================================
CSL_IDEF_INLINE void CSL_IQNSerdesLaneDisable | ( | uint32_t | base_addr, |
uint32_t | lane_num | ||
) |
============================================================================
CSL_IQNSerdesLaneDisable
Description
This API disables the Serdes Lanes
Arguments base_addr, lane_num
Return Value None
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_IQNSerdesLaneDisable(CSL_CSISC2_0_SERDES_CFG_REGS, 0);
===========================================================================
CSL_IDEF_INLINE void CSL_IQNSerdesLaneEnable | ( | uint32_t | base_addr, |
uint32_t | lane_num, | ||
CSL_SERDES_LOOPBACK | loopback_mode, | ||
CSL_SERDES_LANE_CTRL_RATE | lane_ctrl_rate | ||
) |
============================================================================
CSL_IQNSerdesLaneEnable
Description
This API enables the Serdes CMU and COMLANE
Arguments base_addr, lane_num, link_rate
Return Value None
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_IQNSerdesLaneEnable(CSL_CSISC2_0_SERDES_CFG_REGS, 0, CSL_SERDES_LOOPBACK_DISABLED, CSL_SERDES_LANE_FULL_RATE);
===========================================================================
CSL_IDEF_INLINE void CSL_IQNSerdesPllEnable | ( | uint32_t | base_addr | ) |
============================================================================
CSL_IQNSerdesPllEnable
Description
This API enables the IQN Serdes PLL
Arguments base_addr
Return Value None
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_IQNSerdesPllEnable(CSL_CSISC2_0_SERDES_CFG_REGS);
===========================================================================
CSL_IDEF_INLINE void CSL_IQNSerdesShutdown | ( | uint32_t | base_addr | ) |
============================================================================
CSL_IQNSerdesShutdown
Description
This API shuts down the Serdes by Disabling and Resetting the Serdes
Arguments base_addr
Return Value None
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_IQNSerdesShutdown(CSL_CSISC2_0_SERDES_CFG_REGS);
===========================================================================