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

tefmod16_enum_defines.h (55363B)


      1 /*----------------------------------------------------------------------
      2  * 
      3  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      4  * 
      5  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
      6  *
      7  * $Copyright: (c) 2014 Broadcom Corporation All Rights Reserved.$
      8  * Broadcom Corporation
      9  * Proprietary and Confidential information
     10  * All rights reserved
     11  * This source file is the property of Broadcom Corporation, and
     12  * may not be copied or distributed in any isomorphic form without the
     13  * prior written consent of Broadcom Corporation.
     14  *---------------------------------------------------------------------
     15  ############### THIS FILE IS AUTOMATICALLY GENERATED.  ###############
     16  ############### DO !! NOT !! MANUALLY EDIT THIS FILE.  ###############
     17  *---------------------------------------------------------------------
     18  * Description: This file contains enums, elems and doxyten comments
     19  * needed for SerDes Configuration programs.
     20  *---------------------------------------------------------------------
     21  * CVS INFORMATION:
     22  * Please see inc/enum_desc.txt for CVS information.
     23  *----------------------------------------------------------------------
     24  */
     25 
     26 /* This file is automatically generated. Do not modify it. Modify the
     27  * inc/enum_desc.txt to change enums, elems, or comments. For issues about
     28  * the process that creates this file contact the tefmod16 development team.
     29  */
     30 
     31 #ifndef _TSCFMOD_ENUM_DEFINES_H
     32 #define _TSCFMOD_ENUM_DEFINES_H
     33 
     34 /*! \enum tefmod16_lane_select_t 
     35 
     36 tefmod16_lane_select_t selects for programming, any combination of 4 lanes of PHY.
     37 A '1' in the latter part of the enum name selects the lane.  Other parameters
     38 will decide what to do with the selected  lane(s). In most cases we
     39 enable/disable a feature on the selected lanes.
     40 
     41 If lane_select is set to TEFMOD16_LANE_BCST for writes we broadcast to all lanes.
     42 
     43 Note that you cannot read in broadcast mode.
     44 
     45 */
     46 
     47 typedef enum {
     48   TEFMOD16_LANE_0_0_0_0        = 0   ,  /*!< No lane              selected   */
     49   TEFMOD16_LANE_0_0_0_1              ,  /*!< lane number  0       selected   */
     50   TEFMOD16_LANE_0_0_1_0              ,  /*!< lane number  1       selected   */
     51   TEFMOD16_LANE_0_0_1_1              ,  /*!< lane numbers 0,1     selected   */
     52   TEFMOD16_LANE_0_1_0_0              ,  /*!< lane number  2       selected   */
     53   TEFMOD16_LANE_0_1_0_1              ,  /*!< lane numbers 2,0     selected   */
     54   TEFMOD16_LANE_0_1_1_0              ,  /*!< lane numbers 2,1     selected   */
     55   TEFMOD16_LANE_0_1_1_1              ,  /*!< lane numbers 2,1,0   selected   */
     56   TEFMOD16_LANE_1_0_0_0              ,  /*!< lane number  3       selected   */
     57   TEFMOD16_LANE_1_0_0_1              ,  /*!< lane numbers 3,0     selected   */
     58   TEFMOD16_LANE_1_0_1_0              ,  /*!< lane numbers 3,1     selected   */
     59   TEFMOD16_LANE_1_0_1_1              ,  /*!< lane numbers 3,1,0   selected   */
     60   TEFMOD16_LANE_1_1_0_0              ,  /*!< lane numbers 3,2     selected   */
     61   TEFMOD16_LANE_1_1_0_1              ,  /*!< lane numbers 3,2,0   selected   */
     62   TEFMOD16_LANE_1_1_1_0              ,  /*!< lane numbers 3,2,1   selected   */
     63   TEFMOD16_LANE_1_1_1_1              ,  /*!< lane numbers 3,2,1,0 selected   */
     64   TEFMOD16_LANE_BCST                 ,  /*!< lane numbers 3,2,1,0 BCST       */
     65   TEFMOD16_LANE_ILLEGAL                /*!< Illegal (programmatic boundary) */
     66 } tefmod16_lane_select_t;
     67 
     68 /*! \def CNT_tefmod_lane_select_t Types of enum tefmod16_lane_select_t */
     69 #define CNT_tefmod_lane_select_t 18
     70 
     71 /*!
     72 \brief
     73 This array returns the string version of the enum #tefmod16_lane_select_t when
     74 indexed by the enum var.
     75 
     76 */
     77 extern char* e2s_tefmod16_lane_select_t [CNT_tefmod_lane_select_t];
     78 /*!
     79 \brief
     80 This array associates the enum #tefmod16_lane_select_t enum with a bit mask.
     81 The index is the #tefmod16_lane_select_t enum value.  The value for each entry is
     82 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
     83 is 0, then lane [n] is disabled.  By enabled, we mean that such-and-such
     84 function is to be called for a lane; by disabled, we mean that such-and-such
     85 function is not to be called for a lane.  So a value of 0xF indicates that all
     86 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled.
     87 
     88 */
     89 extern int e2n_tefmod16_lane_select_t [CNT_tefmod_lane_select_t];
     90 /*! \enum tefmod16_spd_intfc_type_t 
     91 
     92 All legal speed-interface combination are encapsulated in this enum
     93 
     94 There are several speed and interface combinations allowed for a logical PHY
     95 port. Names and speeds are self explanatory.
     96 
     97 Speed and interface selection is combined because we don't want the speeds
     98 to be incompatible with interface.
     99 
    100 */
    101 
    102 typedef enum {
    103   TEFMOD16_SPD_ZERO            = 0   ,  /*!< Illegal value (enum boundary)   */
    104   TEFMOD16_SPD_10_SGMII              ,  /*!< 10Mb SGMII (serial)             */
    105   TEFMOD16_SPD_100_SGMII             ,  /*!< 100Mb SGMII (serial)            */
    106   TEFMOD16_SPD_1000_SGMII            ,  /*!< 1Gb SGMII (serial)              */
    107   TEFMOD16_SPD_2500                  ,  /*!< 2.5Gb  based on 1000BASE-X      */
    108   TEFMOD16_SPD_10000_XFI             ,  /*!< 10Gb serial XFI                 */
    109   TEFMOD16_SPD_10600_XFI_HG          ,  /*!< 10.5Gb serial XFI (HgSOLO)      */
    110   TEFMOD16_SPD_20000_XFI             ,  /*!< 20Gb serial XFI                 */
    111   TEFMOD16_SPD_21200_XFI_HG          ,  /*!< 21.2Gb serial XFI (HgSOLO)      */
    112   TEFMOD16_SPD_25000_XFI             ,  /*!< 25Gb serial XFI                 */
    113   TEFMOD16_SPD_26500_XFI_HG          ,  /*!< 26.5Gb serial XFI (HgSOLO)      */
    114   TEFMOD16_SPD_20G_MLD_X2            ,  /*!< 20Gb serial XFI                 */
    115   TEFMOD16_SPD_21G_MLD_HG_X2         ,  /*!< 21.5Gb serial XFI (HgSOLO)      */
    116   TEFMOD16_SPD_40G_MLD_X2            ,  /*!< 40Gb serial XFI                 */
    117   TEFMOD16_SPD_42G_MLD_HG_X2         ,  /*!< 42.4Gb serial XFI (HgSOLO)      */
    118   TEFMOD16_SPD_40G_MLD_X4            ,  /*!< 40Gb serial XFI                 */
    119   TEFMOD16_SPD_42G_MLD_HG_X4         ,  /*!< 42.4Gb serial XFI (HgSOLO)      */
    120   TEFMOD16_SPD_50G_MLD_X2            ,  /*!< 50Gb serial XFI                 */
    121   TEFMOD16_SPD_53G_MLD_HG_X2         ,  /*!< 53.0Gb serial XFI (HgSOLO)      */
    122   TEFMOD16_SPD_100G_MLD_X4           ,  /*!< 100Gb serial XFI                */
    123   TEFMOD16_SPD_106G_MLD_HG_X4        ,  /*!< 106.0Gb serial XFI (HgSOLO)     */
    124   TEFMOD16_SPD_10000_HI              ,  /*!< 10Gb XAUI HiG                   */
    125   TEFMOD16_SPD_10000                 ,  /*!< 10Gb XAUI                       */
    126   TEFMOD16_SPD_12000_HI              ,  /*!< 12Gb XAUI HiG                   */
    127   TEFMOD16_SPD_13000                 ,  /*!< 13Gb XAUI                       */
    128   TEFMOD16_SPD_15000                 ,  /*!< 15Gb XAUI                       */
    129   TEFMOD16_SPD_16000                 ,  /*!< 16Gb XAUI                       */
    130   TEFMOD16_SPD_20000                 ,  /*!< 20Gb XFI                        */
    131   TEFMOD16_SPD_20000_SCR             ,  /*!< 20Gb XAUI scrambled             */
    132   TEFMOD16_SPD_21000                 ,  /*!< 21Gb XAUI                       */
    133   TEFMOD16_SPD_25455                 ,  /*!< 25Gb XFI   64/66 codec          */
    134   TEFMOD16_SPD_31500                 ,  /*!< 31.5Gb quad lane XAUI           */
    135   TEFMOD16_SPD_40G_X4                ,  /*!< 40Gb quad lane XAUI             */
    136   TEFMOD16_SPD_42G_X4                ,  /*!< 40Gb quad lane XAUI  HiG        */
    137   TEFMOD16_SPD_40G_XLAUI             ,  /*!< 40Gb quad lane  MLD             */
    138   TEFMOD16_SPD_42G_XLAUI             ,  /*!< 42Gb quad lane  MLD             */
    139   TEFMOD16_SPD_10000_X2              ,  /*!< 10Gb dual lane                  */
    140   TEFMOD16_SPD_10000_HI_DXGXS        ,  /*!< 10Gb dual lane XGXS HiG         */
    141   TEFMOD16_SPD_10000_DXGXS           ,  /*!< 10Gb dual lane XGXS             */
    142   TEFMOD16_SPD_10000_HI_DXGXS_SCR       ,  /*!< 10Gb dual lane,scrambled,HiG    */
    143   TEFMOD16_SPD_10000_DXGXS_SCR       ,  /*!< 10Gb dual lane scrambled        */
    144   TEFMOD16_SPD_10500_HI_DXGXS        ,  /*!< 10.5Gb dual lane XGXS HiG       */
    145   TEFMOD16_SPD_12773_HI_DXGXS        ,  /*!< 12.73Gb dual lane XGXS HiG      */
    146   TEFMOD16_SPD_12773_DXGXS           ,  /*!< 12.73Gb dual lane XGXS          */
    147   TEFMOD16_SPD_15750_HI_DXGXS        ,  /*!< 15.75Gb scrambled dual lane HiG */
    148   TEFMOD16_SPD_20G_MLD_DXGXS         ,  /*!< 20Gb dual lane MLD              */
    149   TEFMOD16_SPD_21G_HI_MLD_DXGXS       ,  /*!< 20Gb dual lane HiG MLD          */
    150   TEFMOD16_SPD_20G_DXGXS             ,  /*!< 20Gb dual lane BRCM             */
    151   TEFMOD16_SPD_21G_HI_DXGXS          ,  /*!< 21.2Gb dual HiG(20+plldiv=70)   */
    152   TEFMOD16_SPD_100G_CR10             ,  /*!< 100G                            */
    153   TEFMOD16_SPD_120G_CR12             ,  /*!< 120G                            */
    154   TEFMOD16_SPD_10000_XFI_HG2         ,  /*!< 10G HG2                         */
    155   TEFMOD16_SPD_50G_MLD_X4            ,  /*!< 50G Serial XFI                  */
    156   TEFMOD16_SPD_53G_MLD_HG_X4         ,  /*!< 53G Serial XFI (HgSOLO)         */
    157   TEFMOD16_SPD_10000_XFI_CR1         ,  /*!< 10Gb serial XFI                 */
    158   TEFMOD16_SPD_10600_XFI_HG_CR1       ,  /*!< 10Gb serial XFI                 */
    159   TEFMOD16_SPD_CL73_20G              ,  /*!< 1G CL73 Auto-neg                */
    160   TEFMOD16_SPD_CL73_25G              ,  /*!< 1G CL73 Auto-neg                */
    161   TEFMOD16_SPD_1G_20G                ,  /*!< 1G CL36 1G                      */
    162   TEFMOD16_SPD_1G_25G                ,  /*!< 1G CL36 1G                      */
    163   TEFMOD16_SPD_10G_25G               ,  /*!< 10G CL36 with 25G vco           */
    164   TEFMOD16_SPD_ILLEGAL                 /*!< Illegal value (enum boundary)   */
    165 } tefmod16_spd_intfc_type_t;
    166 
    167 /*! \def CNT_tefmod_spd_intfc_type_t Types of enum tefmod16_spd_intfc_type_t */
    168 #define CNT_tefmod_spd_intfc_type_t 62
    169 
    170 /*!
    171 \brief
    172 This array returns the string version of the enum #tefmod16_lane_select_t when
    173 indexed by the enum var.
    174 
    175 */
    176 extern char* e2s_tefmod16_spd_intfc_type_t [CNT_tefmod_spd_intfc_type_t];
    177 /*!
    178 \brief
    179 This array associates the enum #tefmod16_lane_select_t enum with a bit mask.
    180 The index is the #tefmod16_lane_select_t enum value.  The value for each entry is
    181 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
    182 is 0, then lane [n] is disabled.  By enabled, we mean that such-and-such
    183 function is to be called for a lane; by disabled, we mean that such-and-such
    184 function is not to be called for a lane.  So a value of 0xF indicates that all
    185 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled.
    186 
    187 */
    188 extern int e2n_tefmod16_spd_intfc_type_t [CNT_tefmod_spd_intfc_type_t];
    189 
    190 /*! \enum tefmod16_regacc_type_t 
    191 MDIO access to PHY registers are no longer supported.
    192 */
    193 
    194 typedef enum {
    195   TEFMOD16_REGACC_CL22         = 0   ,  /*!< IEEE clause 22 based MDIO (for PMD only) */
    196   TEFMOD16_REGACC_CL45               ,  /*!< IEEE clause 45 based MDIO (for PMD only) */
    197   TEFMOD16_REGACC_TOTSC              ,  /*!< Mission mode */
    198   TEFMOD16_REGACC_SBUS_FD            ,  /*!< Probably used in PM testbenches */
    199   TEFMOD16_REGACC_SBUS_BD            ,  /*!< Probably used in PM testbenches */
    200   TEFMOD16_REGACC_ILLEGAL              /*!< Illegal value (enum boundary) */
    201 } tefmod16_regacc_type_t;
    202 
    203 /*! \def CNT_tefmod_regacc_type_t Types of enum tefmod16_regacc_type_t */
    204 #define CNT_tefmod_regacc_type_t 6
    205 
    206 /*!
    207 \brief
    208 This array returns the string version of the enum #e2s_tefmod16_regacc_type_t when indexed
    209 by the enum var.
    210 
    211 */
    212 extern char* e2s_tefmod16_regacc_type_t [CNT_tefmod_regacc_type_t];
    213 /*! \enum tefmod16_port_type_t 
    214 
    215 This is the port mode type enumeration.
    216 
    217 WC can be configured in combo mode (i.e. entire WC is a single port) or
    218 independent mode (i.e. WC has more than one port (2, 3, or 4) that are
    219 controlled individually.
    220 
    221 */
    222 
    223 typedef enum {
    224   TEFMOD16_MULTI_PORT          = 0   ,  /*!< Each channel is one logical port */
    225   TEFMOD16_TRI1_PORT                 ,  /*!< 3 ports, one of them paird as follows (0,1,2-3) */
    226   TEFMOD16_TRI2_PORT                 ,  /*!< 3 ports, one of them paird as follows (0-1,2,3) */
    227   TEFMOD16_DXGXS                     ,  /*!< Each paired channel(0-1, 2-3) is one logical port */
    228   TEFMOD16_SINGLE_PORT               ,  /*!< single port mode: 4 channels as one logical port */
    229   TEFMOD16_PORT_MODE_ILLEGAL           /*!< Illegal value (enum boundary) */
    230 } tefmod16_port_type_t;
    231 
    232 /*! \def CNT_tefmod_port_type_t Types of enum tefmod16_port_type_t */
    233 #define CNT_tefmod_port_type_t 6
    234 
    235 /*!
    236 \brief
    237 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    238 by the enum var.
    239 
    240 */
    241 extern char* e2s_tefmod16_port_type_t [CNT_tefmod_port_type_t];
    242 /*! \enum tefmod16_sc_mode_type_t 
    243 
    244 This is the sc mode type enumeration.
    245 
    246 
    247 
    248 */
    249 
    250 typedef enum {
    251   TEFMOD16_SC_MODE_HT_WITH_BASIC_OVERRIDE = 0   ,  /*!< TEFMOD_SC_MODE_HT_WITH_BASIC_OVERRIDE */
    252   TEFMOD16_SC_MODE_HT_OVERRIDE       ,  /*!< TEFMOD_SC_MODE_ST_OVERRIDE */
    253   TEFMOD16_SC_MODE_ST                ,  /*!< TEFMOD_SC_MODE_ST */
    254   TEFMOD16_SC_MODE_ST_OVERRIDE       ,  /*!< TEFMOD_SC_MODE_ST */
    255   TEFMOD16_SC_MODE_AN_CL37           ,  /*!< TEFMOD_SC_MODE_AN_CL73 */
    256   TEFMOD16_SC_MODE_AN_CL73           ,  /*!< TEFMOD_SC_MODE_AN_CL73 */
    257   TEFMOD16_SC_MODE_BYPASS            ,  /*!< TEFMOD_SC_MODE_BYPASS */
    258   TEFMOD16_SC_MODE_ILLEGAL             /*!< Illegal value (enum boundary) */
    259 } tefmod16_sc_mode_type_t;
    260 
    261 /*! \def CNT_tefmod_sc_mode_type_t Types of enum tefmod16_sc_mode_type_t */
    262 #define CNT_tefmod_sc_mode_type_t 8
    263 
    264 /*!
    265 \brief
    266 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    267 by the enum var.
    268 
    269 */
    270 extern char* e2s_tefmod16_sc_mode_type_t [CNT_tefmod_sc_mode_type_t];
    271 /*! \enum tefmod16_diag_type_t 
    272 
    273 tefmod16_diag_type_t enumerates categories of diagnostic data.
    274 has many intermediate stages between down and up. This enum is work in progress
    275 
    276 
    277 <table cellspacing=0>
    278 <tr><td colspan=3><B>'per_lane_control' bit-mappings</B></td></tr>
    279 
    280 <tr><td><B>Type</B></td><td><B>Description</B></td><td><B>Scope</B></td></tr>
    281 
    282 <tr><td>General</td>
    283 <td> Combo/independent, Device and Revision Id, VCO settings, Firmware state
    284 and version, active/passive lanes, MDIO type. PLL info, Oversampling Info</td>
    285 <td>Device</td></tr>
    286 
    287 <tr><td>Link</td>
    288 <td> Speeds, oversampling, interface, forced/Autoneg, link status, sync
    289 status, RX sequencer on/off </td>
    290 <td>Lane</td></tr>
    291 
    292 <tr><td>Autoneg</td>
    293 <td> Local and remote advertisement, link status, cl73/37/BAM info </td>
    294 <td>Lane</td></tr>
    295 
    296 <tr><td>Internal Traffic</td>
    297 <td> PRBS type, CJPat Type, Prog_data value, Any associated recorded errors,
    298 and misc. info (IPG etc.)</td>
    299 <td>Lane </td></tr>
    300 
    301 <tr>
    302 <td>DFE</td>
    303 <td>Equalization info, Tap settings. (pre/post/overrides), peaking filter values </td>
    304 <td>Lane</td></tr>
    305 
    306 <tr><td>IEEE info</td>
    307 <td>Clause 72, FEC</td>
    308 <td>Lane</td></tr>
    309 
    310 <tr><td>Topology</td>
    311 <td>Looping info (Gloop/rloop), lane swapping, polarity swap info</td>
    312 <td>Device</td></tr>
    313 
    314 <tr><td>EEE</td>
    315 <td>EEE full, passthru modes, some window values?</td>
    316 <td>Lane</td></tr>
    317 
    318 <tr><td>Eye Margin</td>
    319 <td>Eye margin measurement (readout only)</td>
    320 <td>Lane</td></tr>
    321 
    322 <tr><td>All</td>
    323 <td>All of the above. Except eye margin.</td>
    324 <td>Device</td></tr>
    325 
    326 </table>
    327 
    328 
    329 */
    330 
    331 typedef enum {
    332   TEFMOD16_DIAG_GENERAL        = 0x00000001 ,  /*!< General device wide information.         */
    333   TEFMOD16_DIAG_TOPOLOGY       = 0x00000002 ,  /*!< Loopbacks etc.                           */
    334   TEFMOD16_DIAG_LINK           = 0x00000004 ,  /*!< Link specific info.                      */
    335   TEFMOD16_DIAG_SPEED          = 0x00000008 ,  /*!< sub-category of TEFMOD_DIAG_LINK(for SDK)*/
    336   TEFMOD16_DIAG_ANEG           = 0x00000010 ,  /*!< Autoneg specific info.                   */
    337   TEFMOD16_DIAG_TFC            = 0x00000020 ,  /*!< State of tx/rx internal tfc              */
    338   TEFMOD16_DIAG_AN_TIMERS      = 0x00000040 ,  /*!< AN timers                                */
    339   TEFMOD16_DIAG_STATE          = 0x00000080 ,  /*!< Debug state registers                    */
    340   TEFMOD16_DIAG_DEBUG          = 0x00000100 ,  /*!< Debug                                    */
    341   TEFMOD16_DIAG_IEEE           = 0x00000200 ,  /*!< IEEE related info                        */
    342   TEFMOD16_DIAG_EEE            = 0x00000400 ,  /*!< EEE                                      */
    343 
    344   TEFMOD16_DIAG_BER            = 0x00000800 ,  /*!< BER - PMD bit error rate                 */
    345   TEFMOD16_DIAG_CFG            = 0x00001000 ,  /*!< CFG - PMD Lane/Core Config               */
    346   TEFMOD16_DIAG_CL72           = 0x00002000 ,  /*!< CL72 - Status                            */
    347   TEFMOD16_DIAG_DSC            = 0x00004000 ,  /*!< DSC dump                                 */
    348   TEFMOD16_DIAG_DSC_STD        = 0x00010000 ,  /*!< DSC dump                                 */
    349   #if 0 
    350     TEFMOD16_SERDES_DIAG          = 0x80000000UL ,  /*!< PMD Triage */
    351     TEFMOD16_DIAG_ALL             = 0xffffffffUL ,  /*!< Everything but eye margin                */
    352   #else
    353     TEFMOD16_SERDES_DIAG       = 0x00008000 ,  /*!< PMD Triage */
    354     TEFMOD16_DIAG_ALL          = 0x0000ffff ,  /*!< Everything but eye margin                */
    355   #endif
    356   TEFMOD16_DIAG_ILLEGAL         = 0x00000000   /*!< Illegal value. programmatic boundary.    */
    357 } tefmod16_diag_type_t;
    358 
    359 /*! \def CNT_tefmod_diag_type_t Types of enum tefmod16_diag_type_t */
    360 #define CNT_tefmod_diag_type_t 18
    361 
    362 /*!
    363 \brief
    364 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    365 by the enum var.
    366 
    367 */
    368 extern char* e2s_tefmod16_diag_type_t [CNT_tefmod_diag_type_t];
    369 /*! \enum tefmod16_model_type_t 
    370 
    371 tefmod16_model_type_t enumerates different generations and  revisions of PHY.
    372 Note that we pretty much only look at different versions of PHY.
    373 
    374 We rely on all the information being in the SERDES_ID register.
    375 
    376 
    377 */
    378 
    379 typedef enum {
    380   TEFMOD16_WC                  = 0   ,  /*!< Generic PHY (any model) */
    381   TEFMOD16_WC_A0                     ,  /*!< PHY Version A0 */
    382   TEFMOD16_WC_A1                     ,  /*!< PHY Version A1 */
    383   TEFMOD16_WC_A2                     ,  /*!< PHY Version A2 */
    384   TEFMOD16_WC_B0                     ,  /*!< PHY Version B0 */
    385   TEFMOD16_WC_B1                     ,  /*!< PHY Version B1 */
    386   TEFMOD16_WC_B2                     ,  /*!< PHY Version B2 */
    387   TEFMOD16_WC_C0                     ,  /*!< PHY Version C0, model no. differs from other WCs */
    388   TEFMOD16_WC_C1                     ,  /*!< PHY Version C1, model no. differs from other WCs */
    389   TEFMOD16_WC_C2                     ,  /*!< PHY Version C2, model no. differs from other WCs */
    390   TEFMOD16_WC_D0                     ,  /*!< PHY Version D0 */
    391   TEFMOD16_WC_D1                     ,  /*!< PHY Version D1 */
    392   TEFMOD16_WC_D2                     ,  /*!< PHY Version D2 */
    393   TEFMOD16_XN                        ,  /*!< Generic Xenia Core (any model) */
    394   TEFMOD16_WL                        ,  /*!< Generic PHY Lite (any model) */
    395   TEFMOD16_WL_A0                     ,  /*!< WarpLite Core */
    396   TEFMOD16_QS                        ,  /*!< Generic QSGMII core (any model) */
    397   TEFMOD16_QS_A0                     ,  /*!< QSGMII core Version A0 */
    398   TEFMOD16_QS_B0                     ,  /*!< QSGMII core Version B0 */
    399   TEFMOD16_MODEL_TYPE_ILLEGAL          /*!< Illegal value. programmatic boundary. */
    400 } tefmod16_model_type_t;
    401 
    402 /*! \def CNT_tefmod_model_type_t Types of enum tefmod_model_type_t */
    403 #define CNT_tefmod_model_type_t 20
    404 
    405 /*!
    406 \brief
    407 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    408 by the enum var.
    409 
    410 */
    411 extern char* e2s_tefmod16_model_type_t [CNT_tefmod_model_type_t];
    412 /*! \enum tefmod16_an_type_t 
    413 
    414 tefmod16_an_type_t enumerates different types of autoneg modes in the PHY.
    415 
    416 */
    417 
    418 typedef enum {
    419   TEFMOD16_AN_CL73                = 0   ,  /*!< PHY autoneg CL73 enable */
    420   TEFMOD16_AN_CL73_BAM                  ,  /*!< PHY autoneg CL73 enable with Brcm Aneg Mode */
    421   TEFMOD16_AN_HPAM                      ,  /*!< PHY autoneg for HP aneg */
    422   TEFMOD16_AN_MSA                       ,  /*!< PHY autoneg for 25G/50G consortium spec */
    423   TEFMOD16_AN_CL73_MSA                  ,  /*!< PHY autoneg for CL73 and 25G/50G consortium spec */
    424   TEFMOD16_AN_TYPE_ILLEGAL             /*!< Illegal value. programmatic boundary. */
    425 } tefmod16_an_type_t;
    426 
    427 /*! \def CNT_tefmod_an_type_t Types of enum tefmod16_an_type_t */
    428 #define CNT_tefmod_an_type_t 6
    429 
    430 /*!
    431 \brief
    432 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    433 by the enum var.
    434 
    435 */
    436 extern char* e2s_tefmod16_an_type_t [CNT_tefmod_an_type_t];
    437 /*! \enum tefmod16_eye_direction_t
    438 
    439 The direction of slicer changing always moves from the middle of the eye.
    440 Currently all speeds have the following bit positions.
    441 
    442 \li TEFMOD16_EYE_VU: Vertical,   Upward direction
    443 \li TEFMOD16_EYE_VD: Vertical,   Downward direction
    444 \li TEFMOD16_EYE_HL: Horizontal, Left  direction
    445 \li TEFMOD16_EYE_HR: Horizontal, Right direction
    446 
    447 */
    448 
    449 typedef enum {
    450   TEFMOD16_EYE_VU              = 0   ,  /*!< Vertical,   Upward direction */
    451   TEFMOD16_EYE_VD                    ,  /*!< Vertical,   Downward direction */
    452   TEFMOD16_EYE_HL                    ,  /*!< Horizontal, Left  direction */
    453   TEFMOD16_EYE_HR                    ,  /*!< Horizontal, Right direction */
    454   TEFMOD16_EYE_ILLEGAL                 /*!< Programmatic illegal boundary. */
    455 } tefmod16_eye_direction_t;
    456 
    457 /*! \def CNT_tefmod_eye_direction_t Types of enum tefmod16_eye_direction_t */
    458 #define CNT_tefmod_eye_direction_t 5
    459 
    460 /*!
    461 \brief
    462 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    463 by the enum var.
    464 
    465 */
    466 extern char* e2s_tefmod16_eye_direction_t [CNT_tefmod_eye_direction_t];
    467 
    468 
    469 typedef enum {
    470   TEFMOD16_ASPD_10M            = 0   ,  /*!< No documentation   */
    471   TEFMOD16_ASPD_100M                 ,  /*!< No documentation   */
    472   TEFMOD16_ASPD_1000M                ,  /*!< No documentation   */
    473   TEFMOD16_ASPD_2p5G_X1              ,  /*!< No documentation   */
    474   TEFMOD16_ASPD_5G_X4                ,  /*!< No documentation   */
    475   TEFMOD16_ASPD_6G_X4                ,  /*!< No documentation   */
    476   TEFMOD16_ASPD_10G_X4               ,  /*!< No documentation   */
    477   TEFMOD16_ASPD_10G_CX4              ,  /*!< No documentation   */
    478   TEFMOD16_ASPD_12G_X4               ,  /*!< No documentation   */
    479   TEFMOD16_ASPD_12p5G_X4             ,  /*!< No documentation   */
    480   TEFMOD16_ASPD_13G_X4               ,  /*!< No documentation   */
    481   TEFMOD16_ASPD_15G_X4               ,  /*!< No documentation   */
    482   TEFMOD16_ASPD_16G_X4               ,  /*!< No documentation   */
    483   TEFMOD16_ASPD_1G_KX1               ,  /*!< No documentation   */
    484   TEFMOD16_ASPD_10G_KX4              ,  /*!< No documentation   */
    485   TEFMOD16_ASPD_10G_KR1              ,  /*!< No documentation   */
    486   TEFMOD16_ASPD_5G_X1                ,  /*!< No documentation   */
    487   TEFMOD16_ASPD_6p36G_X1             ,  /*!< No documentation   */
    488   TEFMOD16_ASPD_20G_CX4              ,  /*!< No documentation   */
    489   TEFMOD16_ASPD_21G_X4               ,  /*!< No documentation   */
    490   TEFMOD16_ASPD_25p45G_X4            ,  /*!< No documentation   */
    491   TEFMOD16_ASPD_10G_X2_NOSCRAMBLE       ,  /*!< No documentation   */
    492   TEFMOD16_ASPD_10G_CX2_NOSCRAMBLE       ,  /*!< No documentation   */
    493   TEFMOD16_ASPD_10p5G_X2             ,  /*!< No documentation   */
    494   TEFMOD16_ASPD_10p5G_CX2_NOSCRAMBLE       ,  /*!< No documentation   */
    495   TEFMOD16_ASPD_12p7G_X2             ,  /*!< No documentation   */
    496   TEFMOD16_ASPD_12p7G_CX2            ,  /*!< No documentation   */
    497   TEFMOD16_ASPD_10G_X1               ,  /*!< No documentation   */
    498   TEFMOD16_ASPD_40G_X4               ,  /*!< No documentation   */
    499   TEFMOD16_ASPD_20G_X2               ,  /*!< No documentation   */
    500   TEFMOD16_ASPD_20G_CX2              ,  /*!< No documentation   */
    501   TEFMOD16_ASPD_10G_SFI              ,  /*!< No documentation   */
    502   TEFMOD16_ASPD_31p5G_X4             ,  /*!< No documentation   */
    503   TEFMOD16_ASPD_32p7G_X4             ,  /*!< No documentation   */
    504   TEFMOD16_ASPD_20G_X4               ,  /*!< No documentation   */
    505   TEFMOD16_ASPD_10G_X2               ,  /*!< No documentation   */
    506   TEFMOD16_ASPD_10G_CX2              ,  /*!< No documentation   */
    507   TEFMOD16_ASPD_12G_SCO_R2           ,  /*!< No documentation   */
    508   TEFMOD16_ASPD_10G_SCO_X2           ,  /*!< No documentation   */
    509   TEFMOD16_ASPD_40G_KR4              ,  /*!< No documentation   */
    510   TEFMOD16_ASPD_40G_CR4              ,  /*!< No documentation   */
    511   TEFMOD16_ASPD_100G_CR10            ,  /*!< No documentation   */
    512   TEFMOD16_ASPD_5G_X2                ,  /*!< No documentation   */
    513   TEFMOD16_ASPD_15p75G_X2            ,  /*!< No documentation   */
    514   TEFMOD16_ASPD_2G_FC                ,  /*!< No documentation   */
    515   TEFMOD16_ASPD_4G_FC                ,  /*!< No documentation   */
    516   TEFMOD16_ASPD_8G_FC                ,  /*!< No documentation   */
    517   TEFMOD16_ASPD_10G_CX1              ,  /*!< No documentation   */
    518   TEFMOD16_ASPD_1G_CX1               ,  /*!< No documentation   */
    519   TEFMOD16_ASPD_20G_KR2              ,  /*!< No documentation   */
    520   TEFMOD16_ASPD_20G_CR2              ,  /*!< No documentation   */
    521   TEFMOD16_ASPD_TYPE_ILLEGAL           /*!< Programmatic illegal boundary. */
    522 } tefmod16_aspd_type_t;
    523 
    524 /*! \def CNT_tefmod_aspd_type_t Types of enum tefmod16_aspd_type_t */
    525 #define CNT_tefmod_aspd_type_t 52
    526 
    527 /*!
    528 \brief
    529 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    530 by the enum var.
    531 
    532 */
    533 extern char* e2s_tefmod16_aspd_type_t [CNT_tefmod_aspd_type_t];
    534 /*!
    535 \brief
    536 This array associates the enum #tefmod16_lane_select_t enum with a bit mask.
    537 The index is the #tefmod16_lane_select_t enum value.  The value for each entry is
    538 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
    539 is 0, then lane [n] is disabled.  By enabled, we mean that such-and-such
    540 function is to be called for a lane; by disabled, we mean that such-and-such
    541 function is not to be called for a lane.  So a value of 0xF indicates that all
    542 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled.
    543 
    544 */
    545 extern int e2n_tefmod16_aspd_type_t [CNT_tefmod_aspd_type_t];
    546 /*! \enum tefmod16_tech_ability_t 
    547 
    548 tefmod16_tech_ability_t enumerates different types of speed advertisements in the
    549 basic autoneg page. Currently for CL73 only.
    550 
    551 Currently all speeds have the following bit positions in tefmod16_st
    552 
    553 \li TEFMOD16_ABILITY_1G               Bit Pos: 0
    554 \li TEFMOD16_ABILITY_10G_KR           Bit Pos: 1
    555 \li TEFMOD16_ABILITY_40G_KR4          Bit Pos: 2
    556 \li TEFMOD16_ABILITY_40G_CR4          Bit Pos: 3
    557 \li TEFMOD16_ABILITY_100G_CR10        Bit Pos: 4
    558 \li TEFMOD16_ABILITY_10G_HIGIG        Bit Pos: 5
    559 \li TEFMOD16_ABILITY_10G_CX4          Bit Pos: 6
    560 \li TEFMOD16_ABILITY_20G_X4           Bit Pos: 7
    561 \li TEFMOD16_ABILITY_40G              Bit Pos: 8
    562 \li TEFMOD16_ABILITY_25P455G          Bit Pos: 9
    563 \li TEFMOD16_ABILITY_21G_X4           Bit Pos: 10
    564 \li TEFMOD16_ABILITY_20G_X4S          Bit Pos: 11
    565 \li TEFMOD16_ABILITY_10G_DXGXS_HIGIG  Bit Pos: 12
    566 \li TEFMOD16_ABILITY_10G_DXGXS        Bit Pos: 13
    567 \li TEFMOD16_ABILITY_10P5G_DXGXS      Bit Pos: 14
    568 \li TEFMOD16_ABILITY_12P5_DXGXS       Bit Pos: 15
    569 \li TEFMOD16_ABILITY_20G_KR2_HIGIG    Bit Pos: 16
    570 \li TEFMOD16_ABILITY_20G_KR2          Bit Pos: 17
    571 \li TEFMOD16_ABILITY_20G_CR2          Bit Pos: 18
    572 \li TEFMOD16_ABILITY_15P75G_R2        Bit Pos: 19
    573 \li TEFMOD16_ABILITY_100G_KR4         Bit Pos: 20 
    574 \li TEFMOD16_ABILITY_100G_CR4         Bit Pos: 21 
    575 \li TEFMOD16_ABILITY_40G_KR2          Bit Pos: 22 
    576 \li TEFMOD16_ABILITY_40G_CR2          Bit Pos: 23 
    577 \li TEFMOD16_ABILITY_50G_KR2          Bit Pos: 24 
    578 \li TEFMOD16_ABILITY_50G_CR2          Bit Pos: 25 
    579 \li TEFMOD16_ABILITY_50G_KR4          Bit Pos: 26 
    580 \li TEFMOD16_ABILITY_50G_CR4          Bit Pos: 27 
    581 \li TEFMOD16_ABILITY_20G_KR1          Bit Pos: 28 
    582 \li TEFMOD16_ABILITY_20G_CR1          Bit Pos: 29 
    583 \li TEFMOD16_ABILITY_25G_KR1          Bit Pos: 30 
    584 \li TEFMOD16_ABILITY_25G_CR1          Bit Pos: 31 
    585 
    586 
    587 */
    588 
    589 typedef enum {
    590   TEFMOD16_ABILITY_1G          = 0   ,  /*!< please write comments        */
    591   TEFMOD16_ABILITY_10G_KR            ,  /*!< please write comments        */
    592   TEFMOD16_ABILITY_40G_KR4           ,  /*!< please write comments        */
    593   TEFMOD16_ABILITY_40G_CR4           ,  /*!< please write comments        */
    594   TEFMOD16_ABILITY_100G_CR10         ,  /*!< please write comments        */
    595   TEFMOD16_ABILITY_10G_HIGIG         ,  /*!< please write comments        */
    596   TEFMOD16_ABILITY_10G_CX4           ,  /*!< please write comments        */
    597   TEFMOD16_ABILITY_20G_X4            ,  /*!< please write comments        */
    598   TEFMOD16_ABILITY_40G               ,  /*!< please write comments        */
    599   TEFMOD16_ABILITY_25P455G           ,  /*!< please write comments        */
    600   TEFMOD16_ABILITY_21G_X4            ,  /*!< please write comments        */
    601   TEFMOD16_ABILITY_20G_X4S           ,  /*!< XAUI 8b10b scrambled data    */
    602   TEFMOD16_ABILITY_10G_DXGXS_HIGIG       ,  /*!< please write comments        */
    603   TEFMOD16_ABILITY_10G_DXGXS         ,  /*!< please write comments        */
    604   TEFMOD16_ABILITY_10P5G_DXGXS       ,  /*!< please write comments        */
    605   TEFMOD16_ABILITY_12P5_DXGXS        ,  /*!< please write comments        */
    606   TEFMOD16_ABILITY_20G_KR2_HIGIG       ,  /*!< please write comments        */
    607   TEFMOD16_ABILITY_20G_KR2           ,  /*!< please write comments        */
    608   TEFMOD16_ABILITY_20G_CR2           ,  /*!< please write comments        */
    609   TEFMOD16_ABILITY_15P75G_R2         ,  /*!< please write comments        */
    610   TEFMOD16_ABILITY_100G_KR4          ,  /*!< please write comments        */
    611   TEFMOD16_ABILITY_100G_CR4          ,  /*!< please write comments        */
    612   TEFMOD16_ABILITY_40G_KR2           ,  /*!< please write comments        */
    613   TEFMOD16_ABILITY_40G_CR2           ,  /*!< please write comments        */
    614   TEFMOD16_ABILITY_50G_KR2           ,  /*!< please write comments        */
    615   TEFMOD16_ABILITY_50G_CR2           ,  /*!< please write comments        */
    616   TEFMOD16_ABILITY_50G_KR4           ,  /*!< please write comments        */
    617   TEFMOD16_ABILITY_50G_CR4           ,  /*!< please write comments        */
    618   TEFMOD16_ABILITY_20G_KR1           ,  /*!< please write comments        */
    619   TEFMOD16_ABILITY_20G_CR1           ,  /*!< please write comments        */
    620   TEFMOD16_ABILITY_25G_KR1           ,  /*!< please write comments        */
    621   TEFMOD16_ABILITY_25G_CR1           ,  /*!< please write comments        */
    622   TEFMOD16_ABILITY_ILLEGAL             /*!< Illegal. Programmatic boundary */
    623 } tefmod16_tech_ability_t;
    624 
    625 /*! \def CNT_tefmod_tech_ability_t Types of enum tefmod16_tech_ability_t */
    626 #define CNT_tefmod_tech_ability_t 33
    627 
    628 /*!
    629 \brief
    630 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    631 by the enum var.
    632 
    633 */
    634 extern char* e2s_tefmod16_tech_ability_t [CNT_tefmod_tech_ability_t];
    635 /*!
    636 \brief
    637 This array associates the enum #tefmod16_lane_select_t enum with a bit mask.
    638 The index is the #tefmod16_lane_select_t enum value.  The value for each entry is
    639 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
    640 is 0, then lane [n] is disabled.  By enabled, we mean that such-and-such
    641 function is to be called for a lane; by disabled, we mean that such-and-such
    642 function is not to be called for a lane.  So a value of 0xF indicates that all
    643 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled.
    644 
    645 */
    646 extern int e2n_tefmod16_tech_ability_t [CNT_tefmod_tech_ability_t];
    647 /*! \enum tefmod16_cl37bam_ability_t 
    648 
    649 This array associates the enum #tefmod16_lane_select_t enum with a bit mask.
    650 The index is the #tefmod16_lane_select_t enum value.  The value for each entry is
    651 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
    652 is 0, then lane [n] is disabled.  Enabled implies the function under
    653 consideration be enebled for the lane. Disabled means the opposite.  So a value
    654 of 0xF indicates that all lanes or enabled, while 0x5 indicates that only lanes
    655 0 and 2 are enabled.
    656 
    657 tefmod16_cl37bam_ability_t enumerates different types of speed advertisements in the
    658 basic autoneg page for CL37BAM only.
    659 
    660 Currently all speeds have the following bit positions in tefmod16_st
    661 
    662 \li TEFMOD16_BAM37ABL_2P5G             Bit Pos: 0
    663 \li TEFMOD16_BAM37ABL_5G_X4            Bit Pos: 1
    664 \li TEFMOD16_BAM37ABL_6G_X4            Bit Pos: 2
    665 \li TEFMOD16_BAM37ABL_10G_HIGIG        Bit Pos: 3
    666 \li TEFMOD16_BAM37ABL_10G_CX4          Bit Pos: 4
    667 \li TEFMOD16_BAM37ABL_12G_X4           Bit Pos: 5
    668 \li TEFMOD16_BAM37ABL_12P5_X4          Bit Pos: 6
    669 \li TEFMOD16_BAM37ABL_13G_X4           Bit Pos: 7
    670 \li TEFMOD16_BAM37ABL_15G_X4           Bit Pos: 8
    671 \li TEFMOD16_BAM37ABL_16G_X4           Bit Pos: 9
    672 \li TEFMOD16_BAM37ABL_20G_X4_CX4       Bit Pos: 10
    673 \li TEFMOD16_BAM37ABL_20G_X4           Bit Pos: 11
    674 \li TEFMOD16_BAM37ABL_21G_X4           Bit Pos: 12
    675 \li TEFMOD16_BAM37ABL_25P455G          Bit Pos: 13
    676 \li TEFMOD16_BAM37ABL_31P5G            Bit Pos: 14
    677 \li TEFMOD16_BAM37ABL_32P7G            Bit Pos: 15
    678 \li TEFMOD16_BAM37ABL_40G              Bit Pos: 16
    679 \li TEFMOD16_BAM37ABL_10G_X2_CX4       Bit Pos: 17
    680 \li TEFMOD16_BAM37ABL_10G_DXGXS        Bit Pos: 18
    681 \li TEFMOD16_BAM37ABL_10P5G_DXGXS      Bit Pos: 19
    682 \li TEFMOD16_BAM37ABL_12P7_DXGXS       Bit Pos: 20
    683 \li TEFMOD16_BAM37ABL_15P75G_R2        Bit Pos: 21
    684 \li TEFMOD16_BAM37ABL_20G_X2_CX4       Bit Pos: 22
    685 \li TEFMOD16_BAM37ABL_20G_X2           Bit Pos: 23
    686 
    687 
    688 */
    689 
    690 typedef enum {
    691   TEFMOD16_BAM37ABL_2P5G       = 0   ,  /*!< X1 BRCM */
    692   TEFMOD16_BAM37ABL_5G_X4            ,  /*!< BRCM */
    693   TEFMOD16_BAM37ABL_6G_X4            ,  /*!< BRCM */
    694   TEFMOD16_BAM37ABL_10G_HIGIG        ,  /*!< HG (10G_X4) */
    695   TEFMOD16_BAM37ABL_10G_CX4          ,  /*!< (10G_X4_CX4) */
    696   TEFMOD16_BAM37ABL_12G_X4           ,  /*!< HG */
    697   TEFMOD16_BAM37ABL_12P5_X4          ,  /*!< HG */
    698   TEFMOD16_BAM37ABL_13G_X4           ,  /*!< HG */
    699   TEFMOD16_BAM37ABL_15G_X4           ,  /*!< HG */
    700   TEFMOD16_BAM37ABL_16G_X4           ,  /*!< HG */
    701   TEFMOD16_BAM37ABL_20G_X4_CX4       ,  /*!< XAUI 8b10b scram(20G_X4S) */
    702   TEFMOD16_BAM37ABL_20G_X4           ,  /*!< HG */
    703   TEFMOD16_BAM37ABL_21G_X4           ,  /*!< HG */
    704   TEFMOD16_BAM37ABL_25P455G          ,  /*!< X4 HG */
    705   TEFMOD16_BAM37ABL_31P5G            ,  /*!< X4 HG */
    706   TEFMOD16_BAM37ABL_32P7G            ,  /*!< X4 HG */
    707   TEFMOD16_BAM37ABL_40G              ,  /*!< X4 BRCM HG (40G_X4) */
    708   TEFMOD16_BAM37ABL_10G_X2_CX4       ,  /*!< 10G_X2_CX4 */
    709   TEFMOD16_BAM37ABL_10G_DXGXS        ,  /*!< 10G_X2 */
    710   TEFMOD16_BAM37ABL_10P5G_DXGXS       ,  /*!< 10P5_X2 */
    711   TEFMOD16_BAM37ABL_12P7_DXGXS       ,  /*!< 12P7_X2 */
    712   TEFMOD16_BAM37ABL_15P75G_R2        ,  /*!< 15P75_X2 */
    713   TEFMOD16_BAM37ABL_20G_X2_CX4       ,  /*!< 20G_X2_CX4 */
    714   TEFMOD16_BAM37ABL_20G_X2           ,  /*!< 20G_X2 */
    715   TEFMOD16_BAM37ABL_ILLEGAL            /*!< Illegal. Programmatic boundary */
    716 } tefmod16_cl37bam_ability_t;
    717 
    718 /*! \def CNT_tefmod_cl37bam_ability_t Types of enum tefmod16_cl37bam_ability_t */
    719 #define CNT_tefmod_cl37bam_ability_t 25
    720 
    721 /*!
    722 \brief
    723 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    724 by the enum var.
    725 
    726 */
    727 extern char* e2s_tefmod16_cl37bam_ability_t [CNT_tefmod_cl37bam_ability_t];
    728 /*! \enum tefmod16_diag_an_type_t 
    729 
    730 This array associates the enum #tefmod16_lane_select_t enum with a bit mask.
    731 The index is the #tefmod16_lane_select_t enum value.  The value for each entry is
    732 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
    733 is 0, then lane [n] is disabled.  By enabled, we mean that such-and-such
    734 function is to be called for a lane; by disabled, we mean that such-and-such
    735 function is not to be called for a lane.  So a value of 0xF indicates that all
    736 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled.
    737 
    738 */
    739 
    740 typedef enum {
    741   TEFMOD16_DIAG_AN_DONE        = 0   ,  /*!< AN completion check */
    742   TEFMOD16_DIAG_AN_HCD               ,  /*!< AN HCD speed check */
    743   TEFMOD16_DIAG_AN_TYPE_ILLEGAL         /*!< Illegal value. programmatic boundary */
    744 } tefmod16_diag_an_type_t;
    745 
    746 /*! \def CNT_tefmod_diag_an_type_t Types of enum tefmod16_diag_an_type_t */
    747 #define CNT_tefmod_diag_an_type_t 3
    748 
    749 /*!
    750 \brief
    751 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    752 by the enum var.
    753 
    754 */
    755 extern char* e2s_tefmod16_diag_an_type_t [CNT_tefmod_diag_an_type_t];
    756 /*! \enum tefmod16_tier1_function_type_t 
    757 
    758 This array associates the enum #tefmod16_lane_select_t enum with a bit mask.
    759 The index is the #tefmod16_lane_select_t enum value.  The value for each entry is
    760 interpreted as follows.  If bit [n] is 1, then lane [n] is enabled; if bit [n]
    761 is 0, then lane [n] is disabled.  By enabled, we mean that such-and-such
    762 function is to be called for a lane; by disabled, we mean that such-and-such
    763 function is not to be called for a lane.  So a value of 0xF indicates that all
    764 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled.
    765 
    766 */
    767 
    768 typedef enum {
    769   PCS_BYPASS_CTL             = 0   ,  /*!< tefmod16_pcs_bypass_ctl */
    770   CREDIT_SET                       ,  /*!< tefmod16_credit_set */
    771   ENCODE_SET                       ,  /*!< tefmod16_encode_set */
    772   DECODE_SET                       ,  /*!< tefmod16_decode_set */
    773   CREDIT_CONTROL                   ,  /*!< tefmod16_credit_control */
    774   AFE_SPEED_UP_DSC_VGA             ,  /*!< tefmod16_afe_speed_up_dsc_vga */
    775   TX_LANE_CONTROL                  ,  /*!< tefmod16_tx_lane_control */
    776   RX_LANE_CONTROL                  ,  /*!< tefmod16_rx_lane_control */
    777   TX_LANE_DISABLE                  ,  /*!< tefmod16_tx_lane_disable */
    778   POWER_CONTROL                    ,  /*!< tefmod16_power_control */
    779   AUTONEG_SET                      ,  /*!< tefmod16_autoneg_set */
    780   AUTONEG_GET                      ,  /*!< tefmod16_autoneg_get */
    781   AUTONEG_CONTROL                  ,  /*!< tefmod16_autoneg_control */
    782   AUTONEG_PAGE_SET                 ,  /*!< tefmod16_autoneg_page_set */
    783   REG_READ                         ,  /*!< tefmod16_reg_read */
    784   REG_WRITE                        ,  /*!< tefmod16_reg_write */
    785   PRBS_CHECK                       ,  /*!< tefmod16_prbs_check */
    786   CJPAT_CRPAT_CONTROL              ,  /*!< tefmod16_cjpat_crpat_control */
    787   CJPAT_CRPAT_CHECK                ,  /*!< tefmod16_cjpat_crpat_check */
    788   TEFMOD16_DIAG                      ,  /*!< tefmod16_diag */
    789   LANE_SWAP                        ,  /*!< tefmod16_lane_swap */
    790   PARALLEL_DETECT_CONTROL          ,  /*!< tefmod16_parallel_detect_control */
    791   CLAUSE_72_CONTROL                ,  /*!< tefmod16_clause72_control */
    792   PLL_SEQUENCER_CONTROL            ,  /*!< tefmod16_pll_sequencer_control */
    793   PLL_LOCK_WAIT                    ,  /*!< tefmod16_pll_lock_wait */
    794   DUPLEX_CONTROL                   ,  /*!< tefmod16_duplex_control */
    795   REVID_READ                       ,  /*!< tefmod16_revid_read */
    796   BYPASS_SC                        ,  /*!< tefmod16_bypass_sc */
    797   SET_POLARITY                     ,  /*!< tefmod16_tx_rx_polarity */
    798   SET_PORT_MODE                    ,  /*!< tefmod16_set_port_mode */
    799   SET_AN_PORT_MODE                 ,  /*!< tefmod16_set_an_port_mode */
    800   PRBS_CONTROL                     ,  /*!< tefmod16_prbs_control */
    801   PRBS_MODE                        ,  /*!< tefmod16_prbs_mode */
    802   SOFT_RESET                       ,  /*!< tefmod16_soft_reset */
    803   SET_SPD_INTF                     ,  /*!< tefmod16_set_spd_intf */
    804   TX_BERT_CONTROL                  ,  /*!< tefmod16_tx_bert_control */
    805   RX_LOOPBACK_CONTROL              ,  /*!< tefmod16_rx_loopback_control */
    806   RX_PMD_LOOPBACK_CONTROL          ,  /*!< tefmod16_rx_pmd_loopback_control */
    807   TX_LOOPBACK_CONTROL              ,  /*!< tefmod16_tx_loopback_control */
    808   TX_PMD_LOOPBACK_CONTROL          ,  /*!< tefmod16_tx_pmd_loopback_control */
    809   CORE_RESET                       ,  /*!< tefmod16_core_reset */
    810   REFCLK_SET                       ,  /*!< tefmod16_refclk_set */
    811   WAIT_PMD_LOCK                    ,  /*!< tefmod16_wait_pmd_lock */
    812   FIRMWARE_SET                     ,  /*!< tefmod16_firmware_set */
    813   INIT_PCS_FALCON                  ,  /*!< tefmod16_init_pcs_falcon */
    814   DISABLE_PCS_FALCON               ,  /*!< tefmod16_disable_pcs_falcon */
    815   INIT_PMD_FALCON                  ,  /*!< tefmod16_init_pmd_falcon */
    816   PMD_LANE_SWAP_TX                 ,  /*!< tefmod16_pmd_lane_swap_tx */
    817   PMD_LANE_SWAP                    ,  /*!< tefmod16_pmd_lane_swap */
    818   PCS_LANE_SWAP                    ,  /*!< tefmod16_pcs_lane_swap */
    819   SET_SC_SPEED                     ,  /*!< tefmod16_set_sc_speed */
    820   CHECK_SC_STATS                   ,  /*!< tefmod16_check_status */
    821   SET_OVERRIDE_0                   ,  /*!< tefmod16_set_override_0 */
    822   SET_OVERRIDE_1                   ,  /*!< tefmod16_set_override_1 */
    823   PMD_RESET_REMOVE                 ,  /*!< tefmod16_pmd_reset_remove */
    824   PMD_RESET_BYPASS                 ,  /*!< tefmod16_pmd_reset_bypass */
    825   INIT_PCS_ILKN                    ,  /*!< tefmod16_init_pcs_ilkn */
    826   TOGGLE_SW_SPEED_CHANGE           ,  /*!< tefmod16_toggle_sw_speed_change */
    827   TIER1_FUNCTION_ILLEGAL             /*!< illegal */
    828 } tefmod16_tier1_function_type_t;
    829 
    830 /*! \def CNT_tefmod_tier1_function_type_t Types of enum tefmod16_tier1_function_type_t */
    831 #define CNT_tefmod_tier1_function_type_t 59
    832 
    833 /*!
    834 \brief
    835 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    836 by the enum var.
    837 
    838 */
    839 extern char* e2s_tefmod16_tier1_function_type_t [CNT_tefmod_tier1_function_type_t];
    840 /*! \enum tefmod16_fec_en_parm_t 
    841 
    842 For passing parameters to tefmod16_FEC_control.
    843 
    844 */
    845 
    846 typedef enum {
    847   TEFMOD16_CL91_TX_EN_DIS      = 0x01 ,  /*!< Enable / Disable CL91 TX */
    848   TEFMOD16_CL91_RX_EN_DIS      = 0x02 ,  /*!< Enable / Disable CL91 RX */
    849   TEFMOD16_CL91_IND_ONLY_EN_DIS = 0x04 ,  /*!< Enable / Disable CL91 indication only */
    850   TEFMOD16_CL91_COR_ONLY_EN_DIS = 0x08 ,  /*!< Enable / Disable CL91 correction only */
    851   TEFMOD16_CL74_TX_EN_DIS      = 0x10 ,  /*!< Enable / Disable CL74 TX */
    852   TEFMOD16_CL74_RX_EN_DIS      = 0x20 ,  /*!< Enable / Disable CL74 RX */
    853   TEFMOD16_CL74_CL91_EN_DIS    = 0x40   /*!< Enable / Disable CL74CL91 for autoneg */
    854 } tefmod16_fec_en_parm_t;
    855 
    856 /*! \def CNT_tefmod_fec_en_parm_t Types of enum tefmod16_fec_en_parm_t */
    857 #define CNT_tefmod_fec_en_parm_t 7
    858 
    859 /*!
    860 \brief
    861 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    862 by the enum var.
    863 
    864 */
    865 extern char* e2s_tefmod16_fec_en_parm_t [CNT_tefmod_fec_en_parm_t];
    866 
    867 /*! \enum tefmod16_fec_type_t 
    868 
    869 For passing parameters to tefmod16_FEC_control.
    870 
    871 */
    872 
    873 typedef enum {
    874   TEFMOD16_CL74       = 0x01 ,  /*!< Enable / enable CL74 TX/RX */
    875   TEFMOD16_CL91       = 0x02 ,   /*!< Enable / enable CL91 TX/RX */
    876   TEFMOD16_CL108      = 0x03     /*!< Enable / enable CL108 TX/RX */
    877 } tefmod16_fec_type_t;
    878 
    879 /*! \def CNT_tefmod_fec_type_t Types of enum tefmod16_fec_en_parm_t */
    880 #define CNT_tefmod_fec_type_t 3
    881 
    882 /*!
    883 \brief
    884 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    885 by the enum var.
    886 
    887 */
    888 extern char* e2s_tefmod16_fec_type_t [CNT_tefmod_fec_type_t];
    889 
    890 
    891 
    892 /*! \enum tefmod16_tx_disable_enum_t 
    893 
    894 For various tx disable condition use this enum.
    895 
    896 */
    897 
    898 typedef enum {
    899     TEFMOD16_TX_LANE_RESET = 0,
    900     TEFMOD16_TX_LANE_TRAFFIC_ENABLE = 1,
    901     TEFMOD16_TX_LANE_TRAFFIC_DISABLE = 2,
    902     TEFMOD16_TX_LANE_RESET_TRAFFIC_ENABLE = 3,
    903     TEFMOD16_TX_LANE_RESET_TRAFFIC_DISABLE = 4,
    904     TEFMOD16_TX_LANE_TYPE_COUNT
    905 } tefmod16_tx_disable_enum_t;
    906 
    907 /*! \def CNT_tefmod_tx_disable_enum_t Types of enum tefmod16_tx_disable_enum_t */
    908 #define CNT_tefmod_tx_disable_enum_t 2
    909 
    910 /*!
    911 \brief
    912 This array returns the string version of the enum #tefmod16_port_type_t when indexed
    913 by the enum var.
    914 
    915 */
    916 extern char* e2s_tefmod16_tx_disable_enum_t [CNT_tefmod_tx_disable_enum_t];
    917 /*! \enum tefmod16_os_mode_type 
    918 
    919 
    920 The oversampling mode means that bits are sent out more than once to reduce
    921 the effective frequency of data transfer. For example you can send 5G bits
    922 over a 10G bit lane by sending every bit twice, or OS=2. When the OS is 3.3
    923 it's a bit tricky, we send bits 3 or 4 times in a pattern like so
    924 3,3,3,4,3,3,3,4,... Similarly for OS = 8, we send 8,8,8,9,8,8,8,9,...
    925 
    926 
    927 */
    928 
    929 typedef enum {
    930   TEFMOD16_PMA_OS_MODE_1       = 0   ,  /*!< Over sampling Mode 1         */
    931   TEFMOD16_PMA_OS_MODE_2       = 1   ,  /*!< Over sampling Mode 2         */
    932   TEFMOD16_PMA_OS_MODE_4       = 2   ,  /*!< Over sampling Mode 4         */
    933   TEFMOD16_PMA_OS_MODE_16_25   = 8   ,  /*!< Over sampling Mode 8.25      */
    934   TEFMOD16_PMA_OS_MODE_20_625  = 12  ,  /*!< Over sampling Mode 10        */
    935   TEFMOD16_PMA_OS_MODE_ILLEGAL = 15    /*!< Over sampling Mode Illegal   */
    936 } tefmod16_os_mode_type;
    937 
    938 /*! \def CNT_tefmod_os_mode_type Types of enum tefmod16_os_mode_type */
    939 #define CNT_tefmod_os_mode_type 6
    940 
    941 /*!
    942 \brief
    943 This array returns the string of #tefmod16_os_mode_type when indexed by the enum.
    944 
    945 */
    946 extern char* e2s_tefmod16_os_mode_type [CNT_tefmod_os_mode_type];
    947 /*!
    948 \brief
    949 This array returns the over sampling value of #tefmod16_os_mode_type when indexed by
    950 the enum. For floating values 3.3 and 8.25 it returns 33 and 825.
    951 
    952 */
    953 extern int e2n_tefmod16_os_mode_type [CNT_tefmod_os_mode_type];
    954 /*! \enum tefmod16_scr_mode 
    955 
    956 This mode indicates how many bits of a 'frame' will be scrambled. We have either
    957 66 or 80 bits per frame (depending on 8b10b or 64b66b encoding). Normally
    958 scrambling is
    959 
    960 \li bypassed for baud rates under 6.25G (0).
    961 \li we scramble all 66 bits (1)
    962 \li all 80 bits(2)
    963 \li only 64 of the 66b (3). i.e we don't scramble the 'sync' bits.
    964 
    965 */
    966 
    967 typedef enum {
    968   TEFMOD16_SCR_MODE_BYPASS     = 0   ,  /*!< Scrambling Mode bypassed      */
    969   TEFMOD16_SCR_MODE_CL49       = 1   ,  /*!< Scrambling Mode 66B           */
    970   TEFMOD16_SCR_MODE_40G_2_LANE = 2   ,  /*!< Scrambling Mode 80B           */
    971   TEFMOD16_SCR_MODE_100G       = 3   ,  /*!< Scrambling Mode 64B           */
    972   TEFMOD16_SCR_MODE_20G        = 4   ,  /*!< Scrambling Mode 64B           */
    973   TEFMOD16_SCR_MODE_40G_4_LANE = 5   ,  /*!< Scrambling Mode 64B           */
    974   TEFMOD16_SCR_MODE_ILLEGAL    = 15    /*!< SCR Mode Mode Illegal   */
    975 } tefmod16_scr_mode;
    976 
    977 /*! \def CNT_tefmod_scr_mode Types of enum tefmod16_scr_mode */
    978 #define CNT_tefmod_scr_mode 7
    979 
    980 /*!
    981 \brief
    982 This array returns the string of #tefmod16_scr_mode when indexed by the enum.
    983 
    984 */
    985 extern char* e2s_tefmod16_scr_mode [CNT_tefmod_scr_mode];
    986 /*!
    987 \brief
    988 This array returns the scrambling mode of #tefmod16_scr_mode when indexed by
    989 the enum.
    990 
    991 */
    992 extern int e2n_tefmod16_scr_mode [CNT_tefmod_scr_mode];
    993 /*! \enum tefmod16_encode_mode 
    994 
    995 Serial bits are encoded when transmitted. The encoding depends on the baud rate
    996 and the link type
    997 \li 000 All encoding functions disabled for lane
    998 \li 001 8b10b  (cl48 )
    999 \li 010 8b10b  (cl48 rxaui)
   1000 \li 011 8b10b  (cl36 )
   1001 \li 100 64b66b (cl82 )
   1002 \li 101 64b66b (cl49 )
   1003 \li 110 64b66b (brcm )
   1004 
   1005 */
   1006 
   1007 typedef enum {
   1008   TEFMOD16_ENCODE_MODE_NONE    = 0   ,  /*!< Encoding Mode NONE     */
   1009   TEFMOD16_ENCODE_MODE_CL49    = 1   ,  /*!< Encoding Mode CL49     */
   1010   TEFMOD16_ENCODE_MODE_CL82    = 2   ,  /*!< Encoding Mode CL82     */
   1011   TEFMOD16_ENCODE_MODE_ILLEGAL = 15    /*!< Encoding Mode Illegal  */
   1012 } tefmod16_encode_mode;
   1013 
   1014 /*! \def CNT_tefmod_encode_mode Types of enum tefmod16_encode_mode */
   1015 #define CNT_tefmod_encode_mode 4
   1016 
   1017 /*!
   1018 \brief
   1019 This array returns the string of #tefmod16_encode_mode when indexed by the enum.
   1020 
   1021 */
   1022 extern char* e2s_tefmod16_encode_mode [CNT_tefmod_encode_mode];
   1023 /*!
   1024 \brief
   1025 This array returns the encoding mode of #tefmod16_encode_mode when indexed by
   1026 the enum.
   1027 
   1028 */
   1029 extern int e2n_tefmod16_encode_mode [CNT_tefmod_encode_mode];
   1030 /*! \enum tefmod16_descrambler_mode 
   1031 
   1032 The descrambling must match the scrambling done at the transmitting port.
   1033 
   1034 */
   1035 
   1036 typedef enum {
   1037   TEFMOD16_R_DESCR_MODE_BYPASS = 0   ,  /*!< No descrambling */
   1038   TEFMOD16_R_DESCR_MODE_CL49   = 1   ,  /*!< CL49 */
   1039   TEFMOD16_R_DESCR_MODE_CL82   = 2   ,  /*!< CL82 */
   1040   TEFMOD16_R_DESCR_MODE_ILLEGAL = 3     /*!< Illegal */
   1041 } tefmod16_descrambler_mode;
   1042 
   1043 /*! \def CNT_tefmod_descrambler_mode Types of enum tefmod16_descrambler_mode */
   1044 #define CNT_tefmod_descrambler_mode 4
   1045 
   1046 /*!
   1047 \brief
   1048 This array returns the string of #tefmod16_descrambler_mode when indexed by the enum.
   1049 
   1050 */
   1051 extern char* e2s_tefmod16_descrambler_mode [CNT_tefmod_descrambler_mode];
   1052 /*! \enum tefmod16_dec_tl_mode 
   1053 
   1054 The descrambling must match the scrambling done at the transmitting port.
   1055 
   1056 */
   1057 
   1058 typedef enum {
   1059   TEFMOD16_DEC_TL_MODE_NONE    = 0   ,  /*!< decoder mode NONE */
   1060   TEFMOD16_DEC_TL_MODE_CL49    = 1   ,  /*!< decoder mode CL49 */
   1061   TEFMOD16_DEC_TL_MODE_CL82    = 2   ,  /*!< decoder mode CL82 */
   1062   TEFMOD16_DEC_TL_MODE_ILLEGAL = 7     /*!< decoder mode ILLEGAL */
   1063 } tefmod16_dec_tl_mode;
   1064 
   1065 /*! \def CNT_tefmod_dec_tl_mode Types of enum tefmod16_dec_tl_mode */
   1066 #define CNT_tefmod_dec_tl_mode 4
   1067 
   1068 /*!
   1069 \brief
   1070 This array returns the string of #tefmod16_dec_tl_mode when indexed by the enum.
   1071 
   1072 */
   1073 extern char* e2s_tefmod16_dec_tl_mode [CNT_tefmod_dec_tl_mode];
   1074 /*! \enum tefmod16_dec_fsm_mode 
   1075 
   1076 The descrambling must match the scrambling done at the transmitting port.
   1077 
   1078 */
   1079 
   1080 typedef enum {
   1081   TEFMOD16_DEC_FSM_MODE_NONE   = 0   ,  /*!< decoder mode NONE */
   1082   TEFMOD16_DEC_FSM_MODE_CL49   = 1   ,  /*!< decoder mode CL49 */
   1083   TEFMOD16_DEC_FSM_MODE_CL82   = 2   ,  /*!< decoder mode CL82 */
   1084   TEFMOD16_DEC_FSM_MODE_ILLEGAL = 7     /*!< decoder mode ILLEGAL */
   1085 } tefmod16_dec_fsm_mode;
   1086 
   1087 /*! \def CNT_tefmod_dec_fsm_mode Types of enum tefmod16_dec_fsm_mode */
   1088 #define CNT_tefmod_dec_fsm_mode 4
   1089 
   1090 /*!
   1091 \brief
   1092 This array returns the string of #tefmod16_dec_fsm_mode when indexed by the enum.
   1093 
   1094 */
   1095 extern char* e2s_tefmod16_dec_fsm_mode [CNT_tefmod_dec_fsm_mode];
   1096 /*! \enum tefmod16_deskew_mode 
   1097 
   1098 Deskew Mode is a function of speed.
   1099 
   1100 */
   1101 
   1102 typedef enum {
   1103   TEFMOD16_R_DESKEW_MODE_BYPASSi = 0   ,  /*!< deskew mode BYPASS */
   1104   TEFMOD16_R_DESKEW_MODE_10G   = 1   ,  /*!< deskew mode 10G */
   1105   TEFMOD16_R_DESKEW_MODE_40G_4_LANE = 2   ,  /*!< deskew mode 40G_4_LANE */
   1106   TEFMOD16_R_DESKEW_MODE_40G_2_LANE = 3   ,  /*!< deskew mode 40G_2_LANE */
   1107   TEFMOD16_R_DESKEW_MODE_100G  = 4   ,  /*!< deskew mode 100G */
   1108   TEFMOD16_R_DESKEW_MODE_CL49  = 5   ,  /*!< deskew mode CL49 */
   1109   TEFMOD16_R_DESKEW_MODE_CL91  = 6   ,  /*!< deskew mode CL91 */
   1110   TEFMOD16_R_DESKEW_MODE_ILLEGAL = 7     /*!< deskew mode ILLEGAL */
   1111 } tefmod16_deskew_mode;
   1112 
   1113 /*! \def CNT_tefmod_deskew_mode Types of enum tefmod16_deskew_mode */
   1114 #define CNT_tefmod_deskew_mode 8
   1115 
   1116 /*!
   1117 \brief
   1118 This array returns the string of #tefmod16_deskew_mode when indexed by the enum.
   1119 
   1120 */
   1121 extern char* e2s_tefmod16_deskew_mode [CNT_tefmod_deskew_mode];
   1122 /*! \enum tefmod16_t_fifo_mode 
   1123 
   1124 
   1125 */
   1126 
   1127 typedef enum {
   1128   TEFMOD16_T_FIFO_MODE_NONE    = 0   ,  /*!< t_fifo mode NONE */
   1129   TEFMOD16_T_FIFO_MODE_40G     = 1   ,  /*!< t_fifo mode 40G */
   1130   TEFMOD16_T_FIFO_MODE_100G    = 2   ,  /*!< t_fifo mode 100G */
   1131   TEFMOD16_T_FIFO_MODE_20G     = 3   ,  /*!< t_fifo mode 20G */
   1132   TEFMOD16_T_FIFO_MODE_ILLEGAL = 7     /*!< t_fifo mode ILLEGAL */
   1133 } tefmod16_t_fifo_mode;
   1134 
   1135 /*! \def CNT_tefmod_t_fifo_mode Types of enum tefmod16_t_fifo_mode */
   1136 #define CNT_tefmod_t_fifo_mode 5
   1137 
   1138 /*!
   1139 \brief
   1140 This array returns the string of #tefmod16_t_fifo_mode when indexed by the enum.
   1141 
   1142 */
   1143 extern char* e2s_tefmod16_t_fifo_mode [CNT_tefmod_t_fifo_mode];
   1144 /*! \enum tefmod16_bs_btmx_mode 
   1145 
   1146 
   1147 */
   1148 
   1149 typedef enum {
   1150   TEFMOD16_BS_BTMX_MODE_NONE   = 0   ,  /*!< bs_btmx mode NONE */
   1151   TEFMOD16_BS_BTMX_MODE_1to1   = 1   ,  /*!< bs_btmx mode 1to1 */
   1152   TEFMOD16_BS_BTMX_MODE_2to1   = 2   ,  /*!< bs_btmx mode 2to1 */
   1153   TEFMOD16_BS_BTMX_MODE_5to1   = 2   ,  /*!< bs_btmx mode 5to1 */
   1154   TEFMOD16_BS_BTMX_MODE_ILLEGAL = 7     /*!< bs_btmx mode ILLEGAL */
   1155 } tefmod16_bs_btmx_mode;
   1156 
   1157 /*! \def CNT_tefmod_bs_btmx_mode Types of enum tefmod16_bs_btmx_mode */
   1158 #define CNT_tefmod_bs_btmx_mode 5
   1159 
   1160 /*!
   1161 \brief
   1162 This array returns the string of #tefmod16_bs_btmx_mode when indexed by the enum.
   1163 
   1164 */
   1165 extern char* e2s_tefmod16_bs_btmx_mode [CNT_tefmod_bs_btmx_mode];
   1166 /*! \enum tefmod16_bs_dist_mode 
   1167 
   1168 
   1169 */
   1170 
   1171 typedef enum {
   1172   TEFMOD16_BS_DIST_MODE_5_LANE_TDM = 0   ,  /*!< bs_dist mode 5LN_TDM */
   1173   TEFMOD16_BS_DIST_MODE_2_LANE_TDM_2_VLANE = 1   ,  /*!< bs_dist mode 2LN_TDM_2VLN */
   1174   TEFMOD16_BS_DIST_MODE_2_LANE_TDM_1_VLANE = 2   ,  /*!< bs_dist mode 2LN_TDM_1VLN */
   1175   TEFMOD16_BS_DIST_MODE_NO_TDM = 3   ,  /*!< bs_dist mode NO_TDM */
   1176   TEFMOD16_BS_DIST_MODE_ILLEGAL = 7     /*!< bs_dist mode ILLEGAL */
   1177 } tefmod16_bs_dist_mode;
   1178 
   1179 /*! \def CNT_tefmod_bs_dist_mode Types of enum tefmod16_bs_dist_mode */
   1180 #define CNT_tefmod_bs_dist_mode 5
   1181 
   1182 /*!
   1183 \brief
   1184 This array returns the string of #tefmod16_bs_dist_mode when indexed by the enum.
   1185 
   1186 */
   1187 extern char* e2s_tefmod16_bs_dist_mode [CNT_tefmod_bs_dist_mode];
   1188 
   1189 typedef enum {
   1190   TEFMOD16_AN_PROPERTY_ENABLE_NONE = 0x00000000 ,  /*!<  */
   1191   TEFMOD16_AN_PROPERTY_ENABLE_HPAM_TO_CL73_AUTO = 0x00000001 ,  /*!<  */
   1192   TEFMOD16_AN_PROPERTY_ENABLE_CL73_BAM_TO_HPAM_AUTO = 0x00000002 ,  /*!<  */
   1193   TEFMOD16_AN_PROPERTY_ENABLE_ILLEGAL = 0x00000004   /*!<  */
   1194 } an_property_enable;
   1195 
   1196 /*! \def CNT_an_property_enable Types of enum an_property_enable */
   1197 #define CNT_an_property_enable 4
   1198 
   1199 typedef enum {
   1200     TEFMOD16_PLL_MODE_DIV_ZERO = 0, /* Divide value to be determined by API. */
   1201     TEFMOD16_PLL_MODE_DIV_80         =          0x00000050UL, /* Divide by 80         */
   1202     TEFMOD16_PLL_MODE_DIV_96         =          0x00000060UL, /* Divide by 96         */
   1203     TEFMOD16_PLL_MODE_DIV_100        =          0x00000064UL, /* Divide by 100        */
   1204     TEFMOD16_PLL_MODE_DIV_120        =          0x00000078UL, /* Divide by 120        */
   1205     TEFMOD16_PLL_MODE_DIV_127P401984 =          0x66E8707FUL, /* Divide by 127.401984 */
   1206     TEFMOD16_PLL_MODE_DIV_128        =          0x00000080UL, /* Divide by 128        */
   1207     TEFMOD16_PLL_MODE_DIV_132        =          0x00000084UL, /* Divide by 132        */
   1208     TEFMOD16_PLL_MODE_DIV_140        =          0x0000008CUL, /* Divide by 140        */
   1209     TEFMOD16_PLL_MODE_DIV_144        =          0x00000090UL, /* Divide by 144        */
   1210     TEFMOD16_PLL_MODE_DIV_147P2      =          0x33333093UL, /* Divide by 147.2      */
   1211     TEFMOD16_PLL_MODE_DIV_158P4      =          0x6666609EUL, /* Divide by 158.4      */
   1212     TEFMOD16_PLL_MODE_DIV_160        =          0x000000A0UL, /* Divide by 160        */
   1213     TEFMOD16_PLL_MODE_DIV_165        =          0x000000A5UL, /* Divide by 165        */
   1214     TEFMOD16_PLL_MODE_DIV_168        =          0x000000A8UL, /* Divide by 168        */
   1215     TEFMOD16_PLL_MODE_DIV_175        =          0x000000AFUL, /* Divide by 175        */
   1216     TEFMOD16_PLL_MODE_DIV_180        =          0x000000B4UL, /* Divide by 180        */
   1217     TEFMOD16_PLL_MODE_DIV_184        =          0x000000B8UL, /* Divide by 184        */
   1218     TEFMOD16_PLL_MODE_DIV_192        =          0x000000C0UL, /* Divide by 192        */
   1219     TEFMOD16_PLL_MODE_DIV_198        =          0x000000C6UL, /* Divide by 198        */
   1220     TEFMOD16_PLL_MODE_DIV_200        =          0x000000C8UL, /* Divide by 200        */
   1221     TEFMOD16_PLL_MODE_DIV_224        =          0x000000E0UL, /* Divide by 224        */
   1222     TEFMOD16_PLL_MODE_DIV_240        =          0x000000F0UL, /* Divide by 240        */
   1223     TEFMOD16_PLL_MODE_DIV_264        =          0x00000108UL, /* Divide by 264        */
   1224     TEFMOD16_PLL_MODE_DIV_280        =          0x00000118UL  /* Divide by 280        */     
   1225 } tefmod16_pll_mode_type;
   1226 
   1227 
   1228 #endif /* _TSCFMOD16_ENUM_DEFINES_H */