openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

temod16_enum_defines.h (55092B)


      1 /*----------------------------------------------------------------------
      2  * : temod16_enum_defines.h,                                           
      3  * : n *                                                                      
      4  * Broadcom Corporation                                                 
      5  * Proprietary and Confidential information                             
      6  * All rights reserved                                                  
      7  * This source file is the property of Broadcom Corporation, and        
      8  * may not be copied or distributed in any isomorphic form without the  
      9  * prior written consent of Broadcom Corporation.                       
     10  *--------------------------------------------------------------------- 
     11  *--------------------------------------------------------------------- 
     12  ############### THIS FILE IS AUTOMATICALLY GENERATED.  ############### 
     13  ############### DO !! NOT !! MANUALLY EDIT THIS FILE.  ############### 
     14  *--------------------------------------------------------------------- 
     15  * Description: This file contains enums, elems, and doxygen comments   
     16  * needed for SerDes Configuration programs.                            
     17  *--------------------------------------------------------------------- 
     18  * CVS INFORMATION:                                                     
     19  * Please see inc/enum_desc.txt for CVS information.                    
     20  *----------------------------------------------------------------------
     21  */                                                                     
     22 /*                                                                      
     23  *                                                              
     24  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
     25  * 
     26  * Copyright 2007-2019 Broadcom Inc. All rights reserved.                                               
     27  */                                                                     
     28 /* This file is automatically generated. Do not modify it. Modify the
     29  * inc/enum_desc.txt to change enums, elems, or comments. For issues about
     30  * the process that creates this file contact the temod16 development team.
     31  */
     32 
     33 #ifndef _TSCMOD16_ENUM_DEFINES_H
     34 #define _TSCMOD16_ENUM_DEFINES_H
     35 
     36 /*! \enum temod16_core_select 
     37 
     38 temod16_core_select selects for programming, any combination of 3 core of the PHY.
     39 This is only applicable to the 12x10 version of the TSCE core.
     40 A '1' in the latter part of the enum selects the core.
     41 
     42 
     43 */
     44 
     45 typedef enum {
     46   TEMOD16_CORE_0_0_1           = 0   ,  /*!< Core number  0       selected   */
     47   TEMOD16_CORE_0_1_0                 ,  /*!< Core number  1       selected   */
     48   TEMOD16_CORE_1_0_0                 ,  /*!< Core number  2       selected   */
     49   TEMOD16_CORE_0_1_1                 ,  /*!< Core number  0 & 1   selected   */
     50   TEMOD16_CORE_1_0_1                 ,  /*!< Core number  0 & 2   selected   */
     51   TEMOD16_CORE_1_1_1                 ,  /*!< Core number  0,1,& 2 selected   */
     52   TEMOD16_CORE_ILLEGAL                 /*!< Illegal (programmatic boundary) */
     53 } temod16_core_select;
     54 
     55 /*! \def CNT_temod16_core_select Types of enum temod16_core_select */
     56 #define CNT_temod16_core_select 7
     57 
     58 /*!
     59 \brief
     60 This array returns the string version of the enum #temod16_core_select when
     61 indexed by the enum var.
     62 
     63 */
     64 extern char* e2s_temod16_core_select [CNT_temod16_core_select];
     65 /*!
     66 \brief
     67 This array associates the enum #temod16_core_select enum with a bit mask.
     68 The index is the #temod16_core_select enum value.  The value for each entry is
     69 interpreted as follows.  If bit [n] is 1, then core [n] is addressed; if bit [n]
     70 is 0, then core [n] is addressed.
     71 
     72 */
     73 extern int e2n_temod16_core_select [CNT_temod16_core_select];
     74 /*! \enum temod16_lane_select 
     75 
     76 temod16_lane_select selects for programming, any combination of 4 lanes of PHY.
     77 A '1' in the latter part of the enum name selects the lane.  Other parameters in
     78 the #temod16_st will decide what to do with the selected lane(s). In most cases
     79 we enable/disable a feature on the selected lanes.
     80 
     81 If lane_select is set to TEMOD16_LANE_BCST for writes we broadcast to all lanes.
     82 You cannot read in broadcast mode.
     83 
     84 
     85 */
     86 
     87 typedef enum {
     88   TEMOD16_LANE_0_0_0_1         = 0   ,  /*!< lane number  0       selected   */
     89   TEMOD16_LANE_0_0_1_0               ,  /*!< lane number  1       selected   */
     90   TEMOD16_LANE_0_0_1_1               ,  /*!< lane numbers 0,1     selected   */
     91   TEMOD16_LANE_0_1_0_0               ,  /*!< lane number  2       selected   */
     92   TEMOD16_LANE_0_1_0_1               ,  /*!< lane numbers 2,0     selected   */
     93   TEMOD16_LANE_0_1_1_0               ,  /*!< lane numbers 2,1     selected   */
     94   TEMOD16_LANE_0_1_1_1               ,  /*!< lane numbers 2,1,0   selected   */
     95   TEMOD16_LANE_1_0_0_0               ,  /*!< lane number  3       selected   */
     96   TEMOD16_LANE_1_0_0_1               ,  /*!< lane numbers 3,0     selected   */
     97   TEMOD16_LANE_1_0_1_0               ,  /*!< lane numbers 3,1     selected   */
     98   TEMOD16_LANE_1_0_1_1               ,  /*!< lane numbers 3,1,0   selected   */
     99   TEMOD16_LANE_1_1_0_0               ,  /*!< lane numbers 3,2     selected   */
    100   TEMOD16_LANE_1_1_0_1               ,  /*!< lane numbers 3,2,0   selected   */
    101   TEMOD16_LANE_1_1_1_0               ,  /*!< lane numbers 3,2,1   selected   */
    102   TEMOD16_LANE_1_1_1_1               ,  /*!< lane numbers 3,2,1,0 selected   */
    103   TEMOD16_LANE_BCST                  ,  /*!< lane numbers 3,2,1,0 BCST       */
    104   TEMOD16_LANE_ILLEGAL                 /*!< Illegal (programmatic boundary) */
    105 } temod16_lane_select;
    106 
    107 /*! \def CNT_temod16_lane_select Types of enum temod16_lane_select */
    108 #define CNT_temod16_lane_select 17
    109 
    110 /*!
    111 \brief
    112 This array returns the string version of the enum #temod16_lane_select when
    113 indexed by the enum var.
    114 
    115 */
    116 extern char* e2s_temod16_lane_select [CNT_temod16_lane_select];
    117 /*!
    118 \brief
    119 This array associates the enum #temod16_lane_select enum with a bit mask.
    120 The index is the #temod16_lane_select enum value.  The value for each entry is
    121 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
    122 is 0, then lane [n] is disabled.  By enabled, we mean that such-and-such
    123 function is to be called for a lane; by disabled, we mean that such-and-such
    124 function is not to be called for a lane.  So a value of 0xF indicates that all
    125 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled.
    126 
    127 */
    128 extern int e2n_temod16_lane_select [CNT_temod16_lane_select];
    129 /*! \enum temod16_spd_intfc_type 
    130 
    131 All legal speed-interface combination are encapsulated in this enum
    132 
    133 There are several speed and interface combinations allowed for a logical PHY
    134 port. Names and speeds are self explanatory.
    135 
    136 Speed and interface selection is combined because we don't want the speeds
    137 to be incompatible with interface.
    138 
    139 */
    140 
    141 typedef enum {
    142   TEMOD16_SPD_ZERO             = 0   ,  /*!< Illegal value (enum boundary)   */
    143   TEMOD16_SPD_10_X1_SGMII            ,  /*!< 10Mb SGMII (serial)             */
    144   TEMOD16_SPD_100_X1_SGMII           ,  /*!< 100Mb SGMII (serial)            */
    145   TEMOD16_SPD_1000_X1_SGMII          ,  /*!< 1Gb SGMII (serial)              */
    146   TEMOD16_SPD_2500_X1                ,  /*!< 2.5Gb  based on 1000BASE-X      */
    147   TEMOD16_SPD_10_SGMII               ,  /*!< 10Mb SGMII (serial)             */
    148   TEMOD16_SPD_100_SGMII              ,  /*!< 100Mb SGMII (serial)            */
    149   TEMOD16_SPD_1000_SGMII             ,  /*!< 1Gb SGMII (serial)              */
    150   TEMOD16_SPD_2500                   ,  /*!< 2.5Gb  based on 1000BASE-X      */
    151   TEMOD16_SPD_5000                   ,  /*!< 5Gb  CL36                       */
    152   TEMOD16_SPD_1000_XFI               ,  /*!< 1Gb                             */
    153   TEMOD16_SPD_5000_XFI               ,  /*!< 5Gb  CL49                       */
    154   TEMOD16_SPD_10000_XFI              ,  /*!< 10Gb serial XFI                 */
    155   TEMOD16_SPD_10600_XFI_HG           ,  /*!< 10.5Gb serial XFI (HgSOLO)      */
    156   TEMOD16_SPD_10000_HI               ,  /*!< 10Gb XAUI HiG                   */
    157   TEMOD16_SPD_10000                  ,  /*!< 10Gb XAUI                       */
    158   TEMOD16_SPD_12000_HI               ,  /*!< 12Gb XAUI HiG                   */
    159   TEMOD16_SPD_13000                  ,  /*!< 13Gb XAUI                       */
    160   TEMOD16_SPD_15000                  ,  /*!< 15Gb XAUI                       */
    161   TEMOD16_SPD_16000                  ,  /*!< 16Gb XAUI                       */
    162   TEMOD16_SPD_20000                  ,  /*!< 20Gb XAUI                       */
    163   TEMOD16_SPD_20000_SCR              ,  /*!< 20Gb XAUI scrambled             */
    164   TEMOD16_SPD_21000                  ,  /*!< 21Gb XAUI                       */
    165   TEMOD16_SPD_25455                  ,  /*!< 25Gb XAUI  64/66 codec          */
    166   TEMOD16_SPD_31500                  ,  /*!< 31.5Gb quad lane XAUI           */
    167   TEMOD16_SPD_31500_MLD              ,  /*!< 31.5Gb quad lane MLD            */
    168   TEMOD16_SPD_40G_X4                 ,  /*!< 40Gb quad lane XAUI             */
    169   TEMOD16_SPD_42G_X4                 ,  /*!< 40Gb quad lane XAUI  HiG        */
    170   TEMOD16_SPD_40G_XLAUI              ,  /*!< 40Gb quad lane  MLD             */
    171   TEMOD16_SPD_42G_XLAUI              ,  /*!< 42Gb quad lane  MLD             */
    172   TEMOD16_SPD_10000_X2               ,  /*!< 10Gb dual lane                  */
    173   TEMOD16_SPD_10000_HI_DXGXS         ,  /*!< 10Gb dual lane XGXS HiG         */
    174   TEMOD16_SPD_10000_DXGXS            ,  /*!< 10Gb dual lane XGXS             */
    175   TEMOD16_SPD_10000_HI_DXGXS_SCR       ,  /*!< 10Gb dual lane,scrambled,HiG    */
    176   TEMOD16_SPD_10000_DXGXS_SCR        ,  /*!< 10Gb dual lane scrambled        */
    177   TEMOD16_SPD_10500_HI               ,  /*!< 10.5Gb XAUI  lane XGXS HiG      */
    178   TEMOD16_SPD_10500_HI_DXGXS         ,  /*!< 10.5Gb  dual lane XGXS HiG      */
    179   TEMOD16_SPD_12773_HI_DXGXS         ,  /*!< 12.73Gb dual lane XGXS HiG      */
    180   TEMOD16_SPD_12773_DXGXS            ,  /*!< 12.73Gb dual lane XGXS          */
    181   TEMOD16_SPD_15750_HI_DXGXS         ,  /*!< 15.75Gb scrambled dual lane HiG */
    182   TEMOD16_SPD_20G_MLD_DXGXS          ,  /*!< 20Gb dual lane MLD              */
    183   TEMOD16_SPD_21G_HI_MLD_DXGXS       ,  /*!< 20Gb dual lane HiG MLD          */
    184   TEMOD16_SPD_20G_DXGXS              ,  /*!< 20Gb dual lane BRCM             */
    185   TEMOD16_SPD_21G_HI_DXGXS           ,  /*!< 21.2Gb dual HiG(20+plldiv=70)   */
    186   TEMOD16_SPD_100G_CR10              ,  /*!< 100G                            */
    187   TEMOD16_SPD_107G_HG_CR10           ,  /*!< 107G                            */
    188   TEMOD16_SPD_120G_CR12              ,  /*!< 120G                            */
    189   TEMOD16_SPD_127G_HG_CR12           ,  /*!< 127G                            */
    190   TEMOD16_SPD_4000                   ,  /*!< 4G QSGMII                       */
    191   TEMOD16_SPD_10000_X4_10P3          ,  /*!< 10G X4 with 10.3125VCO          */
    192   TEMOD16_SPD_10000_CX4_10P3         ,  /*!< 10G X4 with 10.3125VCO          */
    193   TEMOD16_SPD_10000_KX4_10P3         ,  /*!< 10G X4 with 10.3125VCO          */
    194   TEMOD16_SPD_12P12_XFI              ,  /*!< 12.12XFI                        */
    195   TEMOD16_SPD_24P24_MLD_DXGXS        ,  /*!< 24.24MLD                        */
    196   TEMOD16_SPD_48P48_MLD              ,  /*!< 48.48MLD                        */
    197   TEMOD16_SPD_ILLEGAL                  /*!< Illegal value (enum boundary)   */
    198 } temod16_spd_intfc_type;
    199 
    200 /*! \def CNT_temod16_spd_intfc_type Types of enum temod16_spd_intfc_type */
    201 #define CNT_temod16_spd_intfc_type 56
    202 
    203 /*!
    204 \brief
    205 This array returns the string version of the enum #temod16_lane_select when
    206 indexed by the enum var.
    207 
    208 */
    209 extern char* e2s_temod16_spd_intfc_type [CNT_temod16_spd_intfc_type];
    210 /*!
    211 \brief
    212 This array associates the enum #temod16_lane_select enum with a bit mask.
    213 The index is the #temod16_lane_select enum value.  The value for each entry is
    214 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
    215 is 0, then lane [n] is disabled.  By enabled, we mean that such-and-such
    216 function is to be called for a lane; by disabled, we mean that such-and-such
    217 function is not to be called for a lane.  So a value of 0xF indicates that all
    218 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled.
    219 
    220 */
    221 extern int e2n_temod16_spd_intfc_type [CNT_temod16_spd_intfc_type];
    222 /*! \enum temod16_regacc_type 
    223 
    224 Types of MDIO to access PHY registers. IEEE clause 22 and clause 45 are
    225 supported. The 8 bit parallel TOTSC bus can be used. We may use 
    226 
    227 */
    228 
    229 typedef enum {
    230   TEMOD16_REGACC_CL22          = 0   ,  /*!< IEEE clause 22 based MDIO (for PMD only) */
    231   TEMOD16_REGACC_CL45                ,  /*!< IEEE clause 45 based MDIO (for PMD only) */
    232   TEMOD16_REGACC_TOTSC               ,  /*!< Mission Mode. */
    233   TEMOD16_REGACC_SBUS_FD             ,  /*!< Probably used in PM testbenches. */
    234   TEMOD16_REGACC_SBUS_BD             ,  /*!< Probably used in PM testbenches. */
    235   TEMOD16_REGACC_ILLEGAL               /*!< Illegal value (enum boundary) */
    236 } temod16_regacc_type;
    237 
    238 /*! \def CNT_temod16_regacc_type Types of enum temod16_regacc_type */
    239 #define CNT_temod16_regacc_type 6
    240 
    241 /*!
    242 \brief
    243 This array returns the string version of the enum #temod16_regacc_type when indexed
    244 by the enum var.
    245 
    246 */
    247 extern char* e2s_temod16_regacc_type [CNT_temod16_regacc_type];
    248 /*! \enum temod16_port_type 
    249 
    250 This is the port mode type enumeration.
    251 
    252 WC can be configured in combo mode (i.e. entire WC is a single port) or
    253 independent mode (i.e. WC has more than one port (2, 3, or 4) that are
    254 controlled individually.
    255 
    256 */
    257 
    258 typedef enum {
    259   TEMOD16_SINGLE_PORT          = 0   ,  /*!< single port mode: 4 channels as one logical port */
    260   TEMOD16_MULTI_PORT                 ,  /*!< Each channel is one logical port */
    261   TEMOD16_DXGXS                      ,  /*!< Each paired channel(0-1, 2-3) is one logical port */
    262   TEMOD16_TRI1_PORT                  ,  /*!< 3 ports, one of them paird as follows (0,1,2-3) */
    263   TEMOD16_TRI2_PORT                  ,  /*!< 3 ports, one of them paird as follows (0-1,2,3) */
    264   TEMOD16_PORT_MODE_ILLEGAL            /*!< Illegal value (enum boundary) */
    265 } temod16_port_type;
    266 
    267 /*! \def CNT_temod16_port_type Types of enum temod16_port_type */
    268 #define CNT_temod16_port_type 6
    269 
    270 /*!
    271 \brief
    272 This array returns the string version of the enum #temod16_port_type when indexed
    273 by the enum var.
    274 
    275 */
    276 extern char* e2s_temod16_port_type [CNT_temod16_port_type];
    277 /*! \enum temod16_diag_type 
    278 
    279 temod16_diag_type enumerates categories of diagnostic data.
    280 has many intermediate stages between down and up. This enum is work in progress
    281 
    282 
    283 <table cellspacing=0>
    284 <tr><td colspan=3><B>'per_lane_control' bit-mappings</B></td></tr>
    285 
    286 <tr><td><B>Type</B></td><td><B>Description</B></td><td><B>Scope</B></td></tr>
    287 
    288 <tr><td>General</td>
    289 <td> Combo/independent, Device and Revision Id, VCO settings, Firmware state
    290 and version, active/passive lanes, MDIO type. PLL info, Oversampling Info</td>
    291 <td>Device</td></tr>
    292 
    293 <tr><td>Link</td>
    294 <td> Speeds, oversampling, interface, forced/Autoneg, link status, sync
    295 status, RX sequencer on/off </td>
    296 <td>Lane</td></tr>
    297 
    298 <tr><td>Autoneg</td>
    299 <td> Local and remote advertisement, link status, cl73/37/BAM info </td>
    300 <td>Lane</td></tr>
    301 
    302 <tr><td>Internal Traffic</td>
    303 <td> PRBS type, CJPat Type, Prog_data value, Any associated recorded errors,
    304 and misc. info (IPG etc.)</td>
    305 <td>Lane </td></tr>
    306 
    307 <tr>
    308 <td>DFE</td>
    309 <td>Equalization info, Tap settings. (pre/post/overrides), peaking filter values </td>
    310 <td>Lane</td></tr>
    311 
    312 <tr><td>IEEE info</td>
    313 <td>Clause 72, FEC</td>
    314 <td>Lane</td></tr>
    315 
    316 <tr><td>Topology</td>
    317 <td>Looping info (Gloop/rloop), lane swapping, polarity swap info</td>
    318 <td>Device</td></tr>
    319 
    320 <tr><td>EEE</td>
    321 <td>EEE full, passthru modes, some window values?</td>
    322 <td>Lane</td></tr>
    323 
    324 <tr><td>Eye Margin</td>
    325 <td>Eye margin measurement (readout only)</td>
    326 <td>Lane</td></tr>
    327 
    328 <tr><td>All</td>
    329 <td>All of the above. Except eye margin.</td>
    330 <td>Device</td></tr>
    331 
    332 </table>
    333 
    334 
    335 */
    336 
    337 typedef enum {
    338     TEMOD16_DIAG_GENERAL         = 0x00000001 ,  /*!< General device wide information.         */
    339     TEMOD16_DIAG_TOPOLOGY        = 0x00000002 ,  /*!< Loopbacks etc.                           */
    340     TEMOD16_DIAG_LINK            = 0x00000004 ,  /*!< Link specific info.                      */
    341     TEMOD16_DIAG_SPEED           = 0x00000008 ,  /*!< sub-category of TEMOD_DIAG_LINK(for SDK) */
    342     TEMOD16_DIAG_ANEG            = 0x00000010 ,  /*!< Autoneg specific info.                   */
    343     TEMOD16_DIAG_TFC             = 0x00000020 ,  /*!< State of tx/rx internal tfc              */
    344     TEMOD16_DIAG_AN_TIMERS       = 0x00000040 ,  /*!< AN timers                                */
    345     TEMOD16_DIAG_STATE           = 0x00000080 ,  /*!< Debug state registers                    */
    346     TEMOD16_DIAG_DEBUG           = 0x00000100 ,  /*!< Debug                                    */
    347     TEMOD16_DIAG_IEEE            = 0x00000200 ,  /*!< IEEE related info                        */
    348     TEMOD16_DIAG_EEE             = 0x00000400 ,  /*!< EEE                                      */
    349     TEMOD16_DIAG_BER             = 0x00000800 ,  /*!< BER - PMD bit error rate                 */
    350     TEMOD16_DIAG_CFG             = 0x00001000 ,  /*!< CFG - PMD Lane/Core Config               */
    351     TEMOD16_DIAG_CL72            = 0x00002000 ,  /*!< CL72 - Status                            */
    352     TEMOD16_DIAG_DSC             = 0x00004000 ,  /*!< DSC dump                                 */
    353     TEMOD16_DIAG_DSC_STD         = 0x00010000 ,  /*!< DSC dump                                 */
    354     TEMOD16_SERDES_DIAG          = 0x00008000 ,  /*!< PMD Triage                               */
    355     TEMOD16_DIAG_ALL             = 0x0000ffff ,  /*!< Everything but eye margin                */
    356     TEMOD16_DIAG_ILLEGAL         = 0x00000000    /*!< Illegal value. programmatic boundary.    */
    357 } temod16_diag_type;
    358 
    359 /*! \def CNT_temod16_diag_type Types of enum temod16_diag_type */
    360 #define CNT_temod16_diag_type 17
    361 
    362 /*!
    363 \brief
    364 This array returns the string version of the enum #temod16_port_type when indexed
    365 by the enum var.
    366 
    367 */
    368 extern char* e2s_temod16_diag_type [CNT_temod16_diag_type];
    369 /*! \enum temod16_pmd_diag_type 
    370 
    371 temod16_pmd_diag_type enumerates categories of pmd diagnostic data.
    372 has many intermediate stages between down and up. This enum is work in progress
    373 
    374 */
    375 
    376 typedef enum {
    377   TEMOD16_SERDES_DIAG_CORE_CONFIG = 0x00000001 ,  /*!< SERDES DIAG */
    378   TEMOD16_SERDES_DIAG_CORE_STATE = 0x00000002 ,  /*!< SERDES DIAG */
    379   TEMOD16_SERDES_DIAG_LANE_CONFIG = 0x00000004 ,  /*!< SERDES DIAG */
    380   TEMOD16_SERDES_DIAG_LANE_DEBUG_STATUS = 0x00000008 ,  /*!< SERDES DIAG */
    381   TEMOD16_SERDES_DIAG_LANE_STATE = 0x00000010 ,  /*!< SERDES DIAG */
    382   TEMOD16_SERDES_DIAG_LANE_STATE_HDR = 0x00000020 ,  /*!< SERDES DIAG */
    383   TEMOD16_SERDES_DIAG_LANE_STATE_LEGEND = 0x00000040 ,  /*!< SERDES DIAG */
    384   TEMOD16_SERDES_DIAG_CL72_STATUS = 0x00000080 ,  /*!< SERDES DIAG */
    385   TEMOD16_SERDES_DIAG_EYE_DENSITY = 0x00000100 ,  /*!< SERDES DIAG */
    386   TEMOD16_SERDES_DIAG_EYE_SCAN = 0x00000200 ,  /*!< SERDES DIAG */
    387   TEMOD16_SERDES_DIAG_MEAS_EYE_DENSITY_DATA = 0x00000400 ,  /*!< SERDES DIAG */
    388   TEMOD16_SERDES_DIAG_MEAS_EYE_SCAN_DONE = 0x00000800 ,  /*!< SERDES DIAG */
    389   TEMOD16_SERDES_DIAG_MEAS_LOWBER_EYE = 0x00001000 ,  /*!< SERDES DIAG */
    390   TEMOD16_SERDES_DIAG_READ_EYE_SCAN_STRIPE = 0x00002000 ,  /*!< SERDES DIAG */
    391   TEMOD16_SERDES_DIAG_EYE_DENSITY_DATA = 0x00004000 ,  /*!< SERDES DIAG */
    392   TEMOD16_SERDES_DIAG_LOWBER_EYE = 0x00008000 ,  /*!< SERDES DIAG */
    393   TEMOD16_SERDES_DIAG_EYE_SCAN_VERTICAL = 0x00010000 ,  /*!< SERDES DIAG */
    394   TEMOD16_SERDES_DIAG_EYE_SCAN_STRIPE = 0x00020000 ,  /*!< SERDES DIAG */
    395   TEMOD16_SERDES_DIAG_EYE_SCAN_HEADER = 0x00040000 ,  /*!< SERDES DIAG */
    396   TEMOD16_SERDES_DIAG_EYE_SCAN_FOOTER = 0x00080000 ,  /*!< SERDES DIAG */
    397   TEMOD16_SERDES_DIAG_BER_SCAN_TEST = 0x00100000 ,  /*!< SERDES DIAG */
    398   TEMOD16_SERDES_DIAG_READ_BER_SCAN_DATA = 0x00200000 ,  /*!< SERDES DIAG */
    399   TEMOD16_SERDES_DIAG_EYE_MARGIN_PROJ = 0x00400000 ,  /*!< SERDES DIAG */
    400   TEMOD16_SERDES_DIAG_DIG_LPBK = 0x00800000 ,  /*!< SERDES DIAG */
    401   TEMOD16_SERDES_DIAG_MEAS_EYE_SCAN_START = 0x01000000 ,  /*!< SERDES DIAG */
    402   TEMOD16_SERDES_DIAG_ILLEGAL  = 0x00000000   /*!< Illegal value (enum boundary) */
    403 } temod16_pmd_diag_type;
    404 
    405 /*! \def CNT_temod16_pmd_diag_type Types of enum temod16_pmd_diag_type */
    406 #define CNT_temod16_pmd_diag_type 26
    407 
    408 /*!
    409 \brief
    410 This array returns the string version of the enum #temod16_pmd_diag_type when indexed
    411 by the enum var.
    412 
    413 */
    414 extern char* e2s_temod16_pmd_diag_type [CNT_temod16_pmd_diag_type];
    415 /*! \enum temod16_an_type 
    416 
    417 temod16_an_type enumerates different types of autoneg modes in the PHY.
    418 
    419 */
    420 
    421 typedef enum {
    422   TEMOD16_CL73                 = 0   ,  /*!< PHY autoneg CL73 enable */
    423   TEMOD16_CL37                       ,  /*!< PHY autoneg CL37 enable */
    424   TEMOD16_CL73_BAM                   ,  /*!< PHY autoneg CL73 enable with Brcm Aneg Mode */
    425   TEMOD16_CL37_BAM                   ,  /*!< PHY autoneg CL37 enable with  Brcm Aneg Mode */
    426   TEMOD16_CL37_SGMII                 ,  /*!< PHY autoneg for SGMII */
    427   TEMOD16_HPAM                       ,  /*!< PHY autoneg for HP aneg */
    428   TEMOD16_AN_TYPE_ILLEGAL              /*!< Illegal value. programmatic boundary. */
    429 } temod16_an_type;
    430 
    431 /*! \def CNT_temod16_an_type Types of enum temod16_an_type */
    432 #define CNT_temod16_an_type 7
    433 
    434 /*!
    435 \brief
    436 This array returns the string version of the enum #temod16_pmd_diag_type when indexed
    437 by the enum var.
    438 
    439 */
    440 extern char* e2s_temod16_an_type [CNT_temod16_an_type];
    441 /*! \enum temod16_eye_direction 
    442 
    443 The direction of slicer changing always moves from the middle of the eye.
    444 Currently all speeds have the following bit positions in temod16_st
    445 
    446 \li TEMOD16_EYE_VU: Vertical,   Upward direction
    447 \li TEMOD16_EYE_VD: Vertical,   Downward direction
    448 \li TEMOD16_EYE_HL: Horizontal, Left  direction
    449 \li TEMOD16_EYE_HR: Horizontal, Right direction
    450 
    451 
    452 */
    453 
    454 typedef enum {
    455   TEMOD16_EYE_VU               = 0   ,  /*!< Vertical,   Upward direction */
    456   TEMOD16_EYE_VD                     ,  /*!< Vertical,   Downward direction */
    457   TEMOD16_EYE_HL                     ,  /*!< Horizontal, Left  direction */
    458   TEMOD16_EYE_HR                     ,  /*!< Horizontal, Right direction */
    459   TEMOD16_EYE_ILLEGAL                  /*!< Programmatic illegal boundary. */
    460 } temod16_eye_direction;
    461 
    462 /*! \def CNT_temod16_eye_direction Types of enum temod16_eye_direction */
    463 #define CNT_temod16_eye_direction 5
    464 
    465 /*!
    466 \brief
    467 This array returns the string version of the enum #temod16_pmd_diag_type when indexed
    468 by the enum var.
    469 
    470 */
    471 extern char* e2s_temod16_eye_direction [CNT_temod16_eye_direction];
    472 
    473 
    474 typedef enum {
    475   TEMOD16_ABILITY_1G_KX        = 0   ,  /*!< CL73 speed 1G_KX ease        */
    476   TEMOD16_ABILITY_10G_KX4            ,  /*!< please write comments        */
    477   TEMOD16_ABILITY_10G_KR             ,  /*!< please write comments        */
    478   TEMOD16_ABILITY_40G_KR4            ,  /*!< please write comments        */
    479   TEMOD16_ABILITY_40G_CR4            ,  /*!< please write comments        */
    480   TEMOD16_ABILITY_100G_CR10          ,  /*!< please write comments        */
    481   TEMOD16_ABILITY_20G_KR2            ,  /*!< please write comments        */
    482   TEMOD16_ABILITY_20G_CR2            ,  /*!< please write comments        */
    483   TEMOD16_ABILITY_ILLEGAL              /*!< please write comments        */
    484 } temod16_tech_ability;
    485 
    486 /*! \def CNT_temod16_tech_ability Types of enum temod16_tech_ability */
    487 #define CNT_temod16_tech_ability 9
    488 
    489 /*!
    490 \brief
    491 This array returns the string version of the enum #temod16_pmd_diag_type when indexed
    492 by the enum var.
    493 
    494 */
    495 extern char* e2s_temod16_tech_ability [CNT_temod16_tech_ability];
    496 /*!
    497 \brief
    498 This array associates the enum #temod16_lane_select enum with a bit mask.
    499 The index is the #temod16_lane_select enum value.  The value for each entry is
    500 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
    501 is 0, then lane [n] is disabled.  By enabled, we mean that such-and-such
    502 function is to be called for a lane; by disabled, we mean that such-and-such
    503 function is not to be called for a lane.  So a value of 0xF indicates that all
    504 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled.
    505 
    506 */
    507 extern int e2n_temod16_tech_ability [CNT_temod16_tech_ability];
    508 /*! \enum temod16_cl37bam_ability 
    509 
    510 This array associates the enum #temod16_lane_select enum with a bit mask.
    511 The index is the #temod16_lane_select enum value.  The value for each entry is
    512 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
    513 is 0, then lane [n] is disabled.  Enabled implies the function under
    514 consideration be enebled for the lane. Disabled means the opposite.  So a value
    515 of 0xF indicates that all lanes or enabled, while 0x5 indicates that only lanes
    516 0 and 2 are enabled.
    517 
    518 temod16_cl37bam_ability enumerates different types of speed advertisements in the
    519 basic autoneg page for CL37BAM only.
    520 
    521 Currently all speeds have the following bit positions in temod16_st
    522 
    523 \li TEMOD16_BAM37ABL_2P5G             Bit Pos: 0
    524 \li TEMOD16_BAM37ABL_5G_X4            Bit Pos: 1
    525 \li TEMOD16_BAM37ABL_6G_X4            Bit Pos: 2
    526 \li TEMOD16_BAM37ABL_10G_HIGIG        Bit Pos: 3
    527 \li TEMOD16_BAM37ABL_10G_CX4          Bit Pos: 4
    528 \li TEMOD16_BAM37ABL_12G_X4           Bit Pos: 5
    529 \li TEMOD16_BAM37ABL_12P5_X4          Bit Pos: 6
    530 \li TEMOD16_BAM37ABL_13G_X4           Bit Pos: 7
    531 \li TEMOD16_BAM37ABL_15G_X4           Bit Pos: 8
    532 \li TEMOD16_BAM37ABL_16G_X4           Bit Pos: 9
    533 \li TEMOD16_BAM37ABL_20G_X4_CX4       Bit Pos: 10
    534 \li TEMOD16_BAM37ABL_20G_X4           Bit Pos: 11
    535 \li TEMOD16_BAM37ABL_21G_X4           Bit Pos: 12
    536 \li TEMOD16_BAM37ABL_25P455G          Bit Pos: 13
    537 \li TEMOD16_BAM37ABL_31P5G            Bit Pos: 14
    538 \li TEMOD16_BAM37ABL_32P7G            Bit Pos: 15
    539 \li TEMOD16_BAM37ABL_40G              Bit Pos: 16
    540 \li TEMOD16_BAM37ABL_10G_X2_CX4       Bit Pos: 17
    541 \li TEMOD16_BAM37ABL_10G_DXGXS        Bit Pos: 18
    542 \li TEMOD16_BAM37ABL_10P5G_DXGXS      Bit Pos: 19
    543 \li TEMOD16_BAM37ABL_12P7_DXGXS       Bit Pos: 20
    544 \li TEMOD16_BAM37ABL_15P75G_R2        Bit Pos: 21
    545 \li TEMOD16_BAM37ABL_20G_X2_CX4       Bit Pos: 22
    546 \li TEMOD16_BAM37ABL_20G_X2           Bit Pos: 23
    547 
    548 
    549 */
    550 
    551 typedef enum {
    552   TEMOD16_BAM37ABL_2P5G        = 0   ,  /*!< X1 BRCM */
    553   TEMOD16_BAM37ABL_5G_X4             ,  /*!< BRCM */
    554   TEMOD16_BAM37ABL_6G_X4             ,  /*!< BRCM */
    555   TEMOD16_BAM37ABL_10G_HIGIG         ,  /*!< HG (10G_X4) */
    556   TEMOD16_BAM37ABL_10G_CX4           ,  /*!< (10G_X4_CX4) */
    557   TEMOD16_BAM37ABL_12G_X4            ,  /*!< HG */
    558   TEMOD16_BAM37ABL_12P5_X4           ,  /*!< HG */
    559   TEMOD16_BAM37ABL_13G_X4            ,  /*!< HG */
    560   TEMOD16_BAM37ABL_15G_X4            ,  /*!< HG */
    561   TEMOD16_BAM37ABL_16G_X4            ,  /*!< HG */
    562   TEMOD16_BAM37ABL_20G_X4_CX4        ,  /*!< XAUI 8b10b scram(20G_X4S) */
    563   TEMOD16_BAM37ABL_20G_X4            ,  /*!< HG */
    564   TEMOD16_BAM37ABL_21G_X4            ,  /*!< HG */
    565   TEMOD16_BAM37ABL_25P455G           ,  /*!< X4 HG */
    566   TEMOD16_BAM37ABL_31P5G             ,  /*!< X4 HG */
    567   TEMOD16_BAM37ABL_32P7G             ,  /*!< X4 HG */
    568   TEMOD16_BAM37ABL_40G               ,  /*!< X4 BRCM HG (40G_X4) */
    569   TEMOD16_BAM37ABL_10G_X2_CX4        ,  /*!< 10G_X2_CX4 */
    570   TEMOD16_BAM37ABL_10G_DXGXS         ,  /*!< 10G_X2 */
    571   TEMOD16_BAM37ABL_10P5G_DXGXS       ,  /*!< 10P5_X2 */
    572   TEMOD16_BAM37ABL_12P7_DXGXS        ,  /*!< 12P7_X2 */
    573   TEMOD16_BAM37ABL_15P75G_R2         ,  /*!< 15P75_X2 */
    574   TEMOD16_BAM37ABL_20G_X2_CX4        ,  /*!< 20G_X2_CX4 */
    575   TEMOD16_BAM37ABL_20G_X2            ,  /*!< 20G_X2 */
    576   TEMOD16_BAM37ABL_ILLEGAL             /*!< Illegal. Programmatic boundary */
    577 } temod16_cl37bam_ability;
    578 
    579 /*! \def CNT_temod16_cl37bam_ability Types of enum temod16_cl37bam_ability */
    580 #define CNT_temod16_cl37bam_ability 25
    581 
    582 /*!
    583 \brief
    584 This array returns the string version of the enum #temod16_pmd_diag_type when indexed
    585 by the enum var.
    586 
    587 */
    588 extern char* e2s_temod16_cl37bam_ability [CNT_temod16_cl37bam_ability];
    589 /*! \enum temod16_diag_an_type 
    590 
    591 This array associates the enum #temod16_lane_select enum with a bit mask.
    592 The index is the #temod16_lane_select enum value.  The value for each entry is
    593 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
    594 is 0, then lane [n] is disabled.  By enabled, we mean that such-and-such
    595 function is to be called for a lane; by disabled, we mean that such-and-such
    596 function is not to be called for a lane.  So a value of 0xF indicates that all
    597 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled.
    598 
    599 */
    600 
    601 typedef enum {
    602   TEMOD16_DIAG_AN_DONE         = 0   ,  /*!< AN completion check */
    603   TEMOD16_DIAG_AN_HCD                ,  /*!< AN HCD speed check */
    604   TEMOD16_DIAG_AN_TYPE_ILLEGAL         /*!< Illegal value. programmatic boundary */
    605 } temod16_diag_an_type;
    606 
    607 /*! \def CNT_temod16_diag_an_type Types of enum temod16_diag_an_type */
    608 #define CNT_temod16_diag_an_type 3
    609 
    610 /*!
    611 \brief
    612 This array returns the string version of the enum #temod16_pmd_diag_type when indexed
    613 by the enum var.
    614 
    615 */
    616 extern char* e2s_temod16_diag_an_type [CNT_temod16_diag_an_type];
    617 /*! \enum temod16_tier1_function_type 
    618 
    619 This array associates the enum #temod16_lane_select enum with a bit mask.
    620 The index is the #temod16_lane_select enum value.  The value for each entry is
    621 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
    622 is 0, then lane [n] is disabled.  By enabled, we mean that such-and-such
    623 function is to be called for a lane; by disabled, we mean that such-and-such
    624 function is not to be called for a lane.  So a value of 0xF indicates that all
    625 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled.
    626 
    627 */
    628 
    629 typedef enum {
    630   PCS_BYPASS_CTL             = 0   ,  /*!< temod16_pcs_bypass_ctl  */
    631   INIT_PCS                         ,  /*!< temod16_init_pcs */
    632   INIT_PMD_SW                      ,  /*!< temod16_init_pmd_sw */
    633   INIT_PMD                         ,  /*!< temod16_init_pmd */
    634   PMD_RESET_SEQ                    ,  /*!< temod16_pmd_reset_seq */
    635   PMD_X4_RESET                     ,  /*!< temod16_pmd_x4_reset */
    636   WAIT_SC_DONE                     ,  /*!< temod16_wait_sc_done */
    637   ENABLE_SET                       ,  /*!< temod16_enable_set */
    638   FECMODE_SET                      ,  /*!< temod16_fecmode_set */
    639   GET_PCS_LINK_STATUS              ,  /*!< temod16_get_pcs_link_status */
    640   OVERRIDE_SET                     ,  /*!< temod16_override_set   */
    641   CREDIT_OVERRIDE_SET              ,  /*!< temod16_credit_override_set   */
    642   ENCODE_SET                       ,  /*!< temod16_encode_set   */
    643   DECODE_SET                       ,  /*!< temod16_decode_set */
    644   CREDIT_CONTROL                   ,  /*!< temod16_credit_control */
    645   TX_LANE_CONTROL                  ,  /*!< temod16_tx_lane_control */
    646   RX_LANE_CONTROL                  ,  /*!< temod16_rx_lane_control */
    647   TX_LANE_DISABLE                  ,  /*!< temod16_tx_lane_disable */
    648   POWER_CONTROL                    ,  /*!< temod16_power_control */
    649   AUTONEG_SET                      ,  /*!< temod16_autoneg_set */
    650   AUTONEG_GET                      ,  /*!< temod16_autoneg_get */
    651   AUTONEG_CONTROL                  ,  /*!< temod16_autoneg_control */
    652   TSC12_CONTROL                    ,  /*!< temod16_tsc12_control */
    653   CHECK_SC_STATS                   ,  /*!< temod16_check_sc_stats */
    654   REG_READ                         ,  /*!< temod16_reg_read */
    655   REG_WRITE                        ,  /*!< temod16_reg_write */
    656   PRBS_CHECK                       ,  /*!< temod16_prbs_check */
    657   CJPAT_CRPAT_MODE_SET             ,  /*!< temod16_cjpat_crpat_mode_set */
    658   CJPAT_CRPAT_CHECK                ,  /*!< temod16_cjpat_crpat_check */
    659   TEMOD16_DIAG                       ,  /*!< temod16_diag */
    660   PCS_LANE_SWAP                    ,  /*!< temod16_pcs_lane_swap */
    661   PMD_LANE_SWAP                    ,  /*!< temod16_pmd_lane_swap */
    662   PMD_LANE_SWAP_TX                 ,  /*!< temod16_pmd_lane_swap_tx */
    663   PARALLEL_DETECT_CONTROL          ,  /*!< temod16_parallel_detect_control */
    664   REVID_READ                       ,  /*!< temod16_revid_read */
    665   SOFT_RESET                       ,  /*!< temod16_soft_reset */
    666   SET_SPD_INTF                     ,  /*!< temod16_set_spd_intf */
    667   SET_PORT_MODE                    ,  /*!< temod16_set_port_mode */
    668   EEE_PASSTHRU_SET                 ,  /*!< temod16_EEE_pass_thru_set */
    669   EEE_PASSTHRU_GET                 ,  /*!< temod16_EEE_pass_thru_get */
    670   FEC_CONTROL                      ,  /*!< temod16_FEC_control */
    671   HIGIG2_CONTROL                   ,  /*!< temod16_HIGIG2_control */
    672   LF_RF_CONTROL                    ,  /*!< temod16_LF_RF_control */
    673   RX_FAST_LOCK_CONTROL             ,  /*!< temod16_rx_fast_lock_control */
    674   PMD_CORE_RESET                   ,  /*!< temod16_pmd_core_reset */
    675   PMD_LANE_RESET                   ,  /*!< temod16_pmd_lane_reset */
    676   AFE_SPEED_UP_DSC_VGA             ,  /*!< temod16_afe_speed_up_dsc_vga */
    677   CLAUSE_72_CONTROL                ,  /*!< temod16_clause72_control */
    678   PLL_SEQUENCER_CONTROL            ,  /*!< temod16_pll_sequencer_control */
    679   PLL_LOCK_WAIT                    ,  /*!< temod16_pll_lock_wait */
    680   PROG_DATA                        ,  /*!< temod16_prog_data */
    681   RX_SEQ_CONTROL                   ,  /*!< temod16_rx_seq_control */
    682   SET_POLARITY                     ,  /*!< temod16_tx_rx_polarity */
    683   PRBS_CONTROL                     ,  /*!< temod16_prbs_control */
    684   PRBS_MODE                        ,  /*!< temod16_prbs_mode */
    685   RX_PF_CONTROL                    ,  /*!< temod16_rx_PF_control */
    686   RX_VGA_CONTROL                   ,  /*!< temod16_rx_VGA_control */
    687   CJPAT_CRPAT_CONTROL              ,  /*!< temod16_cjpat_crpat_control */
    688   TX_LOOPBACK_CONTROL              ,  /*!< temod16_tx_loopback_control */
    689   TX_PMD_LOOPBACK_CONTROL          ,  /*!< temod16_tx_pmd_loopback_control */
    690   RX_LOOPBACK_CONTROL              ,  /*!< temod16_rx_loopback_control */
    691   RX_P1_SLICER_CONTROL             ,  /*!< temod16_rx_p1_slicer_control */
    692   RX_M1_SLICER_CONTROL             ,  /*!< temod16_rx_m1_slicer_control */
    693   RX_D_SLICER_CONTROL              ,  /*!< temod16_rx_d_slicer_control */
    694   WAIT_PMD_LOCK                    ,  /*!< temod16_wait_pmd_lock */
    695   FIRMWARE_SET                     ,  /*!< temod16_firmware_set */
    696   INIT_PMD_QSGMII                  ,  /*!< temod16_init_pmd_qsgmii */
    697   INIT_PCS_ILKN                    ,  /*!< temod16_init_pcs_ilkn */
    698   PMD_RESET_BYPASS                 ,  /*!< temod16_pmd_reset_bypass */
    699   PMD_OVERRIDE_CONTROL             ,  /*!< temod16_pmd_override_control */
    700   TIER1_FUNCTION_ILLEGAL             /*!< always last  */
    701 } temod16_tier1_function_type;
    702 
    703 /*! \def CNT_temod16_tier1_function_type Types of enum temod16_tier1_function_type */
    704 #define CNT_temod16_tier1_function_type 71
    705 
    706 /*!
    707 \brief
    708 This array returns the string version of the enum #temod16_pmd_diag_type when indexed
    709 by the enum var.
    710 
    711 */
    712 extern char* e2s_temod16_tier1_function_type [CNT_temod16_tier1_function_type];
    713 /*! \enum sc_mode_type 
    714 
    715 temod16_core_select selects for programming, any combination of 3
    716 core of the PHY.
    717 This is only applicable to the 12x10 version of the TSCE core.
    718 A '1' in the latter part of the enum selects the core.
    719 
    720 
    721 */
    722 
    723 typedef enum {
    724   TEMOD16_SC_MODE_HT_WITH_BASIC_OVERRIDE = 0   ,  /*!< TEMOD16_SC_MODE_HT_WITH_BASIC_OVERRIDE    */
    725   TEMOD16_SC_MODE_HT_OVERRIDE        ,  /*!< TEMOD16_SC_MODE_HT_OVERRIDE               */
    726   TEMOD16_SC_MODE_ST                 ,  /*!< TEMOD16_SC_MODE_ST                        */
    727   TEMOD16_SC_MODE_ST_OVERRIDE        ,  /*!< TEMOD16_SC_MODE_ST_OVERRIDE               */
    728   TEMOD16_SC_MODE_AN_CL37            ,  /*!< TEMOD16_SC_MODE_AN_CL37                   */
    729   TEMOD16_SC_MODE_AN_CL73            ,  /*!< TEMOD16_SC_MODE_AN_CL73                   */
    730   TEMOD16_SC_MODE_BYPASS             ,  /*!< TEMOD16_SC_MODE_BYPASS                    */
    731   TEMOD16_SC_MODE_ILLEGAL              /*!< TEMOD16_SC_MODE_ILLEGAL                   */
    732 } sc_mode_type;
    733 
    734 /*! \def CNT_sc_mode_type Types of enum sc_mode_type */
    735 #define CNT_sc_mode_type 8
    736 
    737 /*!
    738 \brief
    739 This array returns the string version of the enum
    740 #temod16_core_select when
    741 indexed by the enum var.
    742 
    743 */
    744 extern char* e2s_temod16_sc_mode_type [CNT_sc_mode_type];
    745 /*!
    746 \brief
    747 This array associates the enum #temod16_core_select enum with a
    748 bit mask.
    749 The index is the #temod16_core_select enum value.  The value for
    750 each entry is
    751 interpreted as follows.  If bit [n] is 1, then core [n] is
    752 addressed; if bit [n]
    753 is 0, then core [n] is addressed.
    754 
    755 */
    756 extern int e2n_temod16_sc_mode_type [CNT_sc_mode_type];
    757 /*! \enum temod16_pll_mode_type 
    758 
    759 temod16_pll_mode_type divides the PLL to get a clock which is a multiple of the
    760 refernce clock. This clock runs all the digital logic in the MAC and PHY layers
    761 and is referred to as TSC_CLK. To get the TSC_CLK, you simply multiply the
    762 reference clock by the pll divider value (not the reg. bit location)
    763 
    764 */
    765 
    766 typedef enum {
    767   TEMOD16_PLL_MODE_DIV_ZERO    = 0   ,  /*!< Illegal PLL Divider Number      */
    768   TEMOD16_PLL_MODE_DIV_40      = 2   ,  /*!< Multiply ref. clk by 40         */
    769   TEMOD16_PLL_MODE_DIV_42      = 3   ,  /*!< Multiply ref. clk by 42         */
    770   TEMOD16_PLL_MODE_DIV_48      = 4   ,  /*!< Multiply ref. clk by 48         */
    771   TEMOD16_PLL_MODE_DIV_52      = 6   ,  /*!< Multiply ref. clk by 52         */
    772   TEMOD16_PLL_MODE_DIV_54      = 7   ,  /*!< Multiply ref. clk by 54         */
    773   TEMOD16_PLL_MODE_DIV_60      = 8   ,  /*!< Multiply ref. clk by 60         */
    774   TEMOD16_PLL_MODE_DIV_64      = 9   ,  /*!< Multiply ref. clk by 64         */
    775   TEMOD16_PLL_MODE_DIV_66      = 10  ,  /*!< Multiply ref. clk by 66         */
    776   TEMOD16_PLL_MODE_DIV_70      = 12  ,  /*!< Multiply ref. clk by 70         */
    777   TEMOD16_PLL_MODE_DIV_80      = 13  ,  /*!< Multiply ref. clk by 80         */
    778   TEMOD16_PLL_MODE_DIV_92      = 14  ,  /*!< Multiply ref. clk by 92         */
    779   TEMOD16_PLL_MODE_DIV_ILLEGAL         /*!< Illegal (programmatic boundary) */
    780 } temod16_pll_mode_type;
    781 
    782 /*! \def CNT_temod16_pll_mode_type Types of enum temod16_pll_mode_type */
    783 #define CNT_temod16_pll_mode_type 13
    784 
    785 /*!
    786 \brief
    787 This array returns the string of #temod16_pll_mode_type when indexed by the enum.
    788 
    789 */
    790 extern char* e2s_temod16_pll_mode_type [CNT_temod16_pll_mode_type];
    791 /*!
    792 \brief
    793 This array returns the clock multiplier of #temod16_pll_mode_type when indexed by the enum.
    794 
    795 */
    796 extern int e2n_temod16_pll_mode_type [CNT_temod16_pll_mode_type];
    797 /*! \enum temod16_os_mode_type 
    798 
    799 
    800 The oversampling mode means that bits are sent out more than once to reduce
    801 the effective frequency of data transfer. For example you can send 5G bits
    802 over a 10G bit lane by sending every bit twice, or OS=2. When the OS is 3.3
    803 it's a bit tricky, we send bits 3 or 4 times in a pattern like so
    804 3,3,3,4,3,3,3,4,... Similarly for OS = 8, we send 8,8,8,9,8,8,8,9,...
    805 
    806 
    807 */
    808 
    809 typedef enum {
    810   TEMOD16_PMA_OS_MODE_1        = 0   ,  /*!< Over sampling Mode 1         */
    811   TEMOD16_PMA_OS_MODE_2        = 1   ,  /*!< Over sampling Mode 2         */
    812   TEMOD16_PMA_OS_MODE_3        = 2   ,  /*!< Over sampling Mode 3         */
    813   TEMOD16_PMA_OS_MODE_3_3      = 3   ,  /*!< Over sampling Mode 3.3       */
    814   TEMOD16_PMA_OS_MODE_4        = 4   ,  /*!< Over sampling Mode 4         */
    815   TEMOD16_PMA_OS_MODE_5        = 5   ,  /*!< Over sampling Mode 5         */
    816   TEMOD16_PMA_OS_MODE_7_25     = 6   ,  /*!< Over sampling Mode 7.25      */
    817   TEMOD16_PMA_OS_MODE_8        = 7   ,  /*!< Over sampling Mode 8         */
    818   TEMOD16_PMA_OS_MODE_8_25     = 8   ,  /*!< Over sampling Mode 8.25      */
    819   TEMOD16_PMA_OS_MODE_10       = 9   ,  /*!< Over sampling Mode 10        */
    820   TEMOD16_PMA_OS_MODE_ILLEGAL  = 15    /*!< Over sampling Mode Illegal   */
    821 } temod16_os_mode_type;
    822 
    823 /*! \def CNT_temod16_os_mode_type Types of enum temod16_os_mode_type */
    824 #define CNT_temod16_os_mode_type 11
    825 
    826 /*!
    827 \brief
    828 This array returns the string of #temod16_os_mode when indexed by the enum.
    829 
    830 */
    831 extern char* e2s_temod16_os_mode_type [CNT_temod16_os_mode_type];
    832 /*!
    833 \brief
    834 This array returns the over sampling value of #temod16_os_mode when indexed by
    835 the enum. For floating values 3.3 and 8.25 it returns 33 and 825.
    836 
    837 */
    838 extern int e2n_temod16_os_mode_type [CNT_temod16_os_mode_type];
    839 /*! \enum temod16_scr_mode 
    840 
    841 This mode indicates how many bits of a 'frame' will be scrambled. We have either
    842 66 or 80 bits per frame (depending on 8b10b or 64b66b encoding). Normally
    843 scrambling is 
    844 
    845 \li bypassed for baud rates under 6.25G (0). 
    846 \li we scramble all 66 bits (1)
    847 \li all 80 bits(2)
    848 \li only 64 of the 66b (3). i.e we don't scramble the 'sync' bits.
    849 
    850 */
    851 
    852 typedef enum {
    853   TEMOD16_SCR_MODE_BYPASS      = 0   ,  /*!< Scrambling Mode bypassed      */
    854   TEMOD16_SCR_MODE_66B         = 1   ,  /*!< Scrambling Mode 66B           */
    855   TEMOD16_SCR_MODE_80B         = 2   ,  /*!< Scrambling Mode 80B           */
    856   TEMOD16_SCR_MODE_64B         = 3     /*!< Scrambling Mode 64B           */
    857 } temod16_scr_mode;
    858 
    859 /*! \def CNT_temod16_scr_mode Types of enum temod16_scr_mode */
    860 #define CNT_temod16_scr_mode 4
    861 
    862 /*!
    863 \brief
    864 This array returns the string of #temod16_scr_mode when indexed by the enum.
    865 
    866 */
    867 extern char* e2s_temod16_scr_mode [CNT_temod16_scr_mode];
    868 /*!
    869 \brief
    870 This array returns the scrambling mode of #temod16_scr_mode when indexed by
    871 the enum.
    872 
    873 */
    874 extern int e2n_temod16_scr_mode [CNT_temod16_scr_mode];
    875 /*! \enum temod16_encode_mode 
    876 
    877 Serial bits are encoded when transmitted. The encoding depends on the baud rate
    878 and the link type
    879 \li 000 All encoding functions disabled for lane
    880 \li 001 8b10b  (cl48 )
    881 \li 010 8b10b  (cl48 rxaui)
    882 \li 011 8b10b  (cl36 )
    883 \li 100 64b66b (cl82 )
    884 \li 101 64b66b (cl49 )
    885 \li 110 64b66b (brcm )
    886 
    887 */
    888 
    889 typedef enum {
    890   TEMOD16_ENCODE_MODE_NONE     = 0   ,  /*!< Encoding Mode NONE     */
    891   TEMOD16_ENCODE_MODE_CL48     = 1   ,  /*!< Encoding Mode CL48     */
    892   TEMOD16_ENCODE_MODE_CL48_2_LANE = 2   ,  /*!< Encoding Mode CL48     */
    893   TEMOD16_ENCODE_MODE_CL36     = 3   ,  /*!< Encoding Mode CL36     */
    894   TEMOD16_ENCODE_MODE_CL82     = 4   ,  /*!< Encoding Mode CL82     */
    895   TEMOD16_ENCODE_MODE_CL49     = 5   ,  /*!< Encoding Mode CL49     */
    896   TEMOD16_ENCODE_MODE_BRCM     = 6   ,  /*!< Encoding Mode BRCM     */
    897   TEMOD16_ENCODE_MODE_ILLEGAL  = 7     /*!< Encoding Mode Illegal  */
    898 } temod16_encode_mode;
    899 
    900 /*! \def CNT_temod16_encode_mode Types of enum temod16_encode_mode */
    901 #define CNT_temod16_encode_mode 8
    902 
    903 /*!
    904 \brief
    905 This array returns the string of #temod16_encode_mode when indexed by the enum.
    906 
    907 */
    908 extern char* e2s_temod16_encode_mode [CNT_temod16_encode_mode];
    909 /*!
    910 \brief
    911 This array returns the encoding mode of #temod16_encode_mode when indexed by
    912 the enum.
    913 
    914 */
    915 extern int e2n_temod16_encode_mode [CNT_temod16_encode_mode];
    916 /*! \enum temod16_check_end_mode 
    917 
    918 Check end is a disparity based error bit set by the PCS for CL48. The generation
    919 of this error bit depends on the speed.
    920 
    921 */
    922 
    923 typedef enum {
    924   TEMOD16_CL48_CHECK_END_OFF   = 0   ,  /*!< Don't generate checkend error bit  */
    925   TEMOD16_CL48_CHECK_END_ON    = 1     /*!< generate checkend error bit */
    926 } temod16_check_end_mode;
    927 
    928 /*! \def CNT_temod16_check_end_mode Types of enum temod16_check_end_mode */
    929 #define CNT_temod16_check_end_mode 2
    930 
    931 /*!
    932 \brief
    933 This array returns the string of #temod16_check_end_mode when indexed by the enum.
    934 
    935 */
    936 extern char* e2s_temod16_check_end_mode [CNT_temod16_check_end_mode];
    937 /*! \enum temod16_sigdet_filter 
    938 
    939 No documentation available
    940 
    941 */
    942 
    943 typedef enum {
    944   TEMOD16_SIGDET_FILTER_NONCX4 = 0   ,  /*!< No description available */
    945   TEMOD16_SIGDET_FILTER_CX4    = 1     /*!< No description available */
    946 } temod16_sigdet_filter;
    947 
    948 /*! \def CNT_temod16_sigdet_filter Types of enum temod16_sigdet_filter */
    949 #define CNT_temod16_sigdet_filter 2
    950 
    951 /*!
    952 \brief
    953 This array returns the string of #temod16_sigdet_filter when indexed by the enum.
    954 
    955 */
    956 extern char* e2s_temod16_sigdet_filter [CNT_temod16_sigdet_filter];
    957 /*! \enum temod16_blocksync_mode 
    958 
    959 A block is detected in ports with multiple lanes. PCS has to recognize blocks
    960 since the bits may come in skewed in time over lanes. This feature identifies
    961 the block type, which is a feature of the speed.
    962 
    963 000 none
    964 001 cl49 mode - enables func_cl49cl82_sync block
    965 010 cl82 mode - enables func_cl49cl82_sync block
    966 011 8b10b mode - enables the func_8b10b_sync block
    967 100 fec mode - enables the func_fec_sync block
    968 101 brcm 64b66b mode
    969 
    970 */
    971 
    972 typedef enum {
    973   TEMOD16_BLOCKSYNC_MODE_NONE  = 0   ,  /*!< Block sync mode none    */
    974   TEMOD16_BLOCKSYNC_MODE_CL49  = 1   ,  /*!< Block sync mode CL49 type    */
    975   TEMOD16_BLOCKSYNC_MODE_CL82  = 2   ,  /*!< Block sync mode CL82  type */
    976   TEMOD16_BLOCKSYNC_MODE_8B10B = 3   ,  /*!< Block sync mode 8B10B type */
    977   TEMOD16_BLOCKSYNC_MODE_FEC   = 4   ,  /*!< Block sync mode FEC   type */
    978   TEMOD16_BLOCKSYNC_MODE_BRCM  = 5   ,  /*!< Block sync mode BRCM  type */
    979   TEMOD16_BLOCKSYNC_MODE_ILLEGAL = 7     /*!< Block sync mode illegal */
    980 } temod16_blocksync_mode;
    981 
    982 /*! \def CNT_temod16_blocksync_mode Types of enum temod16_blocksync_mode */
    983 #define CNT_temod16_blocksync_mode 7
    984 
    985 /*!
    986 \brief
    987 This array returns the string of #temod16_blocksync_mode when indexed by the enum.
    988 
    989 */
    990 extern char* e2s_temod16_blocksync_mode [CNT_temod16_blocksync_mode];
    991 /*! \enum temod16_reorder_mode 
    992 
    993 Depending on aggregation mode we have various types of reordering of serial
    994 bits. 
    995 
    996 */
    997 
    998 typedef enum {
    999   TEMOD16_R_REORDER_MODE_NONE  = 0   ,  /*!< Reorder mode NONE type */
   1000   TEMOD16_R_REORDER_MODE_CL48  = 1   ,  /*!< Reorder mode CL48 type */
   1001   TEMOD16_R_REORDER_MODE_CL36  = 2   ,  /*!< Reorder mode CL36 type */
   1002   TEMOD16_R_REORDER_MODE_CL36_CL48 = 3     /*!< Reorder mode CL36_CL48 type */
   1003 } temod16_reorder_mode;
   1004 
   1005 /*! \def CNT_temod16_reorder_mode Types of enum temod16_reorder_mode */
   1006 #define CNT_temod16_reorder_mode 4
   1007 
   1008 /*!
   1009 \brief
   1010 This array returns the string of #temod16_reorder_mode when indexed by the enum.
   1011 
   1012 */
   1013 extern char* e2s_temod16_reorder_mode [CNT_temod16_reorder_mode];
   1014 /*! \enum temod16_cl36_mode 
   1015 
   1016 Cl36 mode control
   1017 
   1018 */
   1019 
   1020 typedef enum {
   1021   TEMOD16_CL36_DISABLE         = 0   ,  /*!<  */
   1022   TEMOD16_CL36_ENABLE          = 1     /*!<  */
   1023 } temod16_cl36_mode;
   1024 
   1025 /*! \def CNT_temod16_cl36_mode Types of enum temod16_cl36_mode */
   1026 #define CNT_temod16_cl36_mode 2
   1027 
   1028 /*!
   1029 \brief
   1030 This array returns the string of #temod16_cl36_mode when indexed by the enum.
   1031 
   1032 */
   1033 extern char* e2s_temod16_cl36_mode [CNT_temod16_cl36_mode];
   1034 /*! \enum temod16_descrambler_mode 
   1035 
   1036 The descrambling must match the scrambling done at the transmitting port.
   1037 
   1038 */
   1039 
   1040 typedef enum {
   1041   TEMOD16_R_DESCR1_MODE_BYPASS = 0   ,  /*!< No descrambling */
   1042   TEMOD16_R_DESCR1_MODE_66B    = 1   ,  /*!< 66b descrambling */
   1043   TEMOD16_R_DESCR1_MODE_10B    = 2   ,  /*!< 10b descrambling */
   1044   TEMOD16_R_DESCR1_MODE_ILLEGAL = 3     /*!<  */
   1045 } temod16_descrambler_mode;
   1046 
   1047 /*! \def CNT_temod16_descrambler_mode Types of enum temod16_descrambler_mode */
   1048 #define CNT_temod16_descrambler_mode 4
   1049 
   1050 /*!
   1051 \brief
   1052 This array returns the string of #temod16_descrambler_mode when indexed by the enum.
   1053 
   1054 */
   1055 extern char* e2s_temod16_descrambler_mode [CNT_temod16_descrambler_mode];
   1056 /*! \enum temod16_decoder_mode 
   1057 
   1058 The descrambling must match the scrambling done at the transmitting port.
   1059 
   1060 */
   1061 
   1062 typedef enum {
   1063   TEMOD16_DECODER_MODE_NONE    = 0   ,  /*!< decoder mode NONE    */
   1064   TEMOD16_DECODER_MODE_CL49    = 1   ,  /*!< decoder mode CL49    */
   1065   TEMOD16_DECODER_MODE_BRCM    = 2   ,  /*!< decoder mode BRCM        */
   1066   TEMOD16_DECODER_MODE_ALU     = 3   ,  /*!< decoder mode ALU       */
   1067   TEMOD16_DECODER_MODE_CL48    = 4   ,  /*!< decoder mode CL48      */
   1068   TEMOD16_DECODER_MODE_CL36    = 5   ,  /*!< decoder mode CL36    */
   1069   TEMOD16_DECODER_MODE_CL82    = 6   ,  /*!< decoder mode CL82    */
   1070   TEMOD16_DECODER_MODE_ILLEGAL = 7     /*!< decoder mode ILLEGAL */
   1071 } temod16_decoder_mode;
   1072 
   1073 /*! \def CNT_temod16_decoder_mode Types of enum temod16_decoder_mode */
   1074 #define CNT_temod16_decoder_mode 8
   1075 
   1076 /*!
   1077 \brief
   1078 This array returns the string of #temod16_decoder_mode when indexed by the enum.
   1079 
   1080 */
   1081 extern char* e2s_temod16_decoder_mode [CNT_temod16_decoder_mode];
   1082 /*! \enum temod16_deskew_mode 
   1083 
   1084 Deskew Mode is a function of speed. 
   1085 
   1086 */
   1087 
   1088 typedef enum {
   1089   TEMOD16_R_DESKEW_MODE_BYPASS = 0   ,  /*!< deskew mode BYPASS   */
   1090   TEMOD16_R_DESKEW_MODE_8B_10B = 1   ,  /*!< deskew mode 8B_10B   */
   1091   TEMOD16_R_DESKEW_MODE_BRCM_66B = 2   ,  /*!< deskew mode BRCM_66B */
   1092   TEMOD16_R_DESKEW_MODE_CL82_66B = 3   ,  /*!< deskew mode CL82_66B */
   1093   TEMOD16_R_DESKEW_MODE_CL36_10B = 4   ,  /*!< deskew mode CL36_10B */
   1094   TEMOD16_R_DESKEW_MODE_ILLEGAL = 7     /*!< deskew mode ILLEGAL  */
   1095 } temod16_deskew_mode;
   1096 
   1097 /*! \def CNT_temod16_deskew_mode Types of enum temod16_deskew_mode */
   1098 #define CNT_temod16_deskew_mode 6
   1099 
   1100 /*!
   1101 \brief
   1102 This array returns the string of #temod16_deskew_mode when indexed by the enum.
   1103 
   1104 */
   1105 extern char* e2s_temod16_deskew_mode [CNT_temod16_deskew_mode];
   1106 /*! \enum temod16_descrambler2_mode 
   1107 
   1108 No description 
   1109 
   1110 */
   1111 
   1112 typedef enum {
   1113   TEMOD16_DESC2_MODE_NONE      = 0   ,  /*!< Descrambler2 mode NONE    */
   1114   TEMOD16_DESC2_MODE_CL49      = 1   ,  /*!< Descrambler2 mode CL49    */
   1115   TEMOD16_DESC2_MODE_BRCM      = 2   ,  /*!< Descrambler2 mode BRCM    */
   1116   TEMOD16_DESC2_MODE_ALU       = 3   ,  /*!< Descrambler2 mode ALU     */
   1117   TEMOD16_DESC2_MODE_CL48      = 4   ,  /*!< Descrambler2 mode CL48    */
   1118   TEMOD16_DESC2_MODE_CL36      = 5   ,  /*!< Descrambler2 mode CL36    */
   1119   TEMOD16_DESC2_MODE_CL82      = 6   ,  /*!< Descrambler2 mode CL82    */
   1120   TEMOD16_DESC2_MODE_ILLEGAL   = 7     /*!< Descrambler2 mode ILLEGAL */
   1121 } temod16_descrambler2_mode;
   1122 
   1123 /*! \def CNT_temod16_descrambler2_mode Types of enum temod16_descrambler2_mode */
   1124 #define CNT_temod16_descrambler2_mode 8
   1125 
   1126 /*!
   1127 \brief
   1128 This array returns the string of #temod16_descrambler2_mode when indexed by the enum.
   1129 
   1130 */
   1131 extern char* e2s_temod16_descrambler2_mode [CNT_temod16_descrambler2_mode];
   1132 /*! \enum temod16_byte_del_mode 
   1133 
   1134 For low speeds, data is duplicted 10 or 100 times to run at higher bauds. For
   1135 example in a 10G lane, we duplicate 100M data 100 times. On the receive side
   1136 these duplicate bits must be deleted.
   1137 \li 0 - 100M mode (Delete 9 out of every 10 bytes)
   1138 \li 1 - 10M mode (Delete 99 out of every 100 bytes)
   1139 \li 2 - Passthrough (No deletion)
   1140 
   1141 
   1142 */
   1143 
   1144 typedef enum {
   1145   TEMOD16_R_DESC2_BYTE_DELETION_100M = 0   ,  /*!< 100M type Byte deletion */
   1146   TEMOD16_R_DESC2_BYTE_DELETION_10M = 1   ,  /*!< 10M  type Byte deletion */
   1147   TEMOD16_R_DESC2_BYTE_DELETION_NONE = 2     /*!< No   Byte deletion */
   1148 } temod16_byte_del_mode;
   1149 
   1150 /*! \def CNT_temod16_byte_del_mode Types of enum temod16_byte_del_mode */
   1151 #define CNT_temod16_byte_del_mode 3
   1152 
   1153 /*!
   1154 \brief
   1155 This array returns the string of #temod16_blocksync_mode when indexed by the enum.
   1156 
   1157 */
   1158 extern char* e2s_temod16_byte_del_mode [CNT_temod16_byte_del_mode];
   1159 /*! \enum temod16_decode_descr_mode 
   1160 
   1161 No description
   1162 
   1163 */
   1164 
   1165 typedef enum {
   1166   TEMOD16_R_DEC1_DESCR_MODE_NONE = 0   ,  /*!<  */
   1167   TEMOD16_R_DEC1_DESCR_MODE_BRCM64B66B = 1     /*!<  */
   1168 } temod16_decode_descr_mode;
   1169 
   1170 /*! \def CNT_temod16_decode_descr_mode Types of enum temod16_decode_descr_mode */
   1171 #define CNT_temod16_decode_descr_mode 2
   1172 
   1173 /*!
   1174 \brief
   1175 This array returns the string of #temod16_decode_descr_mode when indexed by the enum.
   1176 
   1177 */
   1178 extern char* e2s_temod16_decode_descr_mode [CNT_temod16_decode_descr_mode];
   1179 /*! \enum an_property_enable 
   1180 
   1181 No description
   1182 
   1183 */
   1184 
   1185 typedef enum {
   1186   TEMOD16_AN_PROPERTY_ENABLE_NONE = 0x00000000 ,  /*!<  */
   1187   TEMOD16_AN_PROPERTY_ENABLE_SGMII_MASTER_MODE = 0x00000001 ,  /*!<  */
   1188   TEMOD16_AN_PROPERTY_ENABLE_AN_PD_TO_CL37 = 0x00000002 ,  /*!<  */
   1189   TEMOD16_AN_PROPERTY_ENABLE_SGMII_TO_CL37_AUTO = 0x00000004 ,  /*!<  */
   1190   TEMOD16_AN_PROPERTY_ENABLE_CL37_BAM_to_SGMII_AUTO = 0x00000008 ,  /*!<  */
   1191   TEMOD16_AN_PROPERTY_ENABLE_HPAM_TO_CL73_AUTO = 0x00000010 ,  /*!<  */
   1192   TEMOD16_AN_PROPERTY_ENABLE_CL73_BAM_TO_HPAM_AUTO = 0x00000020 ,  /*!<  */
   1193   TEMOD16_AN_PROPERTY_ENABLE_ILLEGAL = 0x00000040   /*!<  */
   1194 } an_property_enable;
   1195 
   1196 /*! \def CNT_an_property_enable Types of enum an_property_enable */
   1197 #define CNT_an_property_enable 8
   1198 
   1199 /*!
   1200 \brief
   1201 This array returns the string of #an_property_enable when indexed by the enum.
   1202 
   1203 */
   1204 extern char* e2s_temod16_an_property_enable [CNT_an_property_enable];
   1205 /*! \enum credit_type_t 
   1206 
   1207 No description
   1208 
   1209 */
   1210 
   1211 typedef enum {
   1212   TEMOD16_CREDIT_RESET         = 0x00000000 ,  /*!<  */
   1213   TEMOD16_CREDIT_TABLE         = 0x00000001 ,  /*!<  */
   1214   TEMOD16_CREDIT_CLOCK_COUNT_0 = 0x00000002 ,  /*!<  */
   1215   TEMOD16_CREDIT_CLOCK_COUNT_1 = 0x00000004 ,  /*!<  */
   1216   TEMOD16_CREDIT_LOOP_COUNT_0  = 0x00000008 ,  /*!<  */
   1217   TEMOD16_CREDIT_LOOP_COUNT_1  = 0x00000010 ,  /*!<  */
   1218   TEMOD16_CREDIT_MAC           = 0x00000020 ,  /*!<  */
   1219   TEMOD16_CREDIT_PCS_CLOCK_COUNT_0 = 0x00000040 ,  /*!<  */
   1220   TEMOD16_CREDIT_PCS_GEN_COUNT = 0x00000080 ,  /*!<  */
   1221   TEMOD16_CREDIT_EN            = 0x00000100 ,  /*!<  */
   1222   TEMOD16_CREDIT_PCS_REPCNT    = 0x00000200 ,  /*!<  */
   1223   TEMOD16_CREDIT_SGMII_SPD     = 0x00000400 ,  /*!<  */
   1224   TEMOD16_CREDIT_ILLEGAL       = 0x00000800   /*!<  */
   1225 } credit_type_t;
   1226 
   1227 /*! \def CNT_credit_type_t Types of enum credit_type_t */
   1228 #define CNT_credit_type_t 13
   1229 
   1230 /*!
   1231 \brief
   1232 This array returns the string of #an_property_enable when indexed by the enum.
   1233 
   1234 */
   1235 extern char* e2s_temod16_credit_type_t [CNT_credit_type_t];
   1236 /*! \enum override_type_t 
   1237 
   1238 No description
   1239 
   1240 */
   1241 
   1242 typedef enum {
   1243   TEMOD16_OVERRIDE_RESET       = 0x00000000 ,  /*!<  */
   1244   TEMOD16_OVERRIDE_CL72        = 0x00000003 ,  /*!<  */
   1245   TEMOD16_OVERRIDE_SPDID       = 0x00000007 ,  /*!<  */
   1246   TEMOD16_OVERRIDE_NUM_LANES   = 0x00000001 ,  /*!<  */
   1247   TEMOD16_OVERRIDE_OS_MODE     = 0x00000002 ,  /*!<  */
   1248   TEMOD16_OVERRIDE_FEC_EN      = 0x00000004 ,  /*!<  */
   1249   TEMOD16_OVERRIDE_DESKEW_MODE = 0x00000008 ,  /*!<  */
   1250   TEMOD16_OVERRIDE_DESC2_MODE  = 0x00000010 ,  /*!<  */
   1251   TEMOD16_OVERRIDE_CL36BYTEDEL_MODE = 0x00000020 ,  /*!<  */
   1252   TEMOD16_OVERRIDE_BRCM64B66_DESCR_MODE = 0x00000040 ,  /*!<  */
   1253   TEMOD16_OVERRIDE_CHKEND_EN   = 0x00000080 ,  /*!<  */
   1254   TEMOD16_OVERRIDE_BLKSYNC_MODE = 0x00000100 ,  /*!<  */
   1255   TEMOD16_OVERRIDE_DECODE_MODE = 0x00000200 ,  /*!<  */
   1256   TEMOD16_OVERRIDE_REORDER_EN  = 0x00000400 ,  /*!<  */
   1257   TEMOD16_OVERRIDE_CL36_EN     = 0x00000800 ,  /*!<  */
   1258   TEMOD16_OVERRIDE_SCR_MODE    = 0x00001000 ,  /*!<  */
   1259   TEMOD16_OVERRIDE_DESCR_MODE  = 0x00002000 ,  /*!<  */
   1260   TEMOD16_OVERRIDE_ENCODE_MODE = 0x00004000 ,  /*!<  */
   1261   TEMOD16_OVERRIDE_ALL         = 0x00008000   /*!<  */
   1262 } override_type_t;
   1263 
   1264 /*! \def CNT_override_type_t Types of enum override_type_t */
   1265 #define CNT_override_type_t 19
   1266 
   1267 /*!
   1268 \brief
   1269 This array returns the string of #an_property_enable when indexed by the enum.
   1270 
   1271 */
   1272 extern char* e2s_temod16_override_type_t [CNT_override_type_t];
   1273 /*! \enum temod16_ref_clk_t 
   1274 
   1275 No description
   1276 
   1277 */
   1278 
   1279 typedef enum {
   1280   TEMOD16REFCLK156MHZ          = 0x00000000 ,  /*!< 156p25MHz */
   1281   TEMOD16REFCLK125MHZ          = 0x00000001 ,  /*!< 125MHz */
   1282   TEMOD16REFCLKCOUNT           = 0x00000002   /*!<  */
   1283 } temod16_ref_clk_t;
   1284 
   1285 /*! \def CNT_temod16_ref_clk_t Types of enum temod16_ref_clk_t */
   1286 #define CNT_temod16_ref_clk_t 3
   1287 
   1288 /*!
   1289 \brief
   1290 This array returns the string of #an_property_enable when indexed by the enum.
   1291 
   1292 */
   1293 extern char* e2s_temod16_ref_clk_t [CNT_temod16_ref_clk_t];
   1294 #endif /* _TSCMOD16_ENUM_DEFINES_H */