1 //-----------------------------------------------------------------------------
2 // Copyright 2012 (c) Silicon Laboratories Inc.
3 //
4 // SPDX-License-Identifier: Zlib
5 //
6 // This siHAL software is provided 'as-is', without any express or implied
7 // warranty. In no event will the authors be held liable for any damages
8 // arising from the use of this software.
9 //
10 // Permission is granted to anyone to use this software for any purpose,
11 // including commercial applications, and to alter it and redistribute it
12 // freely, subject to the following restrictions:
13 //
14 // 1. The origin of this software must not be misrepresented; you must not
15 //    claim that you wrote the original software. If you use this software
16 //    in a product, an acknowledgment in the product documentation would be
17 //    appreciated but is not required.
18 // 2. Altered source versions must be plainly marked as such, and must not be
19 //    misrepresented as being the original software.
20 // 3. This notice may not be removed or altered from any source distribution.
21 //-----------------------------------------------------------------------------
22 //
23 // This file applies to the SIM3L1XX_PBCFG_A module
24 //
25 // Script: 0.61
26 // Version: 1
27 
28 #ifndef __SI32_PBCFG_A_REGISTERS_H__
29 #define __SI32_PBCFG_A_REGISTERS_H__
30 
31 #include <stdint.h>
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
37 struct SI32_PBCFG_A_CONTROL0_Struct
38 {
39    union
40    {
41       struct
42       {
43          // External Interrupt 0 Pin Selection
44          volatile uint32_t INT0SEL: 4;
45          // External Interrupt 0 Polarity
46          volatile uint32_t INT0POL: 1;
47          // External Interrupt 0 Mode
48          volatile uint32_t INT0MD: 2;
49          // External Interrupt 0 Enable
50          volatile uint32_t INT0EN: 1;
51          // External Interrupt 1 Pin Selection
52          volatile uint32_t INT1SEL: 4;
53          // External Interrupt 1 Polarity
54          volatile uint32_t INT1POL: 1;
55          // External Interrupt 1 Mode
56          volatile uint32_t INT1MD: 2;
57          // External Interrupt 1 Enable
58          volatile uint32_t INT1EN: 1;
59                   uint32_t reserved0: 8;
60          // Pulse Generator Timer
61          volatile uint32_t PGTIMER: 5;
62                   uint32_t reserved1: 2;
63          // Pulse Generator Timer Done Flag
64          volatile uint32_t PGDONEF: 1;
65       };
66       volatile uint32_t U32;
67    };
68 };
69 
70 #define SI32_PBCFG_A_CONTROL0_INT0SEL_MASK  0x0000000F
71 #define SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT  0
72 // Select INT0.0
73 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_0_VALUE  0
74 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_0_U32 \
75    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_0_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
76 // Select INT0.1
77 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_1_VALUE  1
78 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_1_U32 \
79    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_1_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
80 // Select INT0.2
81 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_2_VALUE  2
82 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_2_U32 \
83    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_2_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
84 // Select INT0.3
85 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_3_VALUE  3
86 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_3_U32 \
87    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_3_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
88 // Select INT0.4
89 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_4_VALUE  4
90 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_4_U32 \
91    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_4_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
92 // Select INT0.5
93 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_5_VALUE  5
94 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_5_U32 \
95    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_5_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
96 // Select INT0.6
97 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_6_VALUE  6
98 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_6_U32 \
99    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_6_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
100 // Select INT0.7
101 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_7_VALUE  7
102 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_7_U32 \
103    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_7_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
104 // Select INT0.8
105 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_8_VALUE  8
106 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_8_U32 \
107    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_8_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
108 // Select INT0.9
109 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_9_VALUE  9
110 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_9_U32 \
111    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_9_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
112 // Select INT0.10
113 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_10_VALUE  10
114 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_10_U32 \
115    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_10_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
116 // Select INT0.11
117 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_11_VALUE  11
118 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_11_U32 \
119    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_11_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
120 // Select INT0.12
121 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_12_VALUE  12
122 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_12_U32 \
123    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_12_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
124 // Select INT0.13
125 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_13_VALUE  13
126 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_13_U32 \
127    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_13_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
128 // Select INT0.14
129 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_14_VALUE  14
130 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_14_U32 \
131    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_14_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
132 // Select INT0.15
133 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_15_VALUE  15
134 #define SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_15_U32 \
135    (SI32_PBCFG_A_CONTROL0_INT0SEL_INT0_15_VALUE << SI32_PBCFG_A_CONTROL0_INT0SEL_SHIFT)
136 
137 #define SI32_PBCFG_A_CONTROL0_INT0POL_MASK  0x00000010
138 #define SI32_PBCFG_A_CONTROL0_INT0POL_SHIFT  4
139 // A low value or falling edge on the selected pin will cause interrupt.
140 #define SI32_PBCFG_A_CONTROL0_INT0POL_LOW_VALUE  0
141 #define SI32_PBCFG_A_CONTROL0_INT0POL_LOW_U32 \
142    (SI32_PBCFG_A_CONTROL0_INT0POL_LOW_VALUE << SI32_PBCFG_A_CONTROL0_INT0POL_SHIFT)
143 // A high value or rising edge on the selected pin will cause interrupt.
144 #define SI32_PBCFG_A_CONTROL0_INT0POL_HIGH_VALUE  1
145 #define SI32_PBCFG_A_CONTROL0_INT0POL_HIGH_U32 \
146    (SI32_PBCFG_A_CONTROL0_INT0POL_HIGH_VALUE << SI32_PBCFG_A_CONTROL0_INT0POL_SHIFT)
147 
148 #define SI32_PBCFG_A_CONTROL0_INT0MD_MASK  0x00000060
149 #define SI32_PBCFG_A_CONTROL0_INT0MD_SHIFT  5
150 // Interrupt on logic level at pin, as selected by the INT0POL field.
151 #define SI32_PBCFG_A_CONTROL0_INT0MD_LEVEL_VALUE  0
152 #define SI32_PBCFG_A_CONTROL0_INT0MD_LEVEL_U32 \
153    (SI32_PBCFG_A_CONTROL0_INT0MD_LEVEL_VALUE << SI32_PBCFG_A_CONTROL0_INT0MD_SHIFT)
154 // Interrupt on either rising or falling edge, as selected by the INT0POL field.
155 #define SI32_PBCFG_A_CONTROL0_INT0MD_EDGE_VALUE  1
156 #define SI32_PBCFG_A_CONTROL0_INT0MD_EDGE_U32 \
157    (SI32_PBCFG_A_CONTROL0_INT0MD_EDGE_VALUE << SI32_PBCFG_A_CONTROL0_INT0MD_SHIFT)
158 // Interrupt on both rising and falling edges (ignores INT0POL).
159 #define SI32_PBCFG_A_CONTROL0_INT0MD_DUAL_EDGE_VALUE  2
160 #define SI32_PBCFG_A_CONTROL0_INT0MD_DUAL_EDGE_U32 \
161    (SI32_PBCFG_A_CONTROL0_INT0MD_DUAL_EDGE_VALUE << SI32_PBCFG_A_CONTROL0_INT0MD_SHIFT)
162 
163 #define SI32_PBCFG_A_CONTROL0_INT0EN_MASK  0x00000080
164 #define SI32_PBCFG_A_CONTROL0_INT0EN_SHIFT  7
165 // Disable external interrupt 0.
166 #define SI32_PBCFG_A_CONTROL0_INT0EN_DISABLED_VALUE  0
167 #define SI32_PBCFG_A_CONTROL0_INT0EN_DISABLED_U32 \
168    (SI32_PBCFG_A_CONTROL0_INT0EN_DISABLED_VALUE << SI32_PBCFG_A_CONTROL0_INT0EN_SHIFT)
169 // Enable external interrupt 0.
170 #define SI32_PBCFG_A_CONTROL0_INT0EN_ENABLED_VALUE  1
171 #define SI32_PBCFG_A_CONTROL0_INT0EN_ENABLED_U32 \
172    (SI32_PBCFG_A_CONTROL0_INT0EN_ENABLED_VALUE << SI32_PBCFG_A_CONTROL0_INT0EN_SHIFT)
173 
174 #define SI32_PBCFG_A_CONTROL0_INT1SEL_MASK  0x00000F00
175 #define SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT  8
176 // Select INT1.0
177 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_0_VALUE  0
178 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_0_U32 \
179    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_0_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
180 // Select INT1.1
181 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_1_VALUE  1
182 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_1_U32 \
183    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_1_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
184 // Select INT1.2
185 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_2_VALUE  2
186 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_2_U32 \
187    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_2_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
188 // Select INT1.3
189 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_3_VALUE  3
190 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_3_U32 \
191    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_3_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
192 // Select INT1.4
193 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_4_VALUE  4
194 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_4_U32 \
195    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_4_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
196 // Select INT1.5
197 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_5_VALUE  5
198 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_5_U32 \
199    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_5_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
200 // Select INT1.6
201 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_6_VALUE  6
202 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_6_U32 \
203    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_6_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
204 // Select INT1.7
205 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_7_VALUE  7
206 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_7_U32 \
207    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_7_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
208 // Select INT1.8
209 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_8_VALUE  8
210 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_8_U32 \
211    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_8_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
212 // Select INT1.9
213 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_9_VALUE  9
214 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_9_U32 \
215    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_9_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
216 // Select INT1.10
217 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_10_VALUE  10
218 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_10_U32 \
219    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_10_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
220 // Select INT1.11
221 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_11_VALUE  11
222 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_11_U32 \
223    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_11_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
224 // Select INT1.12
225 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_12_VALUE  12
226 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_12_U32 \
227    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_12_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
228 // Select INT1.13
229 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_13_VALUE  13
230 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_13_U32 \
231    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_13_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
232 // Select INT1.14
233 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_14_VALUE  14
234 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_14_U32 \
235    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_14_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
236 // Select INT1.15
237 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_15_VALUE  15
238 #define SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_15_U32 \
239    (SI32_PBCFG_A_CONTROL0_INT1SEL_INT1_15_VALUE << SI32_PBCFG_A_CONTROL0_INT1SEL_SHIFT)
240 
241 #define SI32_PBCFG_A_CONTROL0_INT1POL_MASK  0x00001000
242 #define SI32_PBCFG_A_CONTROL0_INT1POL_SHIFT  12
243 // A low value or falling edge on the selected pin will cause interrupt.
244 #define SI32_PBCFG_A_CONTROL0_INT1POL_LOW_VALUE  0
245 #define SI32_PBCFG_A_CONTROL0_INT1POL_LOW_U32 \
246    (SI32_PBCFG_A_CONTROL0_INT1POL_LOW_VALUE << SI32_PBCFG_A_CONTROL0_INT1POL_SHIFT)
247 // A high value or rising edge on the selected pin will cause interrupt.
248 #define SI32_PBCFG_A_CONTROL0_INT1POL_HIGH_VALUE  1
249 #define SI32_PBCFG_A_CONTROL0_INT1POL_HIGH_U32 \
250    (SI32_PBCFG_A_CONTROL0_INT1POL_HIGH_VALUE << SI32_PBCFG_A_CONTROL0_INT1POL_SHIFT)
251 
252 #define SI32_PBCFG_A_CONTROL0_INT1MD_MASK  0x00006000
253 #define SI32_PBCFG_A_CONTROL0_INT1MD_SHIFT  13
254 // Interrupt on logic level at pin, as selected by the INT1POL field.
255 #define SI32_PBCFG_A_CONTROL0_INT1MD_LEVEL_VALUE  0
256 #define SI32_PBCFG_A_CONTROL0_INT1MD_LEVEL_U32 \
257    (SI32_PBCFG_A_CONTROL0_INT1MD_LEVEL_VALUE << SI32_PBCFG_A_CONTROL0_INT1MD_SHIFT)
258 // Interrupt on either rising or falling edge, as selected by the INT1POL field.
259 #define SI32_PBCFG_A_CONTROL0_INT1MD_EDGE_VALUE  1
260 #define SI32_PBCFG_A_CONTROL0_INT1MD_EDGE_U32 \
261    (SI32_PBCFG_A_CONTROL0_INT1MD_EDGE_VALUE << SI32_PBCFG_A_CONTROL0_INT1MD_SHIFT)
262 // Interrupt on both rising and falling edges (ignores INT1POL).
263 #define SI32_PBCFG_A_CONTROL0_INT1MD_DUAL_EDGE_VALUE  2
264 #define SI32_PBCFG_A_CONTROL0_INT1MD_DUAL_EDGE_U32 \
265    (SI32_PBCFG_A_CONTROL0_INT1MD_DUAL_EDGE_VALUE << SI32_PBCFG_A_CONTROL0_INT1MD_SHIFT)
266 
267 #define SI32_PBCFG_A_CONTROL0_INT1EN_MASK  0x00008000
268 #define SI32_PBCFG_A_CONTROL0_INT1EN_SHIFT  15
269 // Disable external interrupt 1.
270 #define SI32_PBCFG_A_CONTROL0_INT1EN_DISABLED_VALUE  0
271 #define SI32_PBCFG_A_CONTROL0_INT1EN_DISABLED_U32 \
272    (SI32_PBCFG_A_CONTROL0_INT1EN_DISABLED_VALUE << SI32_PBCFG_A_CONTROL0_INT1EN_SHIFT)
273 // Enable external interrupt 1.
274 #define SI32_PBCFG_A_CONTROL0_INT1EN_ENABLED_VALUE  1
275 #define SI32_PBCFG_A_CONTROL0_INT1EN_ENABLED_U32 \
276    (SI32_PBCFG_A_CONTROL0_INT1EN_ENABLED_VALUE << SI32_PBCFG_A_CONTROL0_INT1EN_SHIFT)
277 
278 #define SI32_PBCFG_A_CONTROL0_PGTIMER_MASK  0x1F000000
279 #define SI32_PBCFG_A_CONTROL0_PGTIMER_SHIFT  24
280 
281 #define SI32_PBCFG_A_CONTROL0_PGDONEF_MASK  0x80000000
282 #define SI32_PBCFG_A_CONTROL0_PGDONEF_SHIFT  31
283 // Firmware has written to the PBPGPHASE register, but the Pulse Generator timer
284 // has not expired.
285 #define SI32_PBCFG_A_CONTROL0_PGDONEF_NOT_SET_VALUE  0U
286 #define SI32_PBCFG_A_CONTROL0_PGDONEF_NOT_SET_U32 \
287    (SI32_PBCFG_A_CONTROL0_PGDONEF_NOT_SET_VALUE << SI32_PBCFG_A_CONTROL0_PGDONEF_SHIFT)
288 // The Pulse Generator cycle finished since the last time PBPGPHASE was written.
289 #define SI32_PBCFG_A_CONTROL0_PGDONEF_SET_VALUE  1U
290 #define SI32_PBCFG_A_CONTROL0_PGDONEF_SET_U32 \
291    (SI32_PBCFG_A_CONTROL0_PGDONEF_SET_VALUE << SI32_PBCFG_A_CONTROL0_PGDONEF_SHIFT)
292 
293 
294 
295 struct SI32_PBCFG_A_CONTROL1_Struct
296 {
297    union
298    {
299       struct
300       {
301          // JTAG Enable
302          volatile uint32_t JTAGEN: 1;
303          // ETM Enable
304          volatile uint32_t ETMEN: 1;
305          // SWV Enable
306          volatile uint32_t SWVEN: 1;
307                   uint32_t reserved0: 5;
308          // SPI1 Fixed Port Selection
309          volatile uint32_t SPI1SEL: 1;
310          // Port Match Interrupt Enable
311          volatile uint32_t PMATCHEN: 1;
312                   uint32_t reserved1: 2;
313          // Low Power Timer Output Pin Select
314          volatile uint32_t LPTOSEL: 1;
315                   uint32_t reserved2: 18;
316          // Port Bank Configuration Lock
317          volatile uint32_t LOCK: 1;
318       };
319       volatile uint32_t U32;
320    };
321 };
322 
323 #define SI32_PBCFG_A_CONTROL1_JTAGEN_MASK  0x00000001
324 #define SI32_PBCFG_A_CONTROL1_JTAGEN_SHIFT  0
325 // JTAG functionality is not pinned out.
326 #define SI32_PBCFG_A_CONTROL1_JTAGEN_DISABLED_VALUE  0
327 #define SI32_PBCFG_A_CONTROL1_JTAGEN_DISABLED_U32 \
328    (SI32_PBCFG_A_CONTROL1_JTAGEN_DISABLED_VALUE << SI32_PBCFG_A_CONTROL1_JTAGEN_SHIFT)
329 // JTAG functionality is pinned out.
330 #define SI32_PBCFG_A_CONTROL1_JTAGEN_ENABLED_VALUE  1
331 #define SI32_PBCFG_A_CONTROL1_JTAGEN_ENABLED_U32 \
332    (SI32_PBCFG_A_CONTROL1_JTAGEN_ENABLED_VALUE << SI32_PBCFG_A_CONTROL1_JTAGEN_SHIFT)
333 
334 #define SI32_PBCFG_A_CONTROL1_ETMEN_MASK  0x00000002
335 #define SI32_PBCFG_A_CONTROL1_ETMEN_SHIFT  1
336 // ETM not pinned out.
337 #define SI32_PBCFG_A_CONTROL1_ETMEN_DISABLED_VALUE  0
338 #define SI32_PBCFG_A_CONTROL1_ETMEN_DISABLED_U32 \
339    (SI32_PBCFG_A_CONTROL1_ETMEN_DISABLED_VALUE << SI32_PBCFG_A_CONTROL1_ETMEN_SHIFT)
340 // ETM is enabled and pinned out.
341 #define SI32_PBCFG_A_CONTROL1_ETMEN_ENABLED_VALUE  1
342 #define SI32_PBCFG_A_CONTROL1_ETMEN_ENABLED_U32 \
343    (SI32_PBCFG_A_CONTROL1_ETMEN_ENABLED_VALUE << SI32_PBCFG_A_CONTROL1_ETMEN_SHIFT)
344 
345 #define SI32_PBCFG_A_CONTROL1_SWVEN_MASK  0x00000004
346 #define SI32_PBCFG_A_CONTROL1_SWVEN_SHIFT  2
347 // SWV is not pinned out.
348 #define SI32_PBCFG_A_CONTROL1_SWVEN_DISABLED_VALUE  0
349 #define SI32_PBCFG_A_CONTROL1_SWVEN_DISABLED_U32 \
350    (SI32_PBCFG_A_CONTROL1_SWVEN_DISABLED_VALUE << SI32_PBCFG_A_CONTROL1_SWVEN_SHIFT)
351 // SWV is enabled and pinned out.
352 #define SI32_PBCFG_A_CONTROL1_SWVEN_ENABLED_VALUE  1
353 #define SI32_PBCFG_A_CONTROL1_SWVEN_ENABLED_U32 \
354    (SI32_PBCFG_A_CONTROL1_SWVEN_ENABLED_VALUE << SI32_PBCFG_A_CONTROL1_SWVEN_SHIFT)
355 
356 #define SI32_PBCFG_A_CONTROL1_SPI1SEL_MASK  0x00000100
357 #define SI32_PBCFG_A_CONTROL1_SPI1SEL_SHIFT  8
358 // Disconnect SPI1 from the dedicated pins.
359 #define SI32_PBCFG_A_CONTROL1_SPI1SEL_DISABLED_VALUE  0
360 #define SI32_PBCFG_A_CONTROL1_SPI1SEL_DISABLED_U32 \
361    (SI32_PBCFG_A_CONTROL1_SPI1SEL_DISABLED_VALUE << SI32_PBCFG_A_CONTROL1_SPI1SEL_SHIFT)
362 // Connect SPI1 to the dedicated pins.
363 #define SI32_PBCFG_A_CONTROL1_SPI1SEL_ENABLED_VALUE  1
364 #define SI32_PBCFG_A_CONTROL1_SPI1SEL_ENABLED_U32 \
365    (SI32_PBCFG_A_CONTROL1_SPI1SEL_ENABLED_VALUE << SI32_PBCFG_A_CONTROL1_SPI1SEL_SHIFT)
366 
367 #define SI32_PBCFG_A_CONTROL1_PMATCHEN_MASK  0x00000200
368 #define SI32_PBCFG_A_CONTROL1_PMATCHEN_SHIFT  9
369 // Disable the port match logic. The PBnMAT registers are not read/write accessible
370 // on the APB bus.
371 #define SI32_PBCFG_A_CONTROL1_PMATCHEN_DISABLED_VALUE  0
372 #define SI32_PBCFG_A_CONTROL1_PMATCHEN_DISABLED_U32 \
373    (SI32_PBCFG_A_CONTROL1_PMATCHEN_DISABLED_VALUE << SI32_PBCFG_A_CONTROL1_PMATCHEN_SHIFT)
374 // Enable the port match logic to generate a port match interrupt. The PBnMAT
375 // registers are read/write accessible on the APB bus.
376 #define SI32_PBCFG_A_CONTROL1_PMATCHEN_ENABLED_VALUE  1
377 #define SI32_PBCFG_A_CONTROL1_PMATCHEN_ENABLED_U32 \
378    (SI32_PBCFG_A_CONTROL1_PMATCHEN_ENABLED_VALUE << SI32_PBCFG_A_CONTROL1_PMATCHEN_SHIFT)
379 
380 #define SI32_PBCFG_A_CONTROL1_LPTOSEL_MASK  0x00001000
381 #define SI32_PBCFG_A_CONTROL1_LPTOSEL_SHIFT  12
382 // Route the Low Power Timer output to LPT0OUT0.
383 #define SI32_PBCFG_A_CONTROL1_LPTOSEL_LPT0OUT0_VALUE  0
384 #define SI32_PBCFG_A_CONTROL1_LPTOSEL_LPT0OUT0_U32 \
385    (SI32_PBCFG_A_CONTROL1_LPTOSEL_LPT0OUT0_VALUE << SI32_PBCFG_A_CONTROL1_LPTOSEL_SHIFT)
386 // Route the Low Power Timer output to LPT0OUT1.
387 #define SI32_PBCFG_A_CONTROL1_LPTOSEL_LPT0OUT1_VALUE  1
388 #define SI32_PBCFG_A_CONTROL1_LPTOSEL_LPT0OUT1_U32 \
389    (SI32_PBCFG_A_CONTROL1_LPTOSEL_LPT0OUT1_VALUE << SI32_PBCFG_A_CONTROL1_LPTOSEL_SHIFT)
390 
391 #define SI32_PBCFG_A_CONTROL1_LOCK_MASK  0x80000000
392 #define SI32_PBCFG_A_CONTROL1_LOCK_SHIFT  31
393 // Port Bank Configuration and Control registers are unlocked.
394 #define SI32_PBCFG_A_CONTROL1_LOCK_UNLOCKED_VALUE  0U
395 #define SI32_PBCFG_A_CONTROL1_LOCK_UNLOCKED_U32 \
396    (SI32_PBCFG_A_CONTROL1_LOCK_UNLOCKED_VALUE << SI32_PBCFG_A_CONTROL1_LOCK_SHIFT)
397 // The following registers are locked from write access: CONTROL1, XBAR0, and all
398 // PBSKIP registers.
399 #define SI32_PBCFG_A_CONTROL1_LOCK_LOCKED_VALUE  1U
400 #define SI32_PBCFG_A_CONTROL1_LOCK_LOCKED_U32 \
401    (SI32_PBCFG_A_CONTROL1_LOCK_LOCKED_VALUE << SI32_PBCFG_A_CONTROL1_LOCK_SHIFT)
402 
403 
404 
405 struct SI32_PBCFG_A_XBAR0_Struct
406 {
407    union
408    {
409       struct
410       {
411          // USART0 Enable
412          volatile uint32_t USART0EN: 1;
413          // USART0 Flow Control Enable
414          volatile uint32_t USART0FCEN: 1;
415          // USART0 Clock Signal Enable
416          volatile uint32_t USART0CEN: 1;
417          // DMA Trigger 0 Enable
418          volatile uint32_t DMA0T0EN: 1;
419          // DMA Trigger 1 Enabled
420          volatile uint32_t DMA0T1EN: 1;
421          // IDAC0 Trigger Enable
422          volatile uint32_t IDAC0TEN: 1;
423          // SPI0 Enable
424          volatile uint32_t SPI0EN: 1;
425          // SPI0 NSS Pin Enable
426          volatile uint32_t SPI0NSSEN: 1;
427          // EPCA0 Channel Enable
428          volatile uint32_t EPCA0EN: 3;
429          // EPCA0 ECI Enable
430          volatile uint32_t EECI0EN: 1;
431          // I2C0 Enable
432          volatile uint32_t I2C0EN: 1;
433          // Comparator 0 Synchronous Output (CMP0S) Enable
434          volatile uint32_t CMP0SEN: 1;
435          // Comparator 0 Asynchronous Output (CMP0A) Enable
436          volatile uint32_t CMP0AEN: 1;
437          // Comparator 1 Synchronous Output (CMP1S) Enable
438          volatile uint32_t CMP1SEN: 1;
439          // Comparator 1 Asynchronous Output (CMP1A) Enable
440          volatile uint32_t CMP1AEN: 1;
441          // TIMER0 T0CT Enable
442          volatile uint32_t TMR0CTEN: 1;
443          // TIMER0 T0EX Enable
444          volatile uint32_t TMR0EXEN: 1;
445          // TIMER1 T1CT Enable
446          volatile uint32_t TMR1CTEN: 1;
447          // TIMER1 T1EX Enable
448          volatile uint32_t TMR1EXEN: 1;
449          // SARADC0 Trigger Enable
450          volatile uint32_t SARADC0TEN: 1;
451          // AHB Clock Output Enable
452          volatile uint32_t AHBEN: 1;
453                   uint32_t reserved0: 8;
454          // Crossbar 0 Enable
455          volatile uint32_t XBAR0EN: 1;
456       };
457       volatile uint32_t U32;
458    };
459 };
460 
461 #define SI32_PBCFG_A_XBAR0_USART0EN_MASK  0x00000001
462 #define SI32_PBCFG_A_XBAR0_USART0EN_SHIFT  0
463 // Disable USART0 RX and TX on Crossbar 0.
464 #define SI32_PBCFG_A_XBAR0_USART0EN_DISABLED_VALUE  0
465 #define SI32_PBCFG_A_XBAR0_USART0EN_DISABLED_U32 \
466    (SI32_PBCFG_A_XBAR0_USART0EN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_USART0EN_SHIFT)
467 // Enable USART0 RX and TX on Crossbar 0.
468 #define SI32_PBCFG_A_XBAR0_USART0EN_ENABLED_VALUE  1
469 #define SI32_PBCFG_A_XBAR0_USART0EN_ENABLED_U32 \
470    (SI32_PBCFG_A_XBAR0_USART0EN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_USART0EN_SHIFT)
471 
472 #define SI32_PBCFG_A_XBAR0_USART0FCEN_MASK  0x00000002
473 #define SI32_PBCFG_A_XBAR0_USART0FCEN_SHIFT  1
474 // Disable USART0 flow control on Crossbar 0.
475 #define SI32_PBCFG_A_XBAR0_USART0FCEN_DISABLED_VALUE  0
476 #define SI32_PBCFG_A_XBAR0_USART0FCEN_DISABLED_U32 \
477    (SI32_PBCFG_A_XBAR0_USART0FCEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_USART0FCEN_SHIFT)
478 // Enable USART0 flow control on Crossbar 0.
479 #define SI32_PBCFG_A_XBAR0_USART0FCEN_ENABLED_VALUE  1
480 #define SI32_PBCFG_A_XBAR0_USART0FCEN_ENABLED_U32 \
481    (SI32_PBCFG_A_XBAR0_USART0FCEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_USART0FCEN_SHIFT)
482 
483 #define SI32_PBCFG_A_XBAR0_USART0CEN_MASK  0x00000004
484 #define SI32_PBCFG_A_XBAR0_USART0CEN_SHIFT  2
485 // Disable USART0 clock on Crossbar 0.
486 #define SI32_PBCFG_A_XBAR0_USART0CEN_DISABLED_VALUE  0
487 #define SI32_PBCFG_A_XBAR0_USART0CEN_DISABLED_U32 \
488    (SI32_PBCFG_A_XBAR0_USART0CEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_USART0CEN_SHIFT)
489 // Enable USART0 clock on Crossbar 0.
490 #define SI32_PBCFG_A_XBAR0_USART0CEN_ENABLED_VALUE  1
491 #define SI32_PBCFG_A_XBAR0_USART0CEN_ENABLED_U32 \
492    (SI32_PBCFG_A_XBAR0_USART0CEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_USART0CEN_SHIFT)
493 
494 #define SI32_PBCFG_A_XBAR0_DMA0T0EN_MASK  0x00000008
495 #define SI32_PBCFG_A_XBAR0_DMA0T0EN_SHIFT  3
496 // Disable the DMA trigger 0 on Crossbar 0.
497 #define SI32_PBCFG_A_XBAR0_DMA0T0EN_DISABLED_VALUE  0
498 #define SI32_PBCFG_A_XBAR0_DMA0T0EN_DISABLED_U32 \
499    (SI32_PBCFG_A_XBAR0_DMA0T0EN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_DMA0T0EN_SHIFT)
500 // Enable the DMA trigger 0 on Crossbar 0.
501 #define SI32_PBCFG_A_XBAR0_DMA0T0EN_ENABLED_VALUE  1
502 #define SI32_PBCFG_A_XBAR0_DMA0T0EN_ENABLED_U32 \
503    (SI32_PBCFG_A_XBAR0_DMA0T0EN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_DMA0T0EN_SHIFT)
504 
505 #define SI32_PBCFG_A_XBAR0_DMA0T1EN_MASK  0x00000010
506 #define SI32_PBCFG_A_XBAR0_DMA0T1EN_SHIFT  4
507 // Disable the DMA trigger 1 on Crossbar 0.
508 #define SI32_PBCFG_A_XBAR0_DMA0T1EN_DISABLED_VALUE  0
509 #define SI32_PBCFG_A_XBAR0_DMA0T1EN_DISABLED_U32 \
510    (SI32_PBCFG_A_XBAR0_DMA0T1EN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_DMA0T1EN_SHIFT)
511 // Enable the DMA trigger 1 on Crossbar 0.
512 #define SI32_PBCFG_A_XBAR0_DMA0T1EN_ENABLED_VALUE  1
513 #define SI32_PBCFG_A_XBAR0_DMA0T1EN_ENABLED_U32 \
514    (SI32_PBCFG_A_XBAR0_DMA0T1EN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_DMA0T1EN_SHIFT)
515 
516 #define SI32_PBCFG_A_XBAR0_IDAC0TEN_MASK  0x00000020
517 #define SI32_PBCFG_A_XBAR0_IDAC0TEN_SHIFT  5
518 // Disable the IDAC0 trigger on Crossbar 0.
519 #define SI32_PBCFG_A_XBAR0_IDAC0TEN_DISABLED_VALUE  0
520 #define SI32_PBCFG_A_XBAR0_IDAC0TEN_DISABLED_U32 \
521    (SI32_PBCFG_A_XBAR0_IDAC0TEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_IDAC0TEN_SHIFT)
522 // Enable the IDAC0 trigger on Crossbar 0.
523 #define SI32_PBCFG_A_XBAR0_IDAC0TEN_ENABLED_VALUE  1
524 #define SI32_PBCFG_A_XBAR0_IDAC0TEN_ENABLED_U32 \
525    (SI32_PBCFG_A_XBAR0_IDAC0TEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_IDAC0TEN_SHIFT)
526 
527 #define SI32_PBCFG_A_XBAR0_SPI0EN_MASK  0x00000040
528 #define SI32_PBCFG_A_XBAR0_SPI0EN_SHIFT  6
529 // Disable SPI0 SCK, MISO, and MOSI on Crossbar 0.
530 #define SI32_PBCFG_A_XBAR0_SPI0EN_DISABLED_VALUE  0
531 #define SI32_PBCFG_A_XBAR0_SPI0EN_DISABLED_U32 \
532    (SI32_PBCFG_A_XBAR0_SPI0EN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_SPI0EN_SHIFT)
533 // Enable SPI0 SCK, MISO, and MOSI on Crossbar 0.
534 #define SI32_PBCFG_A_XBAR0_SPI0EN_ENABLED_VALUE  1
535 #define SI32_PBCFG_A_XBAR0_SPI0EN_ENABLED_U32 \
536    (SI32_PBCFG_A_XBAR0_SPI0EN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_SPI0EN_SHIFT)
537 
538 #define SI32_PBCFG_A_XBAR0_SPI0NSSEN_MASK  0x00000080
539 #define SI32_PBCFG_A_XBAR0_SPI0NSSEN_SHIFT  7
540 // Disable SPI0 NSS on Crossbar 0.
541 #define SI32_PBCFG_A_XBAR0_SPI0NSSEN_DISABLED_VALUE  0
542 #define SI32_PBCFG_A_XBAR0_SPI0NSSEN_DISABLED_U32 \
543    (SI32_PBCFG_A_XBAR0_SPI0NSSEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_SPI0NSSEN_SHIFT)
544 // Enable SPI0 NSS on Crossbar 0.
545 #define SI32_PBCFG_A_XBAR0_SPI0NSSEN_ENABLED_VALUE  1
546 #define SI32_PBCFG_A_XBAR0_SPI0NSSEN_ENABLED_U32 \
547    (SI32_PBCFG_A_XBAR0_SPI0NSSEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_SPI0NSSEN_SHIFT)
548 
549 #define SI32_PBCFG_A_XBAR0_EPCA0EN_MASK  0x00000700
550 #define SI32_PBCFG_A_XBAR0_EPCA0EN_SHIFT  8
551 // Disable all EPCA0 channels on Crossbar 0.
552 #define SI32_PBCFG_A_XBAR0_EPCA0EN_NONE_VALUE  0
553 #define SI32_PBCFG_A_XBAR0_EPCA0EN_NONE_U32 \
554    (SI32_PBCFG_A_XBAR0_EPCA0EN_NONE_VALUE << SI32_PBCFG_A_XBAR0_EPCA0EN_SHIFT)
555 // Enable EPCA0 CEX0 on Crossbar 0.
556 #define SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_0_VALUE  1
557 #define SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_0_U32 \
558    (SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_0_VALUE << SI32_PBCFG_A_XBAR0_EPCA0EN_SHIFT)
559 // Enable EPCA0 CEX0 and CEX1 on Crossbar 0.
560 #define SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_1_VALUE  2
561 #define SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_1_U32 \
562    (SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_1_VALUE << SI32_PBCFG_A_XBAR0_EPCA0EN_SHIFT)
563 // Enable EPCA0 CEX0, CEX1, and CEX2 on Crossbar 0.
564 #define SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_2_VALUE  3
565 #define SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_2_U32 \
566    (SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_2_VALUE << SI32_PBCFG_A_XBAR0_EPCA0EN_SHIFT)
567 // Enable EPCA0 CEX0, CEX1, CEX2, and CEX3 on Crossbar 0.
568 #define SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_3_VALUE  4
569 #define SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_3_U32 \
570    (SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_3_VALUE << SI32_PBCFG_A_XBAR0_EPCA0EN_SHIFT)
571 // Enable EPCA0 CEX0, CEX1, CEX2, CEX3, and CEX4 on Crossbar 0.
572 #define SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_4_VALUE  5
573 #define SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_4_U32 \
574    (SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_4_VALUE << SI32_PBCFG_A_XBAR0_EPCA0EN_SHIFT)
575 // Enable EPCA0 CEX0, CEX1, CEX2, CEX3, CEX4, and CEX5 on Crossbar 0.
576 #define SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_5_VALUE  6
577 #define SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_5_U32 \
578    (SI32_PBCFG_A_XBAR0_EPCA0EN_CEX0_5_VALUE << SI32_PBCFG_A_XBAR0_EPCA0EN_SHIFT)
579 
580 #define SI32_PBCFG_A_XBAR0_EECI0EN_MASK  0x00000800
581 #define SI32_PBCFG_A_XBAR0_EECI0EN_SHIFT  11
582 // Disable EPCA0 ECI on Crossbar 0.
583 #define SI32_PBCFG_A_XBAR0_EECI0EN_DISABLED_VALUE  0
584 #define SI32_PBCFG_A_XBAR0_EECI0EN_DISABLED_U32 \
585    (SI32_PBCFG_A_XBAR0_EECI0EN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_EECI0EN_SHIFT)
586 // Enable EPCA0 ECI on Crossbar 0.
587 #define SI32_PBCFG_A_XBAR0_EECI0EN_ENABLED_VALUE  1
588 #define SI32_PBCFG_A_XBAR0_EECI0EN_ENABLED_U32 \
589    (SI32_PBCFG_A_XBAR0_EECI0EN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_EECI0EN_SHIFT)
590 
591 #define SI32_PBCFG_A_XBAR0_I2C0EN_MASK  0x00001000
592 #define SI32_PBCFG_A_XBAR0_I2C0EN_SHIFT  12
593 // Disable I2C0 SDA and SCL on Crossbar 0.
594 #define SI32_PBCFG_A_XBAR0_I2C0EN_DISABLED_VALUE  0
595 #define SI32_PBCFG_A_XBAR0_I2C0EN_DISABLED_U32 \
596    (SI32_PBCFG_A_XBAR0_I2C0EN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_I2C0EN_SHIFT)
597 // Enable I2C0 SDA and SCL on Crossbar 0.
598 #define SI32_PBCFG_A_XBAR0_I2C0EN_ENABLED_VALUE  1
599 #define SI32_PBCFG_A_XBAR0_I2C0EN_ENABLED_U32 \
600    (SI32_PBCFG_A_XBAR0_I2C0EN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_I2C0EN_SHIFT)
601 
602 #define SI32_PBCFG_A_XBAR0_CMP0SEN_MASK  0x00002000
603 #define SI32_PBCFG_A_XBAR0_CMP0SEN_SHIFT  13
604 // Disable Comparator 0 Synchronous Output (CMP0S) on Crossbar 0.
605 #define SI32_PBCFG_A_XBAR0_CMP0SEN_DISABLED_VALUE  0
606 #define SI32_PBCFG_A_XBAR0_CMP0SEN_DISABLED_U32 \
607    (SI32_PBCFG_A_XBAR0_CMP0SEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_CMP0SEN_SHIFT)
608 // Enable Comparator 0 Synchronous Output (CMP0S) on Crossbar 0.
609 #define SI32_PBCFG_A_XBAR0_CMP0SEN_ENABLED_VALUE  1
610 #define SI32_PBCFG_A_XBAR0_CMP0SEN_ENABLED_U32 \
611    (SI32_PBCFG_A_XBAR0_CMP0SEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_CMP0SEN_SHIFT)
612 
613 #define SI32_PBCFG_A_XBAR0_CMP0AEN_MASK  0x00004000
614 #define SI32_PBCFG_A_XBAR0_CMP0AEN_SHIFT  14
615 // Disable Comparator 0 Asynchronous Output (CMP0A) on Crossbar 0.
616 #define SI32_PBCFG_A_XBAR0_CMP0AEN_DISABLED_VALUE  0
617 #define SI32_PBCFG_A_XBAR0_CMP0AEN_DISABLED_U32 \
618    (SI32_PBCFG_A_XBAR0_CMP0AEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_CMP0AEN_SHIFT)
619 // Enable Comparator 0 Asynchronous Output (CMP0A) on Crossbar 0.
620 #define SI32_PBCFG_A_XBAR0_CMP0AEN_ENABLED_VALUE  1
621 #define SI32_PBCFG_A_XBAR0_CMP0AEN_ENABLED_U32 \
622    (SI32_PBCFG_A_XBAR0_CMP0AEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_CMP0AEN_SHIFT)
623 
624 #define SI32_PBCFG_A_XBAR0_CMP1SEN_MASK  0x00008000
625 #define SI32_PBCFG_A_XBAR0_CMP1SEN_SHIFT  15
626 // Disable Comparator 1 Synchronous Output (CMP1S) on Crossbar 0.
627 #define SI32_PBCFG_A_XBAR0_CMP1SEN_DISABLED_VALUE  0
628 #define SI32_PBCFG_A_XBAR0_CMP1SEN_DISABLED_U32 \
629    (SI32_PBCFG_A_XBAR0_CMP1SEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_CMP1SEN_SHIFT)
630 // Enable Comparator 1 Synchronous Output (CMP1S) on Crossbar 0.
631 #define SI32_PBCFG_A_XBAR0_CMP1SEN_ENABLED_VALUE  1
632 #define SI32_PBCFG_A_XBAR0_CMP1SEN_ENABLED_U32 \
633    (SI32_PBCFG_A_XBAR0_CMP1SEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_CMP1SEN_SHIFT)
634 
635 #define SI32_PBCFG_A_XBAR0_CMP1AEN_MASK  0x00010000
636 #define SI32_PBCFG_A_XBAR0_CMP1AEN_SHIFT  16
637 // Disable Comparator 1 Asynchronous Output (CMP1A) on Crossbar 0.
638 #define SI32_PBCFG_A_XBAR0_CMP1AEN_DISABLED_VALUE  0
639 #define SI32_PBCFG_A_XBAR0_CMP1AEN_DISABLED_U32 \
640    (SI32_PBCFG_A_XBAR0_CMP1AEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_CMP1AEN_SHIFT)
641 // Enable Comparator 1 Asynchronous Output (CMP1A) on Crossbar 0.
642 #define SI32_PBCFG_A_XBAR0_CMP1AEN_ENABLED_VALUE  1
643 #define SI32_PBCFG_A_XBAR0_CMP1AEN_ENABLED_U32 \
644    (SI32_PBCFG_A_XBAR0_CMP1AEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_CMP1AEN_SHIFT)
645 
646 #define SI32_PBCFG_A_XBAR0_TMR0CTEN_MASK  0x00020000
647 #define SI32_PBCFG_A_XBAR0_TMR0CTEN_SHIFT  17
648 // Disable TIMER0 CT on Crossbar 0.
649 #define SI32_PBCFG_A_XBAR0_TMR0CTEN_DISABLED_VALUE  0
650 #define SI32_PBCFG_A_XBAR0_TMR0CTEN_DISABLED_U32 \
651    (SI32_PBCFG_A_XBAR0_TMR0CTEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_TMR0CTEN_SHIFT)
652 // Enable TIMER0 CT on Crossbar 0.
653 #define SI32_PBCFG_A_XBAR0_TMR0CTEN_ENABLED_VALUE  1
654 #define SI32_PBCFG_A_XBAR0_TMR0CTEN_ENABLED_U32 \
655    (SI32_PBCFG_A_XBAR0_TMR0CTEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_TMR0CTEN_SHIFT)
656 
657 #define SI32_PBCFG_A_XBAR0_TMR0EXEN_MASK  0x00040000
658 #define SI32_PBCFG_A_XBAR0_TMR0EXEN_SHIFT  18
659 // Disable TIMER0 EX on Crossbar 0.
660 #define SI32_PBCFG_A_XBAR0_TMR0EXEN_DISABLED_VALUE  0
661 #define SI32_PBCFG_A_XBAR0_TMR0EXEN_DISABLED_U32 \
662    (SI32_PBCFG_A_XBAR0_TMR0EXEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_TMR0EXEN_SHIFT)
663 // Enable TIMER0 EX on Crossbar 0.
664 #define SI32_PBCFG_A_XBAR0_TMR0EXEN_ENABLED_VALUE  1
665 #define SI32_PBCFG_A_XBAR0_TMR0EXEN_ENABLED_U32 \
666    (SI32_PBCFG_A_XBAR0_TMR0EXEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_TMR0EXEN_SHIFT)
667 
668 #define SI32_PBCFG_A_XBAR0_TMR1CTEN_MASK  0x00080000
669 #define SI32_PBCFG_A_XBAR0_TMR1CTEN_SHIFT  19
670 // Disable TIMER1 CT on Crossbar 0.
671 #define SI32_PBCFG_A_XBAR0_TMR1CTEN_DISABLED_VALUE  0
672 #define SI32_PBCFG_A_XBAR0_TMR1CTEN_DISABLED_U32 \
673    (SI32_PBCFG_A_XBAR0_TMR1CTEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_TMR1CTEN_SHIFT)
674 // Enable TIMER1 CT on Crossbar 0.
675 #define SI32_PBCFG_A_XBAR0_TMR1CTEN_ENABLED_VALUE  1
676 #define SI32_PBCFG_A_XBAR0_TMR1CTEN_ENABLED_U32 \
677    (SI32_PBCFG_A_XBAR0_TMR1CTEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_TMR1CTEN_SHIFT)
678 
679 #define SI32_PBCFG_A_XBAR0_TMR1EXEN_MASK  0x00100000
680 #define SI32_PBCFG_A_XBAR0_TMR1EXEN_SHIFT  20
681 // Disable TIMER1 EX on Crossbar 0.
682 #define SI32_PBCFG_A_XBAR0_TMR1EXEN_DISABLED_VALUE  0
683 #define SI32_PBCFG_A_XBAR0_TMR1EXEN_DISABLED_U32 \
684    (SI32_PBCFG_A_XBAR0_TMR1EXEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_TMR1EXEN_SHIFT)
685 // Enable TIMER1 EX on Crossbar 0.
686 #define SI32_PBCFG_A_XBAR0_TMR1EXEN_ENABLED_VALUE  1
687 #define SI32_PBCFG_A_XBAR0_TMR1EXEN_ENABLED_U32 \
688    (SI32_PBCFG_A_XBAR0_TMR1EXEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_TMR1EXEN_SHIFT)
689 
690 #define SI32_PBCFG_A_XBAR0_SARADC0TEN_MASK  0x00200000
691 #define SI32_PBCFG_A_XBAR0_SARADC0TEN_SHIFT  21
692 // Disable SARADC0 conversion start trigger on Crossbar 0.
693 #define SI32_PBCFG_A_XBAR0_SARADC0TEN_DISABLED_VALUE  0
694 #define SI32_PBCFG_A_XBAR0_SARADC0TEN_DISABLED_U32 \
695    (SI32_PBCFG_A_XBAR0_SARADC0TEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_SARADC0TEN_SHIFT)
696 // Enable SARADC0 conversion start trigger on Crossbar 0.
697 #define SI32_PBCFG_A_XBAR0_SARADC0TEN_ENABLED_VALUE  1
698 #define SI32_PBCFG_A_XBAR0_SARADC0TEN_ENABLED_U32 \
699    (SI32_PBCFG_A_XBAR0_SARADC0TEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_SARADC0TEN_SHIFT)
700 
701 #define SI32_PBCFG_A_XBAR0_AHBEN_MASK  0x00400000
702 #define SI32_PBCFG_A_XBAR0_AHBEN_SHIFT  22
703 // Disable the AHB Clock / 16 output on Crossbar 0.
704 #define SI32_PBCFG_A_XBAR0_AHBEN_DISABLED_VALUE  0
705 #define SI32_PBCFG_A_XBAR0_AHBEN_DISABLED_U32 \
706    (SI32_PBCFG_A_XBAR0_AHBEN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_AHBEN_SHIFT)
707 // Enable the AHB Clock / 16 output on Crossbar 0.
708 #define SI32_PBCFG_A_XBAR0_AHBEN_ENABLED_VALUE  1
709 #define SI32_PBCFG_A_XBAR0_AHBEN_ENABLED_U32 \
710    (SI32_PBCFG_A_XBAR0_AHBEN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_AHBEN_SHIFT)
711 
712 #define SI32_PBCFG_A_XBAR0_XBAR0EN_MASK  0x80000000
713 #define SI32_PBCFG_A_XBAR0_XBAR0EN_SHIFT  31
714 // Disable Crossbar 0.
715 #define SI32_PBCFG_A_XBAR0_XBAR0EN_DISABLED_VALUE  0U
716 #define SI32_PBCFG_A_XBAR0_XBAR0EN_DISABLED_U32 \
717    (SI32_PBCFG_A_XBAR0_XBAR0EN_DISABLED_VALUE << SI32_PBCFG_A_XBAR0_XBAR0EN_SHIFT)
718 // Enable Crossbar 0.
719 #define SI32_PBCFG_A_XBAR0_XBAR0EN_ENABLED_VALUE  1U
720 #define SI32_PBCFG_A_XBAR0_XBAR0EN_ENABLED_U32 \
721    (SI32_PBCFG_A_XBAR0_XBAR0EN_ENABLED_VALUE << SI32_PBCFG_A_XBAR0_XBAR0EN_SHIFT)
722 
723 
724 
725 struct SI32_PBCFG_A_PBKEY_Struct
726 {
727    union
728    {
729       struct
730       {
731          // Port Bank Key
732          volatile uint8_t KEY;
733                   uint32_t reserved0: 24;
734       };
735       volatile uint32_t U32;
736    };
737 };
738 
739 #define SI32_PBCFG_A_PBKEY_KEY_MASK  0x000000FF
740 #define SI32_PBCFG_A_PBKEY_KEY_SHIFT  0
741 // Port Bank registers are locked and no valid values have been written to PBKEY.
742 #define SI32_PBCFG_A_PBKEY_KEY_LOCKED_VALUE  0
743 #define SI32_PBCFG_A_PBKEY_KEY_LOCKED_U32 \
744    (SI32_PBCFG_A_PBKEY_KEY_LOCKED_VALUE << SI32_PBCFG_A_PBKEY_KEY_SHIFT)
745 // Port Bank registers are locked and the first valid value (0xA5) has been written
746 // to PBKEY.
747 #define SI32_PBCFG_A_PBKEY_KEY_INTERMEDIATE_VALUE  1
748 #define SI32_PBCFG_A_PBKEY_KEY_INTERMEDIATE_U32 \
749    (SI32_PBCFG_A_PBKEY_KEY_INTERMEDIATE_VALUE << SI32_PBCFG_A_PBKEY_KEY_SHIFT)
750 // Port Bank registers are unlocked. Any subsequent writes to the Port Bank
751 // registers or PBKEY will lock the interface.
752 #define SI32_PBCFG_A_PBKEY_KEY_UNLOCKED_VALUE  2
753 #define SI32_PBCFG_A_PBKEY_KEY_UNLOCKED_U32 \
754    (SI32_PBCFG_A_PBKEY_KEY_UNLOCKED_VALUE << SI32_PBCFG_A_PBKEY_KEY_SHIFT)
755 
756 
757 
758 typedef struct SI32_PBCFG_A_Struct
759 {
760    struct SI32_PBCFG_A_CONTROL0_Struct             CONTROL0       ; // Base Address + 0x0
761    volatile uint32_t                               CONTROL0_SET;
762    volatile uint32_t                               CONTROL0_CLR;
763    uint32_t                                        reserved0;
764    struct SI32_PBCFG_A_CONTROL1_Struct             CONTROL1       ; // Base Address + 0x10
765    volatile uint32_t                               CONTROL1_SET;
766    volatile uint32_t                               CONTROL1_CLR;
767    uint32_t                                        reserved1;
768    struct SI32_PBCFG_A_XBAR0_Struct                XBAR0          ; // Base Address + 0x20
769    volatile uint32_t                               XBAR0_SET;
770    volatile uint32_t                               XBAR0_CLR;
771    uint32_t                                        reserved2;
772    struct SI32_PBCFG_A_PBKEY_Struct                PBKEY          ; // Base Address + 0x30
773    uint32_t                                        reserved3;
774    uint32_t                                        reserved4;
775    uint32_t                                        reserved5;
776 } SI32_PBCFG_A_Type;
777 
778 #ifdef __cplusplus
779 }
780 #endif
781 
782 #endif // __SI32_PBCFG_A_REGISTERS_H__
783 
784 //-eof--------------------------------------------------------------------------
785 
786