1 /* 2 * Copyright (c) 2024 Microchip Technology Inc. 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef _MEC5_I2C_SMB_V3_7_H 7 #define _MEC5_I2C_SMB_V3_7_H 8 9 /** @addtogroup Device_Peripheral_peripherals 10 * @{ 11 */ 12 /** 13 * @brief I2C Controller with SMBus network layer (MEC_I2C_SMB0) 14 */ 15 16 typedef struct mec_i2c_smb_regs { /*!< (@ 0x40004000) MEC_I2C_SMB0 Structure */ 17 18 union { 19 __OM uint8_t CTRL; /*!< (@ 0x00000000) I2C mode Control(WO) */ 20 __IM uint8_t STATUS; /*!< (@ 0x00000000) I2C mode Status(RO) */ 21 }; 22 __IM uint8_t RESERVED; 23 __IM uint16_t RESERVED1; 24 __IOM uint32_t OWN_ADDR; /*!< (@ 0x00000004) I2C own addresses */ 25 __IOM uint8_t DATA; /*!< (@ 0x00000008) I2C mode data */ 26 __IM uint8_t RESERVED2; 27 __IM uint16_t RESERVED3; 28 __IOM uint32_t CM_CMD; /*!< (@ 0x0000000C) I2C-SMB Network layer Controller-mode command */ 29 __IOM uint32_t TM_CMD; /*!< (@ 0x00000010) I2C-SMB Network layer Target-mode command */ 30 __IOM uint8_t PEC; /*!< (@ 0x00000014) I2C-SMB PEC */ 31 __IM uint8_t RESERVED4; 32 __IM uint16_t RESERVED5; 33 __IOM uint32_t RSHT; /*!< (@ 0x00000018) I2C-SMB Repeat Start Hold time */ 34 __IOM uint32_t EXTLEN; /*!< (@ 0x0000001C) I2C-SMB Network layer extended lengths */ 35 __IOM uint32_t COMPL; /*!< (@ 0x00000020) I2C-SMB Completion */ 36 __IOM uint32_t IDLESC; /*!< (@ 0x00000024) I2C-SMB Idle scaling */ 37 __IOM uint32_t CONFIG; /*!< (@ 0x00000028) I2C-SMB Configuration */ 38 __IOM uint32_t BUSCLK; /*!< (@ 0x0000002C) I2C-SMB Bus Clock */ 39 __IOM uint32_t BLKID; /*!< (@ 0x00000030) I2C-SMB Block ID(RO) */ 40 __IOM uint32_t BLKREV; /*!< (@ 0x00000034) I2C-SMB Block Revision(RO) */ 41 __IOM uint8_t BBCTRL; /*!< (@ 0x00000038) I2C-SMB Bit-Bang Control */ 42 __IM uint8_t RESERVED6; 43 __IM uint16_t RESERVED7; 44 __IOM uint32_t MCHPR3C; /*!< (@ 0x0000003C) I2C-SMB MCHP Reserved at offset 0x3c */ 45 __IOM uint32_t DATATM; /*!< (@ 0x00000040) I2C-SMB Data timing */ 46 __IOM uint32_t TMOUTSC; /*!< (@ 0x00000044) I2C-SMB Data Timeout scaling */ 47 __IOM uint8_t TM_TXB; /*!< (@ 0x00000048) Target mode TX buffer */ 48 __IM uint8_t RESERVED8; 49 __IM uint16_t RESERVED9; 50 __IOM uint8_t TM_RXB; /*!< (@ 0x0000004C) Target mode RX buffer */ 51 __IM uint8_t RESERVED10; 52 __IM uint16_t RESERVED11; 53 __IOM uint8_t CM_TXB; /*!< (@ 0x00000050) Controller mode TX buffer */ 54 __IM uint8_t RESERVED12; 55 __IM uint16_t RESERVED13; 56 __IOM uint8_t CM_RXB; /*!< (@ 0x00000054) Controller mode RX buffer */ 57 __IM uint8_t RESERVED14; 58 __IM uint16_t RESERVED15; 59 __IM uint32_t FSM_I2C; /*!< (@ 0x00000058) I2C FSM(RO) */ 60 __IM uint32_t FSM_SNL; /*!< (@ 0x0000005C) I2C SMB Network Layer FSM(RO) */ 61 __IOM uint32_t WAKE_STS; /*!< (@ 0x00000060) I2C Wake Status */ 62 __IOM uint32_t WAKE_EN; /*!< (@ 0x00000064) I2C Wake Enable */ 63 __IOM uint32_t FAST_RSYNC; /*!< (@ 0x00000068) I2C Fast re-sync */ 64 __IOM uint32_t SHAD_ADDR; /*!< (@ 0x0000006C) Capture of I2C address received from external 65 controller */ 66 __IOM uint32_t PROM_ARS; /*!< (@ 0x00000070) Promiscuous mode address captured status */ 67 __IOM uint32_t PROM_IEN; /*!< (@ 0x00000074) Promiscuous mode interrupt enable */ 68 __IOM uint32_t PROM_CTRL; /*!< (@ 0x00000078) Promiscuous mode control register */ 69 __IOM uint32_t SHAD_DATA; /*!< (@ 0x0000007C) Capture of current I2C data tranmitted or received */ 70 } MEC_I2C_SMB_Type; /*!< Size = 128 (0x80) */ 71 72 /** @} */ /* End of group Device_Peripheral_peripherals */ 73 74 /** @addtogroup PosMask_peripherals 75 * @{ 76 */ 77 /* ========================================================= CTRL ========================================================== */ 78 #define MEC_I2C_SMB_CTRL_ACK_Pos (0UL) /*!< ACK (Bit 0) */ 79 #define MEC_I2C_SMB_CTRL_ACK_Msk (0x1UL) /*!< ACK (Bitfield-Mask: 0x01) */ 80 #define MEC_I2C_SMB_CTRL_STO_Pos (1UL) /*!< STO (Bit 1) */ 81 #define MEC_I2C_SMB_CTRL_STO_Msk (0x2UL) /*!< STO (Bitfield-Mask: 0x01) */ 82 #define MEC_I2C_SMB_CTRL_STA_Pos (2UL) /*!< STA (Bit 2) */ 83 #define MEC_I2C_SMB_CTRL_STA_Msk (0x4UL) /*!< STA (Bitfield-Mask: 0x01) */ 84 #define MEC_I2C_SMB_CTRL_ENI_Pos (3UL) /*!< ENI (Bit 3) */ 85 #define MEC_I2C_SMB_CTRL_ENI_Msk (0x8UL) /*!< ENI (Bitfield-Mask: 0x01) */ 86 #define MEC_I2C_SMB_CTRL_ESO_Pos (6UL) /*!< ESO (Bit 6) */ 87 #define MEC_I2C_SMB_CTRL_ESO_Msk (0x40UL) /*!< ESO (Bitfield-Mask: 0x01) */ 88 #define MEC_I2C_SMB_CTRL_PIN_Pos (7UL) /*!< PIN (Bit 7) */ 89 #define MEC_I2C_SMB_CTRL_PIN_Msk (0x80UL) /*!< PIN (Bitfield-Mask: 0x01) */ 90 /* ======================================================== STATUS ========================================================= */ 91 #define MEC_I2C_SMB_STATUS_NBB_Pos (0UL) /*!< NBB (Bit 0) */ 92 #define MEC_I2C_SMB_STATUS_NBB_Msk (0x1UL) /*!< NBB (Bitfield-Mask: 0x01) */ 93 #define MEC_I2C_SMB_STATUS_LAB_Pos (1UL) /*!< LAB (Bit 1) */ 94 #define MEC_I2C_SMB_STATUS_LAB_Msk (0x2UL) /*!< LAB (Bitfield-Mask: 0x01) */ 95 #define MEC_I2C_SMB_STATUS_AAS_Pos (2UL) /*!< AAS (Bit 2) */ 96 #define MEC_I2C_SMB_STATUS_AAS_Msk (0x4UL) /*!< AAS (Bitfield-Mask: 0x01) */ 97 #define MEC_I2C_SMB_STATUS_LRB_Pos (3UL) /*!< LRB (Bit 3) */ 98 #define MEC_I2C_SMB_STATUS_LRB_Msk (0x8UL) /*!< LRB (Bitfield-Mask: 0x01) */ 99 #define MEC_I2C_SMB_STATUS_BER_Pos (4UL) /*!< BER (Bit 4) */ 100 #define MEC_I2C_SMB_STATUS_BER_Msk (0x10UL) /*!< BER (Bitfield-Mask: 0x01) */ 101 #define MEC_I2C_SMB_STATUS_STS_Pos (5UL) /*!< STS (Bit 5) */ 102 #define MEC_I2C_SMB_STATUS_STS_Msk (0x20UL) /*!< STS (Bitfield-Mask: 0x01) */ 103 #define MEC_I2C_SMB_STATUS_SAD_Pos (6UL) /*!< SAD (Bit 6) */ 104 #define MEC_I2C_SMB_STATUS_SAD_Msk (0x40UL) /*!< SAD (Bitfield-Mask: 0x01) */ 105 #define MEC_I2C_SMB_STATUS_PIN_Pos (7UL) /*!< PIN (Bit 7) */ 106 #define MEC_I2C_SMB_STATUS_PIN_Msk (0x80UL) /*!< PIN (Bitfield-Mask: 0x01) */ 107 /* ======================================================= OWN_ADDR ======================================================== */ 108 #define MEC_I2C_SMB_OWN_ADDR_OAD0_Pos (0UL) /*!< OAD0 (Bit 0) */ 109 #define MEC_I2C_SMB_OWN_ADDR_OAD0_Msk (0x7fUL) /*!< OAD0 (Bitfield-Mask: 0x7f) */ 110 #define MEC_I2C_SMB_OWN_ADDR_OAD1_Pos (8UL) /*!< OAD1 (Bit 8) */ 111 #define MEC_I2C_SMB_OWN_ADDR_OAD1_Msk (0x7f00UL) /*!< OAD1 (Bitfield-Mask: 0x7f) */ 112 /* ========================================================= DATA ========================================================== */ 113 /* ======================================================== CM_CMD ========================================================= */ 114 #define MEC_I2C_SMB_CM_CMD_MRUN_Pos (0UL) /*!< MRUN (Bit 0) */ 115 #define MEC_I2C_SMB_CM_CMD_MRUN_Msk (0x1UL) /*!< MRUN (Bitfield-Mask: 0x01) */ 116 #define MEC_I2C_SMB_CM_CMD_MPROCEED_Pos (1UL) /*!< MPROCEED (Bit 1) */ 117 #define MEC_I2C_SMB_CM_CMD_MPROCEED_Msk (0x2UL) /*!< MPROCEED (Bitfield-Mask: 0x01) */ 118 #define MEC_I2C_SMB_CM_CMD_START0_Pos (8UL) /*!< START0 (Bit 8) */ 119 #define MEC_I2C_SMB_CM_CMD_START0_Msk (0x100UL) /*!< START0 (Bitfield-Mask: 0x01) */ 120 #define MEC_I2C_SMB_CM_CMD_STARTN_Pos (9UL) /*!< STARTN (Bit 9) */ 121 #define MEC_I2C_SMB_CM_CMD_STARTN_Msk (0x200UL) /*!< STARTN (Bitfield-Mask: 0x01) */ 122 #define MEC_I2C_SMB_CM_CMD_STOP_Pos (10UL) /*!< STOP (Bit 10) */ 123 #define MEC_I2C_SMB_CM_CMD_STOP_Msk (0x400UL) /*!< STOP (Bitfield-Mask: 0x01) */ 124 #define MEC_I2C_SMB_CM_CMD_PEC_TERM_Pos (11UL) /*!< PEC_TERM (Bit 11) */ 125 #define MEC_I2C_SMB_CM_CMD_PEC_TERM_Msk (0x800UL) /*!< PEC_TERM (Bitfield-Mask: 0x01) */ 126 #define MEC_I2C_SMB_CM_CMD_READM_Pos (12UL) /*!< READM (Bit 12) */ 127 #define MEC_I2C_SMB_CM_CMD_READM_Msk (0x1000UL) /*!< READM (Bitfield-Mask: 0x01) */ 128 #define MEC_I2C_SMB_CM_CMD_READ_PEC_Pos (13UL) /*!< READ_PEC (Bit 13) */ 129 #define MEC_I2C_SMB_CM_CMD_READ_PEC_Msk (0x2000UL) /*!< READ_PEC (Bitfield-Mask: 0x01) */ 130 #define MEC_I2C_SMB_CM_CMD_WRCNT_LSB_Pos (16UL) /*!< WRCNT_LSB (Bit 16) */ 131 #define MEC_I2C_SMB_CM_CMD_WRCNT_LSB_Msk (0xff0000UL) /*!< WRCNT_LSB (Bitfield-Mask: 0xff) */ 132 #define MEC_I2C_SMB_CM_CMD_RDCNT_LSB_Pos (24UL) /*!< RDCNT_LSB (Bit 24) */ 133 #define MEC_I2C_SMB_CM_CMD_RDCNT_LSB_Msk (0xff000000UL) /*!< RDCNT_LSB (Bitfield-Mask: 0xff) */ 134 /* ======================================================== TM_CMD ========================================================= */ 135 #define MEC_I2C_SMB_TM_CMD_SRUN_Pos (0UL) /*!< SRUN (Bit 0) */ 136 #define MEC_I2C_SMB_TM_CMD_SRUN_Msk (0x1UL) /*!< SRUN (Bitfield-Mask: 0x01) */ 137 #define MEC_I2C_SMB_TM_CMD_SPROCEED_Pos (1UL) /*!< SPROCEED (Bit 1) */ 138 #define MEC_I2C_SMB_TM_CMD_SPROCEED_Msk (0x2UL) /*!< SPROCEED (Bitfield-Mask: 0x01) */ 139 #define MEC_I2C_SMB_TM_CMD_TX_PEC_Pos (2UL) /*!< TX_PEC (Bit 2) */ 140 #define MEC_I2C_SMB_TM_CMD_TX_PEC_Msk (0x4UL) /*!< TX_PEC (Bitfield-Mask: 0x01) */ 141 #define MEC_I2C_SMB_TM_CMD_WRCNT_LSB_Pos (16UL) /*!< WRCNT_LSB (Bit 16) */ 142 #define MEC_I2C_SMB_TM_CMD_WRCNT_LSB_Msk (0xff0000UL) /*!< WRCNT_LSB (Bitfield-Mask: 0xff) */ 143 #define MEC_I2C_SMB_TM_CMD_RDCNT_LSB_Pos (24UL) /*!< RDCNT_LSB (Bit 24) */ 144 #define MEC_I2C_SMB_TM_CMD_RDCNT_LSB_Msk (0xff000000UL) /*!< RDCNT_LSB (Bitfield-Mask: 0xff) */ 145 /* ========================================================== PEC ========================================================== */ 146 /* ========================================================= RSHT ========================================================== */ 147 /* ======================================================== EXTLEN ========================================================= */ 148 #define MEC_I2C_SMB_EXTLEN_WRCNT_MSB_Pos (0UL) /*!< WRCNT_MSB (Bit 0) */ 149 #define MEC_I2C_SMB_EXTLEN_WRCNT_MSB_Msk (0xffUL) /*!< WRCNT_MSB (Bitfield-Mask: 0xff) */ 150 #define MEC_I2C_SMB_EXTLEN_RDCNT_MSB_Pos (8UL) /*!< RDCNT_MSB (Bit 8) */ 151 #define MEC_I2C_SMB_EXTLEN_RDCNT_MSB_Msk (0xff00UL) /*!< RDCNT_MSB (Bitfield-Mask: 0xff) */ 152 /* ========================================================= COMPL ========================================================= */ 153 #define MEC_I2C_SMB_COMPL_DTEN_Pos (2UL) /*!< DTEN (Bit 2) */ 154 #define MEC_I2C_SMB_COMPL_DTEN_Msk (0x4UL) /*!< DTEN (Bitfield-Mask: 0x01) */ 155 #define MEC_I2C_SMB_COMPL_MCEN_Pos (3UL) /*!< MCEN (Bit 3) */ 156 #define MEC_I2C_SMB_COMPL_MCEN_Msk (0x8UL) /*!< MCEN (Bitfield-Mask: 0x01) */ 157 #define MEC_I2C_SMB_COMPL_SCEN_Pos (4UL) /*!< SCEN (Bit 4) */ 158 #define MEC_I2C_SMB_COMPL_SCEN_Msk (0x10UL) /*!< SCEN (Bitfield-Mask: 0x01) */ 159 #define MEC_I2C_SMB_COMPL_BIDEN_Pos (5UL) /*!< BIDEN (Bit 5) */ 160 #define MEC_I2C_SMB_COMPL_BIDEN_Msk (0x20UL) /*!< BIDEN (Bitfield-Mask: 0x01) */ 161 #define MEC_I2C_SMB_COMPL_TIMERR_Pos (6UL) /*!< TIMERR (Bit 6) */ 162 #define MEC_I2C_SMB_COMPL_TIMERR_Msk (0x40UL) /*!< TIMERR (Bitfield-Mask: 0x01) */ 163 #define MEC_I2C_SMB_COMPL_DTO_Pos (8UL) /*!< DTO (Bit 8) */ 164 #define MEC_I2C_SMB_COMPL_DTO_Msk (0x100UL) /*!< DTO (Bitfield-Mask: 0x01) */ 165 #define MEC_I2C_SMB_COMPL_MCTO_Pos (9UL) /*!< MCTO (Bit 9) */ 166 #define MEC_I2C_SMB_COMPL_MCTO_Msk (0x200UL) /*!< MCTO (Bitfield-Mask: 0x01) */ 167 #define MEC_I2C_SMB_COMPL_SCTO_Pos (10UL) /*!< SCTO (Bit 10) */ 168 #define MEC_I2C_SMB_COMPL_SCTO_Msk (0x400UL) /*!< SCTO (Bitfield-Mask: 0x01) */ 169 #define MEC_I2C_SMB_COMPL_CHDL_Pos (11UL) /*!< CHDL (Bit 11) */ 170 #define MEC_I2C_SMB_COMPL_CHDL_Msk (0x800UL) /*!< CHDL (Bitfield-Mask: 0x01) */ 171 #define MEC_I2C_SMB_COMPL_CHDH_Pos (12UL) /*!< CHDH (Bit 12) */ 172 #define MEC_I2C_SMB_COMPL_CHDH_Msk (0x1000UL) /*!< CHDH (Bitfield-Mask: 0x01) */ 173 #define MEC_I2C_SMB_COMPL_BUSERR_Pos (13UL) /*!< BUSERR (Bit 13) */ 174 #define MEC_I2C_SMB_COMPL_BUSERR_Msk (0x2000UL) /*!< BUSERR (Bitfield-Mask: 0x01) */ 175 #define MEC_I2C_SMB_COMPL_LABSTS_Pos (14UL) /*!< LABSTS (Bit 14) */ 176 #define MEC_I2C_SMB_COMPL_LABSTS_Msk (0x4000UL) /*!< LABSTS (Bitfield-Mask: 0x01) */ 177 #define MEC_I2C_SMB_COMPL_SNAKR_Pos (16UL) /*!< SNAKR (Bit 16) */ 178 #define MEC_I2C_SMB_COMPL_SNAKR_Msk (0x10000UL) /*!< SNAKR (Bitfield-Mask: 0x01) */ 179 #define MEC_I2C_SMB_COMPL_STR_Pos (17UL) /*!< STR (Bit 17) */ 180 #define MEC_I2C_SMB_COMPL_STR_Msk (0x20000UL) /*!< STR (Bitfield-Mask: 0x01) */ 181 #define MEC_I2C_SMB_COMPL_SPROT_Pos (19UL) /*!< SPROT (Bit 19) */ 182 #define MEC_I2C_SMB_COMPL_SPROT_Msk (0x80000UL) /*!< SPROT (Bitfield-Mask: 0x01) */ 183 #define MEC_I2C_SMB_COMPL_RPTRD_Pos (20UL) /*!< RPTRD (Bit 20) */ 184 #define MEC_I2C_SMB_COMPL_RPTRD_Msk (0x100000UL) /*!< RPTRD (Bitfield-Mask: 0x01) */ 185 #define MEC_I2C_SMB_COMPL_RPTWR_Pos (21UL) /*!< RPTWR (Bit 21) */ 186 #define MEC_I2C_SMB_COMPL_RPTWR_Msk (0x200000UL) /*!< RPTWR (Bitfield-Mask: 0x01) */ 187 #define MEC_I2C_SMB_COMPL_MNAKX_Pos (24UL) /*!< MNAKX (Bit 24) */ 188 #define MEC_I2C_SMB_COMPL_MNAKX_Msk (0x1000000UL) /*!< MNAKX (Bitfield-Mask: 0x01) */ 189 #define MEC_I2C_SMB_COMPL_MTR_Pos (25UL) /*!< MTR (Bit 25) */ 190 #define MEC_I2C_SMB_COMPL_MTR_Msk (0x2000000UL) /*!< MTR (Bitfield-Mask: 0x01) */ 191 #define MEC_I2C_SMB_COMPL_IDLE_Pos (29UL) /*!< IDLE (Bit 29) */ 192 #define MEC_I2C_SMB_COMPL_IDLE_Msk (0x20000000UL) /*!< IDLE (Bitfield-Mask: 0x01) */ 193 #define MEC_I2C_SMB_COMPL_MDONE_Pos (30UL) /*!< MDONE (Bit 30) */ 194 #define MEC_I2C_SMB_COMPL_MDONE_Msk (0x40000000UL) /*!< MDONE (Bitfield-Mask: 0x01) */ 195 #define MEC_I2C_SMB_COMPL_SDONE_Pos (31UL) /*!< SDONE (Bit 31) */ 196 #define MEC_I2C_SMB_COMPL_SDONE_Msk (0x80000000UL) /*!< SDONE (Bitfield-Mask: 0x01) */ 197 /* ======================================================== IDLESC ========================================================= */ 198 #define MEC_I2C_SMB_IDLESC_FBIM_Pos (0UL) /*!< FBIM (Bit 0) */ 199 #define MEC_I2C_SMB_IDLESC_FBIM_Msk (0xfffUL) /*!< FBIM (Bitfield-Mask: 0xfff) */ 200 #define MEC_I2C_SMB_IDLESC_FIDLY_Pos (16UL) /*!< FIDLY (Bit 16) */ 201 #define MEC_I2C_SMB_IDLESC_FIDLY_Msk (0xfff0000UL) /*!< FIDLY (Bitfield-Mask: 0xfff) */ 202 /* ======================================================== CONFIG ========================================================= */ 203 #define MEC_I2C_SMB_CONFIG_PORT_SEL_Pos (0UL) /*!< PORT_SEL (Bit 0) */ 204 #define MEC_I2C_SMB_CONFIG_PORT_SEL_Msk (0xfUL) /*!< PORT_SEL (Bitfield-Mask: 0x0f) */ 205 #define MEC_I2C_SMB_CONFIG_TCEN_Pos (4UL) /*!< TCEN (Bit 4) */ 206 #define MEC_I2C_SMB_CONFIG_TCEN_Msk (0x10UL) /*!< TCEN (Bitfield-Mask: 0x01) */ 207 #define MEC_I2C_SMB_CONFIG_SLOW_CLK_Pos (5UL) /*!< SLOW_CLK (Bit 5) */ 208 #define MEC_I2C_SMB_CONFIG_SLOW_CLK_Msk (0x20UL) /*!< SLOW_CLK (Bitfield-Mask: 0x01) */ 209 #define MEC_I2C_SMB_CONFIG_PCEN_Pos (7UL) /*!< PCEN (Bit 7) */ 210 #define MEC_I2C_SMB_CONFIG_PCEN_Msk (0x80UL) /*!< PCEN (Bitfield-Mask: 0x01) */ 211 #define MEC_I2C_SMB_CONFIG_FEN_Pos (8UL) /*!< FEN (Bit 8) */ 212 #define MEC_I2C_SMB_CONFIG_FEN_Msk (0x100UL) /*!< FEN (Bitfield-Mask: 0x01) */ 213 #define MEC_I2C_SMB_CONFIG_RESET_Pos (9UL) /*!< RESET (Bit 9) */ 214 #define MEC_I2C_SMB_CONFIG_RESET_Msk (0x200UL) /*!< RESET (Bitfield-Mask: 0x01) */ 215 #define MEC_I2C_SMB_CONFIG_ENAB_Pos (10UL) /*!< ENAB (Bit 10) */ 216 #define MEC_I2C_SMB_CONFIG_ENAB_Msk (0x400UL) /*!< ENAB (Bitfield-Mask: 0x01) */ 217 #define MEC_I2C_SMB_CONFIG_DSA_Pos (11UL) /*!< DSA (Bit 11) */ 218 #define MEC_I2C_SMB_CONFIG_DSA_Msk (0x800UL) /*!< DSA (Bitfield-Mask: 0x01) */ 219 #define MEC_I2C_SMB_CONFIG_MCTP_FEN_Pos (12UL) /*!< MCTP_FEN (Bit 12) */ 220 #define MEC_I2C_SMB_CONFIG_MCTP_FEN_Msk (0x1000UL) /*!< MCTP_FEN (Bitfield-Mask: 0x01) */ 221 #define MEC_I2C_SMB_CONFIG_GC_DIS_Pos (14UL) /*!< GC_DIS (Bit 14) */ 222 #define MEC_I2C_SMB_CONFIG_GC_DIS_Msk (0x4000UL) /*!< GC_DIS (Bitfield-Mask: 0x01) */ 223 #define MEC_I2C_SMB_CONFIG_PROMEN_Pos (15UL) /*!< PROMEN (Bit 15) */ 224 #define MEC_I2C_SMB_CONFIG_PROMEN_Msk (0x8000UL) /*!< PROMEN (Bitfield-Mask: 0x01) */ 225 #define MEC_I2C_SMB_CONFIG_FLUSH_TM_TXB_Pos (16UL) /*!< FLUSH_TM_TXB (Bit 16) */ 226 #define MEC_I2C_SMB_CONFIG_FLUSH_TM_TXB_Msk (0x10000UL) /*!< FLUSH_TM_TXB (Bitfield-Mask: 0x01) */ 227 #define MEC_I2C_SMB_CONFIG_FLUSH_TM_RXB_Pos (17UL) /*!< FLUSH_TM_RXB (Bit 17) */ 228 #define MEC_I2C_SMB_CONFIG_FLUSH_TM_RXB_Msk (0x20000UL) /*!< FLUSH_TM_RXB (Bitfield-Mask: 0x01) */ 229 #define MEC_I2C_SMB_CONFIG_FLUSH_CTXB_Pos (18UL) /*!< FLUSH_CTXB (Bit 18) */ 230 #define MEC_I2C_SMB_CONFIG_FLUSH_CTXB_Msk (0x40000UL) /*!< FLUSH_CTXB (Bitfield-Mask: 0x01) */ 231 #define MEC_I2C_SMB_CONFIG_FLUSH_CRXB_Pos (19UL) /*!< FLUSH_CRXB (Bit 19) */ 232 #define MEC_I2C_SMB_CONFIG_FLUSH_CRXB_Msk (0x80000UL) /*!< FLUSH_CRXB (Bitfield-Mask: 0x01) */ 233 #define MEC_I2C_SMB_CONFIG_ENI_AAS_Pos (28UL) /*!< ENI_AAS (Bit 28) */ 234 #define MEC_I2C_SMB_CONFIG_ENI_AAS_Msk (0x10000000UL) /*!< ENI_AAS (Bitfield-Mask: 0x01) */ 235 #define MEC_I2C_SMB_CONFIG_ENI_IDLE_Pos (29UL) /*!< ENI_IDLE (Bit 29) */ 236 #define MEC_I2C_SMB_CONFIG_ENI_IDLE_Msk (0x20000000UL) /*!< ENI_IDLE (Bitfield-Mask: 0x01) */ 237 #define MEC_I2C_SMB_CONFIG_ENMI_Pos (30UL) /*!< ENMI (Bit 30) */ 238 #define MEC_I2C_SMB_CONFIG_ENMI_Msk (0x40000000UL) /*!< ENMI (Bitfield-Mask: 0x01) */ 239 #define MEC_I2C_SMB_CONFIG_ENSI_Pos (31UL) /*!< ENSI (Bit 31) */ 240 #define MEC_I2C_SMB_CONFIG_ENSI_Msk (0x80000000UL) /*!< ENSI (Bitfield-Mask: 0x01) */ 241 /* ======================================================== BUSCLK ========================================================= */ 242 #define MEC_I2C_SMB_BUSCLK_LOPER_Pos (0UL) /*!< LOPER (Bit 0) */ 243 #define MEC_I2C_SMB_BUSCLK_LOPER_Msk (0xffUL) /*!< LOPER (Bitfield-Mask: 0xff) */ 244 #define MEC_I2C_SMB_BUSCLK_HIPER_Pos (8UL) /*!< HIPER (Bit 8) */ 245 #define MEC_I2C_SMB_BUSCLK_HIPER_Msk (0xff00UL) /*!< HIPER (Bitfield-Mask: 0xff) */ 246 /* ========================================================= BLKID ========================================================= */ 247 /* ======================================================== BLKREV ========================================================= */ 248 /* ======================================================== BBCTRL ========================================================= */ 249 #define MEC_I2C_SMB_BBCTRL_BBEN_Pos (0UL) /*!< BBEN (Bit 0) */ 250 #define MEC_I2C_SMB_BBCTRL_BBEN_Msk (0x1UL) /*!< BBEN (Bitfield-Mask: 0x01) */ 251 #define MEC_I2C_SMB_BBCTRL_CLDIR_Pos (1UL) /*!< CLDIR (Bit 1) */ 252 #define MEC_I2C_SMB_BBCTRL_CLDIR_Msk (0x2UL) /*!< CLDIR (Bitfield-Mask: 0x01) */ 253 #define MEC_I2C_SMB_BBCTRL_DADIR_Pos (2UL) /*!< DADIR (Bit 2) */ 254 #define MEC_I2C_SMB_BBCTRL_DADIR_Msk (0x4UL) /*!< DADIR (Bitfield-Mask: 0x01) */ 255 #define MEC_I2C_SMB_BBCTRL_BBCLK_Pos (3UL) /*!< BBCLK (Bit 3) */ 256 #define MEC_I2C_SMB_BBCTRL_BBCLK_Msk (0x8UL) /*!< BBCLK (Bitfield-Mask: 0x01) */ 257 #define MEC_I2C_SMB_BBCTRL_BBDAT_Pos (4UL) /*!< BBDAT (Bit 4) */ 258 #define MEC_I2C_SMB_BBCTRL_BBDAT_Msk (0x10UL) /*!< BBDAT (Bitfield-Mask: 0x01) */ 259 #define MEC_I2C_SMB_BBCTRL_BBCLKI_Pos (5UL) /*!< BBCLKI (Bit 5) */ 260 #define MEC_I2C_SMB_BBCTRL_BBCLKI_Msk (0x20UL) /*!< BBCLKI (Bitfield-Mask: 0x01) */ 261 #define MEC_I2C_SMB_BBCTRL_BBDATI_Pos (6UL) /*!< BBDATI (Bit 6) */ 262 #define MEC_I2C_SMB_BBCTRL_BBDATI_Msk (0x40UL) /*!< BBDATI (Bitfield-Mask: 0x01) */ 263 /* ======================================================== MCHPR3C ======================================================== */ 264 /* ======================================================== DATATM ========================================================= */ 265 #define MEC_I2C_SMB_DATATM_DHOLD_Pos (0UL) /*!< DHOLD (Bit 0) */ 266 #define MEC_I2C_SMB_DATATM_DHOLD_Msk (0xffUL) /*!< DHOLD (Bitfield-Mask: 0xff) */ 267 #define MEC_I2C_SMB_DATATM_RSS_Pos (8UL) /*!< RSS (Bit 8) */ 268 #define MEC_I2C_SMB_DATATM_RSS_Msk (0xff00UL) /*!< RSS (Bitfield-Mask: 0xff) */ 269 #define MEC_I2C_SMB_DATATM_STPS_Pos (16UL) /*!< STPS (Bit 16) */ 270 #define MEC_I2C_SMB_DATATM_STPS_Msk (0xff0000UL) /*!< STPS (Bitfield-Mask: 0xff) */ 271 #define MEC_I2C_SMB_DATATM_FSHLD_Pos (24UL) /*!< FSHLD (Bit 24) */ 272 #define MEC_I2C_SMB_DATATM_FSHLD_Msk (0xff000000UL) /*!< FSHLD (Bitfield-Mask: 0xff) */ 273 /* ======================================================== TMOUTSC ======================================================== */ 274 #define MEC_I2C_SMB_TMOUTSC_CHTO_Pos (0UL) /*!< CHTO (Bit 0) */ 275 #define MEC_I2C_SMB_TMOUTSC_CHTO_Msk (0xffUL) /*!< CHTO (Bitfield-Mask: 0xff) */ 276 #define MEC_I2C_SMB_TMOUTSC_DCTO_Pos (8UL) /*!< DCTO (Bit 8) */ 277 #define MEC_I2C_SMB_TMOUTSC_DCTO_Msk (0xff00UL) /*!< DCTO (Bitfield-Mask: 0xff) */ 278 #define MEC_I2C_SMB_TMOUTSC_CCTO_Pos (16UL) /*!< CCTO (Bit 16) */ 279 #define MEC_I2C_SMB_TMOUTSC_CCTO_Msk (0xff0000UL) /*!< CCTO (Bitfield-Mask: 0xff) */ 280 #define MEC_I2C_SMB_TMOUTSC_BIMIN_Pos (24UL) /*!< BIMIN (Bit 24) */ 281 #define MEC_I2C_SMB_TMOUTSC_BIMIN_Msk (0xff000000UL) /*!< BIMIN (Bitfield-Mask: 0xff) */ 282 /* ======================================================== TM_TXB ========================================================= */ 283 /* ======================================================== TM_RXB ========================================================= */ 284 /* ======================================================== CM_TXB ========================================================= */ 285 /* ======================================================== CM_RXB ========================================================= */ 286 /* ======================================================== FSM_I2C ======================================================== */ 287 #define MEC_I2C_SMB_FSM_I2C_CM_STATE_Pos (0UL) /*!< CM_STATE (Bit 0) */ 288 #define MEC_I2C_SMB_FSM_I2C_CM_STATE_Msk (0xffUL) /*!< CM_STATE (Bitfield-Mask: 0xff) */ 289 #define MEC_I2C_SMB_FSM_I2C_TM_STATE_Pos (8UL) /*!< TM_STATE (Bit 8) */ 290 #define MEC_I2C_SMB_FSM_I2C_TM_STATE_Msk (0xff00UL) /*!< TM_STATE (Bitfield-Mask: 0xff) */ 291 #define MEC_I2C_SMB_FSM_I2C_PHY_STATE_Pos (16UL) /*!< PHY_STATE (Bit 16) */ 292 #define MEC_I2C_SMB_FSM_I2C_PHY_STATE_Msk (0xf0000UL) /*!< PHY_STATE (Bitfield-Mask: 0x0f) */ 293 #define MEC_I2C_SMB_FSM_I2C_CM_CTO_Pos (20UL) /*!< CM_CTO (Bit 20) */ 294 #define MEC_I2C_SMB_FSM_I2C_CM_CTO_Msk (0xf00000UL) /*!< CM_CTO (Bitfield-Mask: 0x0f) */ 295 #define MEC_I2C_SMB_FSM_I2C_TM_CTO_Pos (24UL) /*!< TM_CTO (Bit 24) */ 296 #define MEC_I2C_SMB_FSM_I2C_TM_CTO_Msk (0x1f000000UL) /*!< TM_CTO (Bitfield-Mask: 0x1f) */ 297 #define MEC_I2C_SMB_FSM_I2C_CM_BI_Pos (29UL) /*!< CM_BI (Bit 29) */ 298 #define MEC_I2C_SMB_FSM_I2C_CM_BI_Msk (0xe0000000UL) /*!< CM_BI (Bitfield-Mask: 0x07) */ 299 /* ======================================================== FSM_SNL ======================================================== */ 300 #define MEC_I2C_SMB_FSM_SNL_CM_STATE_Pos (0UL) /*!< CM_STATE (Bit 0) */ 301 #define MEC_I2C_SMB_FSM_SNL_CM_STATE_Msk (0xffUL) /*!< CM_STATE (Bitfield-Mask: 0xff) */ 302 #define MEC_I2C_SMB_FSM_SNL_TM_STATE_Pos (8UL) /*!< TM_STATE (Bit 8) */ 303 #define MEC_I2C_SMB_FSM_SNL_TM_STATE_Msk (0xff00UL) /*!< TM_STATE (Bitfield-Mask: 0xff) */ 304 #define MEC_I2C_SMB_FSM_SNL_MCTP_FAIR_Pos (16UL) /*!< MCTP_FAIR (Bit 16) */ 305 #define MEC_I2C_SMB_FSM_SNL_MCTP_FAIR_Msk (0xff0000UL) /*!< MCTP_FAIR (Bitfield-Mask: 0xff) */ 306 /* ======================================================= WAKE_STS ======================================================== */ 307 #define MEC_I2C_SMB_WAKE_STS_START_DET_Pos (0UL) /*!< START_DET (Bit 0) */ 308 #define MEC_I2C_SMB_WAKE_STS_START_DET_Msk (0x1UL) /*!< START_DET (Bitfield-Mask: 0x01) */ 309 /* ======================================================== WAKE_EN ======================================================== */ 310 #define MEC_I2C_SMB_WAKE_EN_START_DET_Pos (0UL) /*!< START_DET (Bit 0) */ 311 #define MEC_I2C_SMB_WAKE_EN_START_DET_Msk (0x1UL) /*!< START_DET (Bitfield-Mask: 0x01) */ 312 /* ====================================================== FAST_RSYNC ======================================================= */ 313 /* ======================================================= SHAD_ADDR ======================================================= */ 314 /* ======================================================= PROM_ARS ======================================================== */ 315 #define MEC_I2C_SMB_PROM_ARS_ARSTS_Pos (0UL) /*!< ARSTS (Bit 0) */ 316 #define MEC_I2C_SMB_PROM_ARS_ARSTS_Msk (0x1UL) /*!< ARSTS (Bitfield-Mask: 0x01) */ 317 /* ======================================================= PROM_IEN ======================================================== */ 318 #define MEC_I2C_SMB_PROM_IEN_ARI_Pos (0UL) /*!< ARI (Bit 0) */ 319 #define MEC_I2C_SMB_PROM_IEN_ARI_Msk (0x1UL) /*!< ARI (Bitfield-Mask: 0x01) */ 320 /* ======================================================= PROM_CTRL ======================================================= */ 321 #define MEC_I2C_SMB_PROM_CTRL_ARACK_Pos (0UL) /*!< ARACK (Bit 0) */ 322 #define MEC_I2C_SMB_PROM_CTRL_ARACK_Msk (0x1UL) /*!< ARACK (Bitfield-Mask: 0x01) */ 323 324 /** @} */ /* End of group PosMask_peripherals */ 325 326 /** @addtogroup EnumValue_peripherals 327 * @{ 328 */ 329 /* ========================================================= CTRL ========================================================== */ 330 /* ============================================= MEC_I2C_SMB0 CTRL ACK [0..0] ============================================== */ 331 typedef enum { /*!< MEC_I2C_SMB0_CTRL_ACK */ 332 MEC_I2C_SMB0_CTRL_ACK_EN = 1, /*!< EN : Generate ACK for addresses matching OWN addresses */ 333 } MEC_I2C_SMB0_CTRL_ACK_Enum; 334 335 /* ============================================= MEC_I2C_SMB0 CTRL STO [1..1] ============================================== */ 336 typedef enum { /*!< MEC_I2C_SMB0_CTRL_STO */ 337 MEC_I2C_SMB0_CTRL_STO_EN = 1, /*!< EN : Generate I2C STOP */ 338 } MEC_I2C_SMB0_CTRL_STO_Enum; 339 340 /* ============================================= MEC_I2C_SMB0 CTRL STA [2..2] ============================================== */ 341 typedef enum { /*!< MEC_I2C_SMB0_CTRL_STA */ 342 MEC_I2C_SMB0_CTRL_STA_EN = 1, /*!< EN : Generate I2C START */ 343 } MEC_I2C_SMB0_CTRL_STA_Enum; 344 345 /* ============================================= MEC_I2C_SMB0 CTRL ENI [3..3] ============================================== */ 346 typedef enum { /*!< MEC_I2C_SMB0_CTRL_ENI */ 347 MEC_I2C_SMB0_CTRL_ENI_EN = 1, /*!< EN : Enable interrupt when PIN bit asserts(active low) */ 348 } MEC_I2C_SMB0_CTRL_ENI_Enum; 349 350 /* ============================================= MEC_I2C_SMB0 CTRL ESO [6..6] ============================================== */ 351 typedef enum { /*!< MEC_I2C_SMB0_CTRL_ESO */ 352 MEC_I2C_SMB0_CTRL_ESO_EN = 1, /*!< EN : Enable SDA pin output */ 353 } MEC_I2C_SMB0_CTRL_ESO_Enum; 354 355 /* ============================================= MEC_I2C_SMB0 CTRL PIN [7..7] ============================================== */ 356 typedef enum { /*!< MEC_I2C_SMB0_CTRL_PIN */ 357 MEC_I2C_SMB0_CTRL_PIN_EN = 1, /*!< EN : Clear I2C status except NBB */ 358 } MEC_I2C_SMB0_CTRL_PIN_Enum; 359 360 /* ======================================================== STATUS ========================================================= */ 361 /* ============================================ MEC_I2C_SMB0 STATUS NBB [0..0] ============================================= */ 362 typedef enum { /*!< MEC_I2C_SMB0_STATUS_NBB */ 363 MEC_I2C_SMB0_STATUS_NBB_ACTIVE = 1, /*!< ACTIVE : Not Bus Busy is active */ 364 } MEC_I2C_SMB0_STATUS_NBB_Enum; 365 366 /* ============================================ MEC_I2C_SMB0 STATUS LAB [1..1] ============================================= */ 367 typedef enum { /*!< MEC_I2C_SMB0_STATUS_LAB */ 368 MEC_I2C_SMB0_STATUS_LAB_ACTIVE = 1, /*!< ACTIVE : Lost bus arbitration status is active */ 369 } MEC_I2C_SMB0_STATUS_LAB_Enum; 370 371 /* ============================================ MEC_I2C_SMB0 STATUS AAS [2..2] ============================================= */ 372 typedef enum { /*!< MEC_I2C_SMB0_STATUS_AAS */ 373 MEC_I2C_SMB0_STATUS_AAS_ACTIVE = 1, /*!< ACTIVE : Addresses as device status is active */ 374 } MEC_I2C_SMB0_STATUS_AAS_Enum; 375 376 /* ============================================ MEC_I2C_SMB0 STATUS LRB [3..3] ============================================= */ 377 typedef enum { /*!< MEC_I2C_SMB0_STATUS_LRB */ 378 MEC_I2C_SMB0_STATUS_LRB_HI = 1, /*!< HI : Last receive state is High */ 379 } MEC_I2C_SMB0_STATUS_LRB_Enum; 380 381 /* ============================================ MEC_I2C_SMB0 STATUS BER [4..4] ============================================= */ 382 typedef enum { /*!< MEC_I2C_SMB0_STATUS_BER */ 383 MEC_I2C_SMB0_STATUS_BER_ACTIVE = 1, /*!< ACTIVE : Bus Error status is active */ 384 } MEC_I2C_SMB0_STATUS_BER_Enum; 385 386 /* ============================================ MEC_I2C_SMB0 STATUS STS [5..5] ============================================= */ 387 typedef enum { /*!< MEC_I2C_SMB0_STATUS_STS */ 388 MEC_I2C_SMB0_STATUS_STS_ACTIVE = 1, /*!< ACTIVE : Externally generated STOP detected status is active */ 389 } MEC_I2C_SMB0_STATUS_STS_Enum; 390 391 /* ============================================ MEC_I2C_SMB0 STATUS SAD [6..6] ============================================= */ 392 typedef enum { /*!< MEC_I2C_SMB0_STATUS_SAD */ 393 MEC_I2C_SMB0_STATUS_SAD_ACTIVE = 1, /*!< ACTIVE : SMBus address detected */ 394 } MEC_I2C_SMB0_STATUS_SAD_Enum; 395 396 /* ============================================ MEC_I2C_SMB0 STATUS PIN [7..7] ============================================= */ 397 typedef enum { /*!< MEC_I2C_SMB0_STATUS_PIN */ 398 MEC_I2C_SMB0_STATUS_PIN_nACTIVE = 1, /*!< nACTIVE : Pending Interrupt is not active */ 399 } MEC_I2C_SMB0_STATUS_PIN_Enum; 400 401 /* ======================================================= OWN_ADDR ======================================================== */ 402 /* ========================================================= DATA ========================================================== */ 403 /* ======================================================== CM_CMD ========================================================= */ 404 /* ============================================ MEC_I2C_SMB0 CM_CMD MRUN [0..0] ============================================ */ 405 typedef enum { /*!< MEC_I2C_SMB0_CM_CMD_MRUN */ 406 MEC_I2C_SMB0_CM_CMD_MRUN_START = 1, /*!< START : Start controller mode network layer operation */ 407 } MEC_I2C_SMB0_CM_CMD_MRUN_Enum; 408 409 /* ========================================== MEC_I2C_SMB0 CM_CMD MPROCEED [1..1] ========================================== */ 410 typedef enum { /*!< MEC_I2C_SMB0_CM_CMD_MPROCEED */ 411 MEC_I2C_SMB0_CM_CMD_MPROCEED_ON = 1, /*!< ON : Inform network layer FW has finished re-configure and HW 412 can continue */ 413 } MEC_I2C_SMB0_CM_CMD_MPROCEED_Enum; 414 415 /* =========================================== MEC_I2C_SMB0 CM_CMD START0 [8..8] =========================================== */ 416 typedef enum { /*!< MEC_I2C_SMB0_CM_CMD_START0 */ 417 MEC_I2C_SMB0_CM_CMD_START0_EN = 1, /*!< EN : Generate an I2C START when operation first initiated */ 418 } MEC_I2C_SMB0_CM_CMD_START0_Enum; 419 420 /* =========================================== MEC_I2C_SMB0 CM_CMD STARTN [9..9] =========================================== */ 421 typedef enum { /*!< MEC_I2C_SMB0_CM_CMD_STARTN */ 422 MEC_I2C_SMB0_CM_CMD_STARTN_EN = 1, /*!< EN : Generate an I2C START before last byte of write count */ 423 } MEC_I2C_SMB0_CM_CMD_STARTN_Enum; 424 425 /* =========================================== MEC_I2C_SMB0 CM_CMD STOP [10..10] =========================================== */ 426 typedef enum { /*!< MEC_I2C_SMB0_CM_CMD_STOP */ 427 MEC_I2C_SMB0_CM_CMD_STOP_EN = 1, /*!< EN : Generate an I2C STOP after write and read counts are both 428 0 */ 429 } MEC_I2C_SMB0_CM_CMD_STOP_Enum; 430 431 /* ========================================= MEC_I2C_SMB0 CM_CMD PEC_TERM [11..11] ========================================= */ 432 typedef enum { /*!< MEC_I2C_SMB0_CM_CMD_PEC_TERM */ 433 MEC_I2C_SMB0_CM_CMD_PEC_TERM_EN = 1, /*!< EN : Transmit PEC after write data is transmitted */ 434 } MEC_I2C_SMB0_CM_CMD_PEC_TERM_Enum; 435 436 /* ========================================== MEC_I2C_SMB0 CM_CMD READM [12..12] =========================================== */ 437 typedef enum { /*!< MEC_I2C_SMB0_CM_CMD_READM */ 438 MEC_I2C_SMB0_CM_CMD_READM_EN = 1, /*!< EN : Update read count with last read data value */ 439 } MEC_I2C_SMB0_CM_CMD_READM_Enum; 440 441 /* ========================================= MEC_I2C_SMB0 CM_CMD READ_PEC [13..13] ========================================= */ 442 typedef enum { /*!< MEC_I2C_SMB0_CM_CMD_READ_PEC */ 443 MEC_I2C_SMB0_CM_CMD_READ_PEC_EN = 1, /*!< EN : Read PEC byte from external device when read count reaches 444 0 */ 445 } MEC_I2C_SMB0_CM_CMD_READ_PEC_Enum; 446 447 /* ======================================================== TM_CMD ========================================================= */ 448 /* ============================================ MEC_I2C_SMB0 TM_CMD SRUN [0..0] ============================================ */ 449 typedef enum { /*!< MEC_I2C_SMB0_TM_CMD_SRUN */ 450 MEC_I2C_SMB0_TM_CMD_SRUN_START = 1, /*!< START : Start device mode network layer operation */ 451 } MEC_I2C_SMB0_TM_CMD_SRUN_Enum; 452 453 /* ========================================== MEC_I2C_SMB0 TM_CMD SPROCEED [1..1] ========================================== */ 454 typedef enum { /*!< MEC_I2C_SMB0_TM_CMD_SPROCEED */ 455 MEC_I2C_SMB0_TM_CMD_SPROCEED_ON = 1, /*!< ON : Inform network layer FW has finished re-configure and HW 456 can continue */ 457 } MEC_I2C_SMB0_TM_CMD_SPROCEED_Enum; 458 459 /* =========================================== MEC_I2C_SMB0 TM_CMD TX_PEC [2..2] =========================================== */ 460 typedef enum { /*!< MEC_I2C_SMB0_TM_CMD_TX_PEC */ 461 MEC_I2C_SMB0_TM_CMD_TX_PEC_EN = 1, /*!< EN : Transmit PEC after all write data is transmitted */ 462 } MEC_I2C_SMB0_TM_CMD_TX_PEC_Enum; 463 464 /* ========================================================== PEC ========================================================== */ 465 /* ========================================================= RSHT ========================================================== */ 466 /* ======================================================== EXTLEN ========================================================= */ 467 /* ========================================================= COMPL ========================================================= */ 468 /* ============================================ MEC_I2C_SMB0 COMPL DTEN [2..2] ============================================= */ 469 typedef enum { /*!< MEC_I2C_SMB0_COMPL_DTEN */ 470 MEC_I2C_SMB0_COMPL_DTEN_ON = 1, /*!< ON : Enable */ 471 } MEC_I2C_SMB0_COMPL_DTEN_Enum; 472 473 /* ============================================ MEC_I2C_SMB0 COMPL MCEN [3..3] ============================================= */ 474 typedef enum { /*!< MEC_I2C_SMB0_COMPL_MCEN */ 475 MEC_I2C_SMB0_COMPL_MCEN_ON = 1, /*!< ON : Enable */ 476 } MEC_I2C_SMB0_COMPL_MCEN_Enum; 477 478 /* ============================================ MEC_I2C_SMB0 COMPL SCEN [4..4] ============================================= */ 479 typedef enum { /*!< MEC_I2C_SMB0_COMPL_SCEN */ 480 MEC_I2C_SMB0_COMPL_SCEN_ON = 1, /*!< ON : Enable */ 481 } MEC_I2C_SMB0_COMPL_SCEN_Enum; 482 483 /* ============================================ MEC_I2C_SMB0 COMPL BIDEN [5..5] ============================================ */ 484 typedef enum { /*!< MEC_I2C_SMB0_COMPL_BIDEN */ 485 MEC_I2C_SMB0_COMPL_BIDEN_ON = 1, /*!< ON : Enable */ 486 } MEC_I2C_SMB0_COMPL_BIDEN_Enum; 487 488 /* =========================================== MEC_I2C_SMB0 COMPL TIMERR [6..6] ============================================ */ 489 typedef enum { /*!< MEC_I2C_SMB0_COMPL_TIMERR */ 490 MEC_I2C_SMB0_COMPL_TIMERR_ACTIVE = 1, /*!< ACTIVE : Status active */ 491 } MEC_I2C_SMB0_COMPL_TIMERR_Enum; 492 493 /* ============================================= MEC_I2C_SMB0 COMPL DTO [8..8] ============================================= */ 494 typedef enum { /*!< MEC_I2C_SMB0_COMPL_DTO */ 495 MEC_I2C_SMB0_COMPL_DTO_ACTIVE = 1, /*!< ACTIVE : Status active */ 496 } MEC_I2C_SMB0_COMPL_DTO_Enum; 497 498 /* ============================================ MEC_I2C_SMB0 COMPL MCTO [9..9] ============================================= */ 499 typedef enum { /*!< MEC_I2C_SMB0_COMPL_MCTO */ 500 MEC_I2C_SMB0_COMPL_MCTO_ACTIVE = 1, /*!< ACTIVE : Status active */ 501 } MEC_I2C_SMB0_COMPL_MCTO_Enum; 502 503 /* =========================================== MEC_I2C_SMB0 COMPL SCTO [10..10] ============================================ */ 504 typedef enum { /*!< MEC_I2C_SMB0_COMPL_SCTO */ 505 MEC_I2C_SMB0_COMPL_SCTO_ACTIVE = 1, /*!< ACTIVE : Status active */ 506 } MEC_I2C_SMB0_COMPL_SCTO_Enum; 507 508 /* =========================================== MEC_I2C_SMB0 COMPL CHDL [11..11] ============================================ */ 509 typedef enum { /*!< MEC_I2C_SMB0_COMPL_CHDL */ 510 MEC_I2C_SMB0_COMPL_CHDL_ACTIVE = 1, /*!< ACTIVE : Status active */ 511 } MEC_I2C_SMB0_COMPL_CHDL_Enum; 512 513 /* =========================================== MEC_I2C_SMB0 COMPL CHDH [12..12] ============================================ */ 514 typedef enum { /*!< MEC_I2C_SMB0_COMPL_CHDH */ 515 MEC_I2C_SMB0_COMPL_CHDH_ACTIVE = 1, /*!< ACTIVE : Status active */ 516 } MEC_I2C_SMB0_COMPL_CHDH_Enum; 517 518 /* ========================================== MEC_I2C_SMB0 COMPL BUSERR [13..13] =========================================== */ 519 typedef enum { /*!< MEC_I2C_SMB0_COMPL_BUSERR */ 520 MEC_I2C_SMB0_COMPL_BUSERR_ACTIVE = 1, /*!< ACTIVE : Status active */ 521 } MEC_I2C_SMB0_COMPL_BUSERR_Enum; 522 523 /* ========================================== MEC_I2C_SMB0 COMPL LABSTS [14..14] =========================================== */ 524 typedef enum { /*!< MEC_I2C_SMB0_COMPL_LABSTS */ 525 MEC_I2C_SMB0_COMPL_LABSTS_ACTIVE = 1, /*!< ACTIVE : Status active */ 526 } MEC_I2C_SMB0_COMPL_LABSTS_Enum; 527 528 /* =========================================== MEC_I2C_SMB0 COMPL SNAKR [16..16] =========================================== */ 529 typedef enum { /*!< MEC_I2C_SMB0_COMPL_SNAKR */ 530 MEC_I2C_SMB0_COMPL_SNAKR_ACTIVE = 1, /*!< ACTIVE : Status active */ 531 } MEC_I2C_SMB0_COMPL_SNAKR_Enum; 532 533 /* ============================================ MEC_I2C_SMB0 COMPL STR [17..17] ============================================ */ 534 typedef enum { /*!< MEC_I2C_SMB0_COMPL_STR */ 535 MEC_I2C_SMB0_COMPL_STR_ACTIVE = 1, /*!< ACTIVE : Status active */ 536 } MEC_I2C_SMB0_COMPL_STR_Enum; 537 538 /* =========================================== MEC_I2C_SMB0 COMPL SPROT [19..19] =========================================== */ 539 typedef enum { /*!< MEC_I2C_SMB0_COMPL_SPROT */ 540 MEC_I2C_SMB0_COMPL_SPROT_ACTIVE = 1, /*!< ACTIVE : Status active */ 541 } MEC_I2C_SMB0_COMPL_SPROT_Enum; 542 543 /* =========================================== MEC_I2C_SMB0 COMPL RPTRD [20..20] =========================================== */ 544 typedef enum { /*!< MEC_I2C_SMB0_COMPL_RPTRD */ 545 MEC_I2C_SMB0_COMPL_RPTRD_ACTIVE = 1, /*!< ACTIVE : Status active */ 546 } MEC_I2C_SMB0_COMPL_RPTRD_Enum; 547 548 /* =========================================== MEC_I2C_SMB0 COMPL RPTWR [21..21] =========================================== */ 549 typedef enum { /*!< MEC_I2C_SMB0_COMPL_RPTWR */ 550 MEC_I2C_SMB0_COMPL_RPTWR_ACTIVE = 1, /*!< ACTIVE : Status active */ 551 } MEC_I2C_SMB0_COMPL_RPTWR_Enum; 552 553 /* =========================================== MEC_I2C_SMB0 COMPL MNAKX [24..24] =========================================== */ 554 typedef enum { /*!< MEC_I2C_SMB0_COMPL_MNAKX */ 555 MEC_I2C_SMB0_COMPL_MNAKX_ACTIVE = 1, /*!< ACTIVE : Status active */ 556 } MEC_I2C_SMB0_COMPL_MNAKX_Enum; 557 558 /* ============================================ MEC_I2C_SMB0 COMPL MTR [25..25] ============================================ */ 559 typedef enum { /*!< MEC_I2C_SMB0_COMPL_MTR */ 560 MEC_I2C_SMB0_COMPL_MTR_ACTIVE = 1, /*!< ACTIVE : Status active */ 561 } MEC_I2C_SMB0_COMPL_MTR_Enum; 562 563 /* =========================================== MEC_I2C_SMB0 COMPL IDLE [29..29] ============================================ */ 564 typedef enum { /*!< MEC_I2C_SMB0_COMPL_IDLE */ 565 MEC_I2C_SMB0_COMPL_IDLE_ACTIVE = 1, /*!< ACTIVE : Status active */ 566 } MEC_I2C_SMB0_COMPL_IDLE_Enum; 567 568 /* =========================================== MEC_I2C_SMB0 COMPL MDONE [30..30] =========================================== */ 569 typedef enum { /*!< MEC_I2C_SMB0_COMPL_MDONE */ 570 MEC_I2C_SMB0_COMPL_MDONE_ACTIVE = 1, /*!< ACTIVE : Status active */ 571 } MEC_I2C_SMB0_COMPL_MDONE_Enum; 572 573 /* =========================================== MEC_I2C_SMB0 COMPL SDONE [31..31] =========================================== */ 574 typedef enum { /*!< MEC_I2C_SMB0_COMPL_SDONE */ 575 MEC_I2C_SMB0_COMPL_SDONE_ACTIVE = 1, /*!< ACTIVE : Status active */ 576 } MEC_I2C_SMB0_COMPL_SDONE_Enum; 577 578 /* ======================================================== IDLESC ========================================================= */ 579 /* ======================================================== CONFIG ========================================================= */ 580 /* ========================================== MEC_I2C_SMB0 CONFIG PORT_SEL [0..3] ========================================== */ 581 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_PORT_SEL */ 582 MEC_I2C_SMB0_CONFIG_PORT_SEL_P0 = 0, /*!< P0 : Port 0 */ 583 MEC_I2C_SMB0_CONFIG_PORT_SEL_P1 = 1, /*!< P1 : Port 1 */ 584 MEC_I2C_SMB0_CONFIG_PORT_SEL_P2 = 2, /*!< P2 : Port 2 */ 585 MEC_I2C_SMB0_CONFIG_PORT_SEL_P3 = 3, /*!< P3 : Port 3 */ 586 MEC_I2C_SMB0_CONFIG_PORT_SEL_P4 = 4, /*!< P4 : Port 4 */ 587 MEC_I2C_SMB0_CONFIG_PORT_SEL_P5 = 5, /*!< P5 : Port 5 */ 588 MEC_I2C_SMB0_CONFIG_PORT_SEL_P6 = 6, /*!< P6 : Port 6 */ 589 MEC_I2C_SMB0_CONFIG_PORT_SEL_P7 = 7, /*!< P7 : Port 7 */ 590 MEC_I2C_SMB0_CONFIG_PORT_SEL_P8 = 8, /*!< P8 : Port 8 */ 591 MEC_I2C_SMB0_CONFIG_PORT_SEL_P9 = 9, /*!< P9 : Port 9 */ 592 MEC_I2C_SMB0_CONFIG_PORT_SEL_P10 = 10, /*!< P10 : Port 10 */ 593 MEC_I2C_SMB0_CONFIG_PORT_SEL_P11 = 11, /*!< P11 : Port 11 */ 594 MEC_I2C_SMB0_CONFIG_PORT_SEL_P12 = 12, /*!< P12 : Port 12 */ 595 MEC_I2C_SMB0_CONFIG_PORT_SEL_P13 = 13, /*!< P13 : Port 13 */ 596 MEC_I2C_SMB0_CONFIG_PORT_SEL_P14 = 14, /*!< P14 : Port 14 */ 597 MEC_I2C_SMB0_CONFIG_PORT_SEL_P15 = 15, /*!< P15 : Port 15 */ 598 } MEC_I2C_SMB0_CONFIG_PORT_SEL_Enum; 599 600 /* ============================================ MEC_I2C_SMB0 CONFIG TCEN [4..4] ============================================ */ 601 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_TCEN */ 602 MEC_I2C_SMB0_CONFIG_TCEN_ON = 1, /*!< ON : Enable */ 603 } MEC_I2C_SMB0_CONFIG_TCEN_Enum; 604 605 /* ========================================== MEC_I2C_SMB0 CONFIG SLOW_CLK [5..5] ========================================== */ 606 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_SLOW_CLK */ 607 MEC_I2C_SMB0_CONFIG_SLOW_CLK_EN = 1, /*!< EN : Enable */ 608 } MEC_I2C_SMB0_CONFIG_SLOW_CLK_Enum; 609 610 /* ============================================ MEC_I2C_SMB0 CONFIG PCEN [7..7] ============================================ */ 611 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_PCEN */ 612 MEC_I2C_SMB0_CONFIG_PCEN_ON = 1, /*!< ON : Enable */ 613 } MEC_I2C_SMB0_CONFIG_PCEN_Enum; 614 615 /* ============================================ MEC_I2C_SMB0 CONFIG FEN [8..8] ============================================= */ 616 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_FEN */ 617 MEC_I2C_SMB0_CONFIG_FEN_ON = 1, /*!< ON : Enable */ 618 } MEC_I2C_SMB0_CONFIG_FEN_Enum; 619 620 /* =========================================== MEC_I2C_SMB0 CONFIG RESET [9..9] ============================================ */ 621 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_RESET */ 622 MEC_I2C_SMB0_CONFIG_RESET_EN = 1, /*!< EN : Enable */ 623 } MEC_I2C_SMB0_CONFIG_RESET_Enum; 624 625 /* =========================================== MEC_I2C_SMB0 CONFIG ENAB [10..10] =========================================== */ 626 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_ENAB */ 627 MEC_I2C_SMB0_CONFIG_ENAB_ON = 1, /*!< ON : Enable */ 628 } MEC_I2C_SMB0_CONFIG_ENAB_Enum; 629 630 /* =========================================== MEC_I2C_SMB0 CONFIG DSA [11..11] ============================================ */ 631 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_DSA */ 632 MEC_I2C_SMB0_CONFIG_DSA_EN = 1, /*!< EN : Enable */ 633 } MEC_I2C_SMB0_CONFIG_DSA_Enum; 634 635 /* ========================================= MEC_I2C_SMB0 CONFIG MCTP_FEN [12..12] ========================================= */ 636 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_MCTP_FEN */ 637 MEC_I2C_SMB0_CONFIG_MCTP_FEN_ON = 1, /*!< ON : Enable */ 638 } MEC_I2C_SMB0_CONFIG_MCTP_FEN_Enum; 639 640 /* ========================================== MEC_I2C_SMB0 CONFIG GC_DIS [14..14] ========================================== */ 641 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_GC_DIS */ 642 MEC_I2C_SMB0_CONFIG_GC_DIS_ON = 1, /*!< ON : Enable */ 643 } MEC_I2C_SMB0_CONFIG_GC_DIS_Enum; 644 645 /* ========================================== MEC_I2C_SMB0 CONFIG PROMEN [15..15] ========================================== */ 646 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_PROMEN */ 647 MEC_I2C_SMB0_CONFIG_PROMEN_ON = 1, /*!< ON : Enable */ 648 } MEC_I2C_SMB0_CONFIG_PROMEN_Enum; 649 650 /* ======================================= MEC_I2C_SMB0 CONFIG FLUSH_TM_TXB [16..16] ======================================= */ 651 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_FLUSH_TM_TXB */ 652 MEC_I2C_SMB0_CONFIG_FLUSH_TM_TXB_EN = 1, /*!< EN : Enable */ 653 } MEC_I2C_SMB0_CONFIG_FLUSH_TM_TXB_Enum; 654 655 /* ======================================= MEC_I2C_SMB0 CONFIG FLUSH_TM_RXB [17..17] ======================================= */ 656 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_FLUSH_TM_RXB */ 657 MEC_I2C_SMB0_CONFIG_FLUSH_TM_RXB_EN = 1, /*!< EN : Enable */ 658 } MEC_I2C_SMB0_CONFIG_FLUSH_TM_RXB_Enum; 659 660 /* ======================================== MEC_I2C_SMB0 CONFIG FLUSH_CTXB [18..18] ======================================== */ 661 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_FLUSH_CTXB */ 662 MEC_I2C_SMB0_CONFIG_FLUSH_CTXB_EN = 1, /*!< EN : Enable */ 663 } MEC_I2C_SMB0_CONFIG_FLUSH_CTXB_Enum; 664 665 /* ======================================== MEC_I2C_SMB0 CONFIG FLUSH_CRXB [19..19] ======================================== */ 666 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_FLUSH_CRXB */ 667 MEC_I2C_SMB0_CONFIG_FLUSH_CRXB_EN = 1, /*!< EN : Enable */ 668 } MEC_I2C_SMB0_CONFIG_FLUSH_CRXB_Enum; 669 670 /* ========================================= MEC_I2C_SMB0 CONFIG ENI_AAS [28..28] ========================================== */ 671 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_ENI_AAS */ 672 MEC_I2C_SMB0_CONFIG_ENI_AAS_EN = 1, /*!< EN : Enable */ 673 } MEC_I2C_SMB0_CONFIG_ENI_AAS_Enum; 674 675 /* ========================================= MEC_I2C_SMB0 CONFIG ENI_IDLE [29..29] ========================================= */ 676 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_ENI_IDLE */ 677 MEC_I2C_SMB0_CONFIG_ENI_IDLE_EN = 1, /*!< EN : Enable */ 678 } MEC_I2C_SMB0_CONFIG_ENI_IDLE_Enum; 679 680 /* =========================================== MEC_I2C_SMB0 CONFIG ENMI [30..30] =========================================== */ 681 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_ENMI */ 682 MEC_I2C_SMB0_CONFIG_ENMI_EN = 1, /*!< EN : Enable */ 683 } MEC_I2C_SMB0_CONFIG_ENMI_Enum; 684 685 /* =========================================== MEC_I2C_SMB0 CONFIG ENSI [31..31] =========================================== */ 686 typedef enum { /*!< MEC_I2C_SMB0_CONFIG_ENSI */ 687 MEC_I2C_SMB0_CONFIG_ENSI_EN = 1, /*!< EN : Enable */ 688 } MEC_I2C_SMB0_CONFIG_ENSI_Enum; 689 690 /* ======================================================== BUSCLK ========================================================= */ 691 /* ========================================================= BLKID ========================================================= */ 692 /* ======================================================== BLKREV ========================================================= */ 693 /* ======================================================== BBCTRL ========================================================= */ 694 /* ============================================ MEC_I2C_SMB0 BBCTRL BBEN [0..0] ============================================ */ 695 typedef enum { /*!< MEC_I2C_SMB0_BBCTRL_BBEN */ 696 MEC_I2C_SMB0_BBCTRL_BBEN_ON = 1, /*!< ON : Enable */ 697 } MEC_I2C_SMB0_BBCTRL_BBEN_Enum; 698 699 /* =========================================== MEC_I2C_SMB0 BBCTRL CLDIR [1..1] ============================================ */ 700 typedef enum { /*!< MEC_I2C_SMB0_BBCTRL_CLDIR */ 701 MEC_I2C_SMB0_BBCTRL_CLDIR_OUT = 1, /*!< OUT : SCL pin is output(driven) otherwise tri-stated */ 702 } MEC_I2C_SMB0_BBCTRL_CLDIR_Enum; 703 704 /* =========================================== MEC_I2C_SMB0 BBCTRL DADIR [2..2] ============================================ */ 705 typedef enum { /*!< MEC_I2C_SMB0_BBCTRL_DADIR */ 706 MEC_I2C_SMB0_BBCTRL_DADIR_OUT = 1, /*!< OUT : SDA pin is output(driven) otherwise tri-stated */ 707 } MEC_I2C_SMB0_BBCTRL_DADIR_Enum; 708 709 /* =========================================== MEC_I2C_SMB0 BBCTRL BBCLK [3..3] ============================================ */ 710 typedef enum { /*!< MEC_I2C_SMB0_BBCTRL_BBCLK */ 711 MEC_I2C_SMB0_BBCTRL_BBCLK_HI = 1, /*!< HI : SCL pin output state is high */ 712 } MEC_I2C_SMB0_BBCTRL_BBCLK_Enum; 713 714 /* =========================================== MEC_I2C_SMB0 BBCTRL BBDAT [4..4] ============================================ */ 715 typedef enum { /*!< MEC_I2C_SMB0_BBCTRL_BBDAT */ 716 MEC_I2C_SMB0_BBCTRL_BBDAT_HI = 1, /*!< HI : SDA pin output state is high */ 717 } MEC_I2C_SMB0_BBCTRL_BBDAT_Enum; 718 719 /* =========================================== MEC_I2C_SMB0 BBCTRL BBCLKI [5..5] =========================================== */ 720 typedef enum { /*!< MEC_I2C_SMB0_BBCTRL_BBCLKI */ 721 MEC_I2C_SMB0_BBCTRL_BBCLKI_HI = 1, /*!< HI : SCL pin state read as high */ 722 } MEC_I2C_SMB0_BBCTRL_BBCLKI_Enum; 723 724 /* =========================================== MEC_I2C_SMB0 BBCTRL BBDATI [6..6] =========================================== */ 725 typedef enum { /*!< MEC_I2C_SMB0_BBCTRL_BBDATI */ 726 MEC_I2C_SMB0_BBCTRL_BBDATI_HI = 1, /*!< HI : SDA pin state read as high */ 727 } MEC_I2C_SMB0_BBCTRL_BBDATI_Enum; 728 729 /* ======================================================== MCHPR3C ======================================================== */ 730 /* ======================================================== DATATM ========================================================= */ 731 /* ======================================================== TMOUTSC ======================================================== */ 732 /* ======================================================== TM_TXB ========================================================= */ 733 /* ======================================================== TM_RXB ========================================================= */ 734 /* ======================================================== CM_TXB ========================================================= */ 735 /* ======================================================== CM_RXB ========================================================= */ 736 /* ======================================================== FSM_I2C ======================================================== */ 737 /* ========================================= MEC_I2C_SMB0 FSM_I2C CM_STATE [0..7] ========================================== */ 738 typedef enum { /*!< MEC_I2C_SMB0_FSM_I2C_CM_STATE */ 739 MEC_I2C_SMB0_FSM_I2C_CM_STATE_IDLE = 0, /*!< IDLE : CM in Idle state */ 740 MEC_I2C_SMB0_FSM_I2C_CM_STATE_W4_START = 1, /*!< W4_START : CM waiting on phy to complete START on pins */ 741 MEC_I2C_SMB0_FSM_I2C_CM_STATE_ADDR = 2, /*!< ADDR : CM target address transmit */ 742 MEC_I2C_SMB0_FSM_I2C_CM_STATE_CHK_ACK = 3, /*!< CHK_ACK : CM sample SDA on 9th clock for ACK state */ 743 MEC_I2C_SMB0_FSM_I2C_CM_STATE_RX_DATA = 4, /*!< RX_DATA : CM generate clocks and sample SDA for data from target */ 744 MEC_I2C_SMB0_FSM_I2C_CM_STATE_RX_DATA_ACK = 5,/*!< RX_DATA_ACK : CM generate ACK/NACK on 9th clock */ 745 MEC_I2C_SMB0_FSM_I2C_CM_STATE_TX = 6, /*!< TX : CM generate clocks and shift data onto SDA */ 746 MEC_I2C_SMB0_FSM_I2C_CM_STATE_TX_ACK = 7, /*!< TX_ACK : CM generate 9th clock and sample SDA for ACK/NACK from 747 target */ 748 MEC_I2C_SMB0_FSM_I2C_CM_STATE_WAIT_ACK = 8, /*!< WAIT_ACK : CM wait for ACK if target clock stretching */ 749 MEC_I2C_SMB0_FSM_I2C_CM_STATE_W4_STOP = 9, /*!< W4_STOP : CM wait for phy to complete STOP signalling */ 750 MEC_I2C_SMB0_FSM_I2C_CM_STATE_LOST_ARB = 10, /*!< LOST_ARB : CM lost arbitration */ 751 MEC_I2C_SMB0_FSM_I2C_CM_STATE_LOST_ARB_SR = 11,/*!< LOST_ARB_SR : CM lost arbitration SR */ 752 MEC_I2C_SMB0_FSM_I2C_CM_STATE_LOST_ARB_SR_D1 = 12,/*!< LOST_ARB_SR_D1 : CM lost arbitration SRD1 */ 753 MEC_I2C_SMB0_FSM_I2C_CM_STATE_LOST_ARB_SR_D2 = 13,/*!< LOST_ARB_SR_D2 : CM lost arbitration SRD2 */ 754 MEC_I2C_SMB0_FSM_I2C_CM_STATE_W4_START_HOLD = 14,/*!< W4_START_HOLD : CM enforce delay after STOP before issuing another 755 START */ 756 } MEC_I2C_SMB0_FSM_I2C_CM_STATE_Enum; 757 758 /* ========================================= MEC_I2C_SMB0 FSM_I2C TM_STATE [8..15] ========================================= */ 759 typedef enum { /*!< MEC_I2C_SMB0_FSM_I2C_TM_STATE */ 760 MEC_I2C_SMB0_FSM_I2C_TM_STATE_IDLE = 0, /*!< IDLE : TM FSM idle */ 761 MEC_I2C_SMB0_FSM_I2C_TM_STATE_HDR_ACK = 1, /*!< HDR_ACK : TM ACK/NACK address from external Controller */ 762 MEC_I2C_SMB0_FSM_I2C_TM_STATE_TX_DATA = 2, /*!< TX_DATA : TM transmit data on SDA to external controller */ 763 MEC_I2C_SMB0_FSM_I2C_TM_STATE_WAIT_ACK = 3, /*!< WAIT_ACK : TM wait for 9th clock ACK/NACK from external controller */ 764 MEC_I2C_SMB0_FSM_I2C_TM_STATE_RX_DATA = 4, /*!< RX_DATA : TM samples data on SDA from external controller */ 765 MEC_I2C_SMB0_FSM_I2C_TM_STATE_ACK_DATA = 5, /*!< ACK_DATA : TM ACK/NACK data received from external controller */ 766 } MEC_I2C_SMB0_FSM_I2C_TM_STATE_Enum; 767 768 /* ======================================== MEC_I2C_SMB0 FSM_I2C PHY_STATE [16..19] ======================================== */ 769 typedef enum { /*!< MEC_I2C_SMB0_FSM_I2C_PHY_STATE */ 770 MEC_I2C_SMB0_FSM_I2C_PHY_STATE_IDLE = 0, /*!< IDLE : Phy is idle */ 771 MEC_I2C_SMB0_FSM_I2C_PHY_STATE_CLKHI = 1, /*!< CLKHI : Phy released SCL to go high */ 772 MEC_I2C_SMB0_FSM_I2C_PHY_STATE_SS = 2, /*!< SS : Phy sample state */ 773 MEC_I2C_SMB0_FSM_I2C_PHY_STATE_CLKLO = 3, /*!< CLKLO : Phy drive SCL low */ 774 MEC_I2C_SMB0_FSM_I2C_PHY_STATE_SDAT_CTRL = 4, /*!< SDAT_CTRL : Phy driving/releasing SDAT */ 775 MEC_I2C_SMB0_FSM_I2C_PHY_STATE_ARB_LOSS = 5, /*!< ARB_LOSS : Phy detected arbitration loss */ 776 } MEC_I2C_SMB0_FSM_I2C_PHY_STATE_Enum; 777 778 /* ========================================= MEC_I2C_SMB0 FSM_I2C CM_CTO [20..23] ========================================== */ 779 typedef enum { /*!< MEC_I2C_SMB0_FSM_I2C_CM_CTO */ 780 MEC_I2C_SMB0_FSM_I2C_CM_CTO_NOT_COUNTING = 0, /*!< NOT_COUNTING : CM CTO is not counting */ 781 MEC_I2C_SMB0_FSM_I2C_CM_CTO_COUNTING = 1, /*!< COUNTING : CM CTO is counting */ 782 } MEC_I2C_SMB0_FSM_I2C_CM_CTO_Enum; 783 784 /* ========================================= MEC_I2C_SMB0 FSM_I2C TM_CTO [24..28] ========================================== */ 785 typedef enum { /*!< MEC_I2C_SMB0_FSM_I2C_TM_CTO */ 786 MEC_I2C_SMB0_FSM_I2C_TM_CTO_NOT_COUNTING = 0, /*!< NOT_COUNTING : TM CTO is not counting */ 787 MEC_I2C_SMB0_FSM_I2C_TM_CTO_COUNTING = 1, /*!< COUNTING : TM CTO is counting */ 788 } MEC_I2C_SMB0_FSM_I2C_TM_CTO_Enum; 789 790 /* ========================================== MEC_I2C_SMB0 FSM_I2C CM_BI [29..31] ========================================== */ 791 typedef enum { /*!< MEC_I2C_SMB0_FSM_I2C_CM_BI */ 792 MEC_I2C_SMB0_FSM_I2C_CM_BI_NOT_COUNTING = 0, /*!< NOT_COUNTING : CM BI is not counting */ 793 MEC_I2C_SMB0_FSM_I2C_CM_BI_COUNTING = 1, /*!< COUNTING : CM BI is counting */ 794 } MEC_I2C_SMB0_FSM_I2C_CM_BI_Enum; 795 796 /* ======================================================== FSM_SNL ======================================================== */ 797 /* ========================================= MEC_I2C_SMB0 FSM_SNL CM_STATE [0..7] ========================================== */ 798 typedef enum { /*!< MEC_I2C_SMB0_FSM_SNL_CM_STATE */ 799 MEC_I2C_SMB0_FSM_SNL_CM_STATE_IDLE = 0, /*!< IDLE : SNL CM state is idle */ 800 MEC_I2C_SMB0_FSM_SNL_CM_STATE_SOP = 1, /*!< SOP : SNL CM SOP state */ 801 MEC_I2C_SMB0_FSM_SNL_CM_STATE_START = 2, /*!< START : SNL CM start state */ 802 MEC_I2C_SMB0_FSM_SNL_CM_STATE_START_PIN = 3, /*!< START_PIN : SNL CM start pin state */ 803 MEC_I2C_SMB0_FSM_SNL_CM_STATE_WDATA = 4, /*!< WDATA : SNL CM transmit data state */ 804 MEC_I2C_SMB0_FSM_SNL_CM_STATE_WPEC = 5, /*!< WPEC : SNL CM transmit PEC byte state */ 805 MEC_I2C_SMB0_FSM_SNL_CM_STATE_RSTART = 6, /*!< RSTART : SNL CM receive start state */ 806 MEC_I2C_SMB0_FSM_SNL_CM_STATE_RSTART_PIN = 7, /*!< RSTART_PIN : SNL CM receive start pin state */ 807 MEC_I2C_SMB0_FSM_SNL_CM_STATE_RDATA_IN = 8, /*!< RDATA_IN : SNL CM receive data input state */ 808 MEC_I2C_SMB0_FSM_SNL_CM_STATE_RDATA_PEC = 9, /*!< RDATA_PEC : SNL CM receive data pec state */ 809 MEC_I2C_SMB0_FSM_SNL_CM_STATE_RPEC = 10, /*!< RPEC : SNL CM receive data check pec state */ 810 MEC_I2C_SMB0_FSM_SNL_CM_STATE_PAUSE = 11, /*!< PAUSE : SNL CM pause state */ 811 MEC_I2C_SMB0_FSM_SNL_CM_STATE_STOP = 12, /*!< STOP : SNL CM stop state */ 812 MEC_I2C_SMB0_FSM_SNL_CM_STATE_EOP = 13, /*!< EOP : SNL CM EOP state */ 813 } MEC_I2C_SMB0_FSM_SNL_CM_STATE_Enum; 814 815 /* ========================================= MEC_I2C_SMB0 FSM_SNL TM_STATE [8..15] ========================================= */ 816 typedef enum { /*!< MEC_I2C_SMB0_FSM_SNL_TM_STATE */ 817 MEC_I2C_SMB0_FSM_SNL_TM_STATE_IDLE = 0, /*!< IDLE : SNL TM idle state */ 818 MEC_I2C_SMB0_FSM_SNL_TM_STATE_ADDR = 1, /*!< ADDR : SNL TM address state */ 819 MEC_I2C_SMB0_FSM_SNL_TM_STATE_WPIN = 2, /*!< WPIN : SNL TM WPIN state */ 820 MEC_I2C_SMB0_FSM_SNL_TM_STATE_RPIN = 3, /*!< RPIN : SNL TM RPIN state */ 821 MEC_I2C_SMB0_FSM_SNL_TM_STATE_WDATA = 4, /*!< WDATA : SNL TM transmit data state */ 822 MEC_I2C_SMB0_FSM_SNL_TM_STATE_RDATA = 5, /*!< RDATA : SNL TM receive data state */ 823 MEC_I2C_SMB0_FSM_SNL_TM_STATE_RBE = 6, /*!< RBE : SNL TM RBE state */ 824 MEC_I2C_SMB0_FSM_SNL_TM_STATE_TM_RPEC = 7, /*!< TM_RPEC : SNL TM receive PEC state */ 825 MEC_I2C_SMB0_FSM_SNL_TM_STATE_TM_RPEC_RPT = 8,/*!< TM_RPEC_RPT : SNL TM check receive PEC state */ 826 } MEC_I2C_SMB0_FSM_SNL_TM_STATE_Enum; 827 828 /* ======================================== MEC_I2C_SMB0 FSM_SNL MCTP_FAIR [16..23] ======================================== */ 829 typedef enum { /*!< MEC_I2C_SMB0_FSM_SNL_MCTP_FAIR */ 830 MEC_I2C_SMB0_FSM_SNL_MCTP_FAIR_IDLE = 0, /*!< IDLE : MCTP fairness FSM is idle */ 831 MEC_I2C_SMB0_FSM_SNL_MCTP_FAIR_BUSY = 1, /*!< BUSY : MCTP fairness FSM is busy */ 832 MEC_I2C_SMB0_FSM_SNL_MCTP_FAIR_WINDOW = 2, /*!< WINDOW : MCTP fairness in window */ 833 MEC_I2C_SMB0_FSM_SNL_MCTP_FAIR_DELAY = 3, /*!< DELAY : MCTP fairness delay state */ 834 MEC_I2C_SMB0_FSM_SNL_MCTP_FAIR_WAIT = 4, /*!< WAIT : MCTP fairness wait state */ 835 MEC_I2C_SMB0_FSM_SNL_MCTP_FAIR_WAIT_DONE = 5, /*!< WAIT_DONE : MCTP fairness wait done state */ 836 MEC_I2C_SMB0_FSM_SNL_MCTP_FAIR_ACTIVE = 6, /*!< ACTIVE : MCTP fairness active state */ 837 } MEC_I2C_SMB0_FSM_SNL_MCTP_FAIR_Enum; 838 839 /* ======================================================= WAKE_STS ======================================================== */ 840 /* ======================================== MEC_I2C_SMB0 WAKE_STS START_DET [0..0] ========================================= */ 841 typedef enum { /*!< MEC_I2C_SMB0_WAKE_STS_START_DET */ 842 MEC_I2C_SMB0_WAKE_STS_START_DET_ACTIVE = 1, /*!< ACTIVE : Active */ 843 } MEC_I2C_SMB0_WAKE_STS_START_DET_Enum; 844 845 /* ======================================================== WAKE_EN ======================================================== */ 846 /* ========================================= MEC_I2C_SMB0 WAKE_EN START_DET [0..0] ========================================= */ 847 typedef enum { /*!< MEC_I2C_SMB0_WAKE_EN_START_DET */ 848 MEC_I2C_SMB0_WAKE_EN_START_DET_IEN = 1, /*!< IEN : Enable */ 849 } MEC_I2C_SMB0_WAKE_EN_START_DET_Enum; 850 851 /* ====================================================== FAST_RSYNC ======================================================= */ 852 /* ======================================================= SHAD_ADDR ======================================================= */ 853 /* ======================================================= PROM_ARS ======================================================== */ 854 /* ========================================== MEC_I2C_SMB0 PROM_ARS ARSTS [0..0] =========================================== */ 855 typedef enum { /*!< MEC_I2C_SMB0_PROM_ARS_ARSTS */ 856 MEC_I2C_SMB0_PROM_ARS_ARSTS_ACTIVE = 1, /*!< ACTIVE : Active */ 857 } MEC_I2C_SMB0_PROM_ARS_ARSTS_Enum; 858 859 /* ======================================================= PROM_IEN ======================================================== */ 860 /* =========================================== MEC_I2C_SMB0 PROM_IEN ARI [0..0] ============================================ */ 861 typedef enum { /*!< MEC_I2C_SMB0_PROM_IEN_ARI */ 862 MEC_I2C_SMB0_PROM_IEN_ARI_EN = 1, /*!< EN : Enable */ 863 } MEC_I2C_SMB0_PROM_IEN_ARI_Enum; 864 865 /* ======================================================= PROM_CTRL ======================================================= */ 866 /* ========================================== MEC_I2C_SMB0 PROM_CTRL ARACK [0..0] ========================================== */ 867 typedef enum { /*!< MEC_I2C_SMB0_PROM_CTRL_ARACK */ 868 MEC_I2C_SMB0_PROM_CTRL_ARACK_GEN = 1, /*!< GEN : Generate ACK */ 869 } MEC_I2C_SMB0_PROM_CTRL_ARACK_Enum; 870 871 /** @} */ /* End of group EnumValue_peripherals */ 872 873 #endif /* _MEC5_I2C_SMB_V3_7_H */ 874