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_CLKCTRL_A module
24 //
25 // Script: 0.61
26 // Version: 1
27 
28 #ifndef __SI32_CLKCTRL_A_REGISTERS_H__
29 #define __SI32_CLKCTRL_A_REGISTERS_H__
30 
31 #include <stdint.h>
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
37 struct SI32_CLKCTRL_A_CONTROL_Struct
38 {
39    union
40    {
41       struct
42       {
43          // AHB Clock Source Select
44          volatile uint32_t AHBSEL: 3;
45                   uint32_t reserved0: 5;
46          // AHB Clock Divider
47          volatile uint32_t AHBDIV: 3;
48                   uint32_t reserved1: 5;
49          // APB Clock Divider
50          volatile uint32_t APBDIV: 1;
51                   uint32_t reserved2: 11;
52          // External Clock Edge Select
53          volatile uint32_t EXTESEL: 1;
54          // Oscillators Busy Flag
55          volatile uint32_t OBUSYF: 1;
56          // VIORF Clock Enable
57          volatile uint32_t VIORFCLKEN: 1;
58          // External Clock Input Enable
59          volatile uint32_t EXTOSCEN: 1;
60       };
61       volatile uint32_t U32;
62    };
63 };
64 
65 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_MASK  0x00000007
66 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_SHIFT  0
67 // AHB clock source is the Low-Power Oscillator.
68 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_LPOSC0_VALUE  0
69 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_LPOSC0_U32 \
70    (SI32_CLKCTRL_A_CONTROL_AHBSEL_LPOSC0_VALUE << SI32_CLKCTRL_A_CONTROL_AHBSEL_SHIFT)
71 // AHB clock source is the Low-Frequency Oscillator.
72 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_LFOSC0_VALUE  1
73 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_LFOSC0_U32 \
74    (SI32_CLKCTRL_A_CONTROL_AHBSEL_LFOSC0_VALUE << SI32_CLKCTRL_A_CONTROL_AHBSEL_SHIFT)
75 // AHB clock source is the RTC0TCLK signal.
76 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_RTC0TCLK_VALUE  2
77 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_RTC0TCLK_U32 \
78    (SI32_CLKCTRL_A_CONTROL_AHBSEL_RTC0TCLK_VALUE << SI32_CLKCTRL_A_CONTROL_AHBSEL_SHIFT)
79 // AHB clock source is the External Oscillator.
80 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_EXTOSC0_VALUE  3
81 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_EXTOSC0_U32 \
82    (SI32_CLKCTRL_A_CONTROL_AHBSEL_EXTOSC0_VALUE << SI32_CLKCTRL_A_CONTROL_AHBSEL_SHIFT)
83 // AHB clock source is the VIORFCLK input pin.
84 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_VIORFCLK_VALUE  4
85 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_VIORFCLK_U32 \
86    (SI32_CLKCTRL_A_CONTROL_AHBSEL_VIORFCLK_VALUE << SI32_CLKCTRL_A_CONTROL_AHBSEL_SHIFT)
87 // AHB clock source is the PLL.
88 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_PLL0OSC_VALUE  5
89 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_PLL0OSC_U32 \
90    (SI32_CLKCTRL_A_CONTROL_AHBSEL_PLL0OSC_VALUE << SI32_CLKCTRL_A_CONTROL_AHBSEL_SHIFT)
91 // AHB clock source is a divided version of the Low-Power Oscillator.
92 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_LPOSC0_DIV_VALUE  6
93 #define SI32_CLKCTRL_A_CONTROL_AHBSEL_LPOSC0_DIV_U32 \
94    (SI32_CLKCTRL_A_CONTROL_AHBSEL_LPOSC0_DIV_VALUE << SI32_CLKCTRL_A_CONTROL_AHBSEL_SHIFT)
95 
96 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_MASK  0x00000700
97 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_SHIFT  8
98 // AHB clock divided by 1.
99 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV1_VALUE  0
100 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV1_U32 \
101    (SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV1_VALUE << SI32_CLKCTRL_A_CONTROL_AHBDIV_SHIFT)
102 // AHB clock divided by 2.
103 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV2_VALUE  1
104 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV2_U32 \
105    (SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV2_VALUE << SI32_CLKCTRL_A_CONTROL_AHBDIV_SHIFT)
106 // AHB clock divided by 4.
107 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV4_VALUE  2
108 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV4_U32 \
109    (SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV4_VALUE << SI32_CLKCTRL_A_CONTROL_AHBDIV_SHIFT)
110 // AHB clock divided by 8.
111 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV8_VALUE  3
112 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV8_U32 \
113    (SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV8_VALUE << SI32_CLKCTRL_A_CONTROL_AHBDIV_SHIFT)
114 // AHB clock divided by 16.
115 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV16_VALUE  4
116 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV16_U32 \
117    (SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV16_VALUE << SI32_CLKCTRL_A_CONTROL_AHBDIV_SHIFT)
118 // AHB clock divided by 32.
119 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV32_VALUE  5
120 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV32_U32 \
121    (SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV32_VALUE << SI32_CLKCTRL_A_CONTROL_AHBDIV_SHIFT)
122 // AHB clock divided by 64.
123 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV64_VALUE  6
124 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV64_U32 \
125    (SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV64_VALUE << SI32_CLKCTRL_A_CONTROL_AHBDIV_SHIFT)
126 // AHB clock divided by 128.
127 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV128_VALUE  7
128 #define SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV128_U32 \
129    (SI32_CLKCTRL_A_CONTROL_AHBDIV_DIV128_VALUE << SI32_CLKCTRL_A_CONTROL_AHBDIV_SHIFT)
130 
131 #define SI32_CLKCTRL_A_CONTROL_APBDIV_MASK  0x00010000
132 #define SI32_CLKCTRL_A_CONTROL_APBDIV_SHIFT  16
133 // APB clock is the same as the AHB clock (divided by 1).
134 #define SI32_CLKCTRL_A_CONTROL_APBDIV_DIV1_VALUE  0
135 #define SI32_CLKCTRL_A_CONTROL_APBDIV_DIV1_U32 \
136    (SI32_CLKCTRL_A_CONTROL_APBDIV_DIV1_VALUE << SI32_CLKCTRL_A_CONTROL_APBDIV_SHIFT)
137 // APB clock is the AHB clock divided by 2.
138 #define SI32_CLKCTRL_A_CONTROL_APBDIV_DIV2_VALUE  1
139 #define SI32_CLKCTRL_A_CONTROL_APBDIV_DIV2_U32 \
140    (SI32_CLKCTRL_A_CONTROL_APBDIV_DIV2_VALUE << SI32_CLKCTRL_A_CONTROL_APBDIV_SHIFT)
141 
142 #define SI32_CLKCTRL_A_CONTROL_EXTESEL_MASK  0x10000000
143 #define SI32_CLKCTRL_A_CONTROL_EXTESEL_SHIFT  28
144 // External clock generated by both rising and falling edges of the external
145 // oscillator.
146 #define SI32_CLKCTRL_A_CONTROL_EXTESEL_BOTH_EDGES_VALUE  0
147 #define SI32_CLKCTRL_A_CONTROL_EXTESEL_BOTH_EDGES_U32 \
148    (SI32_CLKCTRL_A_CONTROL_EXTESEL_BOTH_EDGES_VALUE << SI32_CLKCTRL_A_CONTROL_EXTESEL_SHIFT)
149 // External clock generated by only rising edges of the external oscillator.
150 #define SI32_CLKCTRL_A_CONTROL_EXTESEL_RISING_ONLY_VALUE  1
151 #define SI32_CLKCTRL_A_CONTROL_EXTESEL_RISING_ONLY_U32 \
152    (SI32_CLKCTRL_A_CONTROL_EXTESEL_RISING_ONLY_VALUE << SI32_CLKCTRL_A_CONTROL_EXTESEL_SHIFT)
153 
154 #define SI32_CLKCTRL_A_CONTROL_OBUSYF_MASK  0x20000000
155 #define SI32_CLKCTRL_A_CONTROL_OBUSYF_SHIFT  29
156 // AHB and APB oscillators are not busy.
157 #define SI32_CLKCTRL_A_CONTROL_OBUSYF_NOT_SET_VALUE  0
158 #define SI32_CLKCTRL_A_CONTROL_OBUSYF_NOT_SET_U32 \
159    (SI32_CLKCTRL_A_CONTROL_OBUSYF_NOT_SET_VALUE << SI32_CLKCTRL_A_CONTROL_OBUSYF_SHIFT)
160 // AHB and APB oscillators are busy and the AHBSEL, AHBDIV, and APBDIV fields
161 // should not be modified.
162 #define SI32_CLKCTRL_A_CONTROL_OBUSYF_SET_VALUE  1
163 #define SI32_CLKCTRL_A_CONTROL_OBUSYF_SET_U32 \
164    (SI32_CLKCTRL_A_CONTROL_OBUSYF_SET_VALUE << SI32_CLKCTRL_A_CONTROL_OBUSYF_SHIFT)
165 
166 #define SI32_CLKCTRL_A_CONTROL_VIORFCLKEN_MASK  0x40000000
167 #define SI32_CLKCTRL_A_CONTROL_VIORFCLKEN_SHIFT  30
168 // Disable the VIORFCLK input.
169 #define SI32_CLKCTRL_A_CONTROL_VIORFCLKEN_DISABLED_VALUE  0
170 #define SI32_CLKCTRL_A_CONTROL_VIORFCLKEN_DISABLED_U32 \
171    (SI32_CLKCTRL_A_CONTROL_VIORFCLKEN_DISABLED_VALUE << SI32_CLKCTRL_A_CONTROL_VIORFCLKEN_SHIFT)
172 // Enable the VIORFCLK input.
173 #define SI32_CLKCTRL_A_CONTROL_VIORFCLKEN_ENABLED_VALUE  1
174 #define SI32_CLKCTRL_A_CONTROL_VIORFCLKEN_ENABLED_U32 \
175    (SI32_CLKCTRL_A_CONTROL_VIORFCLKEN_ENABLED_VALUE << SI32_CLKCTRL_A_CONTROL_VIORFCLKEN_SHIFT)
176 
177 #define SI32_CLKCTRL_A_CONTROL_EXTOSCEN_MASK  0x80000000
178 #define SI32_CLKCTRL_A_CONTROL_EXTOSCEN_SHIFT  31
179 // Disable the EXTOSC input.
180 #define SI32_CLKCTRL_A_CONTROL_EXTOSCEN_DISABLED_VALUE  0U
181 #define SI32_CLKCTRL_A_CONTROL_EXTOSCEN_DISABLED_U32 \
182    (SI32_CLKCTRL_A_CONTROL_EXTOSCEN_DISABLED_VALUE << SI32_CLKCTRL_A_CONTROL_EXTOSCEN_SHIFT)
183 // Enable the EXTOSC input.
184 #define SI32_CLKCTRL_A_CONTROL_EXTOSCEN_ENABLED_VALUE  1U
185 #define SI32_CLKCTRL_A_CONTROL_EXTOSCEN_ENABLED_U32 \
186    (SI32_CLKCTRL_A_CONTROL_EXTOSCEN_ENABLED_VALUE << SI32_CLKCTRL_A_CONTROL_EXTOSCEN_SHIFT)
187 
188 
189 
190 struct SI32_CLKCTRL_A_AHBCLKG_Struct
191 {
192    union
193    {
194       struct
195       {
196          // RAM Clock Enable
197          volatile uint32_t RAMCEN: 1;
198          // DMA Clock Enable
199          volatile uint32_t DMACEN: 1;
200          // Flash Clock Enable
201          volatile uint32_t FLASHCEN: 1;
202          // DTM0 Clock Enable
203          volatile uint32_t DTM0EN: 1;
204          // DTM1 Clock Enable
205          volatile uint32_t DTM1EN: 1;
206          // DTM2 Clock Enable
207          volatile uint32_t DTM2EN: 1;
208                   uint32_t reserved0: 26;
209       };
210       volatile uint32_t U32;
211    };
212 };
213 
214 #define SI32_CLKCTRL_A_AHBCLKG_RAMCEN_MASK  0x00000001
215 #define SI32_CLKCTRL_A_AHBCLKG_RAMCEN_SHIFT  0
216 // Disable the AHB clock to the RAM.
217 #define SI32_CLKCTRL_A_AHBCLKG_RAMCEN_DISABLED_VALUE  0
218 #define SI32_CLKCTRL_A_AHBCLKG_RAMCEN_DISABLED_U32 \
219    (SI32_CLKCTRL_A_AHBCLKG_RAMCEN_DISABLED_VALUE << SI32_CLKCTRL_A_AHBCLKG_RAMCEN_SHIFT)
220 // Enable the AHB clock to the RAM.
221 #define SI32_CLKCTRL_A_AHBCLKG_RAMCEN_ENABLED_VALUE  1
222 #define SI32_CLKCTRL_A_AHBCLKG_RAMCEN_ENABLED_U32 \
223    (SI32_CLKCTRL_A_AHBCLKG_RAMCEN_ENABLED_VALUE << SI32_CLKCTRL_A_AHBCLKG_RAMCEN_SHIFT)
224 
225 #define SI32_CLKCTRL_A_AHBCLKG_DMACEN_MASK  0x00000002
226 #define SI32_CLKCTRL_A_AHBCLKG_DMACEN_SHIFT  1
227 // Disable the AHB clock to the DMA Controller.
228 #define SI32_CLKCTRL_A_AHBCLKG_DMACEN_DISABLED_VALUE  0
229 #define SI32_CLKCTRL_A_AHBCLKG_DMACEN_DISABLED_U32 \
230    (SI32_CLKCTRL_A_AHBCLKG_DMACEN_DISABLED_VALUE << SI32_CLKCTRL_A_AHBCLKG_DMACEN_SHIFT)
231 // Enable the AHB clock to the DMA Controller.
232 #define SI32_CLKCTRL_A_AHBCLKG_DMACEN_ENABLED_VALUE  1
233 #define SI32_CLKCTRL_A_AHBCLKG_DMACEN_ENABLED_U32 \
234    (SI32_CLKCTRL_A_AHBCLKG_DMACEN_ENABLED_VALUE << SI32_CLKCTRL_A_AHBCLKG_DMACEN_SHIFT)
235 
236 #define SI32_CLKCTRL_A_AHBCLKG_FLASHCEN_MASK  0x00000004
237 #define SI32_CLKCTRL_A_AHBCLKG_FLASHCEN_SHIFT  2
238 // Disable the AHB clock to the Flash.
239 #define SI32_CLKCTRL_A_AHBCLKG_FLASHCEN_DISABLED_VALUE  0
240 #define SI32_CLKCTRL_A_AHBCLKG_FLASHCEN_DISABLED_U32 \
241    (SI32_CLKCTRL_A_AHBCLKG_FLASHCEN_DISABLED_VALUE << SI32_CLKCTRL_A_AHBCLKG_FLASHCEN_SHIFT)
242 // Enable the AHB clock to the Flash.
243 #define SI32_CLKCTRL_A_AHBCLKG_FLASHCEN_ENABLED_VALUE  1
244 #define SI32_CLKCTRL_A_AHBCLKG_FLASHCEN_ENABLED_U32 \
245    (SI32_CLKCTRL_A_AHBCLKG_FLASHCEN_ENABLED_VALUE << SI32_CLKCTRL_A_AHBCLKG_FLASHCEN_SHIFT)
246 
247 #define SI32_CLKCTRL_A_AHBCLKG_DTM0EN_MASK  0x00000008
248 #define SI32_CLKCTRL_A_AHBCLKG_DTM0EN_SHIFT  3
249 // Disable the AHB clock to Data Transfer Manager 0 (DTM0).
250 #define SI32_CLKCTRL_A_AHBCLKG_DTM0EN_DISABLED_VALUE  0
251 #define SI32_CLKCTRL_A_AHBCLKG_DTM0EN_DISABLED_U32 \
252    (SI32_CLKCTRL_A_AHBCLKG_DTM0EN_DISABLED_VALUE << SI32_CLKCTRL_A_AHBCLKG_DTM0EN_SHIFT)
253 // Enable the AHB clock to Data Transfer Manager 0 (DTM0).
254 #define SI32_CLKCTRL_A_AHBCLKG_DTM0EN_ENABLED_VALUE  1
255 #define SI32_CLKCTRL_A_AHBCLKG_DTM0EN_ENABLED_U32 \
256    (SI32_CLKCTRL_A_AHBCLKG_DTM0EN_ENABLED_VALUE << SI32_CLKCTRL_A_AHBCLKG_DTM0EN_SHIFT)
257 
258 #define SI32_CLKCTRL_A_AHBCLKG_DTM1EN_MASK  0x00000010
259 #define SI32_CLKCTRL_A_AHBCLKG_DTM1EN_SHIFT  4
260 // Disable the AHB clock to Data Transfer Manager 1 (DTM1).
261 #define SI32_CLKCTRL_A_AHBCLKG_DTM1EN_DISABLED_VALUE  0
262 #define SI32_CLKCTRL_A_AHBCLKG_DTM1EN_DISABLED_U32 \
263    (SI32_CLKCTRL_A_AHBCLKG_DTM1EN_DISABLED_VALUE << SI32_CLKCTRL_A_AHBCLKG_DTM1EN_SHIFT)
264 // Enable the AHB clock to Data Transfer Manager 1 (DTM1).
265 #define SI32_CLKCTRL_A_AHBCLKG_DTM1EN_ENABLED_VALUE  1
266 #define SI32_CLKCTRL_A_AHBCLKG_DTM1EN_ENABLED_U32 \
267    (SI32_CLKCTRL_A_AHBCLKG_DTM1EN_ENABLED_VALUE << SI32_CLKCTRL_A_AHBCLKG_DTM1EN_SHIFT)
268 
269 #define SI32_CLKCTRL_A_AHBCLKG_DTM2EN_MASK  0x00000020
270 #define SI32_CLKCTRL_A_AHBCLKG_DTM2EN_SHIFT  5
271 // Disable the AHB clock to Data Transfer Manager 2 (DTM2).
272 #define SI32_CLKCTRL_A_AHBCLKG_DTM2EN_DISABLED_VALUE  0
273 #define SI32_CLKCTRL_A_AHBCLKG_DTM2EN_DISABLED_U32 \
274    (SI32_CLKCTRL_A_AHBCLKG_DTM2EN_DISABLED_VALUE << SI32_CLKCTRL_A_AHBCLKG_DTM2EN_SHIFT)
275 // Enable the AHB clock to Data Transfer Manager 2 (DTM2).
276 #define SI32_CLKCTRL_A_AHBCLKG_DTM2EN_ENABLED_VALUE  1
277 #define SI32_CLKCTRL_A_AHBCLKG_DTM2EN_ENABLED_U32 \
278    (SI32_CLKCTRL_A_AHBCLKG_DTM2EN_ENABLED_VALUE << SI32_CLKCTRL_A_AHBCLKG_DTM2EN_SHIFT)
279 
280 
281 
282 struct SI32_CLKCTRL_A_APBCLKG0_Struct
283 {
284    union
285    {
286       struct
287       {
288          // Flash Controller Clock Enable
289          volatile uint32_t FLCTRLCEN: 1;
290          // Port Bank Clock Enable
291          volatile uint32_t PB0CEN: 1;
292          // USART0 Clock Enable
293          volatile uint32_t USART0CEN: 1;
294          // UART0 Clock Enable
295          volatile uint32_t UART0CEN: 1;
296          // SPI0 Clock Enable
297          volatile uint32_t SPI0CEN: 1;
298          // SPI1 Clock Enable
299          volatile uint32_t SPI1CEN: 1;
300          // I2C0 Clock Enable
301          volatile uint32_t I2C0CEN: 1;
302          // EPCA0 Clock Enable
303          volatile uint32_t EPCA0CEN: 1;
304          // TIMER0 Clock Enable
305          volatile uint32_t TIMER0CEN: 1;
306          // TIMER1 Clock Enable
307          volatile uint32_t TIMER1CEN: 1;
308          // TIMER2 Clock Enable
309          volatile uint32_t TIMER2CEN: 1;
310          // SARADC0 Clock Enable
311          volatile uint32_t ADC0CEN: 1;
312          // CMP0 Clock Enable
313          volatile uint32_t CMP0CEN: 1;
314          // CMP1 Clock Enable
315          volatile uint32_t CMP1CEN: 1;
316          // AES0 Clock Enable
317          volatile uint32_t AES0CEN: 1;
318          // CRC0 Clock Enable
319          volatile uint32_t CRC0CEN: 1;
320          // IDAC0 Clock Enable
321          volatile uint32_t IDAC0CEN: 1;
322          // LPT0 Clock Enable
323          volatile uint32_t LPT0CEN: 1;
324          // ACCTR0 Enable
325          volatile uint32_t ACCTR0CEN: 1;
326          // DTM0 Clock Enable
327          volatile uint32_t DTM0CEN: 1;
328          // DTM1 Clock Enable
329          volatile uint32_t DTM1CEN: 1;
330          // DTM2 Clock Enable
331          volatile uint32_t DTM2CEN: 1;
332          // LCD0 Clock Enable
333          volatile uint32_t LCD0CEN: 1;
334          // DCDC0 Clock Enable
335          volatile uint32_t DCDC0CEN: 1;
336          // ENCDEC0 Clock Enable
337          volatile uint32_t ENCDEC0CEN: 1;
338          // PLL0 Clock Enable
339          volatile uint32_t PLL0CEN: 1;
340                   uint32_t reserved0: 6;
341       };
342       volatile uint32_t U32;
343    };
344 };
345 
346 #define SI32_CLKCTRL_A_APBCLKG0_FLCTRLCEN_MASK  0x00000001
347 #define SI32_CLKCTRL_A_APBCLKG0_FLCTRLCEN_SHIFT  0
348 // Disable the APB clock to the Flash Controller Module (FLASHCTRL0).
349 #define SI32_CLKCTRL_A_APBCLKG0_FLCTRLCEN_DISABLED_VALUE  0
350 #define SI32_CLKCTRL_A_APBCLKG0_FLCTRLCEN_DISABLED_U32 \
351    (SI32_CLKCTRL_A_APBCLKG0_FLCTRLCEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_FLCTRLCEN_SHIFT)
352 // Enable the APB clock to the Flash Controller Module (FLASHCTRL0).
353 #define SI32_CLKCTRL_A_APBCLKG0_FLCTRLCEN_ENABLED_VALUE  1
354 #define SI32_CLKCTRL_A_APBCLKG0_FLCTRLCEN_ENABLED_U32 \
355    (SI32_CLKCTRL_A_APBCLKG0_FLCTRLCEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_FLCTRLCEN_SHIFT)
356 
357 #define SI32_CLKCTRL_A_APBCLKG0_PB0CEN_MASK  0x00000002
358 #define SI32_CLKCTRL_A_APBCLKG0_PB0CEN_SHIFT  1
359 // Disable the APB clock to the Port Bank Modules.
360 #define SI32_CLKCTRL_A_APBCLKG0_PB0CEN_DISABLED_VALUE  0
361 #define SI32_CLKCTRL_A_APBCLKG0_PB0CEN_DISABLED_U32 \
362    (SI32_CLKCTRL_A_APBCLKG0_PB0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_PB0CEN_SHIFT)
363 // Enable the APB clock to the Port Bank Modules.
364 #define SI32_CLKCTRL_A_APBCLKG0_PB0CEN_ENABLED_VALUE  1
365 #define SI32_CLKCTRL_A_APBCLKG0_PB0CEN_ENABLED_U32 \
366    (SI32_CLKCTRL_A_APBCLKG0_PB0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_PB0CEN_SHIFT)
367 
368 #define SI32_CLKCTRL_A_APBCLKG0_USART0CEN_MASK  0x00000004
369 #define SI32_CLKCTRL_A_APBCLKG0_USART0CEN_SHIFT  2
370 // Disable the APB clock to the USART0 Module.
371 #define SI32_CLKCTRL_A_APBCLKG0_USART0CEN_DISABLED_VALUE  0
372 #define SI32_CLKCTRL_A_APBCLKG0_USART0CEN_DISABLED_U32 \
373    (SI32_CLKCTRL_A_APBCLKG0_USART0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_USART0CEN_SHIFT)
374 // Enable the APB clock to the USART0 Module.
375 #define SI32_CLKCTRL_A_APBCLKG0_USART0CEN_ENABLED_VALUE  1
376 #define SI32_CLKCTRL_A_APBCLKG0_USART0CEN_ENABLED_U32 \
377    (SI32_CLKCTRL_A_APBCLKG0_USART0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_USART0CEN_SHIFT)
378 
379 #define SI32_CLKCTRL_A_APBCLKG0_UART0CEN_MASK  0x00000008
380 #define SI32_CLKCTRL_A_APBCLKG0_UART0CEN_SHIFT  3
381 // Disable the APB clock to the UART0 Module.
382 #define SI32_CLKCTRL_A_APBCLKG0_UART0CEN_DISABLED_VALUE  0
383 #define SI32_CLKCTRL_A_APBCLKG0_UART0CEN_DISABLED_U32 \
384    (SI32_CLKCTRL_A_APBCLKG0_UART0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_UART0CEN_SHIFT)
385 // Enable the APB clock to the UART0 Module.
386 #define SI32_CLKCTRL_A_APBCLKG0_UART0CEN_ENABLED_VALUE  1
387 #define SI32_CLKCTRL_A_APBCLKG0_UART0CEN_ENABLED_U32 \
388    (SI32_CLKCTRL_A_APBCLKG0_UART0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_UART0CEN_SHIFT)
389 
390 #define SI32_CLKCTRL_A_APBCLKG0_SPI0CEN_MASK  0x00000010
391 #define SI32_CLKCTRL_A_APBCLKG0_SPI0CEN_SHIFT  4
392 // Disable the APB clock to the SPI0 Module.
393 #define SI32_CLKCTRL_A_APBCLKG0_SPI0CEN_DISABLED_VALUE  0
394 #define SI32_CLKCTRL_A_APBCLKG0_SPI0CEN_DISABLED_U32 \
395    (SI32_CLKCTRL_A_APBCLKG0_SPI0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_SPI0CEN_SHIFT)
396 // Enable the APB clock to the SPI0 Module.
397 #define SI32_CLKCTRL_A_APBCLKG0_SPI0CEN_ENABLED_VALUE  1
398 #define SI32_CLKCTRL_A_APBCLKG0_SPI0CEN_ENABLED_U32 \
399    (SI32_CLKCTRL_A_APBCLKG0_SPI0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_SPI0CEN_SHIFT)
400 
401 #define SI32_CLKCTRL_A_APBCLKG0_SPI1CEN_MASK  0x00000020
402 #define SI32_CLKCTRL_A_APBCLKG0_SPI1CEN_SHIFT  5
403 // Disable the APB clock to the SPI1 Module.
404 #define SI32_CLKCTRL_A_APBCLKG0_SPI1CEN_DISABLED_VALUE  0
405 #define SI32_CLKCTRL_A_APBCLKG0_SPI1CEN_DISABLED_U32 \
406    (SI32_CLKCTRL_A_APBCLKG0_SPI1CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_SPI1CEN_SHIFT)
407 // Enable the APB clock to the SPI1 Module.
408 #define SI32_CLKCTRL_A_APBCLKG0_SPI1CEN_ENABLED_VALUE  1
409 #define SI32_CLKCTRL_A_APBCLKG0_SPI1CEN_ENABLED_U32 \
410    (SI32_CLKCTRL_A_APBCLKG0_SPI1CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_SPI1CEN_SHIFT)
411 
412 #define SI32_CLKCTRL_A_APBCLKG0_I2C0CEN_MASK  0x00000040
413 #define SI32_CLKCTRL_A_APBCLKG0_I2C0CEN_SHIFT  6
414 // Disable the APB clock to the I2C0 Module.
415 #define SI32_CLKCTRL_A_APBCLKG0_I2C0CEN_DISABLED_VALUE  0
416 #define SI32_CLKCTRL_A_APBCLKG0_I2C0CEN_DISABLED_U32 \
417    (SI32_CLKCTRL_A_APBCLKG0_I2C0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_I2C0CEN_SHIFT)
418 // Enable the APB clock to the I2C0 Module.
419 #define SI32_CLKCTRL_A_APBCLKG0_I2C0CEN_ENABLED_VALUE  1
420 #define SI32_CLKCTRL_A_APBCLKG0_I2C0CEN_ENABLED_U32 \
421    (SI32_CLKCTRL_A_APBCLKG0_I2C0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_I2C0CEN_SHIFT)
422 
423 #define SI32_CLKCTRL_A_APBCLKG0_EPCA0CEN_MASK  0x00000080
424 #define SI32_CLKCTRL_A_APBCLKG0_EPCA0CEN_SHIFT  7
425 // Disable the APB clock to the EPCA0 Module.
426 #define SI32_CLKCTRL_A_APBCLKG0_EPCA0CEN_DISABLED_VALUE  0
427 #define SI32_CLKCTRL_A_APBCLKG0_EPCA0CEN_DISABLED_U32 \
428    (SI32_CLKCTRL_A_APBCLKG0_EPCA0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_EPCA0CEN_SHIFT)
429 // Enable the APB clock to the EPCA0 Module.
430 #define SI32_CLKCTRL_A_APBCLKG0_EPCA0CEN_ENABLED_VALUE  1
431 #define SI32_CLKCTRL_A_APBCLKG0_EPCA0CEN_ENABLED_U32 \
432    (SI32_CLKCTRL_A_APBCLKG0_EPCA0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_EPCA0CEN_SHIFT)
433 
434 #define SI32_CLKCTRL_A_APBCLKG0_TIMER0CEN_MASK  0x00000100
435 #define SI32_CLKCTRL_A_APBCLKG0_TIMER0CEN_SHIFT  8
436 // Disable the APB clock to the TIMER0 Module.
437 #define SI32_CLKCTRL_A_APBCLKG0_TIMER0CEN_DISABLED_VALUE  0
438 #define SI32_CLKCTRL_A_APBCLKG0_TIMER0CEN_DISABLED_U32 \
439    (SI32_CLKCTRL_A_APBCLKG0_TIMER0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_TIMER0CEN_SHIFT)
440 // Enable the APB clock to the TIMER0 Module.
441 #define SI32_CLKCTRL_A_APBCLKG0_TIMER0CEN_ENABLED_VALUE  1
442 #define SI32_CLKCTRL_A_APBCLKG0_TIMER0CEN_ENABLED_U32 \
443    (SI32_CLKCTRL_A_APBCLKG0_TIMER0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_TIMER0CEN_SHIFT)
444 
445 #define SI32_CLKCTRL_A_APBCLKG0_TIMER1CEN_MASK  0x00000200
446 #define SI32_CLKCTRL_A_APBCLKG0_TIMER1CEN_SHIFT  9
447 // Disable the APB clock to the TIMER1 Module.
448 #define SI32_CLKCTRL_A_APBCLKG0_TIMER1CEN_DISABLED_VALUE  0
449 #define SI32_CLKCTRL_A_APBCLKG0_TIMER1CEN_DISABLED_U32 \
450    (SI32_CLKCTRL_A_APBCLKG0_TIMER1CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_TIMER1CEN_SHIFT)
451 // Enable the APB clock to the TIMER1 Module.
452 #define SI32_CLKCTRL_A_APBCLKG0_TIMER1CEN_ENABLED_VALUE  1
453 #define SI32_CLKCTRL_A_APBCLKG0_TIMER1CEN_ENABLED_U32 \
454    (SI32_CLKCTRL_A_APBCLKG0_TIMER1CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_TIMER1CEN_SHIFT)
455 
456 #define SI32_CLKCTRL_A_APBCLKG0_TIMER2CEN_MASK  0x00000400
457 #define SI32_CLKCTRL_A_APBCLKG0_TIMER2CEN_SHIFT  10
458 // Disable the APB clock to the TIMER2 Module.
459 #define SI32_CLKCTRL_A_APBCLKG0_TIMER2CEN_DISABLED_VALUE  0
460 #define SI32_CLKCTRL_A_APBCLKG0_TIMER2CEN_DISABLED_U32 \
461    (SI32_CLKCTRL_A_APBCLKG0_TIMER2CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_TIMER2CEN_SHIFT)
462 // Enable the APB clock to the TIMER2 Module.
463 #define SI32_CLKCTRL_A_APBCLKG0_TIMER2CEN_ENABLED_VALUE  1
464 #define SI32_CLKCTRL_A_APBCLKG0_TIMER2CEN_ENABLED_U32 \
465    (SI32_CLKCTRL_A_APBCLKG0_TIMER2CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_TIMER2CEN_SHIFT)
466 
467 #define SI32_CLKCTRL_A_APBCLKG0_ADC0CEN_MASK  0x00000800
468 #define SI32_CLKCTRL_A_APBCLKG0_ADC0CEN_SHIFT  11
469 // Disable the APB clock to the SARADC0 Module.
470 #define SI32_CLKCTRL_A_APBCLKG0_ADC0CEN_DISABLED_VALUE  0
471 #define SI32_CLKCTRL_A_APBCLKG0_ADC0CEN_DISABLED_U32 \
472    (SI32_CLKCTRL_A_APBCLKG0_ADC0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_ADC0CEN_SHIFT)
473 // Enable the APB clock to the SARADC0 Module.
474 #define SI32_CLKCTRL_A_APBCLKG0_ADC0CEN_ENABLED_VALUE  1
475 #define SI32_CLKCTRL_A_APBCLKG0_ADC0CEN_ENABLED_U32 \
476    (SI32_CLKCTRL_A_APBCLKG0_ADC0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_ADC0CEN_SHIFT)
477 
478 #define SI32_CLKCTRL_A_APBCLKG0_CMP0CEN_MASK  0x00001000
479 #define SI32_CLKCTRL_A_APBCLKG0_CMP0CEN_SHIFT  12
480 // Disable the APB clock to the Comparator 0 Module.
481 #define SI32_CLKCTRL_A_APBCLKG0_CMP0CEN_DISABLED_VALUE  0
482 #define SI32_CLKCTRL_A_APBCLKG0_CMP0CEN_DISABLED_U32 \
483    (SI32_CLKCTRL_A_APBCLKG0_CMP0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_CMP0CEN_SHIFT)
484 // Enable the APB clock to the Comparator 0 Module.
485 #define SI32_CLKCTRL_A_APBCLKG0_CMP0CEN_ENABLED_VALUE  1
486 #define SI32_CLKCTRL_A_APBCLKG0_CMP0CEN_ENABLED_U32 \
487    (SI32_CLKCTRL_A_APBCLKG0_CMP0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_CMP0CEN_SHIFT)
488 
489 #define SI32_CLKCTRL_A_APBCLKG0_CMP1CEN_MASK  0x00002000
490 #define SI32_CLKCTRL_A_APBCLKG0_CMP1CEN_SHIFT  13
491 // Disable the APB clock to the Comparator 1 Module.
492 #define SI32_CLKCTRL_A_APBCLKG0_CMP1CEN_DISABLED_VALUE  0
493 #define SI32_CLKCTRL_A_APBCLKG0_CMP1CEN_DISABLED_U32 \
494    (SI32_CLKCTRL_A_APBCLKG0_CMP1CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_CMP1CEN_SHIFT)
495 // Enable the APB clock to the Comparator 1 Module.
496 #define SI32_CLKCTRL_A_APBCLKG0_CMP1CEN_ENABLED_VALUE  1
497 #define SI32_CLKCTRL_A_APBCLKG0_CMP1CEN_ENABLED_U32 \
498    (SI32_CLKCTRL_A_APBCLKG0_CMP1CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_CMP1CEN_SHIFT)
499 
500 #define SI32_CLKCTRL_A_APBCLKG0_AES0CEN_MASK  0x00004000
501 #define SI32_CLKCTRL_A_APBCLKG0_AES0CEN_SHIFT  14
502 // Disable the APB clock to the AES0 Module.
503 #define SI32_CLKCTRL_A_APBCLKG0_AES0CEN_DISABLED_VALUE  0
504 #define SI32_CLKCTRL_A_APBCLKG0_AES0CEN_DISABLED_U32 \
505    (SI32_CLKCTRL_A_APBCLKG0_AES0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_AES0CEN_SHIFT)
506 // Enable the APB clock to the AES0 Module.
507 #define SI32_CLKCTRL_A_APBCLKG0_AES0CEN_ENABLED_VALUE  1
508 #define SI32_CLKCTRL_A_APBCLKG0_AES0CEN_ENABLED_U32 \
509    (SI32_CLKCTRL_A_APBCLKG0_AES0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_AES0CEN_SHIFT)
510 
511 #define SI32_CLKCTRL_A_APBCLKG0_CRC0CEN_MASK  0x00008000
512 #define SI32_CLKCTRL_A_APBCLKG0_CRC0CEN_SHIFT  15
513 // Disable the APB clock to the CRC0 Module.
514 #define SI32_CLKCTRL_A_APBCLKG0_CRC0CEN_DISABLED_VALUE  0
515 #define SI32_CLKCTRL_A_APBCLKG0_CRC0CEN_DISABLED_U32 \
516    (SI32_CLKCTRL_A_APBCLKG0_CRC0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_CRC0CEN_SHIFT)
517 // Enable the APB clock to the CRC0 Module.
518 #define SI32_CLKCTRL_A_APBCLKG0_CRC0CEN_ENABLED_VALUE  1
519 #define SI32_CLKCTRL_A_APBCLKG0_CRC0CEN_ENABLED_U32 \
520    (SI32_CLKCTRL_A_APBCLKG0_CRC0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_CRC0CEN_SHIFT)
521 
522 #define SI32_CLKCTRL_A_APBCLKG0_IDAC0CEN_MASK  0x00010000
523 #define SI32_CLKCTRL_A_APBCLKG0_IDAC0CEN_SHIFT  16
524 // Disable the APB clock to the IDAC0 Module.
525 #define SI32_CLKCTRL_A_APBCLKG0_IDAC0CEN_DISABLED_VALUE  0
526 #define SI32_CLKCTRL_A_APBCLKG0_IDAC0CEN_DISABLED_U32 \
527    (SI32_CLKCTRL_A_APBCLKG0_IDAC0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_IDAC0CEN_SHIFT)
528 // Enable the APB clock to the IDAC0 Module.
529 #define SI32_CLKCTRL_A_APBCLKG0_IDAC0CEN_ENABLED_VALUE  1
530 #define SI32_CLKCTRL_A_APBCLKG0_IDAC0CEN_ENABLED_U32 \
531    (SI32_CLKCTRL_A_APBCLKG0_IDAC0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_IDAC0CEN_SHIFT)
532 
533 #define SI32_CLKCTRL_A_APBCLKG0_LPT0CEN_MASK  0x00020000
534 #define SI32_CLKCTRL_A_APBCLKG0_LPT0CEN_SHIFT  17
535 // Disable the APB clock to the LPTIMER0 Module.
536 #define SI32_CLKCTRL_A_APBCLKG0_LPT0CEN_DISABLED_VALUE  0
537 #define SI32_CLKCTRL_A_APBCLKG0_LPT0CEN_DISABLED_U32 \
538    (SI32_CLKCTRL_A_APBCLKG0_LPT0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_LPT0CEN_SHIFT)
539 // Enable the APB clock to the LPTIMER0 Module.
540 #define SI32_CLKCTRL_A_APBCLKG0_LPT0CEN_ENABLED_VALUE  1
541 #define SI32_CLKCTRL_A_APBCLKG0_LPT0CEN_ENABLED_U32 \
542    (SI32_CLKCTRL_A_APBCLKG0_LPT0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_LPT0CEN_SHIFT)
543 
544 #define SI32_CLKCTRL_A_APBCLKG0_ACCTR0CEN_MASK  0x00040000
545 #define SI32_CLKCTRL_A_APBCLKG0_ACCTR0CEN_SHIFT  18
546 // Disable the APB clock to the ACCTR0 Module.
547 #define SI32_CLKCTRL_A_APBCLKG0_ACCTR0CEN_DISABLED_VALUE  0
548 #define SI32_CLKCTRL_A_APBCLKG0_ACCTR0CEN_DISABLED_U32 \
549    (SI32_CLKCTRL_A_APBCLKG0_ACCTR0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_ACCTR0CEN_SHIFT)
550 // Enable the APB clock to the ACCTR0 Module.
551 #define SI32_CLKCTRL_A_APBCLKG0_ACCTR0CEN_ENABLED_VALUE  1
552 #define SI32_CLKCTRL_A_APBCLKG0_ACCTR0CEN_ENABLED_U32 \
553    (SI32_CLKCTRL_A_APBCLKG0_ACCTR0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_ACCTR0CEN_SHIFT)
554 
555 #define SI32_CLKCTRL_A_APBCLKG0_DTM0CEN_MASK  0x00080000
556 #define SI32_CLKCTRL_A_APBCLKG0_DTM0CEN_SHIFT  19
557 // Disable the APB clock to the DTM0 Register interface.
558 #define SI32_CLKCTRL_A_APBCLKG0_DTM0CEN_DISABLED_VALUE  0
559 #define SI32_CLKCTRL_A_APBCLKG0_DTM0CEN_DISABLED_U32 \
560    (SI32_CLKCTRL_A_APBCLKG0_DTM0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_DTM0CEN_SHIFT)
561 // Enable the APB clock to the DTM0 Register interface.
562 #define SI32_CLKCTRL_A_APBCLKG0_DTM0CEN_ENABLED_VALUE  1
563 #define SI32_CLKCTRL_A_APBCLKG0_DTM0CEN_ENABLED_U32 \
564    (SI32_CLKCTRL_A_APBCLKG0_DTM0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_DTM0CEN_SHIFT)
565 
566 #define SI32_CLKCTRL_A_APBCLKG0_DTM1CEN_MASK  0x00100000
567 #define SI32_CLKCTRL_A_APBCLKG0_DTM1CEN_SHIFT  20
568 // Disable the APB clock to the DTM1 Register interface.
569 #define SI32_CLKCTRL_A_APBCLKG0_DTM1CEN_DISABLED_VALUE  0
570 #define SI32_CLKCTRL_A_APBCLKG0_DTM1CEN_DISABLED_U32 \
571    (SI32_CLKCTRL_A_APBCLKG0_DTM1CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_DTM1CEN_SHIFT)
572 // Enable the APB clock to the DTM1 Register interface.
573 #define SI32_CLKCTRL_A_APBCLKG0_DTM1CEN_ENABLED_VALUE  1
574 #define SI32_CLKCTRL_A_APBCLKG0_DTM1CEN_ENABLED_U32 \
575    (SI32_CLKCTRL_A_APBCLKG0_DTM1CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_DTM1CEN_SHIFT)
576 
577 #define SI32_CLKCTRL_A_APBCLKG0_DTM2CEN_MASK  0x00200000
578 #define SI32_CLKCTRL_A_APBCLKG0_DTM2CEN_SHIFT  21
579 // Disable the APB clock to the DTM2 Register interface.
580 #define SI32_CLKCTRL_A_APBCLKG0_DTM2CEN_DISABLED_VALUE  0
581 #define SI32_CLKCTRL_A_APBCLKG0_DTM2CEN_DISABLED_U32 \
582    (SI32_CLKCTRL_A_APBCLKG0_DTM2CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_DTM2CEN_SHIFT)
583 // Enable the APB clock to the DTM2 Register interface.
584 #define SI32_CLKCTRL_A_APBCLKG0_DTM2CEN_ENABLED_VALUE  1
585 #define SI32_CLKCTRL_A_APBCLKG0_DTM2CEN_ENABLED_U32 \
586    (SI32_CLKCTRL_A_APBCLKG0_DTM2CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_DTM2CEN_SHIFT)
587 
588 #define SI32_CLKCTRL_A_APBCLKG0_LCD0CEN_MASK  0x00400000
589 #define SI32_CLKCTRL_A_APBCLKG0_LCD0CEN_SHIFT  22
590 // Disable the APB clock to the LCD0 Module.
591 #define SI32_CLKCTRL_A_APBCLKG0_LCD0CEN_DISABLED_VALUE  0
592 #define SI32_CLKCTRL_A_APBCLKG0_LCD0CEN_DISABLED_U32 \
593    (SI32_CLKCTRL_A_APBCLKG0_LCD0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_LCD0CEN_SHIFT)
594 // Enable the APB clock to the LCD0 Module.
595 #define SI32_CLKCTRL_A_APBCLKG0_LCD0CEN_ENABLED_VALUE  1
596 #define SI32_CLKCTRL_A_APBCLKG0_LCD0CEN_ENABLED_U32 \
597    (SI32_CLKCTRL_A_APBCLKG0_LCD0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_LCD0CEN_SHIFT)
598 
599 #define SI32_CLKCTRL_A_APBCLKG0_DCDC0CEN_MASK  0x00800000
600 #define SI32_CLKCTRL_A_APBCLKG0_DCDC0CEN_SHIFT  23
601 // Disable the APB clock to the DCDC0 Module.
602 #define SI32_CLKCTRL_A_APBCLKG0_DCDC0CEN_DISABLED_VALUE  0
603 #define SI32_CLKCTRL_A_APBCLKG0_DCDC0CEN_DISABLED_U32 \
604    (SI32_CLKCTRL_A_APBCLKG0_DCDC0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_DCDC0CEN_SHIFT)
605 // Enable the APB clock to the DCDC0 Module.
606 #define SI32_CLKCTRL_A_APBCLKG0_DCDC0CEN_ENABLED_VALUE  1
607 #define SI32_CLKCTRL_A_APBCLKG0_DCDC0CEN_ENABLED_U32 \
608    (SI32_CLKCTRL_A_APBCLKG0_DCDC0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_DCDC0CEN_SHIFT)
609 
610 #define SI32_CLKCTRL_A_APBCLKG0_ENCDEC0CEN_MASK  0x01000000
611 #define SI32_CLKCTRL_A_APBCLKG0_ENCDEC0CEN_SHIFT  24
612 // Disable the APB clock to the ENCDEC0 Module.
613 #define SI32_CLKCTRL_A_APBCLKG0_ENCDEC0CEN_DISABLED_VALUE  0
614 #define SI32_CLKCTRL_A_APBCLKG0_ENCDEC0CEN_DISABLED_U32 \
615    (SI32_CLKCTRL_A_APBCLKG0_ENCDEC0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_ENCDEC0CEN_SHIFT)
616 // Enable the APB clock to the ENCDEC0 Module.
617 #define SI32_CLKCTRL_A_APBCLKG0_ENCDEC0CEN_ENABLED_VALUE  1
618 #define SI32_CLKCTRL_A_APBCLKG0_ENCDEC0CEN_ENABLED_U32 \
619    (SI32_CLKCTRL_A_APBCLKG0_ENCDEC0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_ENCDEC0CEN_SHIFT)
620 
621 #define SI32_CLKCTRL_A_APBCLKG0_PLL0CEN_MASK  0x02000000
622 #define SI32_CLKCTRL_A_APBCLKG0_PLL0CEN_SHIFT  25
623 // Disable the APB clock to the PLL0 registers.
624 #define SI32_CLKCTRL_A_APBCLKG0_PLL0CEN_DISABLED_VALUE  0
625 #define SI32_CLKCTRL_A_APBCLKG0_PLL0CEN_DISABLED_U32 \
626    (SI32_CLKCTRL_A_APBCLKG0_PLL0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_PLL0CEN_SHIFT)
627 // Enable the APB clock to the PLL0 registers.
628 #define SI32_CLKCTRL_A_APBCLKG0_PLL0CEN_ENABLED_VALUE  1
629 #define SI32_CLKCTRL_A_APBCLKG0_PLL0CEN_ENABLED_U32 \
630    (SI32_CLKCTRL_A_APBCLKG0_PLL0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG0_PLL0CEN_SHIFT)
631 
632 
633 
634 struct SI32_CLKCTRL_A_APBCLKG1_Struct
635 {
636    union
637    {
638       struct
639       {
640          // Miscellaneous 0 Clock Enable
641          volatile uint32_t MISC0CEN: 1;
642          // Miscellaneous 1 Clock Enable
643          volatile uint32_t MISC1CEN: 1;
644                   uint32_t reserved0: 30;
645       };
646       volatile uint32_t U32;
647    };
648 };
649 
650 #define SI32_CLKCTRL_A_APBCLKG1_MISC0CEN_MASK  0x00000001
651 #define SI32_CLKCTRL_A_APBCLKG1_MISC0CEN_SHIFT  0
652 // Disable the APB clock to the VMON0, LDO0, EXTOSC0, LPOSC0, RTC0 and RSTSRC
653 // modules.
654 #define SI32_CLKCTRL_A_APBCLKG1_MISC0CEN_DISABLED_VALUE  0
655 #define SI32_CLKCTRL_A_APBCLKG1_MISC0CEN_DISABLED_U32 \
656    (SI32_CLKCTRL_A_APBCLKG1_MISC0CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG1_MISC0CEN_SHIFT)
657 // Enable the APB clock to the VMON0, LDO0, EXTOSC0, LPOSC0, RTC0 and RSTSRC
658 // modules.
659 #define SI32_CLKCTRL_A_APBCLKG1_MISC0CEN_ENABLED_VALUE  1
660 #define SI32_CLKCTRL_A_APBCLKG1_MISC0CEN_ENABLED_U32 \
661    (SI32_CLKCTRL_A_APBCLKG1_MISC0CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG1_MISC0CEN_SHIFT)
662 
663 #define SI32_CLKCTRL_A_APBCLKG1_MISC1CEN_MASK  0x00000002
664 #define SI32_CLKCTRL_A_APBCLKG1_MISC1CEN_SHIFT  1
665 // Disable the APB clock to the  Watchdog Timer (WDTIMER0) and DMA Crossbar
666 // (DMAXBAR0) modules.
667 #define SI32_CLKCTRL_A_APBCLKG1_MISC1CEN_DISABLED_VALUE  0
668 #define SI32_CLKCTRL_A_APBCLKG1_MISC1CEN_DISABLED_U32 \
669    (SI32_CLKCTRL_A_APBCLKG1_MISC1CEN_DISABLED_VALUE << SI32_CLKCTRL_A_APBCLKG1_MISC1CEN_SHIFT)
670 // Enable the APB clock to the  Watchdog Timer (WDTIMER0) and DMA Crossbar
671 // (DMAXBAR0) modules.
672 #define SI32_CLKCTRL_A_APBCLKG1_MISC1CEN_ENABLED_VALUE  1
673 #define SI32_CLKCTRL_A_APBCLKG1_MISC1CEN_ENABLED_U32 \
674    (SI32_CLKCTRL_A_APBCLKG1_MISC1CEN_ENABLED_VALUE << SI32_CLKCTRL_A_APBCLKG1_MISC1CEN_SHIFT)
675 
676 
677 
678 struct SI32_CLKCTRL_A_PM3CN_Struct
679 {
680    union
681    {
682       struct
683       {
684          // Power Mode 3 Fast-Wake Clock Source
685          volatile uint32_t PM3CSEL: 3;
686                   uint32_t reserved0: 13;
687          // Power Mode 3 Fast-Wake Clock Enable
688          volatile uint32_t PM3CEN: 1;
689                   uint32_t reserved1: 15;
690       };
691       volatile uint32_t U32;
692    };
693 };
694 
695 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_MASK  0x00000007
696 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_SHIFT  0
697 // Power Mode 3 clock source is the Low-Power Oscillator.
698 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_LPOSC0_VALUE  0
699 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_LPOSC0_U32 \
700    (SI32_CLKCTRL_A_PM3CN_PM3CSEL_LPOSC0_VALUE << SI32_CLKCTRL_A_PM3CN_PM3CSEL_SHIFT)
701 // Power Mode 3 clock source is the Low-Frequency Oscillator.
702 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_LFOSC0_VALUE  1
703 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_LFOSC0_U32 \
704    (SI32_CLKCTRL_A_PM3CN_PM3CSEL_LFOSC0_VALUE << SI32_CLKCTRL_A_PM3CN_PM3CSEL_SHIFT)
705 // Power Mode 3 clock source is the RTC0TCLK signal.
706 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_RTC0TCLK_VALUE  2
707 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_RTC0TCLK_U32 \
708    (SI32_CLKCTRL_A_PM3CN_PM3CSEL_RTC0TCLK_VALUE << SI32_CLKCTRL_A_PM3CN_PM3CSEL_SHIFT)
709 // Power Mode 3 clock source is the External Oscillator.
710 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_EXTOSC0_VALUE  3
711 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_EXTOSC0_U32 \
712    (SI32_CLKCTRL_A_PM3CN_PM3CSEL_EXTOSC0_VALUE << SI32_CLKCTRL_A_PM3CN_PM3CSEL_SHIFT)
713 // Power Mode 3 clock source is the VIORFCLK input pin.
714 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_VIORFCLK_VALUE  4
715 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_VIORFCLK_U32 \
716    (SI32_CLKCTRL_A_PM3CN_PM3CSEL_VIORFCLK_VALUE << SI32_CLKCTRL_A_PM3CN_PM3CSEL_SHIFT)
717 // Power Mode 3 clock source is the PLL.
718 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_PLL0OSC_VALUE  5
719 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_PLL0OSC_U32 \
720    (SI32_CLKCTRL_A_PM3CN_PM3CSEL_PLL0OSC_VALUE << SI32_CLKCTRL_A_PM3CN_PM3CSEL_SHIFT)
721 // Power Mode 3 clock source is a divided version of the Low-Power Oscillator.
722 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_LPOSC0_DIV_VALUE  6
723 #define SI32_CLKCTRL_A_PM3CN_PM3CSEL_LPOSC0_DIV_U32 \
724    (SI32_CLKCTRL_A_PM3CN_PM3CSEL_LPOSC0_DIV_VALUE << SI32_CLKCTRL_A_PM3CN_PM3CSEL_SHIFT)
725 
726 #define SI32_CLKCTRL_A_PM3CN_PM3CEN_MASK  0x00010000
727 #define SI32_CLKCTRL_A_PM3CN_PM3CEN_SHIFT  16
728 // Disable the core clock when in Power Mode 3.
729 #define SI32_CLKCTRL_A_PM3CN_PM3CEN_DISABLED_VALUE  0
730 #define SI32_CLKCTRL_A_PM3CN_PM3CEN_DISABLED_U32 \
731    (SI32_CLKCTRL_A_PM3CN_PM3CEN_DISABLED_VALUE << SI32_CLKCTRL_A_PM3CN_PM3CEN_SHIFT)
732 // The core clock is enabled and runs off the clock selected by PM3CSEL in Power
733 // Mode 3.
734 #define SI32_CLKCTRL_A_PM3CN_PM3CEN_ENABLED_VALUE  1
735 #define SI32_CLKCTRL_A_PM3CN_PM3CEN_ENABLED_U32 \
736    (SI32_CLKCTRL_A_PM3CN_PM3CEN_ENABLED_VALUE << SI32_CLKCTRL_A_PM3CN_PM3CEN_SHIFT)
737 
738 
739 
740 struct SI32_CLKCTRL_A_CONFIG_Struct
741 {
742    union
743    {
744       struct
745       {
746          // Power Mode Select
747          volatile uint32_t PMSEL: 1;
748                   uint32_t reserved0: 31;
749       };
750       volatile uint32_t U32;
751    };
752 };
753 
754 #define SI32_CLKCTRL_A_CONFIG_PMSEL_MASK  0x00000001
755 #define SI32_CLKCTRL_A_CONFIG_PMSEL_SHIFT  0
756 // Power Mode < PM8.
757 #define SI32_CLKCTRL_A_CONFIG_PMSEL_PM8_DIS_VALUE  0
758 #define SI32_CLKCTRL_A_CONFIG_PMSEL_PM8_DIS_U32 \
759    (SI32_CLKCTRL_A_CONFIG_PMSEL_PM8_DIS_VALUE << SI32_CLKCTRL_A_CONFIG_PMSEL_SHIFT)
760 // Power Mode = PM8.
761 #define SI32_CLKCTRL_A_CONFIG_PMSEL_PM8_EN_VALUE  1
762 #define SI32_CLKCTRL_A_CONFIG_PMSEL_PM8_EN_U32 \
763    (SI32_CLKCTRL_A_CONFIG_PMSEL_PM8_EN_VALUE << SI32_CLKCTRL_A_CONFIG_PMSEL_SHIFT)
764 
765 
766 
767 typedef struct SI32_CLKCTRL_A_Struct
768 {
769    struct SI32_CLKCTRL_A_CONTROL_Struct            CONTROL        ; // Base Address + 0x0
770    uint32_t                                        reserved0;
771    uint32_t                                        reserved1;
772    uint32_t                                        reserved2;
773    struct SI32_CLKCTRL_A_AHBCLKG_Struct            AHBCLKG        ; // Base Address + 0x10
774    volatile uint32_t                               AHBCLKG_SET;
775    volatile uint32_t                               AHBCLKG_CLR;
776    uint32_t                                        reserved3;
777    struct SI32_CLKCTRL_A_APBCLKG0_Struct           APBCLKG0       ; // Base Address + 0x20
778    volatile uint32_t                               APBCLKG0_SET;
779    volatile uint32_t                               APBCLKG0_CLR;
780    uint32_t                                        reserved4;
781    struct SI32_CLKCTRL_A_APBCLKG1_Struct           APBCLKG1       ; // Base Address + 0x30
782    volatile uint32_t                               APBCLKG1_SET;
783    volatile uint32_t                               APBCLKG1_CLR;
784    uint32_t                                        reserved5;
785    struct SI32_CLKCTRL_A_PM3CN_Struct              PM3CN          ; // Base Address + 0x40
786    uint32_t                                        reserved6;
787    uint32_t                                        reserved7;
788    uint32_t                                        reserved8;
789    uint32_t                                        reserved9[4];
790    struct SI32_CLKCTRL_A_CONFIG_Struct             CONFIG         ; // Base Address + 0x60
791    volatile uint32_t                               CONFIG_SET;
792    volatile uint32_t                               CONFIG_CLR;
793    uint32_t                                        reserved10;
794    uint32_t                                        reserved11[4];
795 } SI32_CLKCTRL_A_Type;
796 
797 #ifdef __cplusplus
798 }
799 #endif
800 
801 #endif // __SI32_CLKCTRL_A_REGISTERS_H__
802 
803 //-eof--------------------------------------------------------------------------
804 
805