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