1 /* 2 * Copyright (c) 2024 Microchip Technology Inc. 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef _MEC5_GSPI_V2_H 7 #define _MEC5_GSPI_V2_H 8 9 /** @addtogroup Device_Peripheral_peripherals 10 * @{ 11 */ 12 13 /** 14 * @brief General Purpose SPI version 2 (MEC_GSPI) 15 */ 16 17 typedef struct mec_gspi_regs { /*!< (@ 0x40009400) MEC_GSPI Structure */ 18 __IOM uint32_t MODE; /*!< (@ 0x00000000) GSPI Mode */ 19 __IOM uint32_t CTRL; /*!< (@ 0x00000004) GSPI control */ 20 __OM uint32_t EXE; /*!< (@ 0x00000008) GSPI execute. Only one bit at a time should be 21 written */ 22 __IM uint32_t RESERVED; 23 __IOM uint32_t STATUS; /*!< (@ 0x00000010) GSPI status */ 24 __IM uint32_t BUF_CNT_STS; /*!< (@ 0x00000014) GSPI buffer count status */ 25 __IOM uint32_t INTREN; /*!< (@ 0x00000018) GSPI status */ 26 __IOM uint32_t CSTM; /*!< (@ 0x0000001C) GPSPI chip select timing */ 27 __IOM uint32_t TX_FIFO; /*!< (@ 0x00000020) GPSPI TX FIFO */ 28 __IOM uint32_t RX_FIFO; /*!< (@ 0x00000024) GPSPI RX FIFO */ 29 } MEC_GSPI_Type; /*!< Size = 40 (0x28) */ 30 31 /** @} */ /* End of group Device_Peripheral_peripherals */ 32 33 /** @addtogroup PosMask_peripherals 34 * @{ 35 */ 36 /* ========================================================= MODE ========================================================== */ 37 #define MEC_GSPI_MODE_ENABLE_Pos (0UL) /*!< ENABLE (Bit 0) */ 38 #define MEC_GSPI_MODE_ENABLE_Msk (0x1UL) /*!< ENABLE (Bitfield-Mask: 0x01) */ 39 #define MEC_GSPI_MODE_SRST_Pos (1UL) /*!< SRST (Bit 1) */ 40 #define MEC_GSPI_MODE_SRST_Msk (0x2UL) /*!< SRST (Bitfield-Mask: 0x01) */ 41 #define MEC_GSPI_MODE_CPOL_Pos (8UL) /*!< CPOL (Bit 8) */ 42 #define MEC_GSPI_MODE_CPOL_Msk (0x100UL) /*!< CPOL (Bitfield-Mask: 0x01) */ 43 #define MEC_GSPI_MODE_CPHA_MOSI_Pos (9UL) /*!< CPHA_MOSI (Bit 9) */ 44 #define MEC_GSPI_MODE_CPHA_MOSI_Msk (0x200UL) /*!< CPHA_MOSI (Bitfield-Mask: 0x01) */ 45 #define MEC_GSPI_MODE_CPHA_MISO_Pos (10UL) /*!< CPHA_MISO (Bit 10) */ 46 #define MEC_GSPI_MODE_CPHA_MISO_Msk (0x400UL) /*!< CPHA_MISO (Bitfield-Mask: 0x01) */ 47 #define MEC_GSPI_MODE_CLK_DIV_Pos (16UL) /*!< CLK_DIV (Bit 16) */ 48 #define MEC_GSPI_MODE_CLK_DIV_Msk (0xff0000UL) /*!< CLK_DIV (Bitfield-Mask: 0xff) */ 49 /* ========================================================= CTRL ========================================================== */ 50 #define MEC_GSPI_CTRL_IFM_Pos (0UL) /*!< IFM (Bit 0) */ 51 #define MEC_GSPI_CTRL_IFM_Msk (0x1UL) /*!< IFM (Bitfield-Mask: 0x01) */ 52 #define MEC_GSPI_CTRL_TX_XFR_Pos (2UL) /*!< TX_XFR (Bit 2) */ 53 #define MEC_GSPI_CTRL_TX_XFR_Msk (0xcUL) /*!< TX_XFR (Bitfield-Mask: 0x03) */ 54 #define MEC_GSPI_CTRL_TX_DMA_Pos (4UL) /*!< TX_DMA (Bit 4) */ 55 #define MEC_GSPI_CTRL_TX_DMA_Msk (0x30UL) /*!< TX_DMA (Bitfield-Mask: 0x03) */ 56 #define MEC_GSPI_CTRL_RX_XFR_Pos (6UL) /*!< RX_XFR (Bit 6) */ 57 #define MEC_GSPI_CTRL_RX_XFR_Msk (0x40UL) /*!< RX_XFR (Bitfield-Mask: 0x01) */ 58 #define MEC_GSPI_CTRL_RX_DMA_Pos (7UL) /*!< RX_DMA (Bit 7) */ 59 #define MEC_GSPI_CTRL_RX_DMA_Msk (0x180UL) /*!< RX_DMA (Bitfield-Mask: 0x03) */ 60 #define MEC_GSPI_CTRL_XFR_CLOSE_Pos (9UL) /*!< XFR_CLOSE (Bit 9) */ 61 #define MEC_GSPI_CTRL_XFR_CLOSE_Msk (0x200UL) /*!< XFR_CLOSE (Bitfield-Mask: 0x01) */ 62 #define MEC_GSPI_CTRL_XFR_LEN_UNITS_Pos (10UL) /*!< XFR_LEN_UNITS (Bit 10) */ 63 #define MEC_GSPI_CTRL_XFR_LEN_UNITS_Msk (0x400UL) /*!< XFR_LEN_UNITS (Bitfield-Mask: 0x01) */ 64 #define MEC_GSPI_CTRL_XFR_LEN_Pos (17UL) /*!< XFR_LEN (Bit 17) */ 65 #define MEC_GSPI_CTRL_XFR_LEN_Msk (0xfffe0000UL) /*!< XFR_LEN (Bitfield-Mask: 0x7fff) */ 66 /* ========================================================== EXE ========================================================== */ 67 #define MEC_GSPI_EXE_START_Pos (0UL) /*!< START (Bit 0) */ 68 #define MEC_GSPI_EXE_START_Msk (0x1UL) /*!< START (Bitfield-Mask: 0x01) */ 69 #define MEC_GSPI_EXE_STOP_Pos (1UL) /*!< STOP (Bit 1) */ 70 #define MEC_GSPI_EXE_STOP_Msk (0x2UL) /*!< STOP (Bitfield-Mask: 0x01) */ 71 #define MEC_GSPI_EXE_CLR_FIFOS_Pos (2UL) /*!< CLR_FIFOS (Bit 2) */ 72 #define MEC_GSPI_EXE_CLR_FIFOS_Msk (0x4UL) /*!< CLR_FIFOS (Bitfield-Mask: 0x01) */ 73 /* ======================================================== STATUS ========================================================= */ 74 #define MEC_GSPI_STATUS_XFR_DONE_Pos (0UL) /*!< XFR_DONE (Bit 0) */ 75 #define MEC_GSPI_STATUS_XFR_DONE_Msk (0x1UL) /*!< XFR_DONE (Bitfield-Mask: 0x01) */ 76 #define MEC_GSPI_STATUS_DMA_DONE_Pos (1UL) /*!< DMA_DONE (Bit 1) */ 77 #define MEC_GSPI_STATUS_DMA_DONE_Msk (0x2UL) /*!< DMA_DONE (Bitfield-Mask: 0x01) */ 78 #define MEC_GSPI_STATUS_TXB_ERR_Pos (2UL) /*!< TXB_ERR (Bit 2) */ 79 #define MEC_GSPI_STATUS_TXB_ERR_Msk (0x4UL) /*!< TXB_ERR (Bitfield-Mask: 0x01) */ 80 #define MEC_GSPI_STATUS_RXB_ERR_Pos (3UL) /*!< RXB_ERR (Bit 3) */ 81 #define MEC_GSPI_STATUS_RXB_ERR_Msk (0x8UL) /*!< RXB_ERR (Bitfield-Mask: 0x01) */ 82 #define MEC_GSPI_STATUS_PROG_ERR_Pos (4UL) /*!< PROG_ERR (Bit 4) */ 83 #define MEC_GSPI_STATUS_PROG_ERR_Msk (0x10UL) /*!< PROG_ERR (Bitfield-Mask: 0x01) */ 84 #define MEC_GSPI_STATUS_TXBF_Pos (8UL) /*!< TXBF (Bit 8) */ 85 #define MEC_GSPI_STATUS_TXBF_Msk (0x100UL) /*!< TXBF (Bitfield-Mask: 0x01) */ 86 #define MEC_GSPI_STATUS_TXBE_Pos (9UL) /*!< TXBE (Bit 9) */ 87 #define MEC_GSPI_STATUS_TXBE_Msk (0x200UL) /*!< TXBE (Bitfield-Mask: 0x01) */ 88 #define MEC_GSPI_STATUS_TXBS_Pos (11UL) /*!< TXBS (Bit 11) */ 89 #define MEC_GSPI_STATUS_TXBS_Msk (0x800UL) /*!< TXBS (Bitfield-Mask: 0x01) */ 90 #define MEC_GSPI_STATUS_RXBF_Pos (12UL) /*!< RXBF (Bit 12) */ 91 #define MEC_GSPI_STATUS_RXBF_Msk (0x1000UL) /*!< RXBF (Bitfield-Mask: 0x01) */ 92 #define MEC_GSPI_STATUS_RXBE_Pos (13UL) /*!< RXBE (Bit 13) */ 93 #define MEC_GSPI_STATUS_RXBE_Msk (0x2000UL) /*!< RXBE (Bitfield-Mask: 0x01) */ 94 #define MEC_GSPI_STATUS_RXBS_Pos (15UL) /*!< RXBS (Bit 15) */ 95 #define MEC_GSPI_STATUS_RXBS_Msk (0x8000UL) /*!< RXBS (Bitfield-Mask: 0x01) */ 96 #define MEC_GSPI_STATUS_XFR_ACTIVE_Pos (16UL) /*!< XFR_ACTIVE (Bit 16) */ 97 #define MEC_GSPI_STATUS_XFR_ACTIVE_Msk (0x10000UL) /*!< XFR_ACTIVE (Bitfield-Mask: 0x01) */ 98 /* ====================================================== BUF_CNT_STS ====================================================== */ 99 #define MEC_GSPI_BUF_CNT_STS_TX_Pos (0UL) /*!< TX (Bit 0) */ 100 #define MEC_GSPI_BUF_CNT_STS_TX_Msk (0xfUL) /*!< TX (Bitfield-Mask: 0x0f) */ 101 #define MEC_GSPI_BUF_CNT_STS_RX_Pos (16UL) /*!< RX (Bit 16) */ 102 #define MEC_GSPI_BUF_CNT_STS_RX_Msk (0xf0000UL) /*!< RX (Bitfield-Mask: 0x0f) */ 103 /* ======================================================== INTREN ========================================================= */ 104 #define MEC_GSPI_INTREN_XFR_DONE_Pos (0UL) /*!< XFR_DONE (Bit 0) */ 105 #define MEC_GSPI_INTREN_XFR_DONE_Msk (0x1UL) /*!< XFR_DONE (Bitfield-Mask: 0x01) */ 106 #define MEC_GSPI_INTREN_DMA_DONE_Pos (1UL) /*!< DMA_DONE (Bit 1) */ 107 #define MEC_GSPI_INTREN_DMA_DONE_Msk (0x2UL) /*!< DMA_DONE (Bitfield-Mask: 0x01) */ 108 #define MEC_GSPI_INTREN_TXB_ERR_Pos (2UL) /*!< TXB_ERR (Bit 2) */ 109 #define MEC_GSPI_INTREN_TXB_ERR_Msk (0x4UL) /*!< TXB_ERR (Bitfield-Mask: 0x01) */ 110 #define MEC_GSPI_INTREN_RXB_ERR_Pos (3UL) /*!< RXB_ERR (Bit 3) */ 111 #define MEC_GSPI_INTREN_RXB_ERR_Msk (0x8UL) /*!< RXB_ERR (Bitfield-Mask: 0x01) */ 112 #define MEC_GSPI_INTREN_PROG_ERR_Pos (4UL) /*!< PROG_ERR (Bit 4) */ 113 #define MEC_GSPI_INTREN_PROG_ERR_Msk (0x10UL) /*!< PROG_ERR (Bitfield-Mask: 0x01) */ 114 #define MEC_GSPI_INTREN_TXBF_Pos (8UL) /*!< TXBF (Bit 8) */ 115 #define MEC_GSPI_INTREN_TXBF_Msk (0x100UL) /*!< TXBF (Bitfield-Mask: 0x01) */ 116 #define MEC_GSPI_INTREN_TXBE_Pos (9UL) /*!< TXBE (Bit 9) */ 117 #define MEC_GSPI_INTREN_TXBE_Msk (0x200UL) /*!< TXBE (Bitfield-Mask: 0x01) */ 118 #define MEC_GSPI_INTREN_TXBS_Pos (11UL) /*!< TXBS (Bit 11) */ 119 #define MEC_GSPI_INTREN_TXBS_Msk (0x800UL) /*!< TXBS (Bitfield-Mask: 0x01) */ 120 #define MEC_GSPI_INTREN_RXBF_Pos (12UL) /*!< RXBF (Bit 12) */ 121 #define MEC_GSPI_INTREN_RXBF_Msk (0x1000UL) /*!< RXBF (Bitfield-Mask: 0x01) */ 122 #define MEC_GSPI_INTREN_RXBE_Pos (13UL) /*!< RXBE (Bit 13) */ 123 #define MEC_GSPI_INTREN_RXBE_Msk (0x2000UL) /*!< RXBE (Bitfield-Mask: 0x01) */ 124 #define MEC_GSPI_INTREN_RXBS_Pos (15UL) /*!< RXBS (Bit 15) */ 125 #define MEC_GSPI_INTREN_RXBS_Msk (0x8000UL) /*!< RXBS (Bitfield-Mask: 0x01) */ 126 /* ========================================================= CSTM ========================================================== */ 127 #define MEC_GSPI_CSTM_DLY_CS_TO_CLK_Pos (0UL) /*!< DLY_CS_TO_CLK (Bit 0) */ 128 #define MEC_GSPI_CSTM_DLY_CS_TO_CLK_Msk (0xfUL) /*!< DLY_CS_TO_CLK (Bitfield-Mask: 0x0f) */ 129 #define MEC_GSPI_CSTM_DLY_CLK_TO_CS_Pos (8UL) /*!< DLY_CLK_TO_CS (Bit 8) */ 130 #define MEC_GSPI_CSTM_DLY_CLK_TO_CS_Msk (0xf00UL) /*!< DLY_CLK_TO_CS (Bitfield-Mask: 0x0f) */ 131 132 /** @} */ /* End of group PosMask_peripherals */ 133 134 /** @addtogroup EnumValue_peripherals 135 * @{ 136 */ 137 /* ========================================================= MODE ========================================================== */ 138 /* ============================================= MEC_GSPI MODE ENABLE [0..0] ============================================== */ 139 typedef enum { /*!< MEC_GSPI_MODE_ENABLE */ 140 MEC_GSPI_MODE_ENABLE_ON = 1, /*!< ON : Enable */ 141 } MEC_GSPI_MODE_ENABLE_Enum; 142 143 /* ============================================== MEC_GSPI MODE SRST [1..1] =============================================== */ 144 typedef enum { /*!< MEC_GSPI_MODE_SRST */ 145 MEC_GSPI_MODE_SRST_EN = 1, /*!< EN : Enable */ 146 } MEC_GSPI_MODE_SRST_Enum; 147 148 /* ============================================== MEC_GSPI MODE CPOL [8..8] =============================================== */ 149 typedef enum { /*!< MEC_GSPI_MODE_CPOL */ 150 MEC_GSPI_MODE_CPOL_LO = 0, /*!< LO : clock idle state is low */ 151 MEC_GSPI_MODE_CPOL_HI = 1, /*!< HI : clock idle state is high */ 152 } MEC_GSPI_MODE_CPOL_Enum; 153 154 /* ============================================ MEC_GSPI MODE CPHA_MOSI [9..9] ============================================ */ 155 typedef enum { /*!< MEC_GSPI_MODE_CPHA_MOSI */ 156 MEC_GSPI_MODE_CPHA_MOSI_FIRST = 0, /*!< FIRST : Transmitted data changes on first clock edge */ 157 MEC_GSPI_MODE_CPHA_MOSI_SECOND = 1, /*!< SECOND : Transmitted data changes on second clock edge */ 158 } MEC_GSPI_MODE_CPHA_MOSI_Enum; 159 160 /* =========================================== MEC_GSPI MODE CPHA_MISO [10..10] =========================================== */ 161 typedef enum { /*!< MEC_GSPI_MODE_CPHA_MISO */ 162 MEC_GSPI_MODE_CPHA_MISO_FIRST = 0, /*!< FIRST : Received data captured on second clock edge */ 163 MEC_GSPI_MODE_CPHA_MISO_SECOND = 1, /*!< SECOND : Received data captured on first clock edge */ 164 } MEC_GSPI_MODE_CPHA_MISO_Enum; 165 166 /* ============================================ MEC_GSPI MODE CLK_DIV [16..23] ============================================ */ 167 typedef enum { /*!< MEC_GSPI_MODE_CLK_DIV */ 168 MEC_GSPI_MODE_CLK_DIV_256 = 0, /*!< 256 : Clock divider is 256 for 187500 Hz */ 169 MEC_GSPI_MODE_CLK_DIV_48M = 1, /*!< 48M : Clock divider is 1 for 48MHz */ 170 MEC_GSPI_MODE_CLK_DIV_24M = 2, /*!< 24M : Clock divider is 2 for 24MHz */ 171 MEC_GSPI_MODE_CLK_DIV_16M = 3, /*!< 16M : Clock divider is 3 for 16MHz */ 172 MEC_GSPI_MODE_CLK_DIV_12M = 4, /*!< 12M : Clock divider is 4 for 16MHz */ 173 MEC_GSPI_MODE_CLK_DIV_8M = 6, /*!< 8M : Clock divider is 6 for 8MHz */ 174 MEC_GSPI_MODE_CLK_DIV_6M = 8, /*!< 6M : Clock divider is 8 for 6MHz */ 175 MEC_GSPI_MODE_CLK_DIV_4M = 12, /*!< 4M : Clock divider is 12 for 4MHz */ 176 MEC_GSPI_MODE_CLK_DIV_2M = 24, /*!< 2M : Clock divider is 24 for 2MHz */ 177 MEC_GSPI_MODE_CLK_DIV_1M = 48, /*!< 1M : Clock divider is 48 for 1MHz */ 178 } MEC_GSPI_MODE_CLK_DIV_Enum; 179 180 /* ========================================================= CTRL ========================================================== */ 181 /* =============================================== MEC_GSPI CTRL IFM [0..0] =============================================== */ 182 typedef enum { /*!< MEC_GSPI_CTRL_IFM */ 183 MEC_GSPI_CTRL_IFM_FULL_DUPLEX = 0, /*!< FULL_DUPLEX : Full duplex I/O */ 184 MEC_GSPI_CTRL_IFM_DUAL = 1, /*!< DUAL : Dual I/O */ 185 } MEC_GSPI_CTRL_IFM_Enum; 186 187 /* ============================================= MEC_GSPI CTRL TX_XFR [2..3] ============================================== */ 188 typedef enum { /*!< MEC_GSPI_CTRL_TX_XFR */ 189 MEC_GSPI_CTRL_TX_XFR_DIS = 0, /*!< DIS : Transmit is disabled, clocks only */ 190 MEC_GSPI_CTRL_TX_XFR_EN_DATA = 1, /*!< EN_DATA : Transmit data from TX FIFO */ 191 MEC_GSPI_CTRL_TX_XFR_EN_ZEROS = 2, /*!< EN_ZEROS : Transmit zeros as data */ 192 MEC_GSPI_CTRL_TX_XFR_EN_ONES = 3, /*!< EN_ONES : Transmit ones as data */ 193 } MEC_GSPI_CTRL_TX_XFR_Enum; 194 195 /* ============================================= MEC_GSPI CTRL TX_DMA [4..5] ============================================== */ 196 typedef enum { /*!< MEC_GSPI_CTRL_TX_DMA */ 197 MEC_GSPI_CTRL_TX_DMA_DIS = 0, /*!< DIS : TX DMA is disabled */ 198 MEC_GSPI_CTRL_TX_DMA_EN_1BYTE = 1, /*!< EN_1BYTE : TX DMA enabled for units of 1 bytes */ 199 MEC_GSPI_CTRL_TX_DMA_EN_2BYTE = 2, /*!< EN_2BYTE : TX DMA enabled for units of 2 bytes */ 200 MEC_GSPI_CTRL_TX_DMA_EN_4BYTE = 3, /*!< EN_4BYTE : TX DMA enabled for units of 4 bytes */ 201 } MEC_GSPI_CTRL_TX_DMA_Enum; 202 203 /* ============================================= MEC_GSPI CTRL RX_XFR [6..6] ============================================== */ 204 typedef enum { /*!< MEC_GSPI_CTRL_RX_XFR */ 205 MEC_GSPI_CTRL_RX_XFR_EN = 1, /*!< EN : Enable receive */ 206 } MEC_GSPI_CTRL_RX_XFR_Enum; 207 208 /* ============================================= MEC_GSPI CTRL RX_DMA [7..8] ============================================== */ 209 typedef enum { /*!< MEC_GSPI_CTRL_RX_DMA */ 210 MEC_GSPI_CTRL_RX_DMA_DIS = 0, /*!< DIS : Disable RX DMA */ 211 MEC_GSPI_CTRL_RX_DMA_EN_1BYTE = 1, /*!< EN_1BYTE : RX DMA enable for units of 1 byte */ 212 MEC_GSPI_CTRL_RX_DMA_EN_2BYTE = 2, /*!< EN_2BYTE : RX DMA enable for units of 2 bytes */ 213 MEC_GSPI_CTRL_RX_DMA_EN_4BYTE = 3, /*!< EN_4BYTE : RX DMA enable for units of 4 bytes */ 214 } MEC_GSPI_CTRL_RX_DMA_Enum; 215 216 /* ============================================ MEC_GSPI CTRL XFR_CLOSE [9..9] ============================================ */ 217 typedef enum { /*!< MEC_GSPI_CTRL_XFR_CLOSE */ 218 MEC_GSPI_CTRL_XFR_CLOSE_EN = 1, /*!< EN : Enable close of transfer */ 219 } MEC_GSPI_CTRL_XFR_CLOSE_Enum; 220 221 /* ========================================= MEC_GSPI CTRL XFR_LEN_UNITS [10..10] ========================================= */ 222 typedef enum { /*!< MEC_GSPI_CTRL_XFR_LEN_UNITS */ 223 MEC_GSPI_CTRL_XFR_LEN_UNITS_BITS = 0, /*!< BITS : Transfer length is in bit units */ 224 MEC_GSPI_CTRL_XFR_LEN_UNITS_BYTES = 1, /*!< BYTES : Transfer length is in byte units */ 225 } MEC_GSPI_CTRL_XFR_LEN_UNITS_Enum; 226 227 /* ============================================ MEC_GSPI CTRL XFR_LEN [17..31] ============================================ */ 228 typedef enum { /*!< MEC_GSPI_CTRL_XFR_LEN */ 229 MEC_GSPI_CTRL_XFR_LEN_UNLIMITED = 0, /*!< UNLIMITED : Zero transfer units is unlimited. Controller will 230 continuously generated clocks only throttled by TX FIFO 231 empty or RX FIFO full */ 232 MEC_GSPI_CTRL_XFR_LEN_MAX = 32767, /*!< MAX : Maximum number of units to transfer */ 233 } MEC_GSPI_CTRL_XFR_LEN_Enum; 234 235 /* ========================================================== EXE ========================================================== */ 236 /* ============================================== MEC_GSPI EXE START [0..0] =============================================== */ 237 typedef enum { /*!< MEC_GSPI_EXE_START */ 238 MEC_GSPI_EXE_START_EN = 1, /*!< EN : Begin configured transaction */ 239 } MEC_GSPI_EXE_START_Enum; 240 241 /* =============================================== MEC_GSPI EXE STOP [1..1] =============================================== */ 242 typedef enum { /*!< MEC_GSPI_EXE_STOP */ 243 MEC_GSPI_EXE_STOP_EN = 1, /*!< EN : Stop transaction */ 244 } MEC_GSPI_EXE_STOP_Enum; 245 246 /* ============================================ MEC_GSPI EXE CLR_FIFOS [2..2] ============================================= */ 247 typedef enum { /*!< MEC_GSPI_EXE_CLR_FIFOS */ 248 MEC_GSPI_EXE_CLR_FIFOS_EN = 1, /*!< EN : Clear TX and RX FIFOs */ 249 } MEC_GSPI_EXE_CLR_FIFOS_Enum; 250 251 /* ======================================================== STATUS ========================================================= */ 252 /* =========================================== MEC_GSPI STATUS XFR_DONE [0..0] ============================================ */ 253 typedef enum { /*!< MEC_GSPI_STATUS_XFR_DONE */ 254 MEC_GSPI_STATUS_XFR_DONE_ON = 1, /*!< ON : Transfer done status is active */ 255 } MEC_GSPI_STATUS_XFR_DONE_Enum; 256 257 /* =========================================== MEC_GSPI STATUS DMA_DONE [1..1] ============================================ */ 258 typedef enum { /*!< MEC_GSPI_STATUS_DMA_DONE */ 259 MEC_GSPI_STATUS_DMA_DONE_ON = 1, /*!< ON : External DMA channel is done */ 260 } MEC_GSPI_STATUS_DMA_DONE_Enum; 261 262 /* ============================================ MEC_GSPI STATUS TXB_ERR [2..2] ============================================ */ 263 typedef enum { /*!< MEC_GSPI_STATUS_TXB_ERR */ 264 MEC_GSPI_STATUS_TXB_ERR_ON = 1, /*!< ON : TX FIFO was written while full */ 265 } MEC_GSPI_STATUS_TXB_ERR_Enum; 266 267 /* ============================================ MEC_GSPI STATUS RXB_ERR [3..3] ============================================ */ 268 typedef enum { /*!< MEC_GSPI_STATUS_RXB_ERR */ 269 MEC_GSPI_STATUS_RXB_ERR_ON = 1, /*!< ON : RX FIFO was read while empty */ 270 } MEC_GSPI_STATUS_RXB_ERR_Enum; 271 272 /* =========================================== MEC_GSPI STATUS PROG_ERR [4..4] ============================================ */ 273 typedef enum { /*!< MEC_GSPI_STATUS_PROG_ERR */ 274 MEC_GSPI_STATUS_PROG_ERR_ON = 1, /*!< ON : Software misconfigured registers */ 275 } MEC_GSPI_STATUS_PROG_ERR_Enum; 276 277 /* ============================================= MEC_GSPI STATUS TXBF [8..8] ============================================== */ 278 typedef enum { /*!< MEC_GSPI_STATUS_TXBF */ 279 MEC_GSPI_STATUS_TXBF_ON = 1, /*!< ON : TX FIFO is full(RO) */ 280 } MEC_GSPI_STATUS_TXBF_Enum; 281 282 /* ============================================= MEC_GSPI STATUS TXBE [9..9] ============================================== */ 283 typedef enum { /*!< MEC_GSPI_STATUS_TXBE */ 284 MEC_GSPI_STATUS_TXBE_ON = 1, /*!< ON : TX FIFO is empty(RO) */ 285 } MEC_GSPI_STATUS_TXBE_Enum; 286 287 /* ============================================ MEC_GSPI STATUS TXBS [11..11] ============================================= */ 288 typedef enum { /*!< MEC_GSPI_STATUS_TXBS */ 289 MEC_GSPI_STATUS_TXBS_ON = 1, /*!< ON : TX FIFO went empty during on-going transfer */ 290 } MEC_GSPI_STATUS_TXBS_Enum; 291 292 /* ============================================ MEC_GSPI STATUS RXBF [12..12] ============================================= */ 293 typedef enum { /*!< MEC_GSPI_STATUS_RXBF */ 294 MEC_GSPI_STATUS_RXBF_ON = 1, /*!< ON : RX FIFO is full(RO) */ 295 } MEC_GSPI_STATUS_RXBF_Enum; 296 297 /* ============================================ MEC_GSPI STATUS RXBE [13..13] ============================================= */ 298 typedef enum { /*!< MEC_GSPI_STATUS_RXBE */ 299 MEC_GSPI_STATUS_RXBE_ON = 1, /*!< ON : RX FIFO is empty(RO) */ 300 } MEC_GSPI_STATUS_RXBE_Enum; 301 302 /* ============================================ MEC_GSPI STATUS RXBS [15..15] ============================================= */ 303 typedef enum { /*!< MEC_GSPI_STATUS_RXBS */ 304 MEC_GSPI_STATUS_RXBS_ON = 1, /*!< ON : RX FIFO became full during on-going transfer */ 305 } MEC_GSPI_STATUS_RXBS_Enum; 306 307 /* ========================================= MEC_GSPI STATUS XFR_ACTIVE [16..16] ========================================== */ 308 typedef enum { /*!< MEC_GSPI_STATUS_XFR_ACTIVE */ 309 MEC_GSPI_STATUS_XFR_ACTIVE_ON = 1, /*!< ON : A transfer is active, chip select asserted(RO) */ 310 } MEC_GSPI_STATUS_XFR_ACTIVE_Enum; 311 312 /* ====================================================== BUF_CNT_STS ====================================================== */ 313 /* ============================================ MEC_GSPI BUF_CNT_STS TX [0..3] ============================================ */ 314 typedef enum { /*!< MEC_GSPI_BUF_CNT_STS_TX */ 315 MEC_GSPI_BUF_CNT_STS_TX_EMPTY = 0, /*!< EMPTY : TX buffer is empty */ 316 MEC_GSPI_BUF_CNT_STS_TX_TX_MAX = 1, /*!< TX_MAX : 8 */ 317 } MEC_GSPI_BUF_CNT_STS_TX_Enum; 318 319 /* =========================================== MEC_GSPI BUF_CNT_STS RX [16..19] =========================================== */ 320 typedef enum { /*!< MEC_GSPI_BUF_CNT_STS_RX */ 321 MEC_GSPI_BUF_CNT_STS_RX_EMPTY = 0, /*!< EMPTY : RX FIFO is empty */ 322 MEC_GSPI_BUF_CNT_STS_RX_RX_MAX = 8, /*!< RX_MAX : 8 */ 323 } MEC_GSPI_BUF_CNT_STS_RX_Enum; 324 325 /* ======================================================== INTREN ========================================================= */ 326 /* =========================================== MEC_GSPI INTREN XFR_DONE [0..0] ============================================ */ 327 typedef enum { /*!< MEC_GSPI_INTREN_XFR_DONE */ 328 MEC_GSPI_INTREN_XFR_DONE_EN = 1, /*!< EN : Enable interrupt on transfer done status is active */ 329 } MEC_GSPI_INTREN_XFR_DONE_Enum; 330 331 /* =========================================== MEC_GSPI INTREN DMA_DONE [1..1] ============================================ */ 332 typedef enum { /*!< MEC_GSPI_INTREN_DMA_DONE */ 333 MEC_GSPI_INTREN_DMA_DONE_EN = 1, /*!< EN : External DMA channel is done */ 334 } MEC_GSPI_INTREN_DMA_DONE_Enum; 335 336 /* ============================================ MEC_GSPI INTREN TXB_ERR [2..2] ============================================ */ 337 typedef enum { /*!< MEC_GSPI_INTREN_TXB_ERR */ 338 MEC_GSPI_INTREN_TXB_ERR_EN = 1, /*!< EN : TX FIFO was written while full */ 339 } MEC_GSPI_INTREN_TXB_ERR_Enum; 340 341 /* ============================================ MEC_GSPI INTREN RXB_ERR [3..3] ============================================ */ 342 typedef enum { /*!< MEC_GSPI_INTREN_RXB_ERR */ 343 MEC_GSPI_INTREN_RXB_ERR_EN = 1, /*!< EN : RX FIFO was read while empty */ 344 } MEC_GSPI_INTREN_RXB_ERR_Enum; 345 346 /* =========================================== MEC_GSPI INTREN PROG_ERR [4..4] ============================================ */ 347 typedef enum { /*!< MEC_GSPI_INTREN_PROG_ERR */ 348 MEC_GSPI_INTREN_PROG_ERR_EN = 1, /*!< EN : Software misconfigured registers */ 349 } MEC_GSPI_INTREN_PROG_ERR_Enum; 350 351 /* ============================================= MEC_GSPI INTREN TXBF [8..8] ============================================== */ 352 typedef enum { /*!< MEC_GSPI_INTREN_TXBF */ 353 MEC_GSPI_INTREN_TXBF_EN = 1, /*!< EN : TX FIFO is full(RO) */ 354 } MEC_GSPI_INTREN_TXBF_Enum; 355 356 /* ============================================= MEC_GSPI INTREN TXBE [9..9] ============================================== */ 357 typedef enum { /*!< MEC_GSPI_INTREN_TXBE */ 358 MEC_GSPI_INTREN_TXBE_EN = 1, /*!< EN : TX FIFO is empty(RO) */ 359 } MEC_GSPI_INTREN_TXBE_Enum; 360 361 /* ============================================ MEC_GSPI INTREN TXBS [11..11] ============================================= */ 362 typedef enum { /*!< MEC_GSPI_INTREN_TXBS */ 363 MEC_GSPI_INTREN_TXBS_EN = 1, /*!< EN : TX FIFO went empty during on-going transfer */ 364 } MEC_GSPI_INTREN_TXBS_Enum; 365 366 /* ============================================ MEC_GSPI INTREN RXBF [12..12] ============================================= */ 367 typedef enum { /*!< MEC_GSPI_INTREN_RXBF */ 368 MEC_GSPI_INTREN_RXBF_EN = 1, /*!< EN : RX FIFO is full(RO) */ 369 } MEC_GSPI_INTREN_RXBF_Enum; 370 371 /* ============================================ MEC_GSPI INTREN RXBE [13..13] ============================================= */ 372 typedef enum { /*!< MEC_GSPI_INTREN_RXBE */ 373 MEC_GSPI_INTREN_RXBE_EN = 1, /*!< EN : RX FIFO is empty(RO) */ 374 } MEC_GSPI_INTREN_RXBE_Enum; 375 376 /* ============================================ MEC_GSPI INTREN RXBS [15..15] ============================================= */ 377 typedef enum { /*!< MEC_GSPI_INTREN_RXBS */ 378 MEC_GSPI_INTREN_RXBS_EN = 1, /*!< EN : RX FIFO became full during on-going transfer */ 379 } MEC_GSPI_INTREN_RXBS_Enum; 380 381 /* ========================================================= CSTM ========================================================== */ 382 /* ========================================== MEC_GSPI CSTM DLY_CS_TO_CLK [0..3] ========================================== */ 383 typedef enum { /*!< MEC_GSPI_CSTM_DLY_CS_TO_CLK */ 384 MEC_GSPI_CSTM_DLY_CS_TO_CLK_NONE = 0, /*!< NONE : No delay */ 385 MEC_GSPI_CSTM_DLY_CS_TO_CLK_DFLT6 = 6, /*!< DFLT6 : Six system clocks is the default delay */ 386 } MEC_GSPI_CSTM_DLY_CS_TO_CLK_Enum; 387 388 /* ========================================= MEC_GSPI CSTM DLY_CLK_TO_CS [8..11] ========================================== */ 389 typedef enum { /*!< MEC_GSPI_CSTM_DLY_CLK_TO_CS */ 390 MEC_GSPI_CSTM_DLY_CLK_TO_CS_NONE = 0, /*!< NONE : No delay */ 391 MEC_GSPI_CSTM_DLY_CLK_TO_CS_DFLT4 = 6, /*!< DFLT4 : Four system clocks is the default delay */ 392 } MEC_GSPI_CSTM_DLY_CLK_TO_CS_Enum; 393 394 /** @} */ /* End of group EnumValue_peripherals */ 395 396 #endif /* _MEC5_GSPI_V2_H */ 397