1 /*
2  * Copyright (c) 2024 Microchip Technology Inc.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #ifndef _MEC5_DMAC_V2_CH16_H
7 #define _MEC5_DMAC_V2_CH16_H
8 
9 /** @addtogroup Device_Peripheral_clusters
10   * @{
11   */
12 
13 /**
14   * @brief MEC_DMA_CHAN [CHAN] (DMA Channel)
15   */
16 typedef struct mec_dma_chan_regs {
17   __IOM uint32_t  ACTV;                         /*!< (@ 0x00000000) Channel n Activate                                         */
18   __IOM uint32_t  MSTART;                       /*!< (@ 0x00000004) Channel n Memory start address                             */
19   __IOM uint32_t  MEND;                         /*!< (@ 0x00000008) Channel n Memory end address                               */
20   __IOM uint32_t  DSTART;                       /*!< (@ 0x0000000C) Channel n Device start address                             */
21   __IOM uint32_t  CTRL;                         /*!< (@ 0x00000010) Channel n Control                                          */
22   __IOM uint32_t  ISTATUS;                      /*!< (@ 0x00000014) Channel n Interrupt status                                 */
23   __IOM uint32_t  IEN;                          /*!< (@ 0x00000018) Channel n Interrupt enable                                 */
24   __IM  uint32_t  FSM;                          /*!< (@ 0x0000001C) Channel n FSM(RO)                                          */
25   __IOM uint32_t  ALU_EN;                       /*!< (@ 0x00000020) Channel 0-1 only, ALU Enable                               */
26   __IOM uint32_t  ALU_DATA;                     /*!< (@ 0x00000024) Channel 0-1 only, ALU Data                                 */
27   __IOM uint32_t  ALU_PSTS;                     /*!< (@ 0x00000028) Channel 0-1 only, ALU Post status                          */
28   __IOM uint32_t  ALU_FSM;                      /*!< (@ 0x0000002C) Channel 0-1 only, ALU FSM(RO)                              */
29   __IM  uint32_t  RESERVED[4];
30 } MEC_DMA_CHAN_Type;                            /*!< Size = 64 (0x40)                                                          */
31 
32 /** @} */ /* End of group Device_Peripheral_clusters */
33 
34 /** @addtogroup Device_Peripheral_peripherals
35   * @{
36   */
37 
38 /**
39   * @brief Internal DMA (MEC_DMAC)
40   */
41 
42 typedef struct mec_dmac_regs {                  /*!< (@ 0x40002400) MEC_DMAC Structure                                         */
43   __IOM uint32_t  MCTRL;                        /*!< (@ 0x00000000) DMA Main Control                                           */
44   __IM  uint32_t  DM_DPKT;                      /*!< (@ 0x00000004) DMA Main Data Packet(RO)                                   */
45   __IM  uint32_t  DM_FSM;                       /*!< (@ 0x00000008) DMA Main FSM(RO)                                           */
46   __IM  uint32_t  RESERVED[13];
47   MEC_DMA_CHAN_Type CHAN[16];                   /*!< (@ 0x00000040) DMA Channel                                                */
48 } MEC_DMAC_Type;                                /*!< Size = 1088 (0x440)                                                       */
49 
50 /** @} */ /* End of group Device_Peripheral_peripherals */
51 
52 /** @addtogroup PosMask_clusters
53   * @{
54   */
55 /* =========================================================  ACTV  ========================================================== */
56 #define MEC_DMA_CHAN_ACTV_EN_Pos (0UL)                     /*!< EN (Bit 0)                                            */
57 #define MEC_DMA_CHAN_ACTV_EN_Msk (0x1UL)                   /*!< EN (Bitfield-Mask: 0x01)                              */
58 /* ========================================================  MSTART  ========================================================= */
59 /* =========================================================  MEND  ========================================================== */
60 /* ========================================================  DSTART  ========================================================= */
61 /* =========================================================  CTRL  ========================================================== */
62 #define MEC_DMA_CHAN_CTRL_HFC_RUN_Pos (0UL)                /*!< HFC_RUN (Bit 0)                                       */
63 #define MEC_DMA_CHAN_CTRL_HFC_RUN_Msk (0x1UL)              /*!< HFC_RUN (Bitfield-Mask: 0x01)                         */
64 #define MEC_DMA_CHAN_CTRL_REQSTS_Pos (1UL)                 /*!< REQSTS (Bit 1)                                        */
65 #define MEC_DMA_CHAN_CTRL_REQSTS_Msk (0x2UL)               /*!< REQSTS (Bitfield-Mask: 0x01)                          */
66 #define MEC_DMA_CHAN_CTRL_DONE_Pos (2UL)                   /*!< DONE (Bit 2)                                          */
67 #define MEC_DMA_CHAN_CTRL_DONE_Msk (0x4UL)                 /*!< DONE (Bitfield-Mask: 0x01)                            */
68 #define MEC_DMA_CHAN_CTRL_BUSY_Pos (5UL)                   /*!< BUSY (Bit 5)                                          */
69 #define MEC_DMA_CHAN_CTRL_BUSY_Msk (0x20UL)                /*!< BUSY (Bitfield-Mask: 0x01)                            */
70 #define MEC_DMA_CHAN_CTRL_MEM2DEV_Pos (8UL)                /*!< MEM2DEV (Bit 8)                                       */
71 #define MEC_DMA_CHAN_CTRL_MEM2DEV_Msk (0x100UL)            /*!< MEM2DEV (Bitfield-Mask: 0x01)                         */
72 #define MEC_DMA_CHAN_CTRL_HFC_DEV_Pos (9UL)                /*!< HFC_DEV (Bit 9)                                       */
73 #define MEC_DMA_CHAN_CTRL_HFC_DEV_Msk (0xfe00UL)           /*!< HFC_DEV (Bitfield-Mask: 0x7f)                         */
74 #define MEC_DMA_CHAN_CTRL_INCRM_Pos (16UL)                 /*!< INCRM (Bit 16)                                        */
75 #define MEC_DMA_CHAN_CTRL_INCRM_Msk (0x10000UL)            /*!< INCRM (Bitfield-Mask: 0x01)                           */
76 #define MEC_DMA_CHAN_CTRL_INCRD_Pos (17UL)                 /*!< INCRD (Bit 17)                                        */
77 #define MEC_DMA_CHAN_CTRL_INCRD_Msk (0x20000UL)            /*!< INCRD (Bitfield-Mask: 0x01)                           */
78 #define MEC_DMA_CHAN_CTRL_LOCK_ARB_Pos (18UL)              /*!< LOCK_ARB (Bit 18)                                     */
79 #define MEC_DMA_CHAN_CTRL_LOCK_ARB_Msk (0x40000UL)         /*!< LOCK_ARB (Bitfield-Mask: 0x01)                        */
80 #define MEC_DMA_CHAN_CTRL_DHFC_Pos (19UL)                  /*!< DHFC (Bit 19)                                         */
81 #define MEC_DMA_CHAN_CTRL_DHFC_Msk (0x80000UL)             /*!< DHFC (Bitfield-Mask: 0x01)                            */
82 #define MEC_DMA_CHAN_CTRL_UNITSZ_Pos (20UL)                /*!< UNITSZ (Bit 20)                                       */
83 #define MEC_DMA_CHAN_CTRL_UNITSZ_Msk (0x700000UL)          /*!< UNITSZ (Bitfield-Mask: 0x07)                          */
84 #define MEC_DMA_CHAN_CTRL_SWFC_RUN_Pos (24UL)              /*!< SWFC_RUN (Bit 24)                                     */
85 #define MEC_DMA_CHAN_CTRL_SWFC_RUN_Msk (0x1000000UL)       /*!< SWFC_RUN (Bitfield-Mask: 0x01)                        */
86 #define MEC_DMA_CHAN_CTRL_ABORT_Pos (25UL)                 /*!< ABORT (Bit 25)                                        */
87 #define MEC_DMA_CHAN_CTRL_ABORT_Msk (0x2000000UL)          /*!< ABORT (Bitfield-Mask: 0x01)                           */
88 /* ========================================================  ISTATUS  ======================================================== */
89 #define MEC_DMA_CHAN_ISTATUS_BERR_Pos (0UL)                /*!< BERR (Bit 0)                                          */
90 #define MEC_DMA_CHAN_ISTATUS_BERR_Msk (0x1UL)              /*!< BERR (Bitfield-Mask: 0x01)                            */
91 #define MEC_DMA_CHAN_ISTATUS_HFCREQ_Pos (1UL)              /*!< HFCREQ (Bit 1)                                        */
92 #define MEC_DMA_CHAN_ISTATUS_HFCREQ_Msk (0x2UL)            /*!< HFCREQ (Bitfield-Mask: 0x01)                          */
93 #define MEC_DMA_CHAN_ISTATUS_DONE_Pos (2UL)                /*!< DONE (Bit 2)                                          */
94 #define MEC_DMA_CHAN_ISTATUS_DONE_Msk (0x4UL)              /*!< DONE (Bitfield-Mask: 0x01)                            */
95 #define MEC_DMA_CHAN_ISTATUS_HFCTERM_Pos (3UL)             /*!< HFCTERM (Bit 3)                                       */
96 #define MEC_DMA_CHAN_ISTATUS_HFCTERM_Msk (0x8UL)           /*!< HFCTERM (Bitfield-Mask: 0x01)                         */
97 /* ==========================================================  IEN  ========================================================== */
98 #define MEC_DMA_CHAN_IEN_BERR_Pos (0UL)                    /*!< BERR (Bit 0)                                          */
99 #define MEC_DMA_CHAN_IEN_BERR_Msk (0x1UL)                  /*!< BERR (Bitfield-Mask: 0x01)                            */
100 #define MEC_DMA_CHAN_IEN_HFCREQ_Pos (1UL)                  /*!< HFCREQ (Bit 1)                                        */
101 #define MEC_DMA_CHAN_IEN_HFCREQ_Msk (0x2UL)                /*!< HFCREQ (Bitfield-Mask: 0x01)                          */
102 #define MEC_DMA_CHAN_IEN_DONE_Pos (2UL)                    /*!< DONE (Bit 2)                                          */
103 #define MEC_DMA_CHAN_IEN_DONE_Msk (0x4UL)                  /*!< DONE (Bitfield-Mask: 0x01)                            */
104 #define MEC_DMA_CHAN_IEN_HFCTERM_Pos (3UL)                 /*!< HFCTERM (Bit 3)                                       */
105 #define MEC_DMA_CHAN_IEN_HFCTERM_Msk (0x8UL)               /*!< HFCTERM (Bitfield-Mask: 0x01)                         */
106 /* ==========================================================  FSM  ========================================================== */
107 /* ========================================================  ALU_EN  ========================================================= */
108 #define MEC_DMA_CHAN_ALU_EN_ENABLE_Pos (0UL)               /*!< ENABLE (Bit 0)                                        */
109 #define MEC_DMA_CHAN_ALU_EN_ENABLE_Msk (0x1UL)             /*!< ENABLE (Bitfield-Mask: 0x01)                          */
110 #define MEC_DMA_CHAN_ALU_EN_POST_XFR_EN_Pos (1UL)          /*!< POST_XFR_EN (Bit 1)                                   */
111 #define MEC_DMA_CHAN_ALU_EN_POST_XFR_EN_Msk (0x2UL)        /*!< POST_XFR_EN (Bitfield-Mask: 0x01)                     */
112 /* =======================================================  ALU_DATA  ======================================================== */
113 /* =======================================================  ALU_PSTS  ======================================================== */
114 #define MEC_DMA_CHAN_ALU_PSTS_DONE_Pos (0UL)               /*!< DONE (Bit 0)                                          */
115 #define MEC_DMA_CHAN_ALU_PSTS_DONE_Msk (0x1UL)             /*!< DONE (Bitfield-Mask: 0x01)                            */
116 #define MEC_DMA_CHAN_ALU_PSTS_POST_XFR_BUSY_Pos (1UL)      /*!< POST_XFR_BUSY (Bit 1)                                 */
117 #define MEC_DMA_CHAN_ALU_PSTS_POST_XFR_BUSY_Msk (0x2UL)    /*!< POST_XFR_BUSY (Bitfield-Mask: 0x01)                   */
118 #define MEC_DMA_CHAN_ALU_PSTS_POST_XFR_DONE_Pos (2UL)      /*!< POST_XFR_DONE (Bit 2)                                 */
119 #define MEC_DMA_CHAN_ALU_PSTS_POST_XFR_DONE_Msk (0x4UL)    /*!< POST_XFR_DONE (Bitfield-Mask: 0x01)                   */
120 #define MEC_DMA_CHAN_ALU_PSTS_DRDY_Pos (3UL)               /*!< DRDY (Bit 3)                                          */
121 #define MEC_DMA_CHAN_ALU_PSTS_DRDY_Msk (0x8UL)             /*!< DRDY (Bitfield-Mask: 0x01)                            */
122 /** @} */ /* End of group PosMask_clusters */
123 
124 /** @addtogroup PosMask_peripherals
125   * @{
126   */
127 /* =========================================================  MCTRL  ========================================================= */
128 #define MEC_DMAC_MCTRL_MACTV_Pos          (0UL)                     /*!< MACTV (Bit 0)                                         */
129 #define MEC_DMAC_MCTRL_MACTV_Msk          (0x1UL)                   /*!< MACTV (Bitfield-Mask: 0x01)                           */
130 #define MEC_DMAC_MCTRL_MRST_Pos           (1UL)                     /*!< MRST (Bit 1)                                          */
131 #define MEC_DMAC_MCTRL_MRST_Msk           (0x2UL)                   /*!< MRST (Bitfield-Mask: 0x01)                            */
132 /** @} */ /* End of group PosMask_peripherals */
133 
134 /** @addtogroup EnumValue_clusters
135   * @{
136   */
137 /* =========================================================  ACTV  ========================================================== */
138 /* ==================================================  CHAN ACTV EN [0..0]  ================================================== */
139 typedef enum {                                  /*!< MEC_DMAC_CHAN_ACTV_EN                                                     */
140   MEC_DMAC_CHAN_ACTV_EN_EN             = 1,     /*!< EN : Enable channel                                                       */
141 } MEC_DMAC_CHAN_ACTV_EN_Enum;
142 
143 /* ========================================================  MSTART  ========================================================= */
144 /* =========================================================  MEND  ========================================================== */
145 /* ========================================================  DSTART  ========================================================= */
146 /* =========================================================  CTRL  ========================================================== */
147 /* ===============================================  CHAN CTRL HFC_RUN [0..0]  ================================================ */
148 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_HFC_RUN                                                */
149   MEC_DMAC_CHAN_CTRL_HFC_RUN_EN        = 1,     /*!< EN : Start channel in HW Flow Control mode                                */
150 } MEC_DMAC_CHAN_CTRL_HFC_RUN_Enum;
151 
152 /* ================================================  CHAN CTRL REQSTS [1..1]  ================================================ */
153 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_REQSTS                                                 */
154   MEC_DMAC_CHAN_CTRL_REQSTS_ACTIVE     = 1,     /*!< ACTIVE : HW Flow Control device request signal is active                  */
155 } MEC_DMAC_CHAN_CTRL_REQSTS_Enum;
156 
157 /* =================================================  CHAN CTRL DONE [2..2]  ================================================= */
158 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_DONE                                                   */
159   MEC_DMAC_CHAN_CTRL_DONE_ACTIVE       = 1,     /*!< ACTIVE : Channel done status is active                                    */
160 } MEC_DMAC_CHAN_CTRL_DONE_Enum;
161 
162 /* =================================================  CHAN CTRL BUSY [5..5]  ================================================= */
163 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_BUSY                                                   */
164   MEC_DMAC_CHAN_CTRL_BUSY_ACTIVE       = 1,     /*!< ACTIVE : Channel Busy status is active                                    */
165 } MEC_DMAC_CHAN_CTRL_BUSY_Enum;
166 
167 /* ===============================================  CHAN CTRL HFC_DEV [9..15]  =============================================== */
168 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_HFC_DEV                                                */
169   MEC_DMAC_CHAN_CTRL_HFC_DEV_I2C0_EP   = 0,     /*!< I2C0_EP : I2C_SMB0 endpoint mode                                          */
170   MEC_DMAC_CHAN_CTRL_HFC_DEV_I2C0_CTRL = 1,     /*!< I2C0_CTRL : I2C_SMB0 controller mode                                      */
171   MEC_DMAC_CHAN_CTRL_HFC_DEV_I2C1_EP   = 2,     /*!< I2C1_EP : I2C_SMB1 endpoint mode                                          */
172   MEC_DMAC_CHAN_CTRL_HFC_DEV_I2C1_CTRL = 3,     /*!< I2C1_CTRL : I2C_SMB1 controller mode                                      */
173   MEC_DMAC_CHAN_CTRL_HFC_DEV_I2C2_EP   = 4,     /*!< I2C2_EP : I2C_SMB2 endpoint mode                                          */
174   MEC_DMAC_CHAN_CTRL_HFC_DEV_I2C2_CTRL = 5,     /*!< I2C2_CTRL : I2C_SMB2 controller mode                                      */
175   MEC_DMAC_CHAN_CTRL_HFC_DEV_I2C3_EP   = 6,     /*!< I2C3_EP : I2C_SMB3 endpoint mode                                          */
176   MEC_DMAC_CHAN_CTRL_HFC_DEV_I2C3_CTRL = 7,     /*!< I2C3_CTRL : I2C_SMB3 controller mode                                      */
177   MEC_DMAC_CHAN_CTRL_HFC_DEV_I2C4_EP   = 8,     /*!< I2C4_EP : I2C_SMB4 endpoint mode                                          */
178   MEC_DMAC_CHAN_CTRL_HFC_DEV_I2C4_CTRL = 9,     /*!< I2C4_CTRL : I2C_SMB4 controller mode                                      */
179   MEC_DMAC_CHAN_CTRL_HFC_DEV_QSPI0_TX  = 10,    /*!< QSPI0_TX : QSPI0 transmit mode                                            */
180   MEC_DMAC_CHAN_CTRL_HFC_DEV_QSPI0_RX  = 11,    /*!< QSPI0_RX : QSPI0 receive mode                                             */
181   MEC_DMAC_CHAN_CTRL_HFC_DEV_GSPI0_TX  = 12,    /*!< GSPI0_TX : GSPI0 transmit mode                                            */
182   MEC_DMAC_CHAN_CTRL_HFC_DEV_GSPI0_RX  = 13,    /*!< GSPI0_RX : GSPI0 receive mode                                             */
183   MEC_DMAC_CHAN_CTRL_HFC_DEV_GSPI1_TX  = 14,    /*!< GSPI1_TX : GSPI1 transmit mode                                            */
184   MEC_DMAC_CHAN_CTRL_HFC_DEV_GSPI1_RX  = 15,    /*!< GSPI1_RX : GSPI1 receive mode                                             */
185 } MEC_DMAC_CHAN_CTRL_HFC_DEV_Enum;
186 
187 /* ===============================================  CHAN CTRL INCRM [16..16]  ================================================ */
188 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_INCRM                                                  */
189   MEC_DMAC_CHAN_CTRL_INCRM_EN          = 1,     /*!< EN : Enable increment of memory start address by unit size                */
190 } MEC_DMAC_CHAN_CTRL_INCRM_Enum;
191 
192 /* ===============================================  CHAN CTRL INCRD [17..17]  ================================================ */
193 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_INCRD                                                  */
194   MEC_DMAC_CHAN_CTRL_INCRD_EN          = 1,     /*!< EN : Enable increment of device start address by unit size                */
195 } MEC_DMAC_CHAN_CTRL_INCRD_Enum;
196 
197 /* ==============================================  CHAN CTRL LOCK_ARB [18..18]  ============================================== */
198 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_LOCK_ARB                                               */
199   MEC_DMAC_CHAN_CTRL_LOCK_ARB_EN       = 1,     /*!< EN : Enable locking this channel as highest priority in the
200                                                                     arbiter                                                    */
201 } MEC_DMAC_CHAN_CTRL_LOCK_ARB_Enum;
202 
203 /* ================================================  CHAN CTRL DHFC [19..19]  ================================================ */
204 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_DHFC                                                   */
205   MEC_DMAC_CHAN_CTRL_DHFC_ON           = 1,     /*!< ON : Disable HW flow control                                              */
206 } MEC_DMAC_CHAN_CTRL_DHFC_Enum;
207 
208 /* ===============================================  CHAN CTRL UNITSZ [20..22]  =============================================== */
209 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_UNITSZ                                                 */
210   MEC_DMAC_CHAN_CTRL_UNITSZ_8BIT       = 1,     /*!< 8BIT : Transfer unit size is 8-bits(1 byte)                               */
211   MEC_DMAC_CHAN_CTRL_UNITSZ_16BIT      = 2,     /*!< 16BIT : Transfer unit size is 16-bits(2 bytes)                            */
212   MEC_DMAC_CHAN_CTRL_UNITSZ_32BIT      = 4,     /*!< 32BIT : Transfer unit size is 32-bits(4 bytes)                            */
213 } MEC_DMAC_CHAN_CTRL_UNITSZ_Enum;
214 
215 /* ==============================================  CHAN CTRL SWFC_RUN [24..24]  ============================================== */
216 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_SWFC_RUN                                               */
217   MEC_DMAC_CHAN_CTRL_SWFC_RUN_EN       = 1,     /*!< EN : Start channel in software flow control mode                          */
218 } MEC_DMAC_CHAN_CTRL_SWFC_RUN_Enum;
219 
220 /* ===============================================  CHAN CTRL ABORT [25..25]  ================================================ */
221 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_ABORT                                                  */
222   MEC_DMAC_CHAN_CTRL_ABORT_EN          = 1,     /*!< EN : Abort current operation at next unit boundary                        */
223 } MEC_DMAC_CHAN_CTRL_ABORT_Enum;
224 
225 /* ========================================================  ISTATUS  ======================================================== */
226 /* ===============================================  CHAN ISTATUS BERR [0..0]  ================================================ */
227 typedef enum {                                  /*!< MEC_DMAC_CHAN_ISTATUS_BERR                                                */
228   MEC_DMAC_CHAN_ISTATUS_BERR_ACTIVE    = 1,     /*!< ACTIVE : AHB Bus Error status active                                      */
229 } MEC_DMAC_CHAN_ISTATUS_BERR_Enum;
230 
231 /* ==============================================  CHAN ISTATUS HFCREQ [1..1]  =============================================== */
232 typedef enum {                                  /*!< MEC_DMAC_CHAN_ISTATUS_HFCREQ                                              */
233   MEC_DMAC_CHAN_ISTATUS_HFCREQ_ACTIVE  = 1,     /*!< ACTIVE : HW flow control device request active after transfer
234                                                      has finished                                                              */
235 } MEC_DMAC_CHAN_ISTATUS_HFCREQ_Enum;
236 
237 /* ===============================================  CHAN ISTATUS DONE [2..2]  ================================================ */
238 typedef enum {                                  /*!< MEC_DMAC_CHAN_ISTATUS_DONE                                                */
239   MEC_DMAC_CHAN_ISTATUS_DONE_ACTIVE    = 1,     /*!< ACTIVE : Transfer is done: memory start address == memory end
240                                                      address                                                                   */
241 } MEC_DMAC_CHAN_ISTATUS_DONE_Enum;
242 
243 /* ==============================================  CHAN ISTATUS HFCTERM [3..3]  ============================================== */
244 typedef enum {                                  /*!< MEC_DMAC_CHAN_ISTATUS_HFCTERM                                             */
245   MEC_DMAC_CHAN_ISTATUS_HFCTERM_ACTIVE = 1,     /*!< ACTIVE : HW flow control device terminate signal active                   */
246 } MEC_DMAC_CHAN_ISTATUS_HFCTERM_Enum;
247 
248 /* ==========================================================  IEN  ========================================================== */
249 /* =================================================  CHAN IEN BERR [0..0]  ================================================== */
250 typedef enum {                                  /*!< MEC_DMAC_CHAN_IEN_BERR                                                    */
251   MEC_DMAC_CHAN_IEN_BERR_EN            = 1,     /*!< EN : Enable AHB Bus Error interrupt                                       */
252 } MEC_DMAC_CHAN_IEN_BERR_Enum;
253 
254 /* ================================================  CHAN IEN HFCREQ [1..1]  ================================================= */
255 typedef enum {                                  /*!< MEC_DMAC_CHAN_IEN_HFCREQ                                                  */
256   MEC_DMAC_CHAN_IEN_HFCREQ_EN          = 1,     /*!< EN : Enable HW flow control error interrupt                               */
257 } MEC_DMAC_CHAN_IEN_HFCREQ_Enum;
258 
259 /* =================================================  CHAN IEN DONE [2..2]  ================================================== */
260 typedef enum {                                  /*!< MEC_DMAC_CHAN_IEN_DONE                                                    */
261   MEC_DMAC_CHAN_IEN_DONE_EN            = 1,     /*!< EN : Enable transfer done interrupt                                       */
262 } MEC_DMAC_CHAN_IEN_DONE_Enum;
263 
264 /* ================================================  CHAN IEN HFCTERM [3..3]  ================================================ */
265 typedef enum {                                  /*!< MEC_DMAC_CHAN_IEN_HFCTERM                                                 */
266   MEC_DMAC_CHAN_IEN_HFCTERM_EN         = 1,     /*!< EN : Enable HW flow control terminate interrupt                           */
267 } MEC_DMAC_CHAN_IEN_HFCTERM_Enum;
268 
269 /* ==========================================================  FSM  ========================================================== */
270 /* ========================================================  ALU_EN  ========================================================= */
271 /* ===============================================  CHAN ALU_EN ENABLE [0..0]  =============================================== */
272 typedef enum {                                  /*!< MEC_DMAC_CHAN_ALU_EN_ENABLE                                               */
273   MEC_DMAC_CHAN_ALU_EN_ENABLE_ON       = 1,     /*!< ON : Enable ALU logic                                                     */
274 } MEC_DMAC_CHAN_ALU_EN_ENABLE_Enum;
275 
276 /* ============================================  CHAN ALU_EN POST_XFR_EN [1..1]  ============================================= */
277 typedef enum {                                  /*!< MEC_DMAC_CHAN_ALU_EN_POST_XFR_EN                                          */
278   MEC_DMAC_CHAN_ALU_EN_POST_XFR_EN_ON  = 1,     /*!< ON : Enable ALU post calculation result transfer to memory                */
279 } MEC_DMAC_CHAN_ALU_EN_POST_XFR_EN_Enum;
280 
281 /* =======================================================  ALU_DATA  ======================================================== */
282 /* =======================================================  ALU_PSTS  ======================================================== */
283 /* ===============================================  CHAN ALU_PSTS DONE [0..0]  =============================================== */
284 typedef enum {                                  /*!< MEC_DMAC_CHAN_ALU_PSTS_DONE                                               */
285   MEC_DMAC_CHAN_ALU_PSTS_DONE_ACTIVE   = 1,     /*!< ACTIVE : ALU calculation done                                             */
286 } MEC_DMAC_CHAN_ALU_PSTS_DONE_Enum;
287 
288 /* ==========================================  CHAN ALU_PSTS POST_XFR_BUSY [1..1]  =========================================== */
289 typedef enum {                                  /*!< MEC_DMAC_CHAN_ALU_PSTS_POST_XFR_BUSY                                      */
290   MEC_DMAC_CHAN_ALU_PSTS_POST_XFR_BUSY_ACTIVE = 1,/*!< ACTIVE : ALU Busy status                                                */
291 } MEC_DMAC_CHAN_ALU_PSTS_POST_XFR_BUSY_Enum;
292 
293 /* ==========================================  CHAN ALU_PSTS POST_XFR_DONE [2..2]  =========================================== */
294 typedef enum {                                  /*!< MEC_DMAC_CHAN_ALU_PSTS_POST_XFR_DONE                                      */
295   MEC_DMAC_CHAN_ALU_PSTS_POST_XFR_DONE_ACTIVE = 1,/*!< ACTIVE : ALU post transfer done status                                  */
296 } MEC_DMAC_CHAN_ALU_PSTS_POST_XFR_DONE_Enum;
297 
298 /* ===============================================  CHAN ALU_PSTS DRDY [3..3]  =============================================== */
299 typedef enum {                                  /*!< MEC_DMAC_CHAN_ALU_PSTS_DRDY                                               */
300   MEC_DMAC_CHAN_ALU_PSTS_DRDY_ACTIVE   = 1,     /*!< ACTIVE : ALU data ready status                                            */
301 } MEC_DMAC_CHAN_ALU_PSTS_DRDY_Enum;
302 /** @} */ /* End of group EnumValue_clusters */
303 
304 /** @addtogroup EnumValue_peripherals
305   * @{
306   */
307 /* =========================================================  MCTRL  ========================================================= */
308 /* ==============================================  MEC_DMAC MCTRL MACTV [0..0]  ============================================== */
309 typedef enum {                                  /*!< MEC_DMAC_MCTRL_MACTV                                                      */
310   MEC_DMAC_MCTRL_MACTV_EN              = 1,     /*!< EN : Activate(ungate clocks) DMA controller                               */
311 } MEC_DMAC_MCTRL_MACTV_Enum;
312 
313 /* ==============================================  MEC_DMAC MCTRL MRST [1..1]  =============================================== */
314 typedef enum {                                  /*!< MEC_DMAC_MCTRL_MRST                                                       */
315   MEC_DMAC_MCTRL_MRST_EN               = 1,     /*!< EN : Soft reset DMA controller(self-clearing)                             */
316 } MEC_DMAC_MCTRL_MRST_Enum;
317 /** @} */ /* End of group EnumValue_peripherals */
318 
319 #endif /* _MEC5_DMAC_V2_CH16_H */
320