Functions
SERDES IQN

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)

Detailed Description

============================================================================

Introduction

Overview

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);

References

============================================================================


Function Documentation

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);

    

===========================================================================


Copyright 2014, Texas Instruments Incorporated