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