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 SIM3C1XX_PBHD_A module
24 //
25 // Script: 0.57
26 // Version: 1
27 
28 #ifndef __SI32_PBHD_A_REGISTERS_H__
29 #define __SI32_PBHD_A_REGISTERS_H__
30 
31 #include <stdint.h>
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
37 struct SI32_PBHD_A_PB_Struct
38 {
39    union
40    {
41       struct
42       {
43          // Output Latch
44          volatile uint32_t PB_BITS: 6;
45                   uint32_t reserved0: 26;
46       };
47       volatile uint32_t U32;
48    };
49 };
50 
51 #define SI32_PBHD_A_PB_PB_MASK  0x0000003F
52 #define SI32_PBHD_A_PB_PB_SHIFT  0
53 
54 
55 
56 struct SI32_PBHD_A_PBPIN_Struct
57 {
58    union
59    {
60       struct
61       {
62          // Pin Value
63          volatile uint32_t PBPIN_BITS: 6;
64                   uint32_t reserved0: 26;
65       };
66       volatile uint32_t U32;
67    };
68 };
69 
70 #define SI32_PBHD_A_PBPIN_PBPIN_MASK  0x0000003F
71 #define SI32_PBHD_A_PBPIN_PBPIN_SHIFT  0
72 
73 
74 
75 struct SI32_PBHD_A_PBMDSEL_Struct
76 {
77    union
78    {
79       struct
80       {
81          // Mode Select
82          volatile uint32_t PBMDSEL_BITS: 6;
83                   uint32_t reserved0: 26;
84       };
85       volatile uint32_t U32;
86    };
87 };
88 
89 #define SI32_PBHD_A_PBMDSEL_PBMDSEL_MASK  0x0000003F
90 #define SI32_PBHD_A_PBMDSEL_PBMDSEL_SHIFT  0
91 
92 
93 
94 struct SI32_PBHD_A_PBDEN_Struct
95 {
96    union
97    {
98       struct
99       {
100          // Port Bank N-Channel Driver Enable
101          volatile uint32_t PBNDEN: 6;
102                   uint32_t reserved0: 10;
103          // Port Bank P-Channel Driver Enable
104          volatile uint32_t PBPDEN: 6;
105                   uint32_t reserved1: 10;
106       };
107       volatile uint32_t U32;
108    };
109 };
110 
111 #define SI32_PBHD_A_PBDEN_PBNDEN_MASK  0x0000003F
112 #define SI32_PBHD_A_PBDEN_PBNDEN_SHIFT  0
113 
114 #define SI32_PBHD_A_PBDEN_PBPDEN_MASK  0x003F0000
115 #define SI32_PBHD_A_PBDEN_PBPDEN_SHIFT  16
116 
117 
118 
119 struct SI32_PBHD_A_PBDRV_Struct
120 {
121    union
122    {
123       struct
124       {
125          // Drive Strength
126          volatile uint32_t PBDRV_BITS: 6;
127                   uint32_t reserved0: 10;
128          // Port Bank Weak Pull-up Enable
129          volatile uint32_t PBPUEN: 1;
130          // Port Low Voltage Mode
131          volatile uint32_t PBLVMD: 1;
132          // Port Slew Control
133          volatile uint32_t PBSLEW: 2;
134                   uint32_t reserved1: 1;
135          // Port Bias Enable
136          volatile uint32_t PBBIASEN: 1;
137          // Port Drive Enable
138          volatile uint32_t PBDRVEN: 1;
139          // Port Voltage Supply Tracking Enable
140          volatile uint32_t PBVTRKEN: 1;
141                   uint32_t reserved2: 8;
142       };
143       volatile uint32_t U32;
144    };
145 };
146 
147 #define SI32_PBHD_A_PBDRV_PBDRV_MASK  0x0000003F
148 #define SI32_PBHD_A_PBDRV_PBDRV_SHIFT  0
149 
150 #define SI32_PBHD_A_PBDRV_PBPUEN_MASK  0x00010000
151 #define SI32_PBHD_A_PBDRV_PBPUEN_SHIFT  16
152 // Disable weak pull-ups for this port.
153 #define SI32_PBHD_A_PBDRV_PBPUEN_DISABLED_VALUE  0
154 #define SI32_PBHD_A_PBDRV_PBPUEN_DISABLED_U32 \
155    (SI32_PBHD_A_PBDRV_PBPUEN_DISABLED_VALUE << SI32_PBHD_A_PBDRV_PBPUEN_SHIFT)
156 // Enable weak pull-ups for this port.
157 #define SI32_PBHD_A_PBDRV_PBPUEN_ENABLED_VALUE  1
158 #define SI32_PBHD_A_PBDRV_PBPUEN_ENABLED_U32 \
159    (SI32_PBHD_A_PBDRV_PBPUEN_ENABLED_VALUE << SI32_PBHD_A_PBDRV_PBPUEN_SHIFT)
160 
161 #define SI32_PBHD_A_PBDRV_PBLVMD_MASK  0x00020000
162 #define SI32_PBHD_A_PBDRV_PBLVMD_SHIFT  17
163 // Port configured for normal mode.
164 #define SI32_PBHD_A_PBDRV_PBLVMD_NORMAL_VALUE  0
165 #define SI32_PBHD_A_PBDRV_PBLVMD_NORMAL_U32 \
166    (SI32_PBHD_A_PBDRV_PBLVMD_NORMAL_VALUE << SI32_PBHD_A_PBDRV_PBLVMD_SHIFT)
167 // Port configured for low power mode.
168 #define SI32_PBHD_A_PBDRV_PBLVMD_LOW_VALUE  1
169 #define SI32_PBHD_A_PBDRV_PBLVMD_LOW_U32 \
170    (SI32_PBHD_A_PBDRV_PBLVMD_LOW_VALUE << SI32_PBHD_A_PBDRV_PBLVMD_SHIFT)
171 
172 #define SI32_PBHD_A_PBDRV_PBSLEW_MASK  0x000C0000
173 #define SI32_PBHD_A_PBDRV_PBSLEW_SHIFT  18
174 // Select the fastest transition speed for this port bank.
175 #define SI32_PBHD_A_PBDRV_PBSLEW_FASTEST_VALUE  0
176 #define SI32_PBHD_A_PBDRV_PBSLEW_FASTEST_U32 \
177    (SI32_PBHD_A_PBDRV_PBSLEW_FASTEST_VALUE << SI32_PBHD_A_PBDRV_PBSLEW_SHIFT)
178 // Select the faster transition speed for this port bank.
179 #define SI32_PBHD_A_PBDRV_PBSLEW_FASTER_VALUE  1
180 #define SI32_PBHD_A_PBDRV_PBSLEW_FASTER_U32 \
181    (SI32_PBHD_A_PBDRV_PBSLEW_FASTER_VALUE << SI32_PBHD_A_PBDRV_PBSLEW_SHIFT)
182 // Select the slower transition speed for this port bank.
183 #define SI32_PBHD_A_PBDRV_PBSLEW_SLOWER_VALUE  2
184 #define SI32_PBHD_A_PBDRV_PBSLEW_SLOWER_U32 \
185    (SI32_PBHD_A_PBDRV_PBSLEW_SLOWER_VALUE << SI32_PBHD_A_PBDRV_PBSLEW_SHIFT)
186 // Select the slowest transition speed for this port bank.
187 #define SI32_PBHD_A_PBDRV_PBSLEW_SLOWEST_VALUE  3
188 #define SI32_PBHD_A_PBDRV_PBSLEW_SLOWEST_U32 \
189    (SI32_PBHD_A_PBDRV_PBSLEW_SLOWEST_VALUE << SI32_PBHD_A_PBDRV_PBSLEW_SHIFT)
190 
191 #define SI32_PBHD_A_PBDRV_PBBIASEN_MASK  0x00200000
192 #define SI32_PBHD_A_PBDRV_PBBIASEN_SHIFT  21
193 // Disable the biasing to the port pins.
194 #define SI32_PBHD_A_PBDRV_PBBIASEN_DISABLED_VALUE  0
195 #define SI32_PBHD_A_PBDRV_PBBIASEN_DISABLED_U32 \
196    (SI32_PBHD_A_PBDRV_PBBIASEN_DISABLED_VALUE << SI32_PBHD_A_PBDRV_PBBIASEN_SHIFT)
197 // Enable the biasing to the port pins.
198 #define SI32_PBHD_A_PBDRV_PBBIASEN_ENABLED_VALUE  1
199 #define SI32_PBHD_A_PBDRV_PBBIASEN_ENABLED_U32 \
200    (SI32_PBHD_A_PBDRV_PBBIASEN_ENABLED_VALUE << SI32_PBHD_A_PBDRV_PBBIASEN_SHIFT)
201 
202 #define SI32_PBHD_A_PBDRV_PBDRVEN_MASK  0x00400000
203 #define SI32_PBHD_A_PBDRV_PBDRVEN_SHIFT  22
204 // Disable the port drivers.
205 #define SI32_PBHD_A_PBDRV_PBDRVEN_DISABLED_VALUE  0
206 #define SI32_PBHD_A_PBDRV_PBDRVEN_DISABLED_U32 \
207    (SI32_PBHD_A_PBDRV_PBDRVEN_DISABLED_VALUE << SI32_PBHD_A_PBDRV_PBDRVEN_SHIFT)
208 // Enable the port drivers.
209 #define SI32_PBHD_A_PBDRV_PBDRVEN_ENABLED_VALUE  1
210 #define SI32_PBHD_A_PBDRV_PBDRVEN_ENABLED_U32 \
211    (SI32_PBHD_A_PBDRV_PBDRVEN_ENABLED_VALUE << SI32_PBHD_A_PBDRV_PBDRVEN_SHIFT)
212 
213 #define SI32_PBHD_A_PBDRV_PBVTRKEN_MASK  0x00800000
214 #define SI32_PBHD_A_PBDRV_PBVTRKEN_SHIFT  23
215 // Disable VIOHD tracking.
216 #define SI32_PBHD_A_PBDRV_PBVTRKEN_DISABLED_VALUE  0
217 #define SI32_PBHD_A_PBDRV_PBVTRKEN_DISABLED_U32 \
218    (SI32_PBHD_A_PBDRV_PBVTRKEN_DISABLED_VALUE << SI32_PBHD_A_PBDRV_PBVTRKEN_SHIFT)
219 // Enable VIOHD tracking.
220 #define SI32_PBHD_A_PBDRV_PBVTRKEN_ENABLED_VALUE  1
221 #define SI32_PBHD_A_PBDRV_PBVTRKEN_ENABLED_U32 \
222    (SI32_PBHD_A_PBDRV_PBVTRKEN_ENABLED_VALUE << SI32_PBHD_A_PBDRV_PBVTRKEN_SHIFT)
223 
224 
225 
226 struct SI32_PBHD_A_PBILIMIT_Struct
227 {
228    union
229    {
230       struct
231       {
232          // Current Limit Enable
233          volatile uint32_t PBILEN: 6;
234                   uint32_t reserved0: 10;
235          // N-Channel Current Limit
236          volatile uint32_t NILIMIT: 4;
237          // P-Channel Current Limit
238          volatile uint32_t PILIMIT: 4;
239                   uint32_t reserved1: 8;
240       };
241       volatile uint32_t U32;
242    };
243 };
244 
245 #define SI32_PBHD_A_PBILIMIT_PBILEN_MASK  0x0000003F
246 #define SI32_PBHD_A_PBILIMIT_PBILEN_SHIFT  0
247 
248 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MASK  0x000F0000
249 #define SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT  16
250 // Set sink limit to mode 0.
251 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE0_VALUE  0
252 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE0_U32 \
253    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE0_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
254 // Set sink limit to mode 1.
255 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE1_VALUE  1
256 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE1_U32 \
257    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE1_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
258 // Set sink limit to mode 2.
259 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE2_VALUE  2
260 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE2_U32 \
261    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE2_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
262 // Set sink limit to mode 3.
263 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE3_VALUE  3
264 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE3_U32 \
265    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE3_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
266 // Set sink limit to mode 4.
267 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE4_VALUE  4
268 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE4_U32 \
269    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE4_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
270 // Set sink limit to mode 5.
271 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE5_VALUE  5
272 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE5_U32 \
273    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE5_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
274 // Set sink limit to mode 6.
275 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE6_VALUE  6
276 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE6_U32 \
277    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE6_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
278 // Set sink limit to mode 7.
279 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE7_VALUE  7
280 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE7_U32 \
281    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE7_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
282 // Set sink limit to mode 8.
283 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE8_VALUE  8
284 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE8_U32 \
285    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE8_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
286 // Set sink limit to mode 9.
287 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE9_VALUE  9
288 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE9_U32 \
289    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE9_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
290 // Set sink limit to mode 10.
291 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE10_VALUE  10
292 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE10_U32 \
293    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE10_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
294 // Set sink limit to mode 11.
295 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE11_VALUE  11
296 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE11_U32 \
297    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE11_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
298 // Set sink limit to mode 12.
299 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE12_VALUE  12
300 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE12_U32 \
301    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE12_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
302 // Set sink limit to mode 13.
303 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE13_VALUE  13
304 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE13_U32 \
305    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE13_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
306 // Set sink limit to mode 14.
307 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE14_VALUE  14
308 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE14_U32 \
309    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE14_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
310 // Set sink limit to mode 15.
311 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE15_VALUE  15
312 #define SI32_PBHD_A_PBILIMIT_NILIMIT_MODE15_U32 \
313    (SI32_PBHD_A_PBILIMIT_NILIMIT_MODE15_VALUE << SI32_PBHD_A_PBILIMIT_NILIMIT_SHIFT)
314 
315 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MASK  0x00F00000
316 #define SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT  20
317 // Set source limit to mode 0.
318 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE0_VALUE  0
319 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE0_U32 \
320    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE0_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
321 // Set source limit to mode 1.
322 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE1_VALUE  1
323 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE1_U32 \
324    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE1_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
325 // Set source limit to mode 2.
326 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE2_VALUE  2
327 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE2_U32 \
328    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE2_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
329 // Set source limit to mode 3.
330 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE3_VALUE  3
331 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE3_U32 \
332    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE3_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
333 // Set source limit to mode 4.
334 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE4_VALUE  4
335 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE4_U32 \
336    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE4_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
337 // Set source limit to mode 5.
338 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE5_VALUE  5
339 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE5_U32 \
340    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE5_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
341 // Set source limit to mode 6.
342 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE6_VALUE  6
343 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE6_U32 \
344    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE6_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
345 // Set source limit to mode 7.
346 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE7_VALUE  7
347 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE7_U32 \
348    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE7_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
349 // Set source limit to mode 8.
350 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE8_VALUE  8
351 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE8_U32 \
352    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE8_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
353 // Set source limit to mode 9.
354 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE9_VALUE  9
355 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE9_U32 \
356    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE9_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
357 // Set source limit to mode 10.
358 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE10_VALUE  10
359 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE10_U32 \
360    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE10_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
361 // Set source limit to mode 11.
362 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE11_VALUE  11
363 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE11_U32 \
364    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE11_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
365 // Set source limit to mode 12.
366 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE12_VALUE  12
367 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE12_U32 \
368    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE12_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
369 // Set source limit to mode 13.
370 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE13_VALUE  13
371 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE13_U32 \
372    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE13_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
373 // Set source limit to mode 14.
374 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE14_VALUE  14
375 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE14_U32 \
376    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE14_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
377 // Set source limit to mode 15.
378 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE15_VALUE  15
379 #define SI32_PBHD_A_PBILIMIT_PILIMIT_MODE15_U32 \
380    (SI32_PBHD_A_PBILIMIT_PILIMIT_MODE15_VALUE << SI32_PBHD_A_PBILIMIT_PILIMIT_SHIFT)
381 
382 
383 
384 struct SI32_PBHD_A_PBFSEL_Struct
385 {
386    union
387    {
388       struct
389       {
390          // Port Bank n.0 Function Select
391          volatile uint32_t PB0SEL: 2;
392          // Port Bank n.1 Function Select
393          volatile uint32_t PB1SEL: 2;
394          // Port Bank n.2 Function Select
395          volatile uint32_t PB2SEL: 2;
396          // Port Bank n.3 Function Select
397          volatile uint32_t PB3SEL: 2;
398          // Port Bank n.4 Function Select
399          volatile uint32_t PB4SEL: 2;
400          // Port Bank n.5 Function Select
401          volatile uint32_t PB5SEL: 3;
402                   uint32_t reserved0: 19;
403       };
404       volatile uint32_t U32;
405    };
406 };
407 
408 #define SI32_PBHD_A_PBFSEL_PB0SEL_MASK  0x00000003
409 #define SI32_PBHD_A_PBFSEL_PB0SEL_SHIFT  0
410 // Pin configured for GPIO.
411 #define SI32_PBHD_A_PBFSEL_PB0SEL_GPIO_VALUE  0
412 #define SI32_PBHD_A_PBFSEL_PB0SEL_GPIO_U32 \
413    (SI32_PBHD_A_PBFSEL_PB0SEL_GPIO_VALUE << SI32_PBHD_A_PBFSEL_PB0SEL_SHIFT)
414 // Pin configured for Port Mapped Level Shift.
415 #define SI32_PBHD_A_PBFSEL_PB0SEL_PMLS_VALUE  1
416 #define SI32_PBHD_A_PBFSEL_PB0SEL_PMLS_U32 \
417    (SI32_PBHD_A_PBFSEL_PB0SEL_PMLS_VALUE << SI32_PBHD_A_PBFSEL_PB0SEL_SHIFT)
418 // Pin configured for EPCA0 output.
419 #define SI32_PBHD_A_PBFSEL_PB0SEL_EPCA0_VALUE  2
420 #define SI32_PBHD_A_PBFSEL_PB0SEL_EPCA0_U32 \
421    (SI32_PBHD_A_PBFSEL_PB0SEL_EPCA0_VALUE << SI32_PBHD_A_PBFSEL_PB0SEL_SHIFT)
422 
423 #define SI32_PBHD_A_PBFSEL_PB1SEL_MASK  0x0000000C
424 #define SI32_PBHD_A_PBFSEL_PB1SEL_SHIFT  2
425 // Pin configured for GPIO.
426 #define SI32_PBHD_A_PBFSEL_PB1SEL_GPIO_VALUE  0
427 #define SI32_PBHD_A_PBFSEL_PB1SEL_GPIO_U32 \
428    (SI32_PBHD_A_PBFSEL_PB1SEL_GPIO_VALUE << SI32_PBHD_A_PBFSEL_PB1SEL_SHIFT)
429 // Pin configured for Port Mapped Level Shift.
430 #define SI32_PBHD_A_PBFSEL_PB1SEL_PMLS_VALUE  1
431 #define SI32_PBHD_A_PBFSEL_PB1SEL_PMLS_U32 \
432    (SI32_PBHD_A_PBFSEL_PB1SEL_PMLS_VALUE << SI32_PBHD_A_PBFSEL_PB1SEL_SHIFT)
433 // Pin configured for EPCA0 output.
434 #define SI32_PBHD_A_PBFSEL_PB1SEL_EPCA0_VALUE  2
435 #define SI32_PBHD_A_PBFSEL_PB1SEL_EPCA0_U32 \
436    (SI32_PBHD_A_PBFSEL_PB1SEL_EPCA0_VALUE << SI32_PBHD_A_PBFSEL_PB1SEL_SHIFT)
437 
438 #define SI32_PBHD_A_PBFSEL_PB2SEL_MASK  0x00000030
439 #define SI32_PBHD_A_PBFSEL_PB2SEL_SHIFT  4
440 // Pin configured for GPIO.
441 #define SI32_PBHD_A_PBFSEL_PB2SEL_GPIO_VALUE  0
442 #define SI32_PBHD_A_PBFSEL_PB2SEL_GPIO_U32 \
443    (SI32_PBHD_A_PBFSEL_PB2SEL_GPIO_VALUE << SI32_PBHD_A_PBFSEL_PB2SEL_SHIFT)
444 // Pin configured for Port Mapped Level Shift.
445 #define SI32_PBHD_A_PBFSEL_PB2SEL_PMLS_VALUE  1
446 #define SI32_PBHD_A_PBFSEL_PB2SEL_PMLS_U32 \
447    (SI32_PBHD_A_PBFSEL_PB2SEL_PMLS_VALUE << SI32_PBHD_A_PBFSEL_PB2SEL_SHIFT)
448 // Pin configured for EPCA0 output.
449 #define SI32_PBHD_A_PBFSEL_PB2SEL_EPCA0_VALUE  2
450 #define SI32_PBHD_A_PBFSEL_PB2SEL_EPCA0_U32 \
451    (SI32_PBHD_A_PBFSEL_PB2SEL_EPCA0_VALUE << SI32_PBHD_A_PBFSEL_PB2SEL_SHIFT)
452 // Pin configured for UART1 TX.
453 #define SI32_PBHD_A_PBFSEL_PB2SEL_UART1_VALUE  3
454 #define SI32_PBHD_A_PBFSEL_PB2SEL_UART1_U32 \
455    (SI32_PBHD_A_PBFSEL_PB2SEL_UART1_VALUE << SI32_PBHD_A_PBFSEL_PB2SEL_SHIFT)
456 
457 #define SI32_PBHD_A_PBFSEL_PB3SEL_MASK  0x000000C0
458 #define SI32_PBHD_A_PBFSEL_PB3SEL_SHIFT  6
459 // Pin configured for GPIO.
460 #define SI32_PBHD_A_PBFSEL_PB3SEL_GPIO_VALUE  0
461 #define SI32_PBHD_A_PBFSEL_PB3SEL_GPIO_U32 \
462    (SI32_PBHD_A_PBFSEL_PB3SEL_GPIO_VALUE << SI32_PBHD_A_PBFSEL_PB3SEL_SHIFT)
463 // Pin configured for Port Mapped Level Shift.
464 #define SI32_PBHD_A_PBFSEL_PB3SEL_PMLS_VALUE  1
465 #define SI32_PBHD_A_PBFSEL_PB3SEL_PMLS_U32 \
466    (SI32_PBHD_A_PBFSEL_PB3SEL_PMLS_VALUE << SI32_PBHD_A_PBFSEL_PB3SEL_SHIFT)
467 // Pin configured for EPCA0 output.
468 #define SI32_PBHD_A_PBFSEL_PB3SEL_EPCA0_VALUE  2
469 #define SI32_PBHD_A_PBFSEL_PB3SEL_EPCA0_U32 \
470    (SI32_PBHD_A_PBFSEL_PB3SEL_EPCA0_VALUE << SI32_PBHD_A_PBFSEL_PB3SEL_SHIFT)
471 // Pin configured for UART1 RX.
472 #define SI32_PBHD_A_PBFSEL_PB3SEL_UART1_VALUE  3
473 #define SI32_PBHD_A_PBFSEL_PB3SEL_UART1_U32 \
474    (SI32_PBHD_A_PBFSEL_PB3SEL_UART1_VALUE << SI32_PBHD_A_PBFSEL_PB3SEL_SHIFT)
475 
476 #define SI32_PBHD_A_PBFSEL_PB4SEL_MASK  0x00000300
477 #define SI32_PBHD_A_PBFSEL_PB4SEL_SHIFT  8
478 // Pin configured for GPIO.
479 #define SI32_PBHD_A_PBFSEL_PB4SEL_GPIO_VALUE  0
480 #define SI32_PBHD_A_PBFSEL_PB4SEL_GPIO_U32 \
481    (SI32_PBHD_A_PBFSEL_PB4SEL_GPIO_VALUE << SI32_PBHD_A_PBFSEL_PB4SEL_SHIFT)
482 // Pin configured for Port Mapped Level Shift.
483 #define SI32_PBHD_A_PBFSEL_PB4SEL_PMLS_VALUE  1
484 #define SI32_PBHD_A_PBFSEL_PB4SEL_PMLS_U32 \
485    (SI32_PBHD_A_PBFSEL_PB4SEL_PMLS_VALUE << SI32_PBHD_A_PBFSEL_PB4SEL_SHIFT)
486 // Pin configured for EPCA0 output.
487 #define SI32_PBHD_A_PBFSEL_PB4SEL_EPCA0_VALUE  2
488 #define SI32_PBHD_A_PBFSEL_PB4SEL_EPCA0_U32 \
489    (SI32_PBHD_A_PBFSEL_PB4SEL_EPCA0_VALUE << SI32_PBHD_A_PBFSEL_PB4SEL_SHIFT)
490 // Pin configured for UART1 RTS.
491 #define SI32_PBHD_A_PBFSEL_PB4SEL_UART1_VALUE  3
492 #define SI32_PBHD_A_PBFSEL_PB4SEL_UART1_U32 \
493    (SI32_PBHD_A_PBFSEL_PB4SEL_UART1_VALUE << SI32_PBHD_A_PBFSEL_PB4SEL_SHIFT)
494 
495 #define SI32_PBHD_A_PBFSEL_PB5SEL_MASK  0x00001C00
496 #define SI32_PBHD_A_PBFSEL_PB5SEL_SHIFT  10
497 // Pin configured for GPIO.
498 #define SI32_PBHD_A_PBFSEL_PB5SEL_GPIO_VALUE  0
499 #define SI32_PBHD_A_PBFSEL_PB5SEL_GPIO_U32 \
500    (SI32_PBHD_A_PBFSEL_PB5SEL_GPIO_VALUE << SI32_PBHD_A_PBFSEL_PB5SEL_SHIFT)
501 // Pin configured for Port Mapped Level Shift.
502 #define SI32_PBHD_A_PBFSEL_PB5SEL_PMLS_VALUE  1
503 #define SI32_PBHD_A_PBFSEL_PB5SEL_PMLS_U32 \
504    (SI32_PBHD_A_PBFSEL_PB5SEL_PMLS_VALUE << SI32_PBHD_A_PBFSEL_PB5SEL_SHIFT)
505 // Pin configured for EPCA0 output.
506 #define SI32_PBHD_A_PBFSEL_PB5SEL_EPCA0_VALUE  2
507 #define SI32_PBHD_A_PBFSEL_PB5SEL_EPCA0_U32 \
508    (SI32_PBHD_A_PBFSEL_PB5SEL_EPCA0_VALUE << SI32_PBHD_A_PBFSEL_PB5SEL_SHIFT)
509 // Pin configured for UART1 CTS.
510 #define SI32_PBHD_A_PBFSEL_PB5SEL_UART1_VALUE  3
511 #define SI32_PBHD_A_PBFSEL_PB5SEL_UART1_U32 \
512    (SI32_PBHD_A_PBFSEL_PB5SEL_UART1_VALUE << SI32_PBHD_A_PBFSEL_PB5SEL_SHIFT)
513 // Pin configured for LPTIMER0 toggle output.
514 #define SI32_PBHD_A_PBFSEL_PB5SEL_LPTIMER0_VALUE  4
515 #define SI32_PBHD_A_PBFSEL_PB5SEL_LPTIMER0_U32 \
516    (SI32_PBHD_A_PBFSEL_PB5SEL_LPTIMER0_VALUE << SI32_PBHD_A_PBFSEL_PB5SEL_SHIFT)
517 
518 
519 
520 struct SI32_PBHD_A_PBSS_Struct
521 {
522    union
523    {
524       struct
525       {
526          // Port Bank n.0 Safe State Select
527          volatile uint32_t PB0SSSEL: 2;
528          // Port Bank n.1 Safe State Select
529          volatile uint32_t PB1SSSEL: 2;
530          // Port Bank n.2 Safe State Select
531          volatile uint32_t PB2SSSEL: 2;
532          // Port Bank n.3 Safe State Select
533          volatile uint32_t PB3SSSEL: 2;
534          // Port Bank n.4 Safe State Select
535          volatile uint32_t PB4SSSEL: 2;
536          // Port Bank n.5 Safe State Select
537          volatile uint32_t PB5SSSEL: 2;
538                   uint32_t reserved0: 4;
539          // Enter Safe State Mode
540          volatile uint32_t SSMDEN: 1;
541          // Safe State Signal Mode
542          volatile uint32_t PBSSSMD: 1;
543                   uint32_t reserved1: 14;
544       };
545       volatile uint32_t U32;
546    };
547 };
548 
549 #define SI32_PBHD_A_PBSS_PB0SSSEL_MASK  0x00000003
550 #define SI32_PBHD_A_PBSS_PB0SSSEL_SHIFT  0
551 // Place PBn.0 in a High Impedance state.
552 #define SI32_PBHD_A_PBSS_PB0SSSEL_HIZ_VALUE  0
553 #define SI32_PBHD_A_PBSS_PB0SSSEL_HIZ_U32 \
554    (SI32_PBHD_A_PBSS_PB0SSSEL_HIZ_VALUE << SI32_PBHD_A_PBSS_PB0SSSEL_SHIFT)
555 // Drive PBn.0 High.
556 #define SI32_PBHD_A_PBSS_PB0SSSEL_HIGH_VALUE  1
557 #define SI32_PBHD_A_PBSS_PB0SSSEL_HIGH_U32 \
558    (SI32_PBHD_A_PBSS_PB0SSSEL_HIGH_VALUE << SI32_PBHD_A_PBSS_PB0SSSEL_SHIFT)
559 // Drive PBn.0 Low.
560 #define SI32_PBHD_A_PBSS_PB0SSSEL_LOW_VALUE  2
561 #define SI32_PBHD_A_PBSS_PB0SSSEL_LOW_U32 \
562    (SI32_PBHD_A_PBSS_PB0SSSEL_LOW_VALUE << SI32_PBHD_A_PBSS_PB0SSSEL_SHIFT)
563 // Ignore the safe state signal (weak pull-ups disabled).
564 #define SI32_PBHD_A_PBSS_PB0SSSEL_DISABLED_VALUE  3
565 #define SI32_PBHD_A_PBSS_PB0SSSEL_DISABLED_U32 \
566    (SI32_PBHD_A_PBSS_PB0SSSEL_DISABLED_VALUE << SI32_PBHD_A_PBSS_PB0SSSEL_SHIFT)
567 
568 #define SI32_PBHD_A_PBSS_PB1SSSEL_MASK  0x0000000C
569 #define SI32_PBHD_A_PBSS_PB1SSSEL_SHIFT  2
570 // Place PBn.1 in a High Impedance state.
571 #define SI32_PBHD_A_PBSS_PB1SSSEL_HIZ_VALUE  0
572 #define SI32_PBHD_A_PBSS_PB1SSSEL_HIZ_U32 \
573    (SI32_PBHD_A_PBSS_PB1SSSEL_HIZ_VALUE << SI32_PBHD_A_PBSS_PB1SSSEL_SHIFT)
574 // Drive PBn.1 High.
575 #define SI32_PBHD_A_PBSS_PB1SSSEL_HIGH_VALUE  1
576 #define SI32_PBHD_A_PBSS_PB1SSSEL_HIGH_U32 \
577    (SI32_PBHD_A_PBSS_PB1SSSEL_HIGH_VALUE << SI32_PBHD_A_PBSS_PB1SSSEL_SHIFT)
578 // Drive PBn.1 Low.
579 #define SI32_PBHD_A_PBSS_PB1SSSEL_LOW_VALUE  2
580 #define SI32_PBHD_A_PBSS_PB1SSSEL_LOW_U32 \
581    (SI32_PBHD_A_PBSS_PB1SSSEL_LOW_VALUE << SI32_PBHD_A_PBSS_PB1SSSEL_SHIFT)
582 // Ignore the safe state signal (weak pull-ups disabled).
583 #define SI32_PBHD_A_PBSS_PB1SSSEL_DISABLED_VALUE  3
584 #define SI32_PBHD_A_PBSS_PB1SSSEL_DISABLED_U32 \
585    (SI32_PBHD_A_PBSS_PB1SSSEL_DISABLED_VALUE << SI32_PBHD_A_PBSS_PB1SSSEL_SHIFT)
586 
587 #define SI32_PBHD_A_PBSS_PB2SSSEL_MASK  0x00000030
588 #define SI32_PBHD_A_PBSS_PB2SSSEL_SHIFT  4
589 // Place PBn.2 in a High Impedance state.
590 #define SI32_PBHD_A_PBSS_PB2SSSEL_HIZ_VALUE  0
591 #define SI32_PBHD_A_PBSS_PB2SSSEL_HIZ_U32 \
592    (SI32_PBHD_A_PBSS_PB2SSSEL_HIZ_VALUE << SI32_PBHD_A_PBSS_PB2SSSEL_SHIFT)
593 // Drive PBn.2 High.
594 #define SI32_PBHD_A_PBSS_PB2SSSEL_HIGH_VALUE  1
595 #define SI32_PBHD_A_PBSS_PB2SSSEL_HIGH_U32 \
596    (SI32_PBHD_A_PBSS_PB2SSSEL_HIGH_VALUE << SI32_PBHD_A_PBSS_PB2SSSEL_SHIFT)
597 // Drive PBn.2 Low.
598 #define SI32_PBHD_A_PBSS_PB2SSSEL_LOW_VALUE  2
599 #define SI32_PBHD_A_PBSS_PB2SSSEL_LOW_U32 \
600    (SI32_PBHD_A_PBSS_PB2SSSEL_LOW_VALUE << SI32_PBHD_A_PBSS_PB2SSSEL_SHIFT)
601 // Ignore the safe state signal (weak pull-ups disabled).
602 #define SI32_PBHD_A_PBSS_PB2SSSEL_DISABLED_VALUE  3
603 #define SI32_PBHD_A_PBSS_PB2SSSEL_DISABLED_U32 \
604    (SI32_PBHD_A_PBSS_PB2SSSEL_DISABLED_VALUE << SI32_PBHD_A_PBSS_PB2SSSEL_SHIFT)
605 
606 #define SI32_PBHD_A_PBSS_PB3SSSEL_MASK  0x000000C0
607 #define SI32_PBHD_A_PBSS_PB3SSSEL_SHIFT  6
608 // Place PBn.3 in a High Impedance state.
609 #define SI32_PBHD_A_PBSS_PB3SSSEL_HIZ_VALUE  0
610 #define SI32_PBHD_A_PBSS_PB3SSSEL_HIZ_U32 \
611    (SI32_PBHD_A_PBSS_PB3SSSEL_HIZ_VALUE << SI32_PBHD_A_PBSS_PB3SSSEL_SHIFT)
612 // Drive PBn.3 High.
613 #define SI32_PBHD_A_PBSS_PB3SSSEL_HIGH_VALUE  1
614 #define SI32_PBHD_A_PBSS_PB3SSSEL_HIGH_U32 \
615    (SI32_PBHD_A_PBSS_PB3SSSEL_HIGH_VALUE << SI32_PBHD_A_PBSS_PB3SSSEL_SHIFT)
616 // Drive PBn.3 Low.
617 #define SI32_PBHD_A_PBSS_PB3SSSEL_LOW_VALUE  2
618 #define SI32_PBHD_A_PBSS_PB3SSSEL_LOW_U32 \
619    (SI32_PBHD_A_PBSS_PB3SSSEL_LOW_VALUE << SI32_PBHD_A_PBSS_PB3SSSEL_SHIFT)
620 // Ignore the safe state signal (weak pull-ups disabled).
621 #define SI32_PBHD_A_PBSS_PB3SSSEL_DISABLED_VALUE  3
622 #define SI32_PBHD_A_PBSS_PB3SSSEL_DISABLED_U32 \
623    (SI32_PBHD_A_PBSS_PB3SSSEL_DISABLED_VALUE << SI32_PBHD_A_PBSS_PB3SSSEL_SHIFT)
624 
625 #define SI32_PBHD_A_PBSS_PB4SSSEL_MASK  0x00000300
626 #define SI32_PBHD_A_PBSS_PB4SSSEL_SHIFT  8
627 // Place PBn.4 in a High Impedance state.
628 #define SI32_PBHD_A_PBSS_PB4SSSEL_HIZ_VALUE  0
629 #define SI32_PBHD_A_PBSS_PB4SSSEL_HIZ_U32 \
630    (SI32_PBHD_A_PBSS_PB4SSSEL_HIZ_VALUE << SI32_PBHD_A_PBSS_PB4SSSEL_SHIFT)
631 // Drive PBn.4 High.
632 #define SI32_PBHD_A_PBSS_PB4SSSEL_HIGH_VALUE  1
633 #define SI32_PBHD_A_PBSS_PB4SSSEL_HIGH_U32 \
634    (SI32_PBHD_A_PBSS_PB4SSSEL_HIGH_VALUE << SI32_PBHD_A_PBSS_PB4SSSEL_SHIFT)
635 // Drive PBn.4 Low.
636 #define SI32_PBHD_A_PBSS_PB4SSSEL_LOW_VALUE  2
637 #define SI32_PBHD_A_PBSS_PB4SSSEL_LOW_U32 \
638    (SI32_PBHD_A_PBSS_PB4SSSEL_LOW_VALUE << SI32_PBHD_A_PBSS_PB4SSSEL_SHIFT)
639 // Ignore the safe state signal (weak pull-ups disabled).
640 #define SI32_PBHD_A_PBSS_PB4SSSEL_DISABLED_VALUE  3
641 #define SI32_PBHD_A_PBSS_PB4SSSEL_DISABLED_U32 \
642    (SI32_PBHD_A_PBSS_PB4SSSEL_DISABLED_VALUE << SI32_PBHD_A_PBSS_PB4SSSEL_SHIFT)
643 
644 #define SI32_PBHD_A_PBSS_PB5SSSEL_MASK  0x00000C00
645 #define SI32_PBHD_A_PBSS_PB5SSSEL_SHIFT  10
646 // Place PBn.5 in a High Impedance state.
647 #define SI32_PBHD_A_PBSS_PB5SSSEL_HIZ_VALUE  0
648 #define SI32_PBHD_A_PBSS_PB5SSSEL_HIZ_U32 \
649    (SI32_PBHD_A_PBSS_PB5SSSEL_HIZ_VALUE << SI32_PBHD_A_PBSS_PB5SSSEL_SHIFT)
650 // Drive PBn.5 High.
651 #define SI32_PBHD_A_PBSS_PB5SSSEL_HIGH_VALUE  1
652 #define SI32_PBHD_A_PBSS_PB5SSSEL_HIGH_U32 \
653    (SI32_PBHD_A_PBSS_PB5SSSEL_HIGH_VALUE << SI32_PBHD_A_PBSS_PB5SSSEL_SHIFT)
654 // Drive PBn.5 Low.
655 #define SI32_PBHD_A_PBSS_PB5SSSEL_LOW_VALUE  2
656 #define SI32_PBHD_A_PBSS_PB5SSSEL_LOW_U32 \
657    (SI32_PBHD_A_PBSS_PB5SSSEL_LOW_VALUE << SI32_PBHD_A_PBSS_PB5SSSEL_SHIFT)
658 // Ignore the safe state signal (weak pull-ups disabled).
659 #define SI32_PBHD_A_PBSS_PB5SSSEL_DISABLED_VALUE  3
660 #define SI32_PBHD_A_PBSS_PB5SSSEL_DISABLED_U32 \
661    (SI32_PBHD_A_PBSS_PB5SSSEL_DISABLED_VALUE << SI32_PBHD_A_PBSS_PB5SSSEL_SHIFT)
662 
663 #define SI32_PBHD_A_PBSS_SSMDEN_MASK  0x00010000
664 #define SI32_PBHD_A_PBSS_SSMDEN_SHIFT  16
665 // Disable Safe State.
666 #define SI32_PBHD_A_PBSS_SSMDEN_DISABLED_VALUE  0
667 #define SI32_PBHD_A_PBSS_SSMDEN_DISABLED_U32 \
668    (SI32_PBHD_A_PBSS_SSMDEN_DISABLED_VALUE << SI32_PBHD_A_PBSS_SSMDEN_SHIFT)
669 // Enter Safe State.  Each PBn.x pin will enter the states defined by PBxSSSEL.
670 #define SI32_PBHD_A_PBSS_SSMDEN_ENABLED_VALUE  1
671 #define SI32_PBHD_A_PBSS_SSMDEN_ENABLED_U32 \
672    (SI32_PBHD_A_PBSS_SSMDEN_ENABLED_VALUE << SI32_PBHD_A_PBSS_SSMDEN_SHIFT)
673 
674 #define SI32_PBHD_A_PBSS_PBSSSMD_MASK  0x00020000
675 #define SI32_PBHD_A_PBSS_PBSSSMD_SHIFT  17
676 // Enable deglitching on the kill signal input. The kill signal must be asserted
677 // for two APB clocks to be recognized.
678 #define SI32_PBHD_A_PBSS_PBSSSMD_DEGLITCH_VALUE  0
679 #define SI32_PBHD_A_PBSS_PBSSSMD_DEGLITCH_U32 \
680    (SI32_PBHD_A_PBSS_PBSSSMD_DEGLITCH_VALUE << SI32_PBHD_A_PBSS_PBSSSMD_SHIFT)
681 // Disable deglitching on the kill signal input.  The kill signal will take
682 // immediate effect.
683 #define SI32_PBHD_A_PBSS_PBSSSMD_IMMEDIATE_VALUE  1
684 #define SI32_PBHD_A_PBSS_PBSSSMD_IMMEDIATE_U32 \
685    (SI32_PBHD_A_PBSS_PBSSSMD_IMMEDIATE_VALUE << SI32_PBHD_A_PBSS_PBSSSMD_SHIFT)
686 
687 
688 
689 struct SI32_PBHD_A_PBLOCK_Struct
690 {
691    union
692    {
693       struct
694       {
695          // Port Bank Lock
696          volatile uint32_t PBLOCK_BITS: 6;
697                   uint32_t reserved0: 26;
698       };
699       volatile uint32_t U32;
700    };
701 };
702 
703 #define SI32_PBHD_A_PBLOCK_PBLOCK_MASK  0x0000003F
704 #define SI32_PBHD_A_PBLOCK_PBLOCK_SHIFT  0
705 
706 
707 
708 typedef struct SI32_PBHD_A_Struct
709 {
710    struct SI32_PBHD_A_PB_Struct                    PB             ; // Base Address + 0x0
711    volatile uint32_t                               PB_SET;
712    volatile uint32_t                               PB_CLR;
713    volatile uint32_t                               PB_MSK;
714    struct SI32_PBHD_A_PBPIN_Struct                 PBPIN          ; // Base Address + 0x10
715    uint32_t                                        reserved0;
716    uint32_t                                        reserved1;
717    uint32_t                                        reserved2;
718    struct SI32_PBHD_A_PBMDSEL_Struct               PBMDSEL        ; // Base Address + 0x20
719    volatile uint32_t                               PBMDSEL_SET;
720    volatile uint32_t                               PBMDSEL_CLR;
721    uint32_t                                        reserved3;
722    struct SI32_PBHD_A_PBDEN_Struct                 PBDEN          ; // Base Address + 0x30
723    volatile uint32_t                               PBDEN_SET;
724    volatile uint32_t                               PBDEN_CLR;
725    uint32_t                                        reserved4;
726    struct SI32_PBHD_A_PBDRV_Struct                 PBDRV          ; // Base Address + 0x40
727    volatile uint32_t                               PBDRV_SET;
728    volatile uint32_t                               PBDRV_CLR;
729    uint32_t                                        reserved5;
730    struct SI32_PBHD_A_PBILIMIT_Struct              PBILIMIT       ; // Base Address + 0x50
731    volatile uint32_t                               PBILIMIT_SET;
732    volatile uint32_t                               PBILIMIT_CLR;
733    uint32_t                                        reserved6;
734    uint32_t                                        reserved7[4];
735    struct SI32_PBHD_A_PBFSEL_Struct                PBFSEL         ; // Base Address + 0x70
736    uint32_t                                        reserved8;
737    uint32_t                                        reserved9;
738    uint32_t                                        reserved10;
739    struct SI32_PBHD_A_PBSS_Struct                  PBSS           ; // Base Address + 0x80
740    volatile uint32_t                               PBSS_SET;
741    volatile uint32_t                               PBSS_CLR;
742    uint32_t                                        reserved11;
743    struct SI32_PBHD_A_PBLOCK_Struct                PBLOCK         ; // Base Address + 0x90
744    uint32_t                                        reserved12;
745    uint32_t                                        reserved13;
746    uint32_t                                        reserved14;
747 } SI32_PBHD_A_Type;
748 
749 #ifdef __cplusplus
750 }
751 #endif
752 
753 #endif // __SI32_PBHD_A_REGISTERS_H__
754 
755 //-eof--------------------------------------------------------------------------
756 
757