1 /* 2 * Copyright (c) 2024 Microchip Technology Inc. 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef _MEC5_PECI_V1_H 7 #define _MEC5_PECI_V1_H 8 9 /** @addtogroup Device_Peripheral_peripherals 10 * @{ 11 */ 12 13 /** 14 * @brief Platform Environment Control Interface (MEC_PECI0) 15 */ 16 17 typedef struct mec_peci_regs { /*!< (@ 0x40006400) MEC_PECI0 Structure */ 18 __IOM uint8_t WR_DATA; /*!< (@ 0x00000000) PECI write data */ 19 __IM uint8_t RSVD1[3]; 20 __IOM uint8_t RD_DATA; /*!< (@ 0x00000004) PECI read data */ 21 __IM uint8_t RSVD2[3]; 22 __IOM uint8_t CTRL; /*!< (@ 0x00000008) PECI control */ 23 __IM uint8_t RSVD3[3]; 24 __IOM uint8_t STATUS1; /*!< (@ 0x0000000C) PECI status 1 */ 25 __IM uint8_t RSVD4[3]; 26 __IM uint8_t STATUS2; /*!< (@ 0x00000010) PECI status 2 */ 27 __IM uint8_t RSVD5[3]; 28 __IOM uint8_t ERROR; /*!< (@ 0x00000014) PECI error status register */ 29 __IM uint8_t RSVD6[3]; 30 __IOM uint8_t IEN1; /*!< (@ 0x00000018) PECI interrupt enable 1 */ 31 __IM uint8_t RSVD7[3]; 32 __IOM uint8_t IEN2; /*!< (@ 0x0000001C) PECI interrupt enable 2 */ 33 __IM uint8_t RSVD8[3]; 34 __IOM uint8_t OPTBTM_LO; /*!< (@ 0x00000020) PECI optimal bit time LSB */ 35 __IM uint8_t RSVD9[3]; 36 __IOM uint8_t OPTBTM_HI; /*!< (@ 0x00000024) PECI optimal bit time MSB */ 37 __IM uint8_t RSVD10[3]; 38 __IOM uint8_t REQ_TIMER_LSB; /*!< (@ 0x00000028) PECI Request timer LSB */ 39 __IM uint8_t RSVD11[3]; 40 __IOM uint8_t REQ_TIMER_MSB; /*!< (@ 0x0000002C) PECI Request timer MSB */ 41 __IM uint8_t RSVD12[3]; 42 __IOM uint16_t BAUD_CTRL; /*!< (@ 0x00000030) PECI BAUD control */ 43 __IM uint16_t RSVD13[7]; 44 __IM uint32_t BLKID; /*!< (@ 0x00000040) PECI block ID */ 45 __IM uint32_t REVID; /*!< (@ 0x00000044) PECI revision ID */ 46 __IOM uint8_t SSTCTL1; /*!< (@ 0x00000048) PECI Host SST Control 1 */ 47 __IM uint8_t RSVD14[3]; 48 } MEC_PECI_Type; /*!< Size = 76 (0x4c) */ 49 50 /** @} */ /* End of group Device_Peripheral_peripherals */ 51 52 /** @addtogroup PosMask_peripherals 53 * @{ 54 */ 55 /* ========================================================= CTRL ========================================================== */ 56 #define MEC_PECI_CTRL_PWRDN_Pos (0UL) /*!< PWRDN (Bit 0) */ 57 #define MEC_PECI_CTRL_PWRDN_Msk (0x1UL) /*!< PWRDN (Bitfield-Mask: 0x01) */ 58 #define MEC_PECI_CTRL_RST_Pos (3UL) /*!< RST (Bit 3) */ 59 #define MEC_PECI_CTRL_RST_Msk (0x8UL) /*!< RST (Bitfield-Mask: 0x01) */ 60 #define MEC_PECI_CTRL_FRST_Pos (5UL) /*!< FRST (Bit 5) */ 61 #define MEC_PECI_CTRL_FRST_Msk (0x20UL) /*!< FRST (Bitfield-Mask: 0x01) */ 62 #define MEC_PECI_CTRL_TXEN_Pos (6UL) /*!< TXEN (Bit 6) */ 63 #define MEC_PECI_CTRL_TXEN_Msk (0x40UL) /*!< TXEN (Bitfield-Mask: 0x01) */ 64 #define MEC_PECI_CTRL_MIEN_Pos (7UL) /*!< MIEN (Bit 7) */ 65 #define MEC_PECI_CTRL_MIEN_Msk (0x80UL) /*!< MIEN (Bitfield-Mask: 0x01) */ 66 /* ======================================================== STATUS1 ======================================================== */ 67 #define MEC_PECI_STATUS1_BOF_Pos (0UL) /*!< BOF (Bit 0) */ 68 #define MEC_PECI_STATUS1_BOF_Msk (0x1UL) /*!< BOF (Bitfield-Mask: 0x01) */ 69 #define MEC_PECI_STATUS1_EOF_Pos (1UL) /*!< EOF (Bit 1) */ 70 #define MEC_PECI_STATUS1_EOF_Msk (0x2UL) /*!< EOF (Bitfield-Mask: 0x01) */ 71 #define MEC_PECI_STATUS1_ERR_Pos (2UL) /*!< ERR (Bit 2) */ 72 #define MEC_PECI_STATUS1_ERR_Msk (0x4UL) /*!< ERR (Bitfield-Mask: 0x01) */ 73 #define MEC_PECI_STATUS1_MINT_Pos (7UL) /*!< MINT (Bit 7) */ 74 #define MEC_PECI_STATUS1_MINT_Msk (0x80UL) /*!< MINT (Bitfield-Mask: 0x01) */ 75 /* ======================================================== STATUS2 ======================================================== */ 76 #define MEC_PECI_STATUS2_WFF_Pos (0UL) /*!< WFF (Bit 0) */ 77 #define MEC_PECI_STATUS2_WFF_Msk (0x1UL) /*!< WFF (Bitfield-Mask: 0x01) */ 78 #define MEC_PECI_STATUS2_WFE_Pos (1UL) /*!< WFE (Bit 1) */ 79 #define MEC_PECI_STATUS2_WFE_Msk (0x2UL) /*!< WFE (Bitfield-Mask: 0x01) */ 80 #define MEC_PECI_STATUS2_RFF_Pos (2UL) /*!< RFF (Bit 2) */ 81 #define MEC_PECI_STATUS2_RFF_Msk (0x4UL) /*!< RFF (Bitfield-Mask: 0x01) */ 82 #define MEC_PECI_STATUS2_RFE_Pos (3UL) /*!< RFE (Bit 3) */ 83 #define MEC_PECI_STATUS2_RFE_Msk (0x8UL) /*!< RFE (Bitfield-Mask: 0x01) */ 84 #define MEC_PECI_STATUS2_IDLE_Pos (7UL) /*!< IDLE (Bit 7) */ 85 #define MEC_PECI_STATUS2_IDLE_Msk (0x80UL) /*!< IDLE (Bitfield-Mask: 0x01) */ 86 /* ========================================================= ERROR ========================================================= */ 87 #define MEC_PECI_ERROR_FERR_Pos (0UL) /*!< FERR (Bit 0) */ 88 #define MEC_PECI_ERROR_FERR_Msk (0x1UL) /*!< FERR (Bitfield-Mask: 0x01) */ 89 #define MEC_PECI_ERROR_BERR_Pos (1UL) /*!< BERR (Bit 1) */ 90 #define MEC_PECI_ERROR_BERR_Msk (0x2UL) /*!< BERR (Bitfield-Mask: 0x01) */ 91 #define MEC_PECI_ERROR_WROV_Pos (4UL) /*!< WROV (Bit 4) */ 92 #define MEC_PECI_ERROR_WROV_Msk (0x10UL) /*!< WROV (Bitfield-Mask: 0x01) */ 93 #define MEC_PECI_ERROR_WRUN_Pos (5UL) /*!< WRUN (Bit 5) */ 94 #define MEC_PECI_ERROR_WRUN_Msk (0x20UL) /*!< WRUN (Bitfield-Mask: 0x01) */ 95 #define MEC_PECI_ERROR_RDOV_Pos (6UL) /*!< RDOV (Bit 6) */ 96 #define MEC_PECI_ERROR_RDOV_Msk (0x40UL) /*!< RDOV (Bitfield-Mask: 0x01) */ 97 #define MEC_PECI_ERROR_CLKERR_Pos (7UL) /*!< CLKERR (Bit 7) */ 98 #define MEC_PECI_ERROR_CLKERR_Msk (0x80UL) /*!< CLKERR (Bitfield-Mask: 0x01) */ 99 /* ========================================================= IEN1 ========================================================== */ 100 #define MEC_PECI_IEN1_BIEN_Pos (0UL) /*!< BIEN (Bit 0) */ 101 #define MEC_PECI_IEN1_BIEN_Msk (0x1UL) /*!< BIEN (Bitfield-Mask: 0x01) */ 102 #define MEC_PECI_IEN1_EIEN_Pos (1UL) /*!< EIEN (Bit 1) */ 103 #define MEC_PECI_IEN1_EIEN_Msk (0x2UL) /*!< EIEN (Bitfield-Mask: 0x01) */ 104 #define MEC_PECI_IEN1_EREN_Pos (2UL) /*!< EREN (Bit 2) */ 105 #define MEC_PECI_IEN1_EREN_Msk (0x4UL) /*!< EREN (Bitfield-Mask: 0x01) */ 106 /* ========================================================= IEN2 ========================================================== */ 107 #define MEC_PECI_IEN2_ENWFE_Pos (1UL) /*!< ENWFE (Bit 1) */ 108 #define MEC_PECI_IEN2_ENWFE_Msk (0x2UL) /*!< ENWFE (Bitfield-Mask: 0x01) */ 109 #define MEC_PECI_IEN2_ENRFF_Pos (2UL) /*!< ENRFF (Bit 2) */ 110 #define MEC_PECI_IEN2_ENRFF_Msk (0x4UL) /*!< ENRFF (Bitfield-Mask: 0x01) */ 111 /* ======================================================== SSTCTL1 ======================================================== */ 112 #define MEC_PECI_SSTCTL1_DNBTC_Pos (0UL) /*!< DNBTC (Bit 0) */ 113 #define MEC_PECI_SSTCTL1_DNBTC_Msk (0x1UL) /*!< DNBTC (Bitfield-Mask: 0x01) */ 114 115 /** @} */ /* End of group PosMask_peripherals */ 116 117 /** @addtogroup EnumValue_peripherals 118 * @{ 119 */ 120 /* ========================================================= CTRL ========================================================== */ 121 /* ============================================== MEC_PECI CTRL PWRDN [0..0] ============================================== */ 122 typedef enum { /*!< MEC_PECI_CTRL_PWRDN */ 123 MEC_PECI_CTRL_PWRDN_EN = 1, /*!< EN : Enable power down */ 124 } MEC_PECI_CTRL_PWRDN_Enum; 125 126 /* =============================================== MEC_PECI CTRL RST [3..3] =============================================== */ 127 typedef enum { /*!< MEC_PECI_CTRL_RST */ 128 MEC_PECI_CTRL_RST_EN = 1, /*!< EN : Enable soft reset */ 129 } MEC_PECI_CTRL_RST_Enum; 130 131 /* ============================================== MEC_PECI CTRL FRST [5..5] =============================================== */ 132 typedef enum { /*!< MEC_PECI_CTRL_FRST */ 133 MEC_PECI_CTRL_FRST_EN = 1, /*!< EN : Enable FIFO reset */ 134 } MEC_PECI_CTRL_FRST_Enum; 135 136 /* ============================================== MEC_PECI CTRL TXEN [6..6] =============================================== */ 137 typedef enum { /*!< MEC_PECI_CTRL_TXEN */ 138 MEC_PECI_CTRL_TXEN_ON = 1, /*!< ON : Enable transmit */ 139 } MEC_PECI_CTRL_TXEN_Enum; 140 141 /* ============================================== MEC_PECI CTRL MIEN [7..7] =============================================== */ 142 typedef enum { /*!< MEC_PECI_CTRL_MIEN */ 143 MEC_PECI_CTRL_MIEN_ON = 1, /*!< ON : Enable PECI controller interrupts */ 144 } MEC_PECI_CTRL_MIEN_Enum; 145 146 /* ======================================================== STATUS1 ======================================================== */ 147 /* ============================================= MEC_PECI STATUS1 BOF [0..0] ============================================== */ 148 typedef enum { /*!< MEC_PECI_STATUS1_BOF */ 149 MEC_PECI_STATUS1_BOF_ACTIVE = 1, /*!< ACTIVE : Status active */ 150 } MEC_PECI_STATUS1_BOF_Enum; 151 152 /* ============================================= MEC_PECI STATUS1 EOF [1..1] ============================================== */ 153 typedef enum { /*!< MEC_PECI_STATUS1_EOF */ 154 MEC_PECI_STATUS1_EOF_ACTIVE = 1, /*!< ACTIVE : Status active */ 155 } MEC_PECI_STATUS1_EOF_Enum; 156 157 /* ============================================= MEC_PECI STATUS1 ERR [2..2] ============================================== */ 158 typedef enum { /*!< MEC_PECI_STATUS1_ERR */ 159 MEC_PECI_STATUS1_ERR_ACTIVE = 1, /*!< ACTIVE : Status active */ 160 } MEC_PECI_STATUS1_ERR_Enum; 161 162 /* ============================================= MEC_PECI STATUS1 MINT [7..7] ============================================= */ 163 typedef enum { /*!< MEC_PECI_STATUS1_MINT */ 164 MEC_PECI_STATUS1_MINT_ACTIVE = 1, /*!< ACTIVE : Status active */ 165 } MEC_PECI_STATUS1_MINT_Enum; 166 167 /* ======================================================== STATUS2 ======================================================== */ 168 /* ============================================= MEC_PECI STATUS2 WFF [0..0] ============================================== */ 169 typedef enum { /*!< MEC_PECI_STATUS2_WFF */ 170 MEC_PECI_STATUS2_WFF_ACTIVE = 1, /*!< ACTIVE : Status active */ 171 } MEC_PECI_STATUS2_WFF_Enum; 172 173 /* ============================================= MEC_PECI STATUS2 WFE [1..1] ============================================== */ 174 typedef enum { /*!< MEC_PECI_STATUS2_WFE */ 175 MEC_PECI_STATUS2_WFE_ACTIVE = 1, /*!< ACTIVE : Status active */ 176 } MEC_PECI_STATUS2_WFE_Enum; 177 178 /* ============================================= MEC_PECI STATUS2 RFF [2..2] ============================================== */ 179 typedef enum { /*!< MEC_PECI_STATUS2_RFF */ 180 MEC_PECI_STATUS2_RFF_ACTIVE = 1, /*!< ACTIVE : Status active */ 181 } MEC_PECI_STATUS2_RFF_Enum; 182 183 /* ============================================= MEC_PECI STATUS2 RFE [3..3] ============================================== */ 184 typedef enum { /*!< MEC_PECI_STATUS2_RFE */ 185 MEC_PECI_STATUS2_RFE_ACTIVE = 1, /*!< ACTIVE : Status active */ 186 } MEC_PECI_STATUS2_RFE_Enum; 187 188 /* ============================================= MEC_PECI STATUS2 IDLE [7..7] ============================================= */ 189 typedef enum { /*!< MEC_PECI_STATUS2_IDLE */ 190 MEC_PECI_STATUS2_IDLE_ACTIVE = 1, /*!< ACTIVE : Status active */ 191 } MEC_PECI_STATUS2_IDLE_Enum; 192 193 /* ========================================================= ERROR ========================================================= */ 194 /* ============================================== MEC_PECI ERROR FERR [0..0] ============================================== */ 195 typedef enum { /*!< MEC_PECI_ERROR_FERR */ 196 MEC_PECI_ERROR_FERR_ACTIVE = 1, /*!< ACTIVE : Status active */ 197 } MEC_PECI_ERROR_FERR_Enum; 198 199 /* ============================================== MEC_PECI ERROR BERR [1..1] ============================================== */ 200 typedef enum { /*!< MEC_PECI_ERROR_BERR */ 201 MEC_PECI_ERROR_BERR_ACTIVE = 1, /*!< ACTIVE : Status active */ 202 } MEC_PECI_ERROR_BERR_Enum; 203 204 /* ============================================== MEC_PECI ERROR WROV [4..4] ============================================== */ 205 typedef enum { /*!< MEC_PECI_ERROR_WROV */ 206 MEC_PECI_ERROR_WROV_ACTIVE = 1, /*!< ACTIVE : Status active */ 207 } MEC_PECI_ERROR_WROV_Enum; 208 209 /* ============================================== MEC_PECI ERROR WRUN [5..5] ============================================== */ 210 typedef enum { /*!< MEC_PECI_ERROR_WRUN */ 211 MEC_PECI_ERROR_WRUN_ACTIVE = 1, /*!< ACTIVE : Status active */ 212 } MEC_PECI_ERROR_WRUN_Enum; 213 214 /* ============================================== MEC_PECI ERROR RDOV [6..6] ============================================== */ 215 typedef enum { /*!< MEC_PECI_ERROR_RDOV */ 216 MEC_PECI_ERROR_RDOV_ACTIVE = 1, /*!< ACTIVE : Status active */ 217 } MEC_PECI_ERROR_RDOV_Enum; 218 219 /* ============================================= MEC_PECI ERROR CLKERR [7..7] ============================================= */ 220 typedef enum { /*!< MEC_PECI_ERROR_CLKERR */ 221 MEC_PECI_ERROR_CLKERR_ACTIVE = 1, /*!< ACTIVE : Status active */ 222 } MEC_PECI_ERROR_CLKERR_Enum; 223 224 /* ========================================================= IEN1 ========================================================== */ 225 /* ============================================== MEC_PECI IEN1 BIEN [0..0] =============================================== */ 226 typedef enum { /*!< MEC_PECI_IEN1_BIEN */ 227 MEC_PECI_IEN1_BIEN_ON = 1, /*!< ON : Enable */ 228 } MEC_PECI_IEN1_BIEN_Enum; 229 230 /* ============================================== MEC_PECI IEN1 EIEN [1..1] =============================================== */ 231 typedef enum { /*!< MEC_PECI_IEN1_EIEN */ 232 MEC_PECI_IEN1_EIEN_ON = 1, /*!< ON : Enable */ 233 } MEC_PECI_IEN1_EIEN_Enum; 234 235 /* ============================================== MEC_PECI IEN1 EREN [2..2] =============================================== */ 236 typedef enum { /*!< MEC_PECI_IEN1_EREN */ 237 MEC_PECI_IEN1_EREN_ON = 1, /*!< ON : Enable */ 238 } MEC_PECI_IEN1_EREN_Enum; 239 240 /* ========================================================= IEN2 ========================================================== */ 241 /* ============================================== MEC_PECI IEN2 ENWFE [1..1] ============================================== */ 242 typedef enum { /*!< MEC_PECI_IEN2_ENWFE */ 243 MEC_PECI_IEN2_ENWFE_ON = 1, /*!< ON : Enable */ 244 } MEC_PECI_IEN2_ENWFE_Enum; 245 246 /* ============================================== MEC_PECI IEN2 ENRFF [2..2] ============================================== */ 247 typedef enum { /*!< MEC_PECI_IEN2_ENRFF */ 248 MEC_PECI_IEN2_ENRFF_ON = 1, /*!< ON : Enable */ 249 } MEC_PECI_IEN2_ENRFF_Enum; 250 251 /* ======================================================== SSTCTL1 ======================================================== */ 252 /* ============================================ MEC_PECI SSTCTL1 DNBTC [0..0] ============================================= */ 253 typedef enum { /*!< MEC_PECI_SSTCTL1_DNBTC */ 254 MEC_PECI_SSTCTL1_DNBTC_ON = 1, /*!< ON : Set bit to disable */ 255 } MEC_PECI_SSTCTL1_DNBTC_Enum; 256 257 /** @} */ /* End of group EnumValue_peripherals */ 258 259 #endif /* _MEC5_PECI_V1_H */ 260