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