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

pm8x50_private.h (15473B)


      1 /*
      2  *
      3  * 
      4  *
      5  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      6  * 
      7  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
      8  *
      9  *
     10  * Note: DO NOT INCLUDE THIS FILE IN ANY OTHER FILE OTHER THAN
     11  *       pm8x50.c
     12  */
     13 
     14 #ifndef _PM8X50_PRIVATE_H_
     15 #define _PM8X50_PRIVATE_H_
     16 
     17 /* portmod tsc interrupts type */
     18 typedef enum pm8x50_tsc_intr_type_e {
     19     pm8x50TscIntrEccNone,
     20     pm8x50TscIntrEcc1bErr,
     21     pm8x50TscIntrEcc1bErrRx1588400g = pm8x50TscIntrEcc1bErr,
     22     pm8x50TscIntrEcc1bErrRx1588Mpp1,
     23     pm8x50TscIntrEcc1bErrRx1588Mpp0,
     24     pm8x50TscIntrEcc1bErrTx1588400g,
     25     pm8x50TscIntrEcc1bErrTx1588Mpp1,
     26     pm8x50TscIntrEcc1bErrTx1588Mpp0,
     27     pm8x50TscIntrEcc1bErrUmTable,
     28     pm8x50TscIntrEcc1bErrAmTable,
     29     pm8x50TscIntrEcc1bErrSpeedTable,
     30     pm8x50TscIntrEcc1bErrDeskew,
     31     pm8x50TscIntrEcc1bErrRsfecRs400gMpp1,
     32     pm8x50TscIntrEcc1bErrRsfecRs400gMpp0,
     33     pm8x50TscIntrEcc1bErrRsfecRbufMpp1,
     34     pm8x50TscIntrEcc1bErrRsfecRbufMpp0,
     35     pm8x50TscIntrEcc1bErrBaseRFec,
     36     pm8x50TscIntrEcc1bErrCount = pm8x50TscIntrEcc1bErrBaseRFec,
     37     pm8x50TscIntrEcc2bErr,
     38     pm8x50TscIntrEcc2bErrRx1588400g = pm8x50TscIntrEcc2bErr,
     39     pm8x50TscIntrEcc2bErrRx1588Mpp1,
     40     pm8x50TscIntrEcc2bErrRx1588Mpp0,
     41     pm8x50TscIntrEcc2bErrTx1588400g,
     42     pm8x50TscIntrEcc2bErrTx1588Mpp1,
     43     pm8x50TscIntrEcc2bErrTx1588Mpp0,
     44     pm8x50TscIntrEcc2bErrUmTable,
     45     pm8x50TscIntrEcc2bErrAmTable,
     46     pm8x50TscIntrEcc2bErrSpdTable,
     47     pm8x50TscIntrEcc2bErrDeskew,
     48     pm8x50TscIntrEcc2bErrRsfecRs400gMpp1,
     49     pm8x50TscIntrEcc2bErrRsfecRs400gMpp0,
     50     pm8x50TscIntrEcc2bErrRsfecRbufMpp1,
     51     pm8x50TscIntrEcc2bErrRsfecRbufMpp0,
     52     pm8x50TscIntrEcc2bErrBaseRFec,
     53     pm8x50TscIntrEcc2bErrCount = pm8x50TscIntrEcc2bErrBaseRFec,
     54     pm8x50TscIntrEccCount
     55 }pm8x50_tsc_intr_type_t;
     56 
     57 
     58 /*
     59  * Macros to indicate the interrupt types(1-bit or 2-bit)
     60  * based on the register fields of the Portmacro.
     61  * CDPORT_TSC_INTR_STATUS,
     62  * TSC_ECC_1b_ERR - 15-bit field.
     63  * TSC_ECC_2b_ERR - 15-bit field.
     64  */
     65 #define PM8x50_TSC_ECC_1B_INTR     0x1
     66 #define PM8x50_TSC_ECC_2B_INTR     0x2
     67 
     68 
     69 /*
     70  * Each bit position in the register fields
     71  * TSC_ECC_2b_ERR, TSC_ECC_2b_ERR indicate
     72  * a TSC memory as under.
     73  * TSC_ECC_1b_ERR - 15-bit field.
     74  * TSC_ECC_2b_ERR - 15-bit field.
     75  *
     76  * bit 14: err_intr_en_rx_1588_400g
     77  * bit 13: err_intr_en_rx_1588_mpp1
     78  * bit 12: err_intr_en_rx_1588_mpp0
     79  * bit 11: err_intr_en_tx_1588_400g
     80  * bit 10: err_intr_en_tx_1588_mpp1
     81  * bit  9: err_intr_en_tx_1588_mpp0
     82  * bit  8: err_intr_en_um_tbl
     83  * bit  7: err_intr_en_am_tbl
     84  * bit  6: err_intr_en_spd_tbl
     85  * bit  5: err_intr_en_deskew
     86  * bit  4: err_intr_en_rsfec_rs400g_mpp1
     87  * bit  3: err_intr_en_rsfec_rs400g_mpp0
     88  * bit  2: err_intr_en_rsfec_rbuf_mpp1
     89  * bit  1: err_intr_en_rsfec_rbuf_mpp0
     90  * bit  0: err_intr_en_base_r_fec
     91  */
     92 /* Macros for 1-bit errors. */
     93 #define PM8x50_TSC_ECC_INTR_NONE                   0x0
     94 #define PM8x50_TSC_ECC_1B_INTR_RX_1588_400G        (1 << 14)
     95 #define PM8x50_TSC_ECC_1B_INTR_RX_1588_MPP1        (1 << 13)
     96 #define PM8x50_TSC_ECC_1B_INTR_RX_1588_MPP0        (1 << 12)
     97 #define PM8x50_TSC_ECC_1B_INTR_TX_1588_400G        (1 << 11)
     98 #define PM8x50_TSC_ECC_1B_INTR_TX_1588_MPP1        (1 << 10)
     99 #define PM8x50_TSC_ECC_1B_INTR_TX_1588_MPP0        (1 << 9)
    100 #define PM8x50_TSC_ECC_1B_INTR_UM_TABLE            (1 << 8)
    101 #define PM8x50_TSC_ECC_1B_INTR_AM_TABLE            (1 << 7)
    102 #define PM8x50_TSC_ECC_1B_INTR_SPEED_TABLE         (1 << 6)
    103 #define PM8x50_TSC_ECC_1B_INTR_DESKEW              (1 << 5)
    104 #define PM8x50_TSC_ECC_1B_INTR_RSFEC_400G_MPP1     (1 << 4)
    105 #define PM8x50_TSC_ECC_1B_INTR_RSFEC_400G_MPP0     (1 << 3)
    106 #define PM8x50_TSC_ECC_1B_INTR_RSFEC_RBUF_MPP1     (1 << 2)
    107 #define PM8x50_TSC_ECC_1B_INTR_RSFEC_RBUF_MPP0     (1 << 1)
    108 #define PM8x50_TSC_ECC_1B_INTR_BASE_R_FEC          (1 << 0)
    109 
    110 /* Macros for 2-bit errors. */
    111 #define PM8x50_TSC_ECC_2B_INTR_RX_1588_400G        (1 << 14)
    112 #define PM8x50_TSC_ECC_2B_INTR_RX_1588_MPP1        (1 << 13)
    113 #define PM8x50_TSC_ECC_2B_INTR_RX_1588_MPP0        (1 << 12)
    114 #define PM8x50_TSC_ECC_2B_INTR_TX_1588_400G        (1 << 11)
    115 #define PM8x50_TSC_ECC_2B_INTR_TX_1588_MPP1        (1 << 10)
    116 #define PM8x50_TSC_ECC_2B_INTR_TX_1588_MPP0        (1 << 9)
    117 #define PM8x50_TSC_ECC_2B_INTR_UM_TABLE            (1 << 8)
    118 #define PM8x50_TSC_ECC_2B_INTR_AM_TABLE            (1 << 7)
    119 #define PM8x50_TSC_ECC_2B_INTR_SPEED_TABLE         (1 << 6)
    120 #define PM8x50_TSC_ECC_2B_INTR_DESKEW              (1 << 5)
    121 #define PM8x50_TSC_ECC_2B_INTR_RSFEC_400G_MPP1     (1 << 4)
    122 #define PM8x50_TSC_ECC_2B_INTR_RSFEC_400G_MPP0     (1 << 3)
    123 #define PM8x50_TSC_ECC_2B_INTR_RSFEC_RBUF_MPP1     (1 << 2)
    124 #define PM8x50_TSC_ECC_2B_INTR_RSFEC_RBUF_MPP0     (1 << 1)
    125 #define PM8x50_TSC_ECC_2B_INTR_BASE_R_FEC          (1 << 0)
    126 
    127 #if 0
    128 /*!
    129  * PM8x50 TSC to phymod_phy_interrupt_type map.
    130  */
    131 typedef enum pm8x50_phymod_phy_interrupt_type_e {
    132      pm8x50PhymodIntrNone = 0x0,
    133      /**< RX 1588 400G ecc error */
    134      pm8x50PhymodIntrEccRx1588400g = phymodIntrEccRx1588400g,
    135      /**< RX 1588 Mpp1 ecc error */
    136      pm8x50PhymodIntrEccRx1588Mpp1 = phymodIntrEccRx1588Mpp1,
    137      /**< RX 1588 Mpp0 ecc error */
    138      pm8x50PhymodIntrEccRx1588Mpp0 = phymodIntrEccRx1588Mpp0,
    139      /**< TX 1588 400G ecc error */
    140      pm8x50PhymodIntrEccTx1588400g = phymodIntrEccTx1588400g,
    141      /**< TX 1588 Mpp1 ecc error */
    142      pm8x50PhymodIntrEccTx1588Mpp1 = phymodIntrEccTx1588Mpp1,
    143      /**< TX 1588 Mpp0 ecc error */
    144      pm8x50PhymodIntrEccTx1588Mpp0 = phymodIntrEccTx1588Mpp0,
    145      /**< UM table ecc error */
    146      pm8x50PhymodIntrEccUMTable = phymodIntrEccUMTable,
    147      /**< AM table ecc error */
    148      pm8x50PhymodIntrEccAMTable = phymodIntrEccAMTable,
    149      /**< Speed table ecc error */
    150      pm8x50PhymodIntrEccSpeedTable = phymodIntrEccSpeedTable,
    151      /**< Deskew ecc error */
    152      pm8x50PhymodIntrEccDeskew = phymodIntrEccDeskew,
    153      /**< Rsfec_Rs400g Mpp1 ecc error */
    154      pm8x50PhymodIntrEccRsfecRs400gMpp1 = phymodIntrEccRsFECRs400gMpp1,
    155      /**< Rsfec_Rs400g Mpp0 ecc error */
    156      pm8x50PhymodIntrEccRsfecRs400gMpp0 = phymodIntrEccRsFECRs400gMpp0,
    157      /**< RSFEC_RSBUF MPP1 ecc error */
    158      pm8x50PhymodIntrEccRsfecRbufMpp1 = phymodIntrEccRsFECRbufMpp1,
    159      /**< RSFEC_RSBUF MPP0 ecc error */
    160      pm8x50PhymodIntrEccRsfecRbufMpp0 = phymodIntrEccRsFECRbufMpp0,
    161      /**< BaseR FEC ecc error */
    162      pm8x50PhymodIntrEccBaseRFec = phymodIntrEccBaseRFEC,
    163      pm8x50PhymodIntrCount = phymodIntrCount
    164 } pm8x50_phymod_phy_interrupt_type_t;
    165 #endif
    166 
    167 typedef struct pm8x50_tsc_err_intr_phymod_map_e{
    168     uint32  flags;
    169     phymod_interrupt_type_t phymod_intr_map;
    170     char    *str;
    171 }pm8x50_tsc_err_intr_phymod_map_t;
    172 
    173 pm8x50_tsc_err_intr_phymod_map_t
    174          pm8x50_tsc_ecc_intr_info [pm8x50TscIntrEccCount] = {
    175     {
    176         PM8x50_TSC_ECC_INTR_NONE,
    177         phymodIntrNone,
    178         "Interrupt none" 
    179     },
    180     {
    181         PM8x50_TSC_ECC_1B_INTR_RX_1588_400G,
    182         phymodIntrEccRx1588400g,
    183         "1-bit RX 1588 400G ecc error"
    184     },
    185     {
    186         PM8x50_TSC_ECC_1B_INTR_RX_1588_MPP1,
    187         phymodIntrEccRx1588Mpp1,
    188         "1-bit RX 1588 Mpp1 ecc error"
    189     },
    190     {
    191         PM8x50_TSC_ECC_1B_INTR_RX_1588_MPP0,
    192         phymodIntrEccRx1588Mpp0,
    193         "1-bit RX 1588 Mpp0 ecc error"
    194     },
    195     {
    196         PM8x50_TSC_ECC_1B_INTR_TX_1588_400G,
    197         phymodIntrEccTx1588400g,
    198         "1-bit TX 1588 400G ecc error"
    199     },
    200     {
    201         PM8x50_TSC_ECC_1B_INTR_TX_1588_MPP1,
    202         phymodIntrEccTx1588Mpp1,
    203         "1-bit TX 1588 Mpp1 ecc error"
    204     },
    205     {
    206         PM8x50_TSC_ECC_1B_INTR_TX_1588_MPP0,
    207         phymodIntrEccTx1588Mpp0,
    208         "1-bit TX 1588 Mpp0 ecc error"
    209     },
    210     {
    211         PM8x50_TSC_ECC_1B_INTR_UM_TABLE,
    212         phymodIntrEccUMTable,
    213         "1-bit Unique Marker table ecc error"
    214     },
    215     {
    216         PM8x50_TSC_ECC_1B_INTR_AM_TABLE,
    217         phymodIntrEccAMTable,
    218         "1-bit Alignment Marker table ecc error"
    219     },
    220     {
    221         PM8x50_TSC_ECC_1B_INTR_SPEED_TABLE,
    222         phymodIntrEccSpeedTable,
    223         "1-bit Speed table ecc error"
    224     },
    225     {
    226         PM8x50_TSC_ECC_1B_INTR_DESKEW,
    227         phymodIntrEccDeskew,
    228         "1-bit Deskew ecc error"
    229     },
    230     {
    231         PM8x50_TSC_ECC_1B_INTR_RSFEC_400G_MPP1,
    232         phymodIntrEccRsFECRs400gMpp1,
    233         "1-bit RsFEC_Rs400g Mpp1 ecc error"
    234     },
    235     {
    236         PM8x50_TSC_ECC_1B_INTR_RSFEC_400G_MPP0,
    237         phymodIntrEccRsFECRs400gMpp0,
    238         "1-bit RsFEC_Rs400g Mpp1 ecc error"
    239     },
    240     {
    241         PM8x50_TSC_ECC_1B_INTR_RSFEC_RBUF_MPP1,
    242         phymodIntrEccRsFECRbufMpp1,
    243         "1-bit RsFEC_RBUF MPP1 ecc error"
    244     },
    245     {
    246         PM8x50_TSC_ECC_1B_INTR_RSFEC_RBUF_MPP0,
    247         phymodIntrEccRsFECRbufMpp0,
    248         "1-bit RsFEC_RBUF MPP0 ecc error"
    249     },
    250     {
    251         PM8x50_TSC_ECC_1B_INTR_BASE_R_FEC,
    252         phymodIntrEccBaseRFEC,
    253         "1-bit BaseR FEC ecc error"
    254     },
    255     {
    256         PM8x50_TSC_ECC_2B_INTR_RX_1588_400G,
    257         phymodIntrEccRx1588400g,
    258         "2-bit RX 1588 400G ecc error"
    259     },
    260     {
    261         PM8x50_TSC_ECC_2B_INTR_RX_1588_MPP1,
    262         phymodIntrEccRx1588Mpp1,
    263         "2-bit RX 1588 Mpp1 ecc error"
    264     },
    265     {
    266         PM8x50_TSC_ECC_2B_INTR_RX_1588_MPP0,
    267         phymodIntrEccRx1588Mpp0,
    268         "2-bit RX 1588 Mpp0 ecc error"
    269     },
    270     {
    271         PM8x50_TSC_ECC_2B_INTR_TX_1588_400G,
    272         phymodIntrEccTx1588400g,
    273         "2-bit TX 1588 400G ecc error"
    274     },
    275     {
    276         PM8x50_TSC_ECC_2B_INTR_TX_1588_MPP1,
    277         phymodIntrEccTx1588Mpp1,
    278         "2-bit TX 1588 Mpp1 ecc error"
    279     },
    280     {
    281         PM8x50_TSC_ECC_2B_INTR_TX_1588_MPP0,
    282         phymodIntrEccTx1588Mpp0,
    283         "2-bit TX 1588 Mpp0 ecc error"
    284     },
    285     {
    286         PM8x50_TSC_ECC_2B_INTR_UM_TABLE,
    287         phymodIntrEccUMTable,
    288         "2-bit Unique Marker table ecc error"
    289     },
    290     {
    291         PM8x50_TSC_ECC_2B_INTR_AM_TABLE,
    292         phymodIntrEccAMTable,
    293         "2-bit Alignment Marker table ecc error"
    294     },
    295     {
    296         PM8x50_TSC_ECC_2B_INTR_SPEED_TABLE,
    297         phymodIntrEccSpeedTable,
    298         "2-bit Speed table ecc error"
    299     },
    300     {
    301         PM8x50_TSC_ECC_2B_INTR_DESKEW,
    302         phymodIntrEccDeskew,
    303         "2-bit Deskew ecc error"
    304     },
    305     {
    306         PM8x50_TSC_ECC_2B_INTR_RSFEC_400G_MPP1,
    307         phymodIntrEccRsFECRs400gMpp1,
    308         "2-bit RsFEC_Rs400g Mpp1 ecc error"
    309     },
    310     {
    311         PM8x50_TSC_ECC_2B_INTR_RSFEC_400G_MPP0,
    312         phymodIntrEccRsFECRs400gMpp0,
    313         "2-bit RsFEC_Rs400g Mpp1 ecc error"
    314     },
    315     {
    316         PM8x50_TSC_ECC_2B_INTR_RSFEC_RBUF_MPP1,
    317         phymodIntrEccRsFECRbufMpp1,
    318         "2-bit RsFEC_RBUF MPP1 ecc error"
    319     },
    320     {
    321         PM8x50_TSC_ECC_2B_INTR_RSFEC_RBUF_MPP0,
    322         phymodIntrEccRsFECRbufMpp0,
    323         "2-bit RsFEC_RBUF MPP0 ecc error"
    324     },
    325     {
    326         PM8x50_TSC_ECC_2B_INTR_BASE_R_FEC,
    327         phymodIntrEccBaseRFEC,
    328         "2-bit BaseR FEC ecc error"
    329      }
    330 };
    331 
    332 portmod_intr_reg_info_t pm8x50_mac_intr_info[] = {
    333     {
    334         PORTMOD_INTR_STATUS_COR | PORTMOD_INTR_BLOCK_CLEAR_REG |
    335         PORTMOD_INTR_ECC_1B_ERR,
    336         portmodIntrTypeMibMemSingleBitErr,
    337         CDMAC_INTR_ENABLEr, MIB_COUNTER_SINGLE_BIT_ERRf,
    338         CDMAC_INTR_STATUSr, MIB_COUNTER_SINGLE_BIT_ERRf,
    339         CDMAC_ECC_STATUSr, MIB_COUNTER_SINGLE_BIT_ERRf,
    340         "CDMAC MIB single bit error"
    341     },
    342     {
    343         PORTMOD_INTR_STATUS_COR | PORTMOD_INTR_BLOCK_CLEAR_REG |
    344         PORTMOD_INTR_ECC_2B_ERR,
    345         portmodIntrTypeMibMemDoubleBitErr,
    346         CDMAC_INTR_ENABLEr, MIB_COUNTER_DOUBLE_BIT_ERRf,
    347         CDMAC_INTR_STATUSr, MIB_COUNTER_DOUBLE_BIT_ERRf,
    348         CDMAC_ECC_STATUSr, MIB_COUNTER_DOUBLE_BIT_ERRf,
    349         "CDMAC MIB double bit error"
    350     },
    351     {
    352         PORTMOD_INTR_STATUS_COR | PORTMOD_INTR_BLOCK_CLEAR_REG |
    353         PORTMOD_INTR_ECC_MULTIB_ERR,
    354         portmodIntrTypeMibMemMultipleBitErr,
    355         CDMAC_INTR_ENABLEr, MIB_COUNTER_MULTIPLE_ERRf,
    356         CDMAC_INTR_STATUSr, MIB_COUNTER_MULTIPLE_ERRf,
    357         CDMAC_ECC_STATUSr, MIB_COUNTER_MULTIPLE_ERRf,
    358         "CDMAC MIB Multiple bit error"
    359     },
    360     {
    361         PORTMOD_INTR_STATUS_COR | PORTMOD_INTR_BLOCK_CLEAR_REG |
    362         PORTMOD_INTR_ECC_1B_ERR,
    363         portmodIntrTypeTxCdcSingleBitErr,
    364         CDMAC_INTR_ENABLEr, TX_CDC_SINGLE_BIT_ERRf,
    365         CDMAC_INTR_STATUSr, TX_CDC_SINGLE_BIT_ERRf,
    366         CDMAC_ECC_STATUSr, TX_CDC_SINGLE_BIT_ERRf,
    367         "CDMAC TX CDC single bit error"
    368     },
    369     {
    370         PORTMOD_INTR_STATUS_COR | PORTMOD_INTR_BLOCK_CLEAR_REG |
    371         PORTMOD_INTR_ECC_1B_ERR,
    372         portmodIntrTypeTxCdcDoubleBitErr,
    373         CDMAC_INTR_ENABLEr, TX_CDC_DOUBLE_BIT_ERRf,
    374         CDMAC_INTR_STATUSr, TX_CDC_DOUBLE_BIT_ERRf,
    375         CDMAC_ECC_STATUSr, TX_CDC_DOUBLE_BIT_ERRf,
    376         "CDMAC TX CDC double bit error"
    377     },
    378     {
    379         PORTMOD_INTR_STATUS_COR | PORTMOD_INTR_BLOCK_CLEAR_REG,
    380         portmodIntrTypeTxPktUnderflow,
    381         CDMAC_INTR_ENABLEr, TX_PKT_UNDERFLOWf,
    382         CDMAC_INTR_STATUSr, TX_PKT_UNDERFLOWf,
    383         CDMAC_INTR_STATUSr, TX_PKT_UNDERFLOWf,
    384         "CDMAC TX packet underflow interrupt"
    385     },
    386     {
    387         PORTMOD_INTR_STATUS_COR | PORTMOD_INTR_BLOCK_CLEAR_REG,
    388         portmodIntrTypeTxPktOverflow,
    389         CDMAC_INTR_ENABLEr, TX_PKT_OVERFLOWf,
    390         CDMAC_INTR_STATUSr, TX_PKT_OVERFLOWf,
    391         CDMAC_INTR_STATUSr, TX_PKT_OVERFLOWf,
    392         "CDMAC TX packet overflow interrupt"
    393     },
    394     {
    395         0x0, /* No flags */
    396         portmodIntrTypeCount,
    397         INVALIDr, INVALIDf,
    398         INVALIDr, INVALIDf,
    399         INVALIDr, INVALIDf,
    400         " "
    401     }
    402 };
    403 
    404 portmod_intr_reg_info_t pm8x50_tsc_core_intr_info[] = {
    405     {
    406         PORTMOD_INTR_STATUS_W1TC | PORTMOD_INTR_STATUS_BIT_FLDS |
    407         PORTMOD_INTR_ECC_2B_ERR,
    408         portmodIntrTypeTscCore0Err,
    409         INVALIDr, INVALIDf,
    410         CDPORT_TSC_INTR_STATUSr, TSC_ECC_2B_ERRf,
    411         INVALIDr, INVALIDf,
    412         " "
    413     },
    414     {
    415         PORTMOD_INTR_STATUS_W1TC | PORTMOD_INTR_STATUS_BIT_FLDS |
    416         PORTMOD_INTR_ECC_1B_ERR,
    417         portmodIntrTypeTscCore0Err,
    418         INVALIDr, INVALIDf,
    419         CDPORT_TSC_INTR_STATUSr, TSC_ECC_1B_ERRf,
    420         INVALIDr, INVALIDf,
    421         " "
    422     }
    423 };
    424 
    425 portmod_pm_intr_info_t pm8x50_pm_intr_info[] = {
    426     {
    427         portmodIntrTypeMacErr, CDPORT_INTR_ENABLEr, MAC_ERRf,
    428         1, pm8x50_mac_intr_info,
    429         CDPORT_INTR_STATUSr, MAC_ERRf,
    430         1, pm8x50_mac_intr_info,
    431         INVALIDr, INVALIDf,
    432         0, NULL,
    433         INVALIDm, "PM MAC error interrupt"
    434     },
    435     {
    436         portmodIntrTypeTscCore0Err, CDPORT_INTR_ENABLEr, TSC_CORE0_ERRf,
    437         1, pm8x50_tsc_core_intr_info,
    438         CDPORT_INTR_STATUSr, TSC_CORE0_ERRf,
    439         1, pm8x50_tsc_core_intr_info,
    440         INVALIDr, INVALIDf,
    441         0, NULL,
    442         INVALIDm, "PM TSC Core0 error interrupt"
    443     },
    444     {
    445         portmodIntrTypeTscCore1Err, CDPORT_INTR_ENABLEr, TSC_CORE1_ERRf,
    446         1, pm8x50_tsc_core_intr_info,
    447         CDPORT_INTR_STATUSr, TSC_CORE1_ERRf,
    448         1, pm8x50_tsc_core_intr_info,
    449         INVALIDr, INVALIDf,
    450         0, NULL,
    451         INVALIDm, "PM TSC Core1 error interrupt"
    452     },
    453     {
    454         portmodIntrTypeFcReqFull, CDPORT_INTR_ENABLEr, FLOWCONTROL_REQ_FULLf,
    455         0, NULL,
    456         CDPORT_INTR_STATUSr, FLOWCONTROL_REQ_FULLf,
    457         0, NULL,
    458         INVALIDr, INVALIDf,
    459         0, NULL,
    460         INVALIDm, "PM Flow cotrol request interrupt"
    461     },
    462     {
    463         portmodIntrTypePmdErr, CDPORT_INTR_ENABLEr, PMD_ERRf,
    464         0, NULL,
    465         CDPORT_INTR_STATUSr, PMD_ERRf,
    466         0, NULL,
    467         INVALIDr, INVALIDf,
    468         0, NULL,
    469         INVALIDm, "PM PMD error interrupt"
    470     }
    471 };
    472 
    473 #endif /*_PM8X50_PRIVATE_H_*/