1 /**
2  * \file
3  *
4  * \brief Component description for EIC
5  *
6  * Copyright (c) 2016 Atmel Corporation,
7  *                    a wholly owned subsidiary of Microchip Technology Inc.
8  *
9  * \asf_license_start
10  *
11  * \page License
12  *
13  * Licensed under the Apache License, Version 2.0 (the "License");
14  * you may not use this file except in compliance with the License.
15  * You may obtain a copy of the Licence at
16  *
17  *     http://www.apache.org/licenses/LICENSE-2.0
18  *
19  * Unless required by applicable law or agreed to in writing, software
20  * distributed under the License is distributed on an "AS IS" BASIS,
21  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22  * See the License for the specific language governing permissions and
23  * limitations under the License.
24  *
25  * \asf_license_stop
26  *
27  */
28 
29 #ifndef _SAM4L_EIC_COMPONENT_
30 #define _SAM4L_EIC_COMPONENT_
31 
32 /* ========================================================================== */
33 /**  SOFTWARE API DEFINITION FOR EIC */
34 /* ========================================================================== */
35 /** \addtogroup SAM4L_EIC External Interrupt Controller */
36 /*@{*/
37 
38 #define EIC_I7529
39 #define REV_EIC                     0x302
40 
41 /* -------- EIC_IER : (EIC Offset: 0x000) ( /W 32) Interrupt Enable Register -------- */
42 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
43 typedef union {
44   struct {
45     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
46     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
47     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
48     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
49     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
50     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
51     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
52     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
53     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
54     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
55     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
56     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
57     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
58     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
59     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
60     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
61     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
62   } bit;                       /*!< Structure used for bit  access                  */
63   uint32_t reg;                /*!< Type      used for register access              */
64 } EIC_IER_Type;
65 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
66 
67 #define EIC_IER_OFFSET              0x000        /**< \brief (EIC_IER offset) Interrupt Enable Register */
68 #define EIC_IER_RESETVALUE          _U_(0x00000000); /**< \brief (EIC_IER reset_value) Interrupt Enable Register */
69 
70 #define EIC_IER_NMI_Pos             0            /**< \brief (EIC_IER) External Non Maskable CPU interrupt */
71 #define EIC_IER_NMI                 (_U_(0x1) << EIC_IER_NMI_Pos)
72 #define EIC_IER_INT1_Pos            1            /**< \brief (EIC_IER) External Interrupt 1 */
73 #define EIC_IER_INT1                (_U_(0x1) << EIC_IER_INT1_Pos)
74 #define   EIC_IER_INT1_0_Val              _U_(0x0)   /**< \brief (EIC_IER) No effect */
75 #define   EIC_IER_INT1_1_Val              _U_(0x1)   /**< \brief (EIC_IER) Enable Interrupt. */
76 #define EIC_IER_INT1_0              (EIC_IER_INT1_0_Val            << EIC_IER_INT1_Pos)
77 #define EIC_IER_INT1_1              (EIC_IER_INT1_1_Val            << EIC_IER_INT1_Pos)
78 #define EIC_IER_INT2_Pos            2            /**< \brief (EIC_IER) External Interrupt 2 */
79 #define EIC_IER_INT2                (_U_(0x1) << EIC_IER_INT2_Pos)
80 #define   EIC_IER_INT2_0_Val              _U_(0x0)   /**< \brief (EIC_IER) No effect */
81 #define   EIC_IER_INT2_1_Val              _U_(0x1)   /**< \brief (EIC_IER) Enable Interrupt. */
82 #define EIC_IER_INT2_0              (EIC_IER_INT2_0_Val            << EIC_IER_INT2_Pos)
83 #define EIC_IER_INT2_1              (EIC_IER_INT2_1_Val            << EIC_IER_INT2_Pos)
84 #define EIC_IER_INT3_Pos            3            /**< \brief (EIC_IER) External Interrupt 3 */
85 #define EIC_IER_INT3                (_U_(0x1) << EIC_IER_INT3_Pos)
86 #define   EIC_IER_INT3_0_Val              _U_(0x0)   /**< \brief (EIC_IER) No effect */
87 #define   EIC_IER_INT3_1_Val              _U_(0x1)   /**< \brief (EIC_IER) Enable Interrupt. */
88 #define EIC_IER_INT3_0              (EIC_IER_INT3_0_Val            << EIC_IER_INT3_Pos)
89 #define EIC_IER_INT3_1              (EIC_IER_INT3_1_Val            << EIC_IER_INT3_Pos)
90 #define EIC_IER_INT4_Pos            4            /**< \brief (EIC_IER) External Interrupt 4 */
91 #define EIC_IER_INT4                (_U_(0x1) << EIC_IER_INT4_Pos)
92 #define   EIC_IER_INT4_0_Val              _U_(0x0)   /**< \brief (EIC_IER) No effect */
93 #define   EIC_IER_INT4_1_Val              _U_(0x1)   /**< \brief (EIC_IER) Enable Interrupt. */
94 #define EIC_IER_INT4_0              (EIC_IER_INT4_0_Val            << EIC_IER_INT4_Pos)
95 #define EIC_IER_INT4_1              (EIC_IER_INT4_1_Val            << EIC_IER_INT4_Pos)
96 #define EIC_IER_INT5_Pos            5            /**< \brief (EIC_IER) External Interrupt 5 */
97 #define EIC_IER_INT5                (_U_(0x1) << EIC_IER_INT5_Pos)
98 #define EIC_IER_INT6_Pos            6            /**< \brief (EIC_IER) External Interrupt 6 */
99 #define EIC_IER_INT6                (_U_(0x1) << EIC_IER_INT6_Pos)
100 #define EIC_IER_INT7_Pos            7            /**< \brief (EIC_IER) External Interrupt 7 */
101 #define EIC_IER_INT7                (_U_(0x1) << EIC_IER_INT7_Pos)
102 #define EIC_IER_INT8_Pos            8            /**< \brief (EIC_IER) External Interrupt 8 */
103 #define EIC_IER_INT8                (_U_(0x1) << EIC_IER_INT8_Pos)
104 #define EIC_IER_INT9_Pos            9            /**< \brief (EIC_IER) External Interrupt 9 */
105 #define EIC_IER_INT9                (_U_(0x1) << EIC_IER_INT9_Pos)
106 #define EIC_IER_INT10_Pos           10           /**< \brief (EIC_IER) External Interrupt 10 */
107 #define EIC_IER_INT10               (_U_(0x1) << EIC_IER_INT10_Pos)
108 #define EIC_IER_INT11_Pos           11           /**< \brief (EIC_IER) External Interrupt 11 */
109 #define EIC_IER_INT11               (_U_(0x1) << EIC_IER_INT11_Pos)
110 #define EIC_IER_INT12_Pos           12           /**< \brief (EIC_IER) External Interrupt 12 */
111 #define EIC_IER_INT12               (_U_(0x1) << EIC_IER_INT12_Pos)
112 #define EIC_IER_INT13_Pos           13           /**< \brief (EIC_IER) External Interrupt 13 */
113 #define EIC_IER_INT13               (_U_(0x1) << EIC_IER_INT13_Pos)
114 #define EIC_IER_INT14_Pos           14           /**< \brief (EIC_IER) External Interrupt 14 */
115 #define EIC_IER_INT14               (_U_(0x1) << EIC_IER_INT14_Pos)
116 #define EIC_IER_INT15_Pos           15           /**< \brief (EIC_IER) External Interrupt 15 */
117 #define EIC_IER_INT15               (_U_(0x1) << EIC_IER_INT15_Pos)
118 #define EIC_IER_MASK                _U_(0x0000FFFF) /**< \brief (EIC_IER) MASK Register */
119 
120 /* -------- EIC_IDR : (EIC Offset: 0x004) ( /W 32) Interrupt Disable Register -------- */
121 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
122 typedef union {
123   struct {
124     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
125     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
126     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
127     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
128     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
129     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
130     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
131     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
132     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
133     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
134     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
135     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
136     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
137     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
138     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
139     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
140     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
141   } bit;                       /*!< Structure used for bit  access                  */
142   uint32_t reg;                /*!< Type      used for register access              */
143 } EIC_IDR_Type;
144 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
145 
146 #define EIC_IDR_OFFSET              0x004        /**< \brief (EIC_IDR offset) Interrupt Disable Register */
147 #define EIC_IDR_RESETVALUE          _U_(0x00000000); /**< \brief (EIC_IDR reset_value) Interrupt Disable Register */
148 
149 #define EIC_IDR_NMI_Pos             0            /**< \brief (EIC_IDR) External Non Maskable CPU interrupt */
150 #define EIC_IDR_NMI                 (_U_(0x1) << EIC_IDR_NMI_Pos)
151 #define EIC_IDR_INT1_Pos            1            /**< \brief (EIC_IDR) External Interrupt 1 */
152 #define EIC_IDR_INT1                (_U_(0x1) << EIC_IDR_INT1_Pos)
153 #define   EIC_IDR_INT1_0_Val              _U_(0x0)   /**< \brief (EIC_IDR) No effect */
154 #define   EIC_IDR_INT1_1_Val              _U_(0x1)   /**< \brief (EIC_IDR) Disable Interrupt. */
155 #define EIC_IDR_INT1_0              (EIC_IDR_INT1_0_Val            << EIC_IDR_INT1_Pos)
156 #define EIC_IDR_INT1_1              (EIC_IDR_INT1_1_Val            << EIC_IDR_INT1_Pos)
157 #define EIC_IDR_INT2_Pos            2            /**< \brief (EIC_IDR) External Interrupt 2 */
158 #define EIC_IDR_INT2                (_U_(0x1) << EIC_IDR_INT2_Pos)
159 #define   EIC_IDR_INT2_0_Val              _U_(0x0)   /**< \brief (EIC_IDR) No effect */
160 #define   EIC_IDR_INT2_1_Val              _U_(0x1)   /**< \brief (EIC_IDR) Disable Interrupt. */
161 #define EIC_IDR_INT2_0              (EIC_IDR_INT2_0_Val            << EIC_IDR_INT2_Pos)
162 #define EIC_IDR_INT2_1              (EIC_IDR_INT2_1_Val            << EIC_IDR_INT2_Pos)
163 #define EIC_IDR_INT3_Pos            3            /**< \brief (EIC_IDR) External Interrupt 3 */
164 #define EIC_IDR_INT3                (_U_(0x1) << EIC_IDR_INT3_Pos)
165 #define   EIC_IDR_INT3_0_Val              _U_(0x0)   /**< \brief (EIC_IDR) No effect */
166 #define   EIC_IDR_INT3_1_Val              _U_(0x1)   /**< \brief (EIC_IDR) Disable Interrupt. */
167 #define EIC_IDR_INT3_0              (EIC_IDR_INT3_0_Val            << EIC_IDR_INT3_Pos)
168 #define EIC_IDR_INT3_1              (EIC_IDR_INT3_1_Val            << EIC_IDR_INT3_Pos)
169 #define EIC_IDR_INT4_Pos            4            /**< \brief (EIC_IDR) External Interrupt 4 */
170 #define EIC_IDR_INT4                (_U_(0x1) << EIC_IDR_INT4_Pos)
171 #define   EIC_IDR_INT4_0_Val              _U_(0x0)   /**< \brief (EIC_IDR) No effect */
172 #define   EIC_IDR_INT4_1_Val              _U_(0x1)   /**< \brief (EIC_IDR) Disable Interrupt. */
173 #define EIC_IDR_INT4_0              (EIC_IDR_INT4_0_Val            << EIC_IDR_INT4_Pos)
174 #define EIC_IDR_INT4_1              (EIC_IDR_INT4_1_Val            << EIC_IDR_INT4_Pos)
175 #define EIC_IDR_INT5_Pos            5            /**< \brief (EIC_IDR) External Interrupt 5 */
176 #define EIC_IDR_INT5                (_U_(0x1) << EIC_IDR_INT5_Pos)
177 #define EIC_IDR_INT6_Pos            6            /**< \brief (EIC_IDR) External Interrupt 6 */
178 #define EIC_IDR_INT6                (_U_(0x1) << EIC_IDR_INT6_Pos)
179 #define EIC_IDR_INT7_Pos            7            /**< \brief (EIC_IDR) External Interrupt 7 */
180 #define EIC_IDR_INT7                (_U_(0x1) << EIC_IDR_INT7_Pos)
181 #define EIC_IDR_INT8_Pos            8            /**< \brief (EIC_IDR) External Interrupt 8 */
182 #define EIC_IDR_INT8                (_U_(0x1) << EIC_IDR_INT8_Pos)
183 #define EIC_IDR_INT9_Pos            9            /**< \brief (EIC_IDR) External Interrupt 9 */
184 #define EIC_IDR_INT9                (_U_(0x1) << EIC_IDR_INT9_Pos)
185 #define EIC_IDR_INT10_Pos           10           /**< \brief (EIC_IDR) External Interrupt 10 */
186 #define EIC_IDR_INT10               (_U_(0x1) << EIC_IDR_INT10_Pos)
187 #define EIC_IDR_INT11_Pos           11           /**< \brief (EIC_IDR) External Interrupt 11 */
188 #define EIC_IDR_INT11               (_U_(0x1) << EIC_IDR_INT11_Pos)
189 #define EIC_IDR_INT12_Pos           12           /**< \brief (EIC_IDR) External Interrupt 12 */
190 #define EIC_IDR_INT12               (_U_(0x1) << EIC_IDR_INT12_Pos)
191 #define EIC_IDR_INT13_Pos           13           /**< \brief (EIC_IDR) External Interrupt 13 */
192 #define EIC_IDR_INT13               (_U_(0x1) << EIC_IDR_INT13_Pos)
193 #define EIC_IDR_INT14_Pos           14           /**< \brief (EIC_IDR) External Interrupt 14 */
194 #define EIC_IDR_INT14               (_U_(0x1) << EIC_IDR_INT14_Pos)
195 #define EIC_IDR_INT15_Pos           15           /**< \brief (EIC_IDR) External Interrupt 15 */
196 #define EIC_IDR_INT15               (_U_(0x1) << EIC_IDR_INT15_Pos)
197 #define EIC_IDR_MASK                _U_(0x0000FFFF) /**< \brief (EIC_IDR) MASK Register */
198 
199 /* -------- EIC_IMR : (EIC Offset: 0x008) (R/  32) Interrupt Mask Register -------- */
200 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
201 typedef union {
202   struct {
203     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
204     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
205     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
206     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
207     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
208     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
209     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
210     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
211     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
212     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
213     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
214     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
215     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
216     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
217     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
218     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
219     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
220   } bit;                       /*!< Structure used for bit  access                  */
221   uint32_t reg;                /*!< Type      used for register access              */
222 } EIC_IMR_Type;
223 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
224 
225 #define EIC_IMR_OFFSET              0x008        /**< \brief (EIC_IMR offset) Interrupt Mask Register */
226 #define EIC_IMR_RESETVALUE          _U_(0x00000000); /**< \brief (EIC_IMR reset_value) Interrupt Mask Register */
227 
228 #define EIC_IMR_NMI_Pos             0            /**< \brief (EIC_IMR) External Non Maskable CPU interrupt */
229 #define EIC_IMR_NMI                 (_U_(0x1) << EIC_IMR_NMI_Pos)
230 #define EIC_IMR_INT1_Pos            1            /**< \brief (EIC_IMR) External Interrupt 1 */
231 #define EIC_IMR_INT1                (_U_(0x1) << EIC_IMR_INT1_Pos)
232 #define   EIC_IMR_INT1_0_Val              _U_(0x0)   /**< \brief (EIC_IMR) Interrupt is disabled */
233 #define   EIC_IMR_INT1_1_Val              _U_(0x1)   /**< \brief (EIC_IMR) Interrupt is enabled. */
234 #define EIC_IMR_INT1_0              (EIC_IMR_INT1_0_Val            << EIC_IMR_INT1_Pos)
235 #define EIC_IMR_INT1_1              (EIC_IMR_INT1_1_Val            << EIC_IMR_INT1_Pos)
236 #define EIC_IMR_INT2_Pos            2            /**< \brief (EIC_IMR) External Interrupt 2 */
237 #define EIC_IMR_INT2                (_U_(0x1) << EIC_IMR_INT2_Pos)
238 #define   EIC_IMR_INT2_0_Val              _U_(0x0)   /**< \brief (EIC_IMR) Interrupt is disabled */
239 #define   EIC_IMR_INT2_1_Val              _U_(0x1)   /**< \brief (EIC_IMR) Interrupt is enabled. */
240 #define EIC_IMR_INT2_0              (EIC_IMR_INT2_0_Val            << EIC_IMR_INT2_Pos)
241 #define EIC_IMR_INT2_1              (EIC_IMR_INT2_1_Val            << EIC_IMR_INT2_Pos)
242 #define EIC_IMR_INT3_Pos            3            /**< \brief (EIC_IMR) External Interrupt 3 */
243 #define EIC_IMR_INT3                (_U_(0x1) << EIC_IMR_INT3_Pos)
244 #define   EIC_IMR_INT3_0_Val              _U_(0x0)   /**< \brief (EIC_IMR) Interrupt is disabled */
245 #define   EIC_IMR_INT3_1_Val              _U_(0x1)   /**< \brief (EIC_IMR) Interrupt is enabled. */
246 #define EIC_IMR_INT3_0              (EIC_IMR_INT3_0_Val            << EIC_IMR_INT3_Pos)
247 #define EIC_IMR_INT3_1              (EIC_IMR_INT3_1_Val            << EIC_IMR_INT3_Pos)
248 #define EIC_IMR_INT4_Pos            4            /**< \brief (EIC_IMR) External Interrupt 4 */
249 #define EIC_IMR_INT4                (_U_(0x1) << EIC_IMR_INT4_Pos)
250 #define   EIC_IMR_INT4_0_Val              _U_(0x0)   /**< \brief (EIC_IMR) Interrupt is disabled */
251 #define   EIC_IMR_INT4_1_Val              _U_(0x1)   /**< \brief (EIC_IMR) Interrupt is enabled. */
252 #define EIC_IMR_INT4_0              (EIC_IMR_INT4_0_Val            << EIC_IMR_INT4_Pos)
253 #define EIC_IMR_INT4_1              (EIC_IMR_INT4_1_Val            << EIC_IMR_INT4_Pos)
254 #define EIC_IMR_INT5_Pos            5            /**< \brief (EIC_IMR) External Interrupt 5 */
255 #define EIC_IMR_INT5                (_U_(0x1) << EIC_IMR_INT5_Pos)
256 #define EIC_IMR_INT6_Pos            6            /**< \brief (EIC_IMR) External Interrupt 6 */
257 #define EIC_IMR_INT6                (_U_(0x1) << EIC_IMR_INT6_Pos)
258 #define EIC_IMR_INT7_Pos            7            /**< \brief (EIC_IMR) External Interrupt 7 */
259 #define EIC_IMR_INT7                (_U_(0x1) << EIC_IMR_INT7_Pos)
260 #define EIC_IMR_INT8_Pos            8            /**< \brief (EIC_IMR) External Interrupt 8 */
261 #define EIC_IMR_INT8                (_U_(0x1) << EIC_IMR_INT8_Pos)
262 #define EIC_IMR_INT9_Pos            9            /**< \brief (EIC_IMR) External Interrupt 9 */
263 #define EIC_IMR_INT9                (_U_(0x1) << EIC_IMR_INT9_Pos)
264 #define EIC_IMR_INT10_Pos           10           /**< \brief (EIC_IMR) External Interrupt 10 */
265 #define EIC_IMR_INT10               (_U_(0x1) << EIC_IMR_INT10_Pos)
266 #define EIC_IMR_INT11_Pos           11           /**< \brief (EIC_IMR) External Interrupt 11 */
267 #define EIC_IMR_INT11               (_U_(0x1) << EIC_IMR_INT11_Pos)
268 #define EIC_IMR_INT12_Pos           12           /**< \brief (EIC_IMR) External Interrupt 12 */
269 #define EIC_IMR_INT12               (_U_(0x1) << EIC_IMR_INT12_Pos)
270 #define EIC_IMR_INT13_Pos           13           /**< \brief (EIC_IMR) External Interrupt 13 */
271 #define EIC_IMR_INT13               (_U_(0x1) << EIC_IMR_INT13_Pos)
272 #define EIC_IMR_INT14_Pos           14           /**< \brief (EIC_IMR) External Interrupt 14 */
273 #define EIC_IMR_INT14               (_U_(0x1) << EIC_IMR_INT14_Pos)
274 #define EIC_IMR_INT15_Pos           15           /**< \brief (EIC_IMR) External Interrupt 15 */
275 #define EIC_IMR_INT15               (_U_(0x1) << EIC_IMR_INT15_Pos)
276 #define EIC_IMR_MASK                _U_(0x0000FFFF) /**< \brief (EIC_IMR) MASK Register */
277 
278 /* -------- EIC_ISR : (EIC Offset: 0x00C) (R/  32) Interrupt Status Register -------- */
279 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
280 typedef union {
281   struct {
282     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
283     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
284     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
285     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
286     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
287     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
288     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
289     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
290     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
291     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
292     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
293     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
294     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
295     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
296     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
297     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
298     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
299   } bit;                       /*!< Structure used for bit  access                  */
300   uint32_t reg;                /*!< Type      used for register access              */
301 } EIC_ISR_Type;
302 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
303 
304 #define EIC_ISR_OFFSET              0x00C        /**< \brief (EIC_ISR offset) Interrupt Status Register */
305 #define EIC_ISR_RESETVALUE          _U_(0x00000000); /**< \brief (EIC_ISR reset_value) Interrupt Status Register */
306 
307 #define EIC_ISR_NMI_Pos             0            /**< \brief (EIC_ISR) External Non Maskable CPU interrupt */
308 #define EIC_ISR_NMI                 (_U_(0x1) << EIC_ISR_NMI_Pos)
309 #define EIC_ISR_INT1_Pos            1            /**< \brief (EIC_ISR) External Interrupt 1 */
310 #define EIC_ISR_INT1                (_U_(0x1) << EIC_ISR_INT1_Pos)
311 #define   EIC_ISR_INT1_0_Val              _U_(0x0)   /**< \brief (EIC_ISR) An interrupt event has not occurred */
312 #define   EIC_ISR_INT1_1_Val              _U_(0x1)   /**< \brief (EIC_ISR) An interrupt event has occurred. */
313 #define EIC_ISR_INT1_0              (EIC_ISR_INT1_0_Val            << EIC_ISR_INT1_Pos)
314 #define EIC_ISR_INT1_1              (EIC_ISR_INT1_1_Val            << EIC_ISR_INT1_Pos)
315 #define EIC_ISR_INT2_Pos            2            /**< \brief (EIC_ISR) External Interrupt 2 */
316 #define EIC_ISR_INT2                (_U_(0x1) << EIC_ISR_INT2_Pos)
317 #define   EIC_ISR_INT2_0_Val              _U_(0x0)   /**< \brief (EIC_ISR) An interrupt event has not occurred */
318 #define   EIC_ISR_INT2_1_Val              _U_(0x1)   /**< \brief (EIC_ISR) An interrupt event has occurred. */
319 #define EIC_ISR_INT2_0              (EIC_ISR_INT2_0_Val            << EIC_ISR_INT2_Pos)
320 #define EIC_ISR_INT2_1              (EIC_ISR_INT2_1_Val            << EIC_ISR_INT2_Pos)
321 #define EIC_ISR_INT3_Pos            3            /**< \brief (EIC_ISR) External Interrupt 3 */
322 #define EIC_ISR_INT3                (_U_(0x1) << EIC_ISR_INT3_Pos)
323 #define   EIC_ISR_INT3_0_Val              _U_(0x0)   /**< \brief (EIC_ISR) An interrupt event has not occurred */
324 #define   EIC_ISR_INT3_1_Val              _U_(0x1)   /**< \brief (EIC_ISR) An interrupt event has occurred. */
325 #define EIC_ISR_INT3_0              (EIC_ISR_INT3_0_Val            << EIC_ISR_INT3_Pos)
326 #define EIC_ISR_INT3_1              (EIC_ISR_INT3_1_Val            << EIC_ISR_INT3_Pos)
327 #define EIC_ISR_INT4_Pos            4            /**< \brief (EIC_ISR) External Interrupt 4 */
328 #define EIC_ISR_INT4                (_U_(0x1) << EIC_ISR_INT4_Pos)
329 #define   EIC_ISR_INT4_0_Val              _U_(0x0)   /**< \brief (EIC_ISR) An interrupt event has not occurred */
330 #define   EIC_ISR_INT4_1_Val              _U_(0x1)   /**< \brief (EIC_ISR) An interrupt event has occurred. */
331 #define EIC_ISR_INT4_0              (EIC_ISR_INT4_0_Val            << EIC_ISR_INT4_Pos)
332 #define EIC_ISR_INT4_1              (EIC_ISR_INT4_1_Val            << EIC_ISR_INT4_Pos)
333 #define EIC_ISR_INT5_Pos            5            /**< \brief (EIC_ISR) External Interrupt 5 */
334 #define EIC_ISR_INT5                (_U_(0x1) << EIC_ISR_INT5_Pos)
335 #define EIC_ISR_INT6_Pos            6            /**< \brief (EIC_ISR) External Interrupt 6 */
336 #define EIC_ISR_INT6                (_U_(0x1) << EIC_ISR_INT6_Pos)
337 #define EIC_ISR_INT7_Pos            7            /**< \brief (EIC_ISR) External Interrupt 7 */
338 #define EIC_ISR_INT7                (_U_(0x1) << EIC_ISR_INT7_Pos)
339 #define EIC_ISR_INT8_Pos            8            /**< \brief (EIC_ISR) External Interrupt 8 */
340 #define EIC_ISR_INT8                (_U_(0x1) << EIC_ISR_INT8_Pos)
341 #define EIC_ISR_INT9_Pos            9            /**< \brief (EIC_ISR) External Interrupt 9 */
342 #define EIC_ISR_INT9                (_U_(0x1) << EIC_ISR_INT9_Pos)
343 #define EIC_ISR_INT10_Pos           10           /**< \brief (EIC_ISR) External Interrupt 10 */
344 #define EIC_ISR_INT10               (_U_(0x1) << EIC_ISR_INT10_Pos)
345 #define EIC_ISR_INT11_Pos           11           /**< \brief (EIC_ISR) External Interrupt 11 */
346 #define EIC_ISR_INT11               (_U_(0x1) << EIC_ISR_INT11_Pos)
347 #define EIC_ISR_INT12_Pos           12           /**< \brief (EIC_ISR) External Interrupt 12 */
348 #define EIC_ISR_INT12               (_U_(0x1) << EIC_ISR_INT12_Pos)
349 #define EIC_ISR_INT13_Pos           13           /**< \brief (EIC_ISR) External Interrupt 13 */
350 #define EIC_ISR_INT13               (_U_(0x1) << EIC_ISR_INT13_Pos)
351 #define EIC_ISR_INT14_Pos           14           /**< \brief (EIC_ISR) External Interrupt 14 */
352 #define EIC_ISR_INT14               (_U_(0x1) << EIC_ISR_INT14_Pos)
353 #define EIC_ISR_INT15_Pos           15           /**< \brief (EIC_ISR) External Interrupt 15 */
354 #define EIC_ISR_INT15               (_U_(0x1) << EIC_ISR_INT15_Pos)
355 #define EIC_ISR_MASK                _U_(0x0000FFFF) /**< \brief (EIC_ISR) MASK Register */
356 
357 /* -------- EIC_ICR : (EIC Offset: 0x010) ( /W 32) Interrupt Clear Register -------- */
358 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
359 typedef union {
360   struct {
361     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
362     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
363     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
364     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
365     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
366     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
367     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
368     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
369     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
370     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
371     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
372     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
373     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
374     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
375     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
376     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
377     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
378   } bit;                       /*!< Structure used for bit  access                  */
379   uint32_t reg;                /*!< Type      used for register access              */
380 } EIC_ICR_Type;
381 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
382 
383 #define EIC_ICR_OFFSET              0x010        /**< \brief (EIC_ICR offset) Interrupt Clear Register */
384 #define EIC_ICR_RESETVALUE          _U_(0x00000000); /**< \brief (EIC_ICR reset_value) Interrupt Clear Register */
385 
386 #define EIC_ICR_NMI_Pos             0            /**< \brief (EIC_ICR) External Non Maskable CPU interrupt */
387 #define EIC_ICR_NMI                 (_U_(0x1) << EIC_ICR_NMI_Pos)
388 #define EIC_ICR_INT1_Pos            1            /**< \brief (EIC_ICR) External Interrupt 1 */
389 #define EIC_ICR_INT1                (_U_(0x1) << EIC_ICR_INT1_Pos)
390 #define   EIC_ICR_INT1_0_Val              _U_(0x0)   /**< \brief (EIC_ICR) No effect */
391 #define   EIC_ICR_INT1_1_Val              _U_(0x1)   /**< \brief (EIC_ICR) Clear Interrupt. */
392 #define EIC_ICR_INT1_0              (EIC_ICR_INT1_0_Val            << EIC_ICR_INT1_Pos)
393 #define EIC_ICR_INT1_1              (EIC_ICR_INT1_1_Val            << EIC_ICR_INT1_Pos)
394 #define EIC_ICR_INT2_Pos            2            /**< \brief (EIC_ICR) External Interrupt 2 */
395 #define EIC_ICR_INT2                (_U_(0x1) << EIC_ICR_INT2_Pos)
396 #define   EIC_ICR_INT2_0_Val              _U_(0x0)   /**< \brief (EIC_ICR) No effect */
397 #define   EIC_ICR_INT2_1_Val              _U_(0x1)   /**< \brief (EIC_ICR) Clear Interrupt. */
398 #define EIC_ICR_INT2_0              (EIC_ICR_INT2_0_Val            << EIC_ICR_INT2_Pos)
399 #define EIC_ICR_INT2_1              (EIC_ICR_INT2_1_Val            << EIC_ICR_INT2_Pos)
400 #define EIC_ICR_INT3_Pos            3            /**< \brief (EIC_ICR) External Interrupt 3 */
401 #define EIC_ICR_INT3                (_U_(0x1) << EIC_ICR_INT3_Pos)
402 #define   EIC_ICR_INT3_0_Val              _U_(0x0)   /**< \brief (EIC_ICR) No effect */
403 #define   EIC_ICR_INT3_1_Val              _U_(0x1)   /**< \brief (EIC_ICR) Clear Interrupt. */
404 #define EIC_ICR_INT3_0              (EIC_ICR_INT3_0_Val            << EIC_ICR_INT3_Pos)
405 #define EIC_ICR_INT3_1              (EIC_ICR_INT3_1_Val            << EIC_ICR_INT3_Pos)
406 #define EIC_ICR_INT4_Pos            4            /**< \brief (EIC_ICR) External Interrupt 4 */
407 #define EIC_ICR_INT4                (_U_(0x1) << EIC_ICR_INT4_Pos)
408 #define   EIC_ICR_INT4_0_Val              _U_(0x0)   /**< \brief (EIC_ICR) No effect */
409 #define   EIC_ICR_INT4_1_Val              _U_(0x1)   /**< \brief (EIC_ICR) Clear Interrupt. */
410 #define EIC_ICR_INT4_0              (EIC_ICR_INT4_0_Val            << EIC_ICR_INT4_Pos)
411 #define EIC_ICR_INT4_1              (EIC_ICR_INT4_1_Val            << EIC_ICR_INT4_Pos)
412 #define EIC_ICR_INT5_Pos            5            /**< \brief (EIC_ICR) External Interrupt 5 */
413 #define EIC_ICR_INT5                (_U_(0x1) << EIC_ICR_INT5_Pos)
414 #define EIC_ICR_INT6_Pos            6            /**< \brief (EIC_ICR) External Interrupt 6 */
415 #define EIC_ICR_INT6                (_U_(0x1) << EIC_ICR_INT6_Pos)
416 #define EIC_ICR_INT7_Pos            7            /**< \brief (EIC_ICR) External Interrupt 7 */
417 #define EIC_ICR_INT7                (_U_(0x1) << EIC_ICR_INT7_Pos)
418 #define EIC_ICR_INT8_Pos            8            /**< \brief (EIC_ICR) External Interrupt 8 */
419 #define EIC_ICR_INT8                (_U_(0x1) << EIC_ICR_INT8_Pos)
420 #define EIC_ICR_INT9_Pos            9            /**< \brief (EIC_ICR) External Interrupt 9 */
421 #define EIC_ICR_INT9                (_U_(0x1) << EIC_ICR_INT9_Pos)
422 #define EIC_ICR_INT10_Pos           10           /**< \brief (EIC_ICR) External Interrupt 10 */
423 #define EIC_ICR_INT10               (_U_(0x1) << EIC_ICR_INT10_Pos)
424 #define EIC_ICR_INT11_Pos           11           /**< \brief (EIC_ICR) External Interrupt 11 */
425 #define EIC_ICR_INT11               (_U_(0x1) << EIC_ICR_INT11_Pos)
426 #define EIC_ICR_INT12_Pos           12           /**< \brief (EIC_ICR) External Interrupt 12 */
427 #define EIC_ICR_INT12               (_U_(0x1) << EIC_ICR_INT12_Pos)
428 #define EIC_ICR_INT13_Pos           13           /**< \brief (EIC_ICR) External Interrupt 13 */
429 #define EIC_ICR_INT13               (_U_(0x1) << EIC_ICR_INT13_Pos)
430 #define EIC_ICR_INT14_Pos           14           /**< \brief (EIC_ICR) External Interrupt 14 */
431 #define EIC_ICR_INT14               (_U_(0x1) << EIC_ICR_INT14_Pos)
432 #define EIC_ICR_INT15_Pos           15           /**< \brief (EIC_ICR) External Interrupt 15 */
433 #define EIC_ICR_INT15               (_U_(0x1) << EIC_ICR_INT15_Pos)
434 #define EIC_ICR_MASK                _U_(0x0000FFFF) /**< \brief (EIC_ICR) MASK Register */
435 
436 /* -------- EIC_MODE : (EIC Offset: 0x014) (R/W 32) Mode Register -------- */
437 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
438 typedef union {
439   struct {
440     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
441     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
442     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
443     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
444     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
445     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
446     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
447     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
448     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
449     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
450     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
451     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
452     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
453     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
454     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
455     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
456     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
457   } bit;                       /*!< Structure used for bit  access                  */
458   uint32_t reg;                /*!< Type      used for register access              */
459 } EIC_MODE_Type;
460 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
461 
462 #define EIC_MODE_OFFSET             0x014        /**< \brief (EIC_MODE offset) Mode Register */
463 #define EIC_MODE_RESETVALUE         _U_(0x00000000); /**< \brief (EIC_MODE reset_value) Mode Register */
464 
465 #define EIC_MODE_NMI_Pos            0            /**< \brief (EIC_MODE) External Non Maskable CPU interrupt */
466 #define EIC_MODE_NMI                (_U_(0x1) << EIC_MODE_NMI_Pos)
467 #define EIC_MODE_INT1_Pos           1            /**< \brief (EIC_MODE) External Interrupt 1 */
468 #define EIC_MODE_INT1               (_U_(0x1) << EIC_MODE_INT1_Pos)
469 #define   EIC_MODE_INT1_0_Val             _U_(0x0)   /**< \brief (EIC_MODE) Edge triggered interrupt */
470 #define   EIC_MODE_INT1_1_Val             _U_(0x1)   /**< \brief (EIC_MODE) Level triggered interrupt */
471 #define EIC_MODE_INT1_0             (EIC_MODE_INT1_0_Val           << EIC_MODE_INT1_Pos)
472 #define EIC_MODE_INT1_1             (EIC_MODE_INT1_1_Val           << EIC_MODE_INT1_Pos)
473 #define EIC_MODE_INT2_Pos           2            /**< \brief (EIC_MODE) External Interrupt 2 */
474 #define EIC_MODE_INT2               (_U_(0x1) << EIC_MODE_INT2_Pos)
475 #define   EIC_MODE_INT2_0_Val             _U_(0x0)   /**< \brief (EIC_MODE) Edge triggered interrupt */
476 #define   EIC_MODE_INT2_1_Val             _U_(0x1)   /**< \brief (EIC_MODE) Level triggered interrupt */
477 #define EIC_MODE_INT2_0             (EIC_MODE_INT2_0_Val           << EIC_MODE_INT2_Pos)
478 #define EIC_MODE_INT2_1             (EIC_MODE_INT2_1_Val           << EIC_MODE_INT2_Pos)
479 #define EIC_MODE_INT3_Pos           3            /**< \brief (EIC_MODE) External Interrupt 3 */
480 #define EIC_MODE_INT3               (_U_(0x1) << EIC_MODE_INT3_Pos)
481 #define   EIC_MODE_INT3_0_Val             _U_(0x0)   /**< \brief (EIC_MODE) Edge triggered interrupt */
482 #define   EIC_MODE_INT3_1_Val             _U_(0x1)   /**< \brief (EIC_MODE) Level triggered interrupt */
483 #define EIC_MODE_INT3_0             (EIC_MODE_INT3_0_Val           << EIC_MODE_INT3_Pos)
484 #define EIC_MODE_INT3_1             (EIC_MODE_INT3_1_Val           << EIC_MODE_INT3_Pos)
485 #define EIC_MODE_INT4_Pos           4            /**< \brief (EIC_MODE) External Interrupt 4 */
486 #define EIC_MODE_INT4               (_U_(0x1) << EIC_MODE_INT4_Pos)
487 #define   EIC_MODE_INT4_0_Val             _U_(0x0)   /**< \brief (EIC_MODE) Edge triggered interrupt */
488 #define   EIC_MODE_INT4_1_Val             _U_(0x1)   /**< \brief (EIC_MODE) Level triggered interrupt */
489 #define EIC_MODE_INT4_0             (EIC_MODE_INT4_0_Val           << EIC_MODE_INT4_Pos)
490 #define EIC_MODE_INT4_1             (EIC_MODE_INT4_1_Val           << EIC_MODE_INT4_Pos)
491 #define EIC_MODE_INT5_Pos           5            /**< \brief (EIC_MODE) External Interrupt 5 */
492 #define EIC_MODE_INT5               (_U_(0x1) << EIC_MODE_INT5_Pos)
493 #define EIC_MODE_INT6_Pos           6            /**< \brief (EIC_MODE) External Interrupt 6 */
494 #define EIC_MODE_INT6               (_U_(0x1) << EIC_MODE_INT6_Pos)
495 #define EIC_MODE_INT7_Pos           7            /**< \brief (EIC_MODE) External Interrupt 7 */
496 #define EIC_MODE_INT7               (_U_(0x1) << EIC_MODE_INT7_Pos)
497 #define EIC_MODE_INT8_Pos           8            /**< \brief (EIC_MODE) External Interrupt 8 */
498 #define EIC_MODE_INT8               (_U_(0x1) << EIC_MODE_INT8_Pos)
499 #define EIC_MODE_INT9_Pos           9            /**< \brief (EIC_MODE) External Interrupt 9 */
500 #define EIC_MODE_INT9               (_U_(0x1) << EIC_MODE_INT9_Pos)
501 #define EIC_MODE_INT10_Pos          10           /**< \brief (EIC_MODE) External Interrupt 10 */
502 #define EIC_MODE_INT10              (_U_(0x1) << EIC_MODE_INT10_Pos)
503 #define EIC_MODE_INT11_Pos          11           /**< \brief (EIC_MODE) External Interrupt 11 */
504 #define EIC_MODE_INT11              (_U_(0x1) << EIC_MODE_INT11_Pos)
505 #define EIC_MODE_INT12_Pos          12           /**< \brief (EIC_MODE) External Interrupt 12 */
506 #define EIC_MODE_INT12              (_U_(0x1) << EIC_MODE_INT12_Pos)
507 #define EIC_MODE_INT13_Pos          13           /**< \brief (EIC_MODE) External Interrupt 13 */
508 #define EIC_MODE_INT13              (_U_(0x1) << EIC_MODE_INT13_Pos)
509 #define EIC_MODE_INT14_Pos          14           /**< \brief (EIC_MODE) External Interrupt 14 */
510 #define EIC_MODE_INT14              (_U_(0x1) << EIC_MODE_INT14_Pos)
511 #define EIC_MODE_INT15_Pos          15           /**< \brief (EIC_MODE) External Interrupt 15 */
512 #define EIC_MODE_INT15              (_U_(0x1) << EIC_MODE_INT15_Pos)
513 #define EIC_MODE_MASK               _U_(0x0000FFFF) /**< \brief (EIC_MODE) MASK Register */
514 
515 /* -------- EIC_EDGE : (EIC Offset: 0x018) (R/W 32) Edge Register -------- */
516 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
517 typedef union {
518   struct {
519     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
520     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
521     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
522     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
523     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
524     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
525     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
526     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
527     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
528     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
529     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
530     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
531     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
532     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
533     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
534     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
535     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
536   } bit;                       /*!< Structure used for bit  access                  */
537   uint32_t reg;                /*!< Type      used for register access              */
538 } EIC_EDGE_Type;
539 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
540 
541 #define EIC_EDGE_OFFSET             0x018        /**< \brief (EIC_EDGE offset) Edge Register */
542 #define EIC_EDGE_RESETVALUE         _U_(0x00000000); /**< \brief (EIC_EDGE reset_value) Edge Register */
543 
544 #define EIC_EDGE_NMI_Pos            0            /**< \brief (EIC_EDGE) External Non Maskable CPU interrupt */
545 #define EIC_EDGE_NMI                (_U_(0x1) << EIC_EDGE_NMI_Pos)
546 #define EIC_EDGE_INT1_Pos           1            /**< \brief (EIC_EDGE) External Interrupt 1 */
547 #define EIC_EDGE_INT1               (_U_(0x1) << EIC_EDGE_INT1_Pos)
548 #define   EIC_EDGE_INT1_0_Val             _U_(0x0)   /**< \brief (EIC_EDGE) Triggers on falling edge */
549 #define   EIC_EDGE_INT1_1_Val             _U_(0x1)   /**< \brief (EIC_EDGE) Triggers on rising edge. */
550 #define EIC_EDGE_INT1_0             (EIC_EDGE_INT1_0_Val           << EIC_EDGE_INT1_Pos)
551 #define EIC_EDGE_INT1_1             (EIC_EDGE_INT1_1_Val           << EIC_EDGE_INT1_Pos)
552 #define EIC_EDGE_INT2_Pos           2            /**< \brief (EIC_EDGE) External Interrupt 2 */
553 #define EIC_EDGE_INT2               (_U_(0x1) << EIC_EDGE_INT2_Pos)
554 #define   EIC_EDGE_INT2_0_Val             _U_(0x0)   /**< \brief (EIC_EDGE) Triggers on falling edge */
555 #define   EIC_EDGE_INT2_1_Val             _U_(0x1)   /**< \brief (EIC_EDGE) Triggers on rising edge. */
556 #define EIC_EDGE_INT2_0             (EIC_EDGE_INT2_0_Val           << EIC_EDGE_INT2_Pos)
557 #define EIC_EDGE_INT2_1             (EIC_EDGE_INT2_1_Val           << EIC_EDGE_INT2_Pos)
558 #define EIC_EDGE_INT3_Pos           3            /**< \brief (EIC_EDGE) External Interrupt 3 */
559 #define EIC_EDGE_INT3               (_U_(0x1) << EIC_EDGE_INT3_Pos)
560 #define   EIC_EDGE_INT3_0_Val             _U_(0x0)   /**< \brief (EIC_EDGE) Triggers on falling edge */
561 #define   EIC_EDGE_INT3_1_Val             _U_(0x1)   /**< \brief (EIC_EDGE) Triggers on rising edge. */
562 #define EIC_EDGE_INT3_0             (EIC_EDGE_INT3_0_Val           << EIC_EDGE_INT3_Pos)
563 #define EIC_EDGE_INT3_1             (EIC_EDGE_INT3_1_Val           << EIC_EDGE_INT3_Pos)
564 #define EIC_EDGE_INT4_Pos           4            /**< \brief (EIC_EDGE) External Interrupt 4 */
565 #define EIC_EDGE_INT4               (_U_(0x1) << EIC_EDGE_INT4_Pos)
566 #define   EIC_EDGE_INT4_0_Val             _U_(0x0)   /**< \brief (EIC_EDGE) Triggers on falling edge */
567 #define   EIC_EDGE_INT4_1_Val             _U_(0x1)   /**< \brief (EIC_EDGE) Triggers on rising edge. */
568 #define EIC_EDGE_INT4_0             (EIC_EDGE_INT4_0_Val           << EIC_EDGE_INT4_Pos)
569 #define EIC_EDGE_INT4_1             (EIC_EDGE_INT4_1_Val           << EIC_EDGE_INT4_Pos)
570 #define EIC_EDGE_INT5_Pos           5            /**< \brief (EIC_EDGE) External Interrupt 5 */
571 #define EIC_EDGE_INT5               (_U_(0x1) << EIC_EDGE_INT5_Pos)
572 #define EIC_EDGE_INT6_Pos           6            /**< \brief (EIC_EDGE) External Interrupt 6 */
573 #define EIC_EDGE_INT6               (_U_(0x1) << EIC_EDGE_INT6_Pos)
574 #define EIC_EDGE_INT7_Pos           7            /**< \brief (EIC_EDGE) External Interrupt 7 */
575 #define EIC_EDGE_INT7               (_U_(0x1) << EIC_EDGE_INT7_Pos)
576 #define EIC_EDGE_INT8_Pos           8            /**< \brief (EIC_EDGE) External Interrupt 8 */
577 #define EIC_EDGE_INT8               (_U_(0x1) << EIC_EDGE_INT8_Pos)
578 #define EIC_EDGE_INT9_Pos           9            /**< \brief (EIC_EDGE) External Interrupt 9 */
579 #define EIC_EDGE_INT9               (_U_(0x1) << EIC_EDGE_INT9_Pos)
580 #define EIC_EDGE_INT10_Pos          10           /**< \brief (EIC_EDGE) External Interrupt 10 */
581 #define EIC_EDGE_INT10              (_U_(0x1) << EIC_EDGE_INT10_Pos)
582 #define EIC_EDGE_INT11_Pos          11           /**< \brief (EIC_EDGE) External Interrupt 11 */
583 #define EIC_EDGE_INT11              (_U_(0x1) << EIC_EDGE_INT11_Pos)
584 #define EIC_EDGE_INT12_Pos          12           /**< \brief (EIC_EDGE) External Interrupt 12 */
585 #define EIC_EDGE_INT12              (_U_(0x1) << EIC_EDGE_INT12_Pos)
586 #define EIC_EDGE_INT13_Pos          13           /**< \brief (EIC_EDGE) External Interrupt 13 */
587 #define EIC_EDGE_INT13              (_U_(0x1) << EIC_EDGE_INT13_Pos)
588 #define EIC_EDGE_INT14_Pos          14           /**< \brief (EIC_EDGE) External Interrupt 14 */
589 #define EIC_EDGE_INT14              (_U_(0x1) << EIC_EDGE_INT14_Pos)
590 #define EIC_EDGE_INT15_Pos          15           /**< \brief (EIC_EDGE) External Interrupt 15 */
591 #define EIC_EDGE_INT15              (_U_(0x1) << EIC_EDGE_INT15_Pos)
592 #define EIC_EDGE_MASK               _U_(0x0000FFFF) /**< \brief (EIC_EDGE) MASK Register */
593 
594 /* -------- EIC_LEVEL : (EIC Offset: 0x01C) (R/W 32) Level Register -------- */
595 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
596 typedef union {
597   struct {
598     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
599     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
600     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
601     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
602     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
603     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
604     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
605     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
606     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
607     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
608     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
609     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
610     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
611     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
612     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
613     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
614     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
615   } bit;                       /*!< Structure used for bit  access                  */
616   uint32_t reg;                /*!< Type      used for register access              */
617 } EIC_LEVEL_Type;
618 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
619 
620 #define EIC_LEVEL_OFFSET            0x01C        /**< \brief (EIC_LEVEL offset) Level Register */
621 #define EIC_LEVEL_RESETVALUE        _U_(0x00000000); /**< \brief (EIC_LEVEL reset_value) Level Register */
622 
623 #define EIC_LEVEL_NMI_Pos           0            /**< \brief (EIC_LEVEL) External Non Maskable CPU interrupt */
624 #define EIC_LEVEL_NMI               (_U_(0x1) << EIC_LEVEL_NMI_Pos)
625 #define EIC_LEVEL_INT1_Pos          1            /**< \brief (EIC_LEVEL) External Interrupt 1 */
626 #define EIC_LEVEL_INT1              (_U_(0x1) << EIC_LEVEL_INT1_Pos)
627 #define EIC_LEVEL_INT2_Pos          2            /**< \brief (EIC_LEVEL) External Interrupt 2 */
628 #define EIC_LEVEL_INT2              (_U_(0x1) << EIC_LEVEL_INT2_Pos)
629 #define EIC_LEVEL_INT3_Pos          3            /**< \brief (EIC_LEVEL) External Interrupt 3 */
630 #define EIC_LEVEL_INT3              (_U_(0x1) << EIC_LEVEL_INT3_Pos)
631 #define EIC_LEVEL_INT4_Pos          4            /**< \brief (EIC_LEVEL) External Interrupt 4 */
632 #define EIC_LEVEL_INT4              (_U_(0x1) << EIC_LEVEL_INT4_Pos)
633 #define EIC_LEVEL_INT5_Pos          5            /**< \brief (EIC_LEVEL) External Interrupt 5 */
634 #define EIC_LEVEL_INT5              (_U_(0x1) << EIC_LEVEL_INT5_Pos)
635 #define EIC_LEVEL_INT6_Pos          6            /**< \brief (EIC_LEVEL) External Interrupt 6 */
636 #define EIC_LEVEL_INT6              (_U_(0x1) << EIC_LEVEL_INT6_Pos)
637 #define EIC_LEVEL_INT7_Pos          7            /**< \brief (EIC_LEVEL) External Interrupt 7 */
638 #define EIC_LEVEL_INT7              (_U_(0x1) << EIC_LEVEL_INT7_Pos)
639 #define EIC_LEVEL_INT8_Pos          8            /**< \brief (EIC_LEVEL) External Interrupt 8 */
640 #define EIC_LEVEL_INT8              (_U_(0x1) << EIC_LEVEL_INT8_Pos)
641 #define EIC_LEVEL_INT9_Pos          9            /**< \brief (EIC_LEVEL) External Interrupt 9 */
642 #define EIC_LEVEL_INT9              (_U_(0x1) << EIC_LEVEL_INT9_Pos)
643 #define EIC_LEVEL_INT10_Pos         10           /**< \brief (EIC_LEVEL) External Interrupt 10 */
644 #define EIC_LEVEL_INT10             (_U_(0x1) << EIC_LEVEL_INT10_Pos)
645 #define EIC_LEVEL_INT11_Pos         11           /**< \brief (EIC_LEVEL) External Interrupt 11 */
646 #define EIC_LEVEL_INT11             (_U_(0x1) << EIC_LEVEL_INT11_Pos)
647 #define EIC_LEVEL_INT12_Pos         12           /**< \brief (EIC_LEVEL) External Interrupt 12 */
648 #define EIC_LEVEL_INT12             (_U_(0x1) << EIC_LEVEL_INT12_Pos)
649 #define EIC_LEVEL_INT13_Pos         13           /**< \brief (EIC_LEVEL) External Interrupt 13 */
650 #define EIC_LEVEL_INT13             (_U_(0x1) << EIC_LEVEL_INT13_Pos)
651 #define EIC_LEVEL_INT14_Pos         14           /**< \brief (EIC_LEVEL) External Interrupt 14 */
652 #define EIC_LEVEL_INT14             (_U_(0x1) << EIC_LEVEL_INT14_Pos)
653 #define EIC_LEVEL_INT15_Pos         15           /**< \brief (EIC_LEVEL) External Interrupt 15 */
654 #define EIC_LEVEL_INT15             (_U_(0x1) << EIC_LEVEL_INT15_Pos)
655 #define EIC_LEVEL_MASK              _U_(0x0000FFFF) /**< \brief (EIC_LEVEL) MASK Register */
656 
657 /* -------- EIC_FILTER : (EIC Offset: 0x020) (R/W 32) Filter Register -------- */
658 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
659 typedef union {
660   struct {
661     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
662     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
663     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
664     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
665     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
666     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
667     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
668     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
669     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
670     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
671     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
672     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
673     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
674     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
675     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
676     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
677     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
678   } bit;                       /*!< Structure used for bit  access                  */
679   uint32_t reg;                /*!< Type      used for register access              */
680 } EIC_FILTER_Type;
681 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
682 
683 #define EIC_FILTER_OFFSET           0x020        /**< \brief (EIC_FILTER offset) Filter Register */
684 #define EIC_FILTER_RESETVALUE       _U_(0x00000000); /**< \brief (EIC_FILTER reset_value) Filter Register */
685 
686 #define EIC_FILTER_NMI_Pos          0            /**< \brief (EIC_FILTER) External Non Maskable CPU interrupt */
687 #define EIC_FILTER_NMI              (_U_(0x1) << EIC_FILTER_NMI_Pos)
688 #define EIC_FILTER_INT1_Pos         1            /**< \brief (EIC_FILTER) External Interrupt 1 */
689 #define EIC_FILTER_INT1             (_U_(0x1) << EIC_FILTER_INT1_Pos)
690 #define EIC_FILTER_INT2_Pos         2            /**< \brief (EIC_FILTER) External Interrupt 2 */
691 #define EIC_FILTER_INT2             (_U_(0x1) << EIC_FILTER_INT2_Pos)
692 #define EIC_FILTER_INT3_Pos         3            /**< \brief (EIC_FILTER) External Interrupt 3 */
693 #define EIC_FILTER_INT3             (_U_(0x1) << EIC_FILTER_INT3_Pos)
694 #define EIC_FILTER_INT4_Pos         4            /**< \brief (EIC_FILTER) External Interrupt 4 */
695 #define EIC_FILTER_INT4             (_U_(0x1) << EIC_FILTER_INT4_Pos)
696 #define EIC_FILTER_INT5_Pos         5            /**< \brief (EIC_FILTER) External Interrupt 5 */
697 #define EIC_FILTER_INT5             (_U_(0x1) << EIC_FILTER_INT5_Pos)
698 #define EIC_FILTER_INT6_Pos         6            /**< \brief (EIC_FILTER) External Interrupt 6 */
699 #define EIC_FILTER_INT6             (_U_(0x1) << EIC_FILTER_INT6_Pos)
700 #define EIC_FILTER_INT7_Pos         7            /**< \brief (EIC_FILTER) External Interrupt 7 */
701 #define EIC_FILTER_INT7             (_U_(0x1) << EIC_FILTER_INT7_Pos)
702 #define EIC_FILTER_INT8_Pos         8            /**< \brief (EIC_FILTER) External Interrupt 8 */
703 #define EIC_FILTER_INT8             (_U_(0x1) << EIC_FILTER_INT8_Pos)
704 #define EIC_FILTER_INT9_Pos         9            /**< \brief (EIC_FILTER) External Interrupt 9 */
705 #define EIC_FILTER_INT9             (_U_(0x1) << EIC_FILTER_INT9_Pos)
706 #define EIC_FILTER_INT10_Pos        10           /**< \brief (EIC_FILTER) External Interrupt 10 */
707 #define EIC_FILTER_INT10            (_U_(0x1) << EIC_FILTER_INT10_Pos)
708 #define EIC_FILTER_INT11_Pos        11           /**< \brief (EIC_FILTER) External Interrupt 11 */
709 #define EIC_FILTER_INT11            (_U_(0x1) << EIC_FILTER_INT11_Pos)
710 #define EIC_FILTER_INT12_Pos        12           /**< \brief (EIC_FILTER) External Interrupt 12 */
711 #define EIC_FILTER_INT12            (_U_(0x1) << EIC_FILTER_INT12_Pos)
712 #define EIC_FILTER_INT13_Pos        13           /**< \brief (EIC_FILTER) External Interrupt 13 */
713 #define EIC_FILTER_INT13            (_U_(0x1) << EIC_FILTER_INT13_Pos)
714 #define EIC_FILTER_INT14_Pos        14           /**< \brief (EIC_FILTER) External Interrupt 14 */
715 #define EIC_FILTER_INT14            (_U_(0x1) << EIC_FILTER_INT14_Pos)
716 #define EIC_FILTER_INT15_Pos        15           /**< \brief (EIC_FILTER) External Interrupt 15 */
717 #define EIC_FILTER_INT15            (_U_(0x1) << EIC_FILTER_INT15_Pos)
718 #define EIC_FILTER_MASK             _U_(0x0000FFFF) /**< \brief (EIC_FILTER) MASK Register */
719 
720 /* -------- EIC_ASYNC : (EIC Offset: 0x028) (R/W 32) Asynchronous Register -------- */
721 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
722 typedef union {
723   struct {
724     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
725     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
726     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
727     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
728     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
729     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
730     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
731     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
732     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
733     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
734     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
735     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
736     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
737     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
738     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
739     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
740     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
741   } bit;                       /*!< Structure used for bit  access                  */
742   uint32_t reg;                /*!< Type      used for register access              */
743 } EIC_ASYNC_Type;
744 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
745 
746 #define EIC_ASYNC_OFFSET            0x028        /**< \brief (EIC_ASYNC offset) Asynchronous Register */
747 #define EIC_ASYNC_RESETVALUE        _U_(0x00000000); /**< \brief (EIC_ASYNC reset_value) Asynchronous Register */
748 
749 #define EIC_ASYNC_NMI_Pos           0            /**< \brief (EIC_ASYNC) External Non Maskable CPU interrupt */
750 #define EIC_ASYNC_NMI               (_U_(0x1) << EIC_ASYNC_NMI_Pos)
751 #define EIC_ASYNC_INT1_Pos          1            /**< \brief (EIC_ASYNC) External Interrupt 1 */
752 #define EIC_ASYNC_INT1              (_U_(0x1) << EIC_ASYNC_INT1_Pos)
753 #define EIC_ASYNC_INT2_Pos          2            /**< \brief (EIC_ASYNC) External Interrupt 2 */
754 #define EIC_ASYNC_INT2              (_U_(0x1) << EIC_ASYNC_INT2_Pos)
755 #define EIC_ASYNC_INT3_Pos          3            /**< \brief (EIC_ASYNC) External Interrupt 3 */
756 #define EIC_ASYNC_INT3              (_U_(0x1) << EIC_ASYNC_INT3_Pos)
757 #define EIC_ASYNC_INT4_Pos          4            /**< \brief (EIC_ASYNC) External Interrupt 4 */
758 #define EIC_ASYNC_INT4              (_U_(0x1) << EIC_ASYNC_INT4_Pos)
759 #define EIC_ASYNC_INT5_Pos          5            /**< \brief (EIC_ASYNC) External Interrupt 5 */
760 #define EIC_ASYNC_INT5              (_U_(0x1) << EIC_ASYNC_INT5_Pos)
761 #define EIC_ASYNC_INT6_Pos          6            /**< \brief (EIC_ASYNC) External Interrupt 6 */
762 #define EIC_ASYNC_INT6              (_U_(0x1) << EIC_ASYNC_INT6_Pos)
763 #define EIC_ASYNC_INT7_Pos          7            /**< \brief (EIC_ASYNC) External Interrupt 7 */
764 #define EIC_ASYNC_INT7              (_U_(0x1) << EIC_ASYNC_INT7_Pos)
765 #define EIC_ASYNC_INT8_Pos          8            /**< \brief (EIC_ASYNC) External Interrupt 8 */
766 #define EIC_ASYNC_INT8              (_U_(0x1) << EIC_ASYNC_INT8_Pos)
767 #define EIC_ASYNC_INT9_Pos          9            /**< \brief (EIC_ASYNC) External Interrupt 9 */
768 #define EIC_ASYNC_INT9              (_U_(0x1) << EIC_ASYNC_INT9_Pos)
769 #define EIC_ASYNC_INT10_Pos         10           /**< \brief (EIC_ASYNC) External Interrupt 10 */
770 #define EIC_ASYNC_INT10             (_U_(0x1) << EIC_ASYNC_INT10_Pos)
771 #define EIC_ASYNC_INT11_Pos         11           /**< \brief (EIC_ASYNC) External Interrupt 11 */
772 #define EIC_ASYNC_INT11             (_U_(0x1) << EIC_ASYNC_INT11_Pos)
773 #define EIC_ASYNC_INT12_Pos         12           /**< \brief (EIC_ASYNC) External Interrupt 12 */
774 #define EIC_ASYNC_INT12             (_U_(0x1) << EIC_ASYNC_INT12_Pos)
775 #define EIC_ASYNC_INT13_Pos         13           /**< \brief (EIC_ASYNC) External Interrupt 13 */
776 #define EIC_ASYNC_INT13             (_U_(0x1) << EIC_ASYNC_INT13_Pos)
777 #define EIC_ASYNC_INT14_Pos         14           /**< \brief (EIC_ASYNC) External Interrupt 14 */
778 #define EIC_ASYNC_INT14             (_U_(0x1) << EIC_ASYNC_INT14_Pos)
779 #define EIC_ASYNC_INT15_Pos         15           /**< \brief (EIC_ASYNC) External Interrupt 15 */
780 #define EIC_ASYNC_INT15             (_U_(0x1) << EIC_ASYNC_INT15_Pos)
781 #define EIC_ASYNC_MASK              _U_(0x0000FFFF) /**< \brief (EIC_ASYNC) MASK Register */
782 
783 /* -------- EIC_EN : (EIC Offset: 0x030) ( /W 32) Enable Register -------- */
784 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
785 typedef union {
786   struct {
787     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
788     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
789     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
790     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
791     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
792     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
793     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
794     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
795     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
796     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
797     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
798     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
799     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
800     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
801     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
802     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
803     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
804   } bit;                       /*!< Structure used for bit  access                  */
805   uint32_t reg;                /*!< Type      used for register access              */
806 } EIC_EN_Type;
807 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
808 
809 #define EIC_EN_OFFSET               0x030        /**< \brief (EIC_EN offset) Enable Register */
810 #define EIC_EN_RESETVALUE           _U_(0x00000000); /**< \brief (EIC_EN reset_value) Enable Register */
811 
812 #define EIC_EN_NMI_Pos              0            /**< \brief (EIC_EN) External Non Maskable CPU interrupt */
813 #define EIC_EN_NMI                  (_U_(0x1) << EIC_EN_NMI_Pos)
814 #define EIC_EN_INT1_Pos             1            /**< \brief (EIC_EN) External Interrupt 1 */
815 #define EIC_EN_INT1                 (_U_(0x1) << EIC_EN_INT1_Pos)
816 #define EIC_EN_INT2_Pos             2            /**< \brief (EIC_EN) External Interrupt 2 */
817 #define EIC_EN_INT2                 (_U_(0x1) << EIC_EN_INT2_Pos)
818 #define EIC_EN_INT3_Pos             3            /**< \brief (EIC_EN) External Interrupt 3 */
819 #define EIC_EN_INT3                 (_U_(0x1) << EIC_EN_INT3_Pos)
820 #define EIC_EN_INT4_Pos             4            /**< \brief (EIC_EN) External Interrupt 4 */
821 #define EIC_EN_INT4                 (_U_(0x1) << EIC_EN_INT4_Pos)
822 #define EIC_EN_INT5_Pos             5            /**< \brief (EIC_EN) External Interrupt 5 */
823 #define EIC_EN_INT5                 (_U_(0x1) << EIC_EN_INT5_Pos)
824 #define EIC_EN_INT6_Pos             6            /**< \brief (EIC_EN) External Interrupt 6 */
825 #define EIC_EN_INT6                 (_U_(0x1) << EIC_EN_INT6_Pos)
826 #define EIC_EN_INT7_Pos             7            /**< \brief (EIC_EN) External Interrupt 7 */
827 #define EIC_EN_INT7                 (_U_(0x1) << EIC_EN_INT7_Pos)
828 #define EIC_EN_INT8_Pos             8            /**< \brief (EIC_EN) External Interrupt 8 */
829 #define EIC_EN_INT8                 (_U_(0x1) << EIC_EN_INT8_Pos)
830 #define EIC_EN_INT9_Pos             9            /**< \brief (EIC_EN) External Interrupt 9 */
831 #define EIC_EN_INT9                 (_U_(0x1) << EIC_EN_INT9_Pos)
832 #define EIC_EN_INT10_Pos            10           /**< \brief (EIC_EN) External Interrupt 10 */
833 #define EIC_EN_INT10                (_U_(0x1) << EIC_EN_INT10_Pos)
834 #define EIC_EN_INT11_Pos            11           /**< \brief (EIC_EN) External Interrupt 11 */
835 #define EIC_EN_INT11                (_U_(0x1) << EIC_EN_INT11_Pos)
836 #define EIC_EN_INT12_Pos            12           /**< \brief (EIC_EN) External Interrupt 12 */
837 #define EIC_EN_INT12                (_U_(0x1) << EIC_EN_INT12_Pos)
838 #define EIC_EN_INT13_Pos            13           /**< \brief (EIC_EN) External Interrupt 13 */
839 #define EIC_EN_INT13                (_U_(0x1) << EIC_EN_INT13_Pos)
840 #define EIC_EN_INT14_Pos            14           /**< \brief (EIC_EN) External Interrupt 14 */
841 #define EIC_EN_INT14                (_U_(0x1) << EIC_EN_INT14_Pos)
842 #define EIC_EN_INT15_Pos            15           /**< \brief (EIC_EN) External Interrupt 15 */
843 #define EIC_EN_INT15                (_U_(0x1) << EIC_EN_INT15_Pos)
844 #define EIC_EN_MASK                 _U_(0x0000FFFF) /**< \brief (EIC_EN) MASK Register */
845 
846 /* -------- EIC_DIS : (EIC Offset: 0x034) ( /W 32) Disable Register -------- */
847 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
848 typedef union {
849   struct {
850     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
851     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
852     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
853     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
854     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
855     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
856     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
857     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
858     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
859     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
860     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
861     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
862     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
863     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
864     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
865     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
866     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
867   } bit;                       /*!< Structure used for bit  access                  */
868   uint32_t reg;                /*!< Type      used for register access              */
869 } EIC_DIS_Type;
870 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
871 
872 #define EIC_DIS_OFFSET              0x034        /**< \brief (EIC_DIS offset) Disable Register */
873 #define EIC_DIS_RESETVALUE          _U_(0x00000000); /**< \brief (EIC_DIS reset_value) Disable Register */
874 
875 #define EIC_DIS_NMI_Pos             0            /**< \brief (EIC_DIS) External Non Maskable CPU interrupt */
876 #define EIC_DIS_NMI                 (_U_(0x1) << EIC_DIS_NMI_Pos)
877 #define EIC_DIS_INT1_Pos            1            /**< \brief (EIC_DIS) External Interrupt 1 */
878 #define EIC_DIS_INT1                (_U_(0x1) << EIC_DIS_INT1_Pos)
879 #define EIC_DIS_INT2_Pos            2            /**< \brief (EIC_DIS) External Interrupt 2 */
880 #define EIC_DIS_INT2                (_U_(0x1) << EIC_DIS_INT2_Pos)
881 #define EIC_DIS_INT3_Pos            3            /**< \brief (EIC_DIS) External Interrupt 3 */
882 #define EIC_DIS_INT3                (_U_(0x1) << EIC_DIS_INT3_Pos)
883 #define EIC_DIS_INT4_Pos            4            /**< \brief (EIC_DIS) External Interrupt 4 */
884 #define EIC_DIS_INT4                (_U_(0x1) << EIC_DIS_INT4_Pos)
885 #define EIC_DIS_INT5_Pos            5            /**< \brief (EIC_DIS) External Interrupt 5 */
886 #define EIC_DIS_INT5                (_U_(0x1) << EIC_DIS_INT5_Pos)
887 #define EIC_DIS_INT6_Pos            6            /**< \brief (EIC_DIS) External Interrupt 6 */
888 #define EIC_DIS_INT6                (_U_(0x1) << EIC_DIS_INT6_Pos)
889 #define EIC_DIS_INT7_Pos            7            /**< \brief (EIC_DIS) External Interrupt 7 */
890 #define EIC_DIS_INT7                (_U_(0x1) << EIC_DIS_INT7_Pos)
891 #define EIC_DIS_INT8_Pos            8            /**< \brief (EIC_DIS) External Interrupt 8 */
892 #define EIC_DIS_INT8                (_U_(0x1) << EIC_DIS_INT8_Pos)
893 #define EIC_DIS_INT9_Pos            9            /**< \brief (EIC_DIS) External Interrupt 9 */
894 #define EIC_DIS_INT9                (_U_(0x1) << EIC_DIS_INT9_Pos)
895 #define EIC_DIS_INT10_Pos           10           /**< \brief (EIC_DIS) External Interrupt 10 */
896 #define EIC_DIS_INT10               (_U_(0x1) << EIC_DIS_INT10_Pos)
897 #define EIC_DIS_INT11_Pos           11           /**< \brief (EIC_DIS) External Interrupt 11 */
898 #define EIC_DIS_INT11               (_U_(0x1) << EIC_DIS_INT11_Pos)
899 #define EIC_DIS_INT12_Pos           12           /**< \brief (EIC_DIS) External Interrupt 12 */
900 #define EIC_DIS_INT12               (_U_(0x1) << EIC_DIS_INT12_Pos)
901 #define EIC_DIS_INT13_Pos           13           /**< \brief (EIC_DIS) External Interrupt 13 */
902 #define EIC_DIS_INT13               (_U_(0x1) << EIC_DIS_INT13_Pos)
903 #define EIC_DIS_INT14_Pos           14           /**< \brief (EIC_DIS) External Interrupt 14 */
904 #define EIC_DIS_INT14               (_U_(0x1) << EIC_DIS_INT14_Pos)
905 #define EIC_DIS_INT15_Pos           15           /**< \brief (EIC_DIS) External Interrupt 15 */
906 #define EIC_DIS_INT15               (_U_(0x1) << EIC_DIS_INT15_Pos)
907 #define EIC_DIS_MASK                _U_(0x0000FFFF) /**< \brief (EIC_DIS) MASK Register */
908 
909 /* -------- EIC_CTRL : (EIC Offset: 0x038) (R/  32) Control Register -------- */
910 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
911 typedef union {
912   struct {
913     uint32_t NMI:1;            /*!< bit:      0  External Non Maskable CPU interrupt */
914     uint32_t INT1:1;           /*!< bit:      1  External Interrupt 1               */
915     uint32_t INT2:1;           /*!< bit:      2  External Interrupt 2               */
916     uint32_t INT3:1;           /*!< bit:      3  External Interrupt 3               */
917     uint32_t INT4:1;           /*!< bit:      4  External Interrupt 4               */
918     uint32_t INT5:1;           /*!< bit:      5  External Interrupt 5               */
919     uint32_t INT6:1;           /*!< bit:      6  External Interrupt 6               */
920     uint32_t INT7:1;           /*!< bit:      7  External Interrupt 7               */
921     uint32_t INT8:1;           /*!< bit:      8  External Interrupt 8               */
922     uint32_t INT9:1;           /*!< bit:      9  External Interrupt 9               */
923     uint32_t INT10:1;          /*!< bit:     10  External Interrupt 10              */
924     uint32_t INT11:1;          /*!< bit:     11  External Interrupt 11              */
925     uint32_t INT12:1;          /*!< bit:     12  External Interrupt 12              */
926     uint32_t INT13:1;          /*!< bit:     13  External Interrupt 13              */
927     uint32_t INT14:1;          /*!< bit:     14  External Interrupt 14              */
928     uint32_t INT15:1;          /*!< bit:     15  External Interrupt 15              */
929     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
930   } bit;                       /*!< Structure used for bit  access                  */
931   uint32_t reg;                /*!< Type      used for register access              */
932 } EIC_CTRL_Type;
933 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
934 
935 #define EIC_CTRL_OFFSET             0x038        /**< \brief (EIC_CTRL offset) Control Register */
936 #define EIC_CTRL_RESETVALUE         _U_(0x00000000); /**< \brief (EIC_CTRL reset_value) Control Register */
937 
938 #define EIC_CTRL_NMI_Pos            0            /**< \brief (EIC_CTRL) External Non Maskable CPU interrupt */
939 #define EIC_CTRL_NMI                (_U_(0x1) << EIC_CTRL_NMI_Pos)
940 #define EIC_CTRL_INT1_Pos           1            /**< \brief (EIC_CTRL) External Interrupt 1 */
941 #define EIC_CTRL_INT1               (_U_(0x1) << EIC_CTRL_INT1_Pos)
942 #define EIC_CTRL_INT2_Pos           2            /**< \brief (EIC_CTRL) External Interrupt 2 */
943 #define EIC_CTRL_INT2               (_U_(0x1) << EIC_CTRL_INT2_Pos)
944 #define EIC_CTRL_INT3_Pos           3            /**< \brief (EIC_CTRL) External Interrupt 3 */
945 #define EIC_CTRL_INT3               (_U_(0x1) << EIC_CTRL_INT3_Pos)
946 #define EIC_CTRL_INT4_Pos           4            /**< \brief (EIC_CTRL) External Interrupt 4 */
947 #define EIC_CTRL_INT4               (_U_(0x1) << EIC_CTRL_INT4_Pos)
948 #define EIC_CTRL_INT5_Pos           5            /**< \brief (EIC_CTRL) External Interrupt 5 */
949 #define EIC_CTRL_INT5               (_U_(0x1) << EIC_CTRL_INT5_Pos)
950 #define EIC_CTRL_INT6_Pos           6            /**< \brief (EIC_CTRL) External Interrupt 6 */
951 #define EIC_CTRL_INT6               (_U_(0x1) << EIC_CTRL_INT6_Pos)
952 #define EIC_CTRL_INT7_Pos           7            /**< \brief (EIC_CTRL) External Interrupt 7 */
953 #define EIC_CTRL_INT7               (_U_(0x1) << EIC_CTRL_INT7_Pos)
954 #define EIC_CTRL_INT8_Pos           8            /**< \brief (EIC_CTRL) External Interrupt 8 */
955 #define EIC_CTRL_INT8               (_U_(0x1) << EIC_CTRL_INT8_Pos)
956 #define EIC_CTRL_INT9_Pos           9            /**< \brief (EIC_CTRL) External Interrupt 9 */
957 #define EIC_CTRL_INT9               (_U_(0x1) << EIC_CTRL_INT9_Pos)
958 #define EIC_CTRL_INT10_Pos          10           /**< \brief (EIC_CTRL) External Interrupt 10 */
959 #define EIC_CTRL_INT10              (_U_(0x1) << EIC_CTRL_INT10_Pos)
960 #define EIC_CTRL_INT11_Pos          11           /**< \brief (EIC_CTRL) External Interrupt 11 */
961 #define EIC_CTRL_INT11              (_U_(0x1) << EIC_CTRL_INT11_Pos)
962 #define EIC_CTRL_INT12_Pos          12           /**< \brief (EIC_CTRL) External Interrupt 12 */
963 #define EIC_CTRL_INT12              (_U_(0x1) << EIC_CTRL_INT12_Pos)
964 #define EIC_CTRL_INT13_Pos          13           /**< \brief (EIC_CTRL) External Interrupt 13 */
965 #define EIC_CTRL_INT13              (_U_(0x1) << EIC_CTRL_INT13_Pos)
966 #define EIC_CTRL_INT14_Pos          14           /**< \brief (EIC_CTRL) External Interrupt 14 */
967 #define EIC_CTRL_INT14              (_U_(0x1) << EIC_CTRL_INT14_Pos)
968 #define EIC_CTRL_INT15_Pos          15           /**< \brief (EIC_CTRL) External Interrupt 15 */
969 #define EIC_CTRL_INT15              (_U_(0x1) << EIC_CTRL_INT15_Pos)
970 #define EIC_CTRL_MASK               _U_(0x0000FFFF) /**< \brief (EIC_CTRL) MASK Register */
971 
972 /* -------- EIC_VERSION : (EIC Offset: 0x3FC) (R/  32) Version Register -------- */
973 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
974 typedef union {
975   struct {
976     uint32_t VERSION:12;       /*!< bit:  0..11  Version bits                       */
977     uint32_t :20;              /*!< bit: 12..31  Reserved                           */
978   } bit;                       /*!< Structure used for bit  access                  */
979   uint32_t reg;                /*!< Type      used for register access              */
980 } EIC_VERSION_Type;
981 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
982 
983 #define EIC_VERSION_OFFSET          0x3FC        /**< \brief (EIC_VERSION offset) Version Register */
984 #define EIC_VERSION_RESETVALUE      _U_(0x00000302); /**< \brief (EIC_VERSION reset_value) Version Register */
985 
986 #define EIC_VERSION_VERSION_Pos     0            /**< \brief (EIC_VERSION) Version bits */
987 #define EIC_VERSION_VERSION_Msk     (_U_(0xFFF) << EIC_VERSION_VERSION_Pos)
988 #define EIC_VERSION_VERSION(value)  (EIC_VERSION_VERSION_Msk & ((value) << EIC_VERSION_VERSION_Pos))
989 #define EIC_VERSION_MASK            _U_(0x00000FFF) /**< \brief (EIC_VERSION) MASK Register */
990 
991 /** \brief EIC hardware registers */
992 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
993 typedef struct {
994   __O  uint32_t IER;         /**< \brief Offset: 0x000 ( /W 32) Interrupt Enable Register */
995   __O  uint32_t IDR;         /**< \brief Offset: 0x004 ( /W 32) Interrupt Disable Register */
996   __I  uint32_t IMR;         /**< \brief Offset: 0x008 (R/  32) Interrupt Mask Register */
997   __I  uint32_t ISR;         /**< \brief Offset: 0x00C (R/  32) Interrupt Status Register */
998   __O  uint32_t ICR;         /**< \brief Offset: 0x010 ( /W 32) Interrupt Clear Register */
999   __IO uint32_t MODE;        /**< \brief Offset: 0x014 (R/W 32) Mode Register */
1000   __IO uint32_t EDGE;        /**< \brief Offset: 0x018 (R/W 32) Edge Register */
1001   __IO uint32_t LEVEL;       /**< \brief Offset: 0x01C (R/W 32) Level Register */
1002   __IO uint32_t FILTER;      /**< \brief Offset: 0x020 (R/W 32) Filter Register */
1003        RoReg8   Reserved1[0x4];
1004   __IO uint32_t ASYNC;       /**< \brief Offset: 0x028 (R/W 32) Asynchronous Register */
1005        RoReg8   Reserved2[0x4];
1006   __O  uint32_t EN;          /**< \brief Offset: 0x030 ( /W 32) Enable Register */
1007   __O  uint32_t DIS;         /**< \brief Offset: 0x034 ( /W 32) Disable Register */
1008   __I  uint32_t CTRL;        /**< \brief Offset: 0x038 (R/  32) Control Register */
1009        RoReg8   Reserved3[0x3C0];
1010   __I  uint32_t VERSION;     /**< \brief Offset: 0x3FC (R/  32) Version Register */
1011 } Eic;
1012 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1013 
1014 /*@}*/
1015 
1016 #endif /* _SAM4L_EIC_COMPONENT_ */
1017