1 /*
2  * Copyright (c) 2024 Microchip Technology Inc.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #ifndef _MEC5_DMAC_V2_CH20_H
7 #define _MEC5_DMAC_V2_CH20_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[20];                   /*!< (@ 0x00000040) DMA Channel                                                */
48 } MEC_DMAC_Type;                                /*!< Size = 1344 (0x540)                                                       */
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 {                                  /*!< 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_I3CP0_TARGET  = 16,    /*!< I3CP0_TARGET : I3C Primary Controller 0 as target                         */
186   MEC_DMAC_CHAN_CTRL_HFC_DEV_I3CP0_HOST    = 17,    /*!< I3CP0_HOST : I3C 0 Primary Controller 0 as host                           */
187   MEC_DMAC_CHAN_CTRL_HFC_DEV_I3CS0_TARGET  = 18,    /*!< I3CS0_TARGET : I3C Secondary Controller 0 as target                       */
188   MEC_DMAC_CHAN_CTRL_HFC_DEV_I3CS0_HOST    = 19,    /*!< I3CS0_HOST : I3C Secondary Controller 0 as host                           */
189 } MEC_DMAC_CHAN_CTRL_HFC_DEV_Enum;
190 
191 /* ===============================================  CHAN CTRL INCRM [16..16]  ================================================ */
192 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_INCRM                                                  */
193   MEC_DMAC_CHAN_CTRL_INCRM_EN          = 1,     /*!< EN : Enable increment of memory start address by unit size                */
194 } MEC_DMAC_CHAN_CTRL_INCRM_Enum;
195 
196 /* ===============================================  CHAN CTRL INCRD [17..17]  ================================================ */
197 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_INCRD                                                  */
198   MEC_DMAC_CHAN_CTRL_INCRD_EN          = 1,     /*!< EN : Enable increment of device start address by unit size                */
199 } MEC_DMAC_CHAN_CTRL_INCRD_Enum;
200 
201 /* ==============================================  CHAN CTRL LOCK_ARB [18..18]  ============================================== */
202 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_LOCK_ARB                                               */
203   MEC_DMAC_CHAN_CTRL_LOCK_ARB_EN       = 1,     /*!< EN : Enable locking this channel as highest priority in the
204                                                                     arbiter                                                    */
205 } MEC_DMAC_CHAN_CTRL_LOCK_ARB_Enum;
206 
207 /* ================================================  CHAN CTRL DHFC [19..19]  ================================================ */
208 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_DHFC                                                   */
209   MEC_DMAC_CHAN_CTRL_DHFC_ON           = 1,     /*!< ON : Disable HW flow control                                              */
210 } MEC_DMAC_CHAN_CTRL_DHFC_Enum;
211 
212 /* ===============================================  CHAN CTRL UNITSZ [20..22]  =============================================== */
213 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_UNITSZ                                                 */
214   MEC_DMAC_CHAN_CTRL_UNITSZ_8BIT       = 1,     /*!< 8BIT : Transfer unit size is 8-bits(1 byte)                               */
215   MEC_DMAC_CHAN_CTRL_UNITSZ_16BIT      = 2,     /*!< 16BIT : Transfer unit size is 16-bits(2 bytes)                            */
216   MEC_DMAC_CHAN_CTRL_UNITSZ_32BIT      = 4,     /*!< 32BIT : Transfer unit size is 32-bits(4 bytes)                            */
217 } MEC_DMAC_CHAN_CTRL_UNITSZ_Enum;
218 
219 /* ==============================================  CHAN CTRL SWFC_RUN [24..24]  ============================================== */
220 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_SWFC_RUN                                               */
221   MEC_DMAC_CHAN_CTRL_SWFC_RUN_EN       = 1,     /*!< EN : Start channel in software flow control mode                          */
222 } MEC_DMAC_CHAN_CTRL_SWFC_RUN_Enum;
223 
224 /* ===============================================  CHAN CTRL ABORT [25..25]  ================================================ */
225 typedef enum {                                  /*!< MEC_DMAC_CHAN_CTRL_ABORT                                                  */
226   MEC_DMAC_CHAN_CTRL_ABORT_EN          = 1,     /*!< EN : Abort current operation at next unit boundary                        */
227 } MEC_DMAC_CHAN_CTRL_ABORT_Enum;
228 
229 /* ========================================================  ISTATUS  ======================================================== */
230 /* ===============================================  CHAN ISTATUS BERR [0..0]  ================================================ */
231 typedef enum {                                  /*!< MEC_DMAC_CHAN_ISTATUS_BERR                                                */
232   MEC_DMAC_CHAN_ISTATUS_BERR_ACTIVE    = 1,     /*!< ACTIVE : AHB Bus Error status active                                      */
233 } MEC_DMAC_CHAN_ISTATUS_BERR_Enum;
234 
235 /* ==============================================  CHAN ISTATUS HFCREQ [1..1]  =============================================== */
236 typedef enum {                                  /*!< MEC_DMAC_CHAN_ISTATUS_HFCREQ                                              */
237   MEC_DMAC_CHAN_ISTATUS_HFCREQ_ACTIVE  = 1,     /*!< ACTIVE : HW flow control device request active after transfer
238                                                      has finished                                                              */
239 } MEC_DMAC_CHAN_ISTATUS_HFCREQ_Enum;
240 
241 /* ===============================================  CHAN ISTATUS DONE [2..2]  ================================================ */
242 typedef enum {                                  /*!< MEC_DMAC_CHAN_ISTATUS_DONE                                                */
243   MEC_DMAC_CHAN_ISTATUS_DONE_ACTIVE    = 1,     /*!< ACTIVE : Transfer is done: memory start address == memory end
244                                                      address                                                                   */
245 } MEC_DMAC_CHAN_ISTATUS_DONE_Enum;
246 
247 /* ==============================================  CHAN ISTATUS HFCTERM [3..3]  ============================================== */
248 typedef enum {                                  /*!< MEC_DMAC_CHAN_ISTATUS_HFCTERM                                             */
249   MEC_DMAC_CHAN_ISTATUS_HFCTERM_ACTIVE = 1,     /*!< ACTIVE : HW flow control device terminate signal active                   */
250 } MEC_DMAC_CHAN_ISTATUS_HFCTERM_Enum;
251 
252 /* ==========================================================  IEN  ========================================================== */
253 /* =================================================  CHAN IEN BERR [0..0]  ================================================== */
254 typedef enum {                                  /*!< MEC_DMAC_CHAN_IEN_BERR                                                    */
255   MEC_DMAC_CHAN_IEN_BERR_EN            = 1,     /*!< EN : Enable AHB Bus Error interrupt                                       */
256 } MEC_DMAC_CHAN_IEN_BERR_Enum;
257 
258 /* ================================================  CHAN IEN HFCREQ [1..1]  ================================================= */
259 typedef enum {                                  /*!< MEC_DMAC_CHAN_IEN_HFCREQ                                                  */
260   MEC_DMAC_CHAN_IEN_HFCREQ_EN          = 1,     /*!< EN : Enable HW flow control error interrupt                               */
261 } MEC_DMAC_CHAN_IEN_HFCREQ_Enum;
262 
263 /* =================================================  CHAN IEN DONE [2..2]  ================================================== */
264 typedef enum {                                  /*!< MEC_DMAC_CHAN_IEN_DONE                                                    */
265   MEC_DMAC_CHAN_IEN_DONE_EN            = 1,     /*!< EN : Enable transfer done interrupt                                       */
266 } MEC_DMAC_CHAN_IEN_DONE_Enum;
267 
268 /* ================================================  CHAN IEN HFCTERM [3..3]  ================================================ */
269 typedef enum {                                  /*!< MEC_DMAC_CHAN_IEN_HFCTERM                                                 */
270   MEC_DMAC_CHAN_IEN_HFCTERM_EN         = 1,     /*!< EN : Enable HW flow control terminate interrupt                           */
271 } MEC_DMAC_CHAN_IEN_HFCTERM_Enum;
272 
273 /* ==========================================================  FSM  ========================================================== */
274 /* ========================================================  ALU_EN  ========================================================= */
275 /* ===============================================  CHAN ALU_EN ENABLE [0..0]  =============================================== */
276 typedef enum {                                  /*!< MEC_DMAC_CHAN_ALU_EN_ENABLE                                               */
277   MEC_DMAC_CHAN_ALU_EN_ENABLE_ON       = 1,     /*!< ON : Enable ALU logic                                                     */
278 } MEC_DMAC_CHAN_ALU_EN_ENABLE_Enum;
279 
280 /* ============================================  CHAN ALU_EN POST_XFR_EN [1..1]  ============================================= */
281 typedef enum {                                  /*!< MEC_DMAC_CHAN_ALU_EN_POST_XFR_EN                                          */
282   MEC_DMAC_CHAN_ALU_EN_POST_XFR_EN_ON  = 1,     /*!< ON : Enable ALU post calculation result transfer to memory                */
283 } MEC_DMAC_CHAN_ALU_EN_POST_XFR_EN_Enum;
284 
285 /* =======================================================  ALU_DATA  ======================================================== */
286 /* =======================================================  ALU_PSTS  ======================================================== */
287 /* ===============================================  CHAN ALU_PSTS DONE [0..0]  =============================================== */
288 typedef enum {                                  /*!< MEC_DMAC_CHAN_ALU_PSTS_DONE                                               */
289   MEC_DMAC_CHAN_ALU_PSTS_DONE_ACTIVE   = 1,     /*!< ACTIVE : ALU calculation done                                             */
290 } MEC_DMAC_CHAN_ALU_PSTS_DONE_Enum;
291 
292 /* ==========================================  CHAN ALU_PSTS POST_XFR_BUSY [1..1]  =========================================== */
293 typedef enum {                                  /*!< MEC_DMAC_CHAN_ALU_PSTS_POST_XFR_BUSY                                      */
294   MEC_DMAC_CHAN_ALU_PSTS_POST_XFR_BUSY_ACTIVE = 1,/*!< ACTIVE : ALU Busy status                                                */
295 } MEC_DMAC_CHAN_ALU_PSTS_POST_XFR_BUSY_Enum;
296 
297 /* ==========================================  CHAN ALU_PSTS POST_XFR_DONE [2..2]  =========================================== */
298 typedef enum {                                  /*!< MEC_DMAC_CHAN_ALU_PSTS_POST_XFR_DONE                                      */
299   MEC_DMAC_CHAN_ALU_PSTS_POST_XFR_DONE_ACTIVE = 1,/*!< ACTIVE : ALU post transfer done status                                  */
300 } MEC_DMAC_CHAN_ALU_PSTS_POST_XFR_DONE_Enum;
301 
302 /* ===============================================  CHAN ALU_PSTS DRDY [3..3]  =============================================== */
303 typedef enum {                                  /*!< MEC_DMAC_CHAN_ALU_PSTS_DRDY                                               */
304   MEC_DMAC_CHAN_ALU_PSTS_DRDY_ACTIVE   = 1,     /*!< ACTIVE : ALU data ready status                                            */
305 } MEC_DMAC_CHAN_ALU_PSTS_DRDY_Enum;
306 /** @} */ /* End of group EnumValue_clusters */
307 
308 /** @addtogroup EnumValue_peripherals
309   * @{
310   */
311 /* =========================================================  MCTRL  ========================================================= */
312 /* ==============================================  MEC_DMAC MCTRL MACTV [0..0]  ============================================== */
313 typedef enum {                                  /*!< MEC_DMAC_MCTRL_MACTV                                                      */
314   MEC_DMAC_MCTRL_MACTV_EN              = 1,     /*!< EN : Activate(ungate clocks) DMA controller                               */
315 } MEC_DMAC_MCTRL_MACTV_Enum;
316 
317 /* ==============================================  MEC_DMAC MCTRL MRST [1..1]  =============================================== */
318 typedef enum {                                  /*!< MEC_DMAC_MCTRL_MRST                                                       */
319   MEC_DMAC_MCTRL_MRST_EN               = 1,     /*!< EN : Soft reset DMA controller(self-clearing)                             */
320 } MEC_DMAC_MCTRL_MRST_Enum;
321 /** @} */ /* End of group EnumValue_peripherals */
322 
323 #endif /* _MEC5_DMAC_V2_CH20_H */
324