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