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_PBSTD_A module
24 //
25 // Script: 0.61
26 // Version: 1
27 
28 #ifndef __SI32_PBSTD_A_REGISTERS_H__
29 #define __SI32_PBSTD_A_REGISTERS_H__
30 
31 #include <stdint.h>
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
37 struct SI32_PBSTD_A_PB_Struct
38 {
39    union
40    {
41       struct
42       {
43          // Output Latch
44          volatile uint16_t PB_BITS;
45                   uint32_t reserved0: 16;
46       };
47       volatile uint32_t U32;
48    };
49 };
50 
51 #define SI32_PBSTD_A_PB_PB_MASK  0x0000FFFF
52 #define SI32_PBSTD_A_PB_PB_SHIFT  0
53 
54 
55 
56 struct SI32_PBSTD_A_PBPIN_Struct
57 {
58    union
59    {
60       struct
61       {
62          // Pin Value
63          volatile uint16_t PBPIN_BITS;
64                   uint32_t reserved0: 16;
65       };
66       volatile uint32_t U32;
67    };
68 };
69 
70 #define SI32_PBSTD_A_PBPIN_PBPIN_MASK  0x0000FFFF
71 #define SI32_PBSTD_A_PBPIN_PBPIN_SHIFT  0
72 
73 
74 
75 struct SI32_PBSTD_A_PBMDSEL_Struct
76 {
77    union
78    {
79       struct
80       {
81          // Mode Select
82          volatile uint16_t PBMDSEL_BITS;
83                   uint32_t reserved0: 16;
84       };
85       volatile uint32_t U32;
86    };
87 };
88 
89 #define SI32_PBSTD_A_PBMDSEL_PBMDSEL_MASK  0x0000FFFF
90 #define SI32_PBSTD_A_PBMDSEL_PBMDSEL_SHIFT  0
91 
92 
93 
94 struct SI32_PBSTD_A_PBSKIPEN_Struct
95 {
96    union
97    {
98       struct
99       {
100          // Crossbar Pin Skip Enable
101          volatile uint16_t PBSKIPEN_BITS;
102                   uint32_t reserved0: 16;
103       };
104       volatile uint32_t U32;
105    };
106 };
107 
108 #define SI32_PBSTD_A_PBSKIPEN_PBSKIPEN_MASK  0x0000FFFF
109 #define SI32_PBSTD_A_PBSKIPEN_PBSKIPEN_SHIFT  0
110 
111 
112 
113 struct SI32_PBSTD_A_PBOUTMD_Struct
114 {
115    union
116    {
117       struct
118       {
119          // Output Mode
120          volatile uint16_t PBOUTMD_BITS;
121                   uint32_t reserved0: 16;
122       };
123       volatile uint32_t U32;
124    };
125 };
126 
127 #define SI32_PBSTD_A_PBOUTMD_PBOUTMD_MASK  0x0000FFFF
128 #define SI32_PBSTD_A_PBOUTMD_PBOUTMD_SHIFT  0
129 
130 
131 
132 struct SI32_PBSTD_A_PBDRV_Struct
133 {
134    union
135    {
136       struct
137       {
138          // Drive Strength
139          volatile uint16_t PBDRV_BITS;
140          // Port Bank Weak Pull-up Enable
141          volatile uint32_t PBPUEN: 1;
142                   uint32_t reserved0: 15;
143       };
144       volatile uint32_t U32;
145    };
146 };
147 
148 #define SI32_PBSTD_A_PBDRV_PBDRV_MASK  0x0000FFFF
149 #define SI32_PBSTD_A_PBDRV_PBDRV_SHIFT  0
150 
151 #define SI32_PBSTD_A_PBDRV_PBPUEN_MASK  0x00010000
152 #define SI32_PBSTD_A_PBDRV_PBPUEN_SHIFT  16
153 // Disable weak pull-ups for this port.
154 #define SI32_PBSTD_A_PBDRV_PBPUEN_DISABLED_VALUE  0
155 #define SI32_PBSTD_A_PBDRV_PBPUEN_DISABLED_U32 \
156    (SI32_PBSTD_A_PBDRV_PBPUEN_DISABLED_VALUE << SI32_PBSTD_A_PBDRV_PBPUEN_SHIFT)
157 // Enable weak pull-ups for this port.
158 #define SI32_PBSTD_A_PBDRV_PBPUEN_ENABLED_VALUE  1
159 #define SI32_PBSTD_A_PBDRV_PBPUEN_ENABLED_U32 \
160    (SI32_PBSTD_A_PBDRV_PBPUEN_ENABLED_VALUE << SI32_PBSTD_A_PBDRV_PBPUEN_SHIFT)
161 
162 
163 
164 struct SI32_PBSTD_A_PM_Struct
165 {
166    union
167    {
168       struct
169       {
170          // Port Match Value
171          volatile uint16_t PM_BITS;
172                   uint32_t reserved0: 16;
173       };
174       volatile uint32_t U32;
175    };
176 };
177 
178 #define SI32_PBSTD_A_PM_PM_MASK  0x0000FFFF
179 #define SI32_PBSTD_A_PM_PM_SHIFT  0
180 
181 
182 
183 struct SI32_PBSTD_A_PMEN_Struct
184 {
185    union
186    {
187       struct
188       {
189          // Port Match Enable
190          volatile uint16_t PMEN_BITS;
191                   uint32_t reserved0: 16;
192       };
193       volatile uint32_t U32;
194    };
195 };
196 
197 #define SI32_PBSTD_A_PMEN_PMEN_MASK  0x0000FFFF
198 #define SI32_PBSTD_A_PMEN_PMEN_SHIFT  0
199 
200 
201 
202 struct SI32_PBSTD_A_PBPGEN_Struct
203 {
204    union
205    {
206       struct
207       {
208          // Pulse Generator Pin Enable
209          volatile uint32_t PBPGEN_BITS: 12;
210                   uint32_t reserved0: 20;
211       };
212       volatile uint32_t U32;
213    };
214 };
215 
216 #define SI32_PBSTD_A_PBPGEN_PBPGEN_MASK  0x00000FFF
217 #define SI32_PBSTD_A_PBPGEN_PBPGEN_SHIFT  0
218 
219 
220 
221 struct SI32_PBSTD_A_PBPGPHASE_Struct
222 {
223    union
224    {
225       struct
226       {
227          // Pulse Generator Phase 0
228          volatile uint32_t PBPGPH0: 12;
229                   uint32_t reserved0: 4;
230          // Pulse Generator Phase 1
231          volatile uint32_t PBPGPH1: 12;
232                   uint32_t reserved1: 4;
233       };
234       volatile uint32_t U32;
235    };
236 };
237 
238 #define SI32_PBSTD_A_PBPGPHASE_PBPGPH0_MASK  0x00000FFF
239 #define SI32_PBSTD_A_PBPGPHASE_PBPGPH0_SHIFT  0
240 
241 #define SI32_PBSTD_A_PBPGPHASE_PBPGPH1_MASK  0x0FFF0000
242 #define SI32_PBSTD_A_PBPGPHASE_PBPGPH1_SHIFT  16
243 
244 
245 
246 typedef struct SI32_PBSTD_A_Struct
247 {
248    struct SI32_PBSTD_A_PB_Struct                   PB             ; // Base Address + 0x0
249    volatile uint32_t                               PB_SET;
250    volatile uint32_t                               PB_CLR;
251    volatile uint32_t                               PB_MSK;
252    struct SI32_PBSTD_A_PBPIN_Struct                PBPIN          ; // Base Address + 0x10
253    uint32_t                                        reserved0;
254    uint32_t                                        reserved1;
255    uint32_t                                        reserved2;
256    struct SI32_PBSTD_A_PBMDSEL_Struct              PBMDSEL        ; // Base Address + 0x20
257    volatile uint32_t                               PBMDSEL_SET;
258    volatile uint32_t                               PBMDSEL_CLR;
259    uint32_t                                        reserved3;
260    struct SI32_PBSTD_A_PBSKIPEN_Struct             PBSKIPEN       ; // Base Address + 0x30
261    volatile uint32_t                               PBSKIPEN_SET;
262    volatile uint32_t                               PBSKIPEN_CLR;
263    uint32_t                                        reserved4;
264    struct SI32_PBSTD_A_PBOUTMD_Struct              PBOUTMD        ; // Base Address + 0x40
265    volatile uint32_t                               PBOUTMD_SET;
266    volatile uint32_t                               PBOUTMD_CLR;
267    uint32_t                                        reserved5;
268    struct SI32_PBSTD_A_PBDRV_Struct                PBDRV          ; // Base Address + 0x50
269    volatile uint32_t                               PBDRV_SET;
270    volatile uint32_t                               PBDRV_CLR;
271    uint32_t                                        reserved6;
272    struct SI32_PBSTD_A_PM_Struct                   PM             ; // Base Address + 0x60
273    volatile uint32_t                               PM_SET;
274    volatile uint32_t                               PM_CLR;
275    uint32_t                                        reserved7;
276    struct SI32_PBSTD_A_PMEN_Struct                 PMEN           ; // Base Address + 0x70
277    volatile uint32_t                               PMEN_SET;
278    volatile uint32_t                               PMEN_CLR;
279    uint32_t                                        reserved8;
280    struct SI32_PBSTD_A_PBPGEN_Struct               PBPGEN         ; // Base Address + 0x80
281    uint32_t                                        reserved9;
282    uint32_t                                        reserved10;
283    uint32_t                                        reserved11;
284    struct SI32_PBSTD_A_PBPGPHASE_Struct            PBPGPHASE      ; // Base Address + 0x90
285    uint32_t                                        reserved12;
286    uint32_t                                        reserved13;
287    uint32_t                                        reserved14;
288 } SI32_PBSTD_A_Type;
289 
290 #ifdef __cplusplus
291 }
292 #endif
293 
294 #endif // __SI32_PBSTD_A_REGISTERS_H__
295 
296 //-eof--------------------------------------------------------------------------
297 
298