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 // Script: 0.61
24 // Version: 1
25 
26 #ifndef __SI32_LCD_A_REGISTERS_H__
27 #define __SI32_LCD_A_REGISTERS_H__
28 
29 #include <stdint.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 struct SI32_LCD_A_CONFIG_Struct
36 {
37    union
38    {
39       struct
40       {
41          // Module Enable
42          volatile uint32_t LCDEN: 1;
43                   uint32_t reserved0: 1;
44          // Charge Pump Full Power Drive Mode Enable
45          volatile uint32_t CPFPDEN: 1;
46          // LCD Missing Clock Detector Enable
47          volatile uint32_t MCDEN: 1;
48          // RTC Clock Request Enable
49          volatile uint32_t RTCCEN: 1;
50          // Bias Enable
51          volatile uint32_t BIASEN: 1;
52          // DCDC Bias Output Enable
53          volatile uint32_t DCDCBIASEN: 1;
54          // DCDC Bias Standby Enable
55          volatile uint32_t DCDCSTDBYEN: 1;
56          // Charge Pump Bypass Enable
57          volatile uint32_t CPBEN: 1;
58          // High-Contrast-Voltage Low-Power Mode Enable
59          volatile uint32_t HCVLPMEN: 1;
60          // VBAT Monitor Low Power Enable
61          volatile uint32_t VBMLPEN: 1;
62          // Charge-Pump Oscillator Low-Power Enable
63          volatile uint32_t CPOLPEN: 1;
64          // Comparator Buffer Low-Power Enable
65          volatile uint32_t CMPBLPEN: 1;
66          // Bias Switching Enable
67          volatile uint32_t BIASSEN: 1;
68          // Reference Band Gap Switching Enable
69          volatile uint32_t RBGSEN: 1;
70                   uint32_t reserved1: 1;
71          // Charge-Pump Auto-Contrast Enable
72          volatile uint32_t CPACEN: 1;
73          // Force Bias Continuous Mode Enable
74          volatile uint32_t FBIASCEN: 1;
75                   uint32_t reserved2: 6;
76          // High-Contrast-Voltage Comparator Bypass Enable
77          volatile uint32_t HCVCBYPEN: 1;
78          // High-Contrast-Voltage Comparator Force On Enable
79          volatile uint32_t HCVCFOEN: 1;
80          // High-Contrast-Voltage Comparator Hysteresis
81          volatile uint32_t HCVCHMD: 1;
82          // High-Contrast-Voltage Comparator Bias
83          volatile uint32_t HCVCBMD: 1;
84                   uint32_t reserved3: 2;
85          // High-Contrast-Voltage Comparator Status
86          volatile uint32_t CPCS: 1;
87                   uint32_t reserved4: 1;
88       };
89       volatile uint32_t U32;
90    };
91 };
92 
93 #define SI32_LCD_A_CONFIG_LCDEN_MASK  0x00000001
94 #define SI32_LCD_A_CONFIG_LCDEN_SHIFT  0
95 // Disable the LCD module.
96 #define SI32_LCD_A_CONFIG_LCDEN_DISABLED_VALUE  0
97 #define SI32_LCD_A_CONFIG_LCDEN_DISABLED_U32 \
98    (SI32_LCD_A_CONFIG_LCDEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_LCDEN_SHIFT)
99 // Enable the LCD module.
100 #define SI32_LCD_A_CONFIG_LCDEN_ENABLED_VALUE  1
101 #define SI32_LCD_A_CONFIG_LCDEN_ENABLED_U32 \
102    (SI32_LCD_A_CONFIG_LCDEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_LCDEN_SHIFT)
103 
104 #define SI32_LCD_A_CONFIG_CPFPDEN_MASK  0x00000004
105 #define SI32_LCD_A_CONFIG_CPFPDEN_SHIFT  2
106 // Disable the LCD charge pump's full power drive mode. The charge pump draws less
107 // power but operates with reduced output current capabilities.
108 #define SI32_LCD_A_CONFIG_CPFPDEN_DISABLED_VALUE  0
109 #define SI32_LCD_A_CONFIG_CPFPDEN_DISABLED_U32 \
110    (SI32_LCD_A_CONFIG_CPFPDEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_CPFPDEN_SHIFT)
111 // Enable the LCD charge pump's full output drive mode. The charge pump operates at
112 // full power.
113 #define SI32_LCD_A_CONFIG_CPFPDEN_ENABLED_VALUE  1
114 #define SI32_LCD_A_CONFIG_CPFPDEN_ENABLED_U32 \
115    (SI32_LCD_A_CONFIG_CPFPDEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_CPFPDEN_SHIFT)
116 
117 #define SI32_LCD_A_CONFIG_MCDEN_MASK  0x00000008
118 #define SI32_LCD_A_CONFIG_MCDEN_SHIFT  3
119 // Disable the dedicated LCD missing clock detector.
120 #define SI32_LCD_A_CONFIG_MCDEN_DISABLED_VALUE  0
121 #define SI32_LCD_A_CONFIG_MCDEN_DISABLED_U32 \
122    (SI32_LCD_A_CONFIG_MCDEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_MCDEN_SHIFT)
123 // Enable the dedicated LCD missing clock detector.
124 #define SI32_LCD_A_CONFIG_MCDEN_ENABLED_VALUE  1
125 #define SI32_LCD_A_CONFIG_MCDEN_ENABLED_U32 \
126    (SI32_LCD_A_CONFIG_MCDEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_MCDEN_SHIFT)
127 
128 #define SI32_LCD_A_CONFIG_RTCCEN_MASK  0x00000010
129 #define SI32_LCD_A_CONFIG_RTCCEN_SHIFT  4
130 // The LCD module does not require the RTC clock.
131 #define SI32_LCD_A_CONFIG_RTCCEN_DISABLED_VALUE  0
132 #define SI32_LCD_A_CONFIG_RTCCEN_DISABLED_U32 \
133    (SI32_LCD_A_CONFIG_RTCCEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_RTCCEN_SHIFT)
134 // The LCD module requires an active and valid RTC clock (RTC0TCLK).
135 #define SI32_LCD_A_CONFIG_RTCCEN_ENABLED_VALUE  1
136 #define SI32_LCD_A_CONFIG_RTCCEN_ENABLED_U32 \
137    (SI32_LCD_A_CONFIG_RTCCEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_RTCCEN_SHIFT)
138 
139 #define SI32_LCD_A_CONFIG_BIASEN_MASK  0x00000020
140 #define SI32_LCD_A_CONFIG_BIASEN_SHIFT  5
141 // Disable the LCD bias current.
142 #define SI32_LCD_A_CONFIG_BIASEN_DISABLED_VALUE  0
143 #define SI32_LCD_A_CONFIG_BIASEN_DISABLED_U32 \
144    (SI32_LCD_A_CONFIG_BIASEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_BIASEN_SHIFT)
145 // Enable the LCD bias current.
146 #define SI32_LCD_A_CONFIG_BIASEN_ENABLED_VALUE  1
147 #define SI32_LCD_A_CONFIG_BIASEN_ENABLED_U32 \
148    (SI32_LCD_A_CONFIG_BIASEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_BIASEN_SHIFT)
149 
150 #define SI32_LCD_A_CONFIG_DCDCBIASEN_MASK  0x00000040
151 #define SI32_LCD_A_CONFIG_DCDCBIASEN_SHIFT  6
152 // Disable the secondary bias current output.
153 #define SI32_LCD_A_CONFIG_DCDCBIASEN_DISABLED_VALUE  0
154 #define SI32_LCD_A_CONFIG_DCDCBIASEN_DISABLED_U32 \
155    (SI32_LCD_A_CONFIG_DCDCBIASEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_DCDCBIASEN_SHIFT)
156 // Enable the secondary bias current output.
157 #define SI32_LCD_A_CONFIG_DCDCBIASEN_ENABLED_VALUE  1
158 #define SI32_LCD_A_CONFIG_DCDCBIASEN_ENABLED_U32 \
159    (SI32_LCD_A_CONFIG_DCDCBIASEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_DCDCBIASEN_SHIFT)
160 
161 #define SI32_LCD_A_CONFIG_DCDCSTDBYEN_MASK  0x00000080
162 #define SI32_LCD_A_CONFIG_DCDCSTDBYEN_SHIFT  7
163 // The DCDC bias is enabled in Power Mode 8.
164 #define SI32_LCD_A_CONFIG_DCDCSTDBYEN_DISABLED_VALUE  0
165 #define SI32_LCD_A_CONFIG_DCDCSTDBYEN_DISABLED_U32 \
166    (SI32_LCD_A_CONFIG_DCDCSTDBYEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_DCDCSTDBYEN_SHIFT)
167 // The DCDC bias is disabled in Power Mode 8.
168 #define SI32_LCD_A_CONFIG_DCDCSTDBYEN_ENABLED_VALUE  1
169 #define SI32_LCD_A_CONFIG_DCDCSTDBYEN_ENABLED_U32 \
170    (SI32_LCD_A_CONFIG_DCDCSTDBYEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_DCDCSTDBYEN_SHIFT)
171 
172 #define SI32_LCD_A_CONFIG_CPBEN_MASK  0x00000100
173 #define SI32_LCD_A_CONFIG_CPBEN_SHIFT  8
174 // The LCD charge pump generates the VLCD voltage.
175 #define SI32_LCD_A_CONFIG_CPBEN_DISABLED_VALUE  0
176 #define SI32_LCD_A_CONFIG_CPBEN_DISABLED_U32 \
177    (SI32_LCD_A_CONFIG_CPBEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_CPBEN_SHIFT)
178 // Bypass the LCD charge pump and connect VLCD directly to VBAT.
179 #define SI32_LCD_A_CONFIG_CPBEN_ENABLED_VALUE  1
180 #define SI32_LCD_A_CONFIG_CPBEN_ENABLED_U32 \
181    (SI32_LCD_A_CONFIG_CPBEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_CPBEN_SHIFT)
182 
183 #define SI32_LCD_A_CONFIG_HCVLPMEN_MASK  0x00000200
184 #define SI32_LCD_A_CONFIG_HCVLPMEN_SHIFT  9
185 // Disable the high-contrast-voltage low-power mode.
186 #define SI32_LCD_A_CONFIG_HCVLPMEN_DISABLED_VALUE  0
187 #define SI32_LCD_A_CONFIG_HCVLPMEN_DISABLED_U32 \
188    (SI32_LCD_A_CONFIG_HCVLPMEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_HCVLPMEN_SHIFT)
189 // Enable the high-contrast-voltage low-power mode. This mode reduces power
190 // consumption when VLCD is higher than VBAT.
191 #define SI32_LCD_A_CONFIG_HCVLPMEN_ENABLED_VALUE  1
192 #define SI32_LCD_A_CONFIG_HCVLPMEN_ENABLED_U32 \
193    (SI32_LCD_A_CONFIG_HCVLPMEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_HCVLPMEN_SHIFT)
194 
195 #define SI32_LCD_A_CONFIG_VBMLPEN_MASK  0x00000400
196 #define SI32_LCD_A_CONFIG_VBMLPEN_SHIFT  10
197 // Disable the LCD VBAT Monitor low power mode.
198 #define SI32_LCD_A_CONFIG_VBMLPEN_DISABLED_VALUE  0
199 #define SI32_LCD_A_CONFIG_VBMLPEN_DISABLED_U32 \
200    (SI32_LCD_A_CONFIG_VBMLPEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_VBMLPEN_SHIFT)
201 // Enable the LCD VBAT Monitor low power mode.
202 #define SI32_LCD_A_CONFIG_VBMLPEN_ENABLED_VALUE  1
203 #define SI32_LCD_A_CONFIG_VBMLPEN_ENABLED_U32 \
204    (SI32_LCD_A_CONFIG_VBMLPEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_VBMLPEN_SHIFT)
205 
206 #define SI32_LCD_A_CONFIG_CPOLPEN_MASK  0x00000800
207 #define SI32_LCD_A_CONFIG_CPOLPEN_SHIFT  11
208 // Disable the charge-pump oscillator low-power mode.
209 #define SI32_LCD_A_CONFIG_CPOLPEN_DISABLED_VALUE  0
210 #define SI32_LCD_A_CONFIG_CPOLPEN_DISABLED_U32 \
211    (SI32_LCD_A_CONFIG_CPOLPEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_CPOLPEN_SHIFT)
212 // Enable the charge-pump oscillator low-power mode.
213 #define SI32_LCD_A_CONFIG_CPOLPEN_ENABLED_VALUE  1
214 #define SI32_LCD_A_CONFIG_CPOLPEN_ENABLED_U32 \
215    (SI32_LCD_A_CONFIG_CPOLPEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_CPOLPEN_SHIFT)
216 
217 #define SI32_LCD_A_CONFIG_CMPBLPEN_MASK  0x00001000
218 #define SI32_LCD_A_CONFIG_CMPBLPEN_SHIFT  12
219 // Disable the comparator buffer low-power mode.
220 #define SI32_LCD_A_CONFIG_CMPBLPEN_DISABLED_VALUE  0
221 #define SI32_LCD_A_CONFIG_CMPBLPEN_DISABLED_U32 \
222    (SI32_LCD_A_CONFIG_CMPBLPEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_CMPBLPEN_SHIFT)
223 // Enable the comparator buffer low-power mode.
224 #define SI32_LCD_A_CONFIG_CMPBLPEN_ENABLED_VALUE  1
225 #define SI32_LCD_A_CONFIG_CMPBLPEN_ENABLED_U32 \
226    (SI32_LCD_A_CONFIG_CMPBLPEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_CMPBLPEN_SHIFT)
227 
228 #define SI32_LCD_A_CONFIG_BIASSEN_MASK  0x00002000
229 #define SI32_LCD_A_CONFIG_BIASSEN_SHIFT  13
230 // Disable bias switching.
231 #define SI32_LCD_A_CONFIG_BIASSEN_DISABLED_VALUE  0
232 #define SI32_LCD_A_CONFIG_BIASSEN_DISABLED_U32 \
233    (SI32_LCD_A_CONFIG_BIASSEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_BIASSEN_SHIFT)
234 // Enable bias switching.
235 #define SI32_LCD_A_CONFIG_BIASSEN_ENABLED_VALUE  1
236 #define SI32_LCD_A_CONFIG_BIASSEN_ENABLED_U32 \
237    (SI32_LCD_A_CONFIG_BIASSEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_BIASSEN_SHIFT)
238 
239 #define SI32_LCD_A_CONFIG_RBGSEN_MASK  0x00004000
240 #define SI32_LCD_A_CONFIG_RBGSEN_SHIFT  14
241 // Disable reference band gap switching mode.
242 #define SI32_LCD_A_CONFIG_RBGSEN_DISABLED_VALUE  0
243 #define SI32_LCD_A_CONFIG_RBGSEN_DISABLED_U32 \
244    (SI32_LCD_A_CONFIG_RBGSEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_RBGSEN_SHIFT)
245 // Enable reference band gap switching mode.
246 #define SI32_LCD_A_CONFIG_RBGSEN_ENABLED_VALUE  1
247 #define SI32_LCD_A_CONFIG_RBGSEN_ENABLED_U32 \
248    (SI32_LCD_A_CONFIG_RBGSEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_RBGSEN_SHIFT)
249 
250 #define SI32_LCD_A_CONFIG_CPACEN_MASK  0x00010000
251 #define SI32_LCD_A_CONFIG_CPACEN_SHIFT  16
252 // VLCD continues to track VBAT when VBAT drops below the programmed VLCD value.
253 #define SI32_LCD_A_CONFIG_CPACEN_DISABLED_VALUE  0
254 #define SI32_LCD_A_CONFIG_CPACEN_DISABLED_U32 \
255    (SI32_LCD_A_CONFIG_CPACEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_CPACEN_SHIFT)
256 // The module automatically enables the charge pump and maintains the VLCD voltage
257 // when VBAT drops below the programmed VBAT monitor level.
258 #define SI32_LCD_A_CONFIG_CPACEN_ENABLED_VALUE  1
259 #define SI32_LCD_A_CONFIG_CPACEN_ENABLED_U32 \
260    (SI32_LCD_A_CONFIG_CPACEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_CPACEN_SHIFT)
261 
262 #define SI32_LCD_A_CONFIG_FBIASCEN_MASK  0x00020000
263 #define SI32_LCD_A_CONFIG_FBIASCEN_SHIFT  17
264 // The bias operates as configured.
265 #define SI32_LCD_A_CONFIG_FBIASCEN_DISABLED_VALUE  0
266 #define SI32_LCD_A_CONFIG_FBIASCEN_DISABLED_U32 \
267    (SI32_LCD_A_CONFIG_FBIASCEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_FBIASCEN_SHIFT)
268 // Force the bias to operate in continuous mode. The bias will cleanly transition
269 // from its configuration settings to continuous mode.
270 #define SI32_LCD_A_CONFIG_FBIASCEN_ENABLED_VALUE  1
271 #define SI32_LCD_A_CONFIG_FBIASCEN_ENABLED_U32 \
272    (SI32_LCD_A_CONFIG_FBIASCEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_FBIASCEN_SHIFT)
273 
274 #define SI32_LCD_A_CONFIG_HCVCBYPEN_MASK  0x01000000
275 #define SI32_LCD_A_CONFIG_HCVCBYPEN_SHIFT  24
276 // Hardware enables the high-contrast-voltage comparator as needed.
277 #define SI32_LCD_A_CONFIG_HCVCBYPEN_DISABLED_VALUE  0
278 #define SI32_LCD_A_CONFIG_HCVCBYPEN_DISABLED_U32 \
279    (SI32_LCD_A_CONFIG_HCVCBYPEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_HCVCBYPEN_SHIFT)
280 // High-contrast-voltage comparator in bypass mode.
281 #define SI32_LCD_A_CONFIG_HCVCBYPEN_ENABLED_VALUE  1
282 #define SI32_LCD_A_CONFIG_HCVCBYPEN_ENABLED_U32 \
283    (SI32_LCD_A_CONFIG_HCVCBYPEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_HCVCBYPEN_SHIFT)
284 
285 #define SI32_LCD_A_CONFIG_HCVCFOEN_MASK  0x02000000
286 #define SI32_LCD_A_CONFIG_HCVCFOEN_SHIFT  25
287 // Hardware enables the high-contrast-voltage comparator as needed.
288 #define SI32_LCD_A_CONFIG_HCVCFOEN_DISABLED_VALUE  0
289 #define SI32_LCD_A_CONFIG_HCVCFOEN_DISABLED_U32 \
290    (SI32_LCD_A_CONFIG_HCVCFOEN_DISABLED_VALUE << SI32_LCD_A_CONFIG_HCVCFOEN_SHIFT)
291 // High-contrast-voltage comparator force on enabled.
292 #define SI32_LCD_A_CONFIG_HCVCFOEN_ENABLED_VALUE  1
293 #define SI32_LCD_A_CONFIG_HCVCFOEN_ENABLED_U32 \
294    (SI32_LCD_A_CONFIG_HCVCFOEN_ENABLED_VALUE << SI32_LCD_A_CONFIG_HCVCFOEN_SHIFT)
295 
296 #define SI32_LCD_A_CONFIG_HCVCHMD_MASK  0x04000000
297 #define SI32_LCD_A_CONFIG_HCVCHMD_SHIFT  26
298 // Set the high-contrast-voltage comparator to high-hysteresis mode. This is the
299 // recommended setting.
300 #define SI32_LCD_A_CONFIG_HCVCHMD_HIGH_VALUE  0
301 #define SI32_LCD_A_CONFIG_HCVCHMD_HIGH_U32 \
302    (SI32_LCD_A_CONFIG_HCVCHMD_HIGH_VALUE << SI32_LCD_A_CONFIG_HCVCHMD_SHIFT)
303 // Set the high-contrast-voltage comparator to low-hysteresis mode.
304 #define SI32_LCD_A_CONFIG_HCVCHMD_LOW_VALUE  1
305 #define SI32_LCD_A_CONFIG_HCVCHMD_LOW_U32 \
306    (SI32_LCD_A_CONFIG_HCVCHMD_LOW_VALUE << SI32_LCD_A_CONFIG_HCVCHMD_SHIFT)
307 
308 #define SI32_LCD_A_CONFIG_HCVCBMD_MASK  0x08000000
309 #define SI32_LCD_A_CONFIG_HCVCBMD_SHIFT  27
310 // Set the high-contrast-voltage comparator to high bias mode.
311 #define SI32_LCD_A_CONFIG_HCVCBMD_HIGH_VALUE  0
312 #define SI32_LCD_A_CONFIG_HCVCBMD_HIGH_U32 \
313    (SI32_LCD_A_CONFIG_HCVCBMD_HIGH_VALUE << SI32_LCD_A_CONFIG_HCVCBMD_SHIFT)
314 // Set the high-contrast-voltage comparator to low-bias mode. This is the
315 // recommended setting.
316 #define SI32_LCD_A_CONFIG_HCVCBMD_LOW_VALUE  1
317 #define SI32_LCD_A_CONFIG_HCVCBMD_LOW_U32 \
318    (SI32_LCD_A_CONFIG_HCVCBMD_LOW_VALUE << SI32_LCD_A_CONFIG_HCVCBMD_SHIFT)
319 
320 #define SI32_LCD_A_CONFIG_CPCS_MASK  0x40000000
321 #define SI32_LCD_A_CONFIG_CPCS_SHIFT  30
322 // VBAT is greater than VLCD.
323 #define SI32_LCD_A_CONFIG_CPCS_VBAT_VALUE  0
324 #define SI32_LCD_A_CONFIG_CPCS_VBAT_U32 \
325    (SI32_LCD_A_CONFIG_CPCS_VBAT_VALUE << SI32_LCD_A_CONFIG_CPCS_SHIFT)
326 // VLCD is greater than VBAT.
327 #define SI32_LCD_A_CONFIG_CPCS_VLCD_VALUE  1
328 #define SI32_LCD_A_CONFIG_CPCS_VLCD_U32 \
329    (SI32_LCD_A_CONFIG_CPCS_VLCD_VALUE << SI32_LCD_A_CONFIG_CPCS_SHIFT)
330 
331 
332 
333 struct SI32_LCD_A_CLKCONTROL_Struct
334 {
335    union
336    {
337       struct
338       {
339          // Clock Divider
340          volatile uint32_t CLKDIV: 10;
341                   uint32_t reserved0: 18;
342          // RTC Input Clock Divider
343          volatile uint32_t RTCCLKDIV: 2;
344                   uint32_t reserved1: 2;
345       };
346       volatile uint32_t U32;
347    };
348 };
349 
350 #define SI32_LCD_A_CLKCONTROL_CLKDIV_MASK  0x000003FF
351 #define SI32_LCD_A_CLKCONTROL_CLKDIV_SHIFT  0
352 
353 #define SI32_LCD_A_CLKCONTROL_RTCCLKDIV_MASK  0x30000000
354 #define SI32_LCD_A_CLKCONTROL_RTCCLKDIV_SHIFT  28
355 #define SI32_LCD_A_CLKCONTROL_RTCCLKDIV_DIVIDE_BY_1_VALUE  0
356 #define SI32_LCD_A_CLKCONTROL_RTCCLKDIV_DIVIDE_BY_1_U32 \
357    (SI32_LCD_A_CLKCONTROL_RTCCLKDIV_DIVIDE_BY_1_VALUE << SI32_LCD_A_CLKCONTROL_RTCCLKDIV_SHIFT)
358 #define SI32_LCD_A_CLKCONTROL_RTCCLKDIV_DIVIDE_BY_2_VALUE  1
359 #define SI32_LCD_A_CLKCONTROL_RTCCLKDIV_DIVIDE_BY_2_U32 \
360    (SI32_LCD_A_CLKCONTROL_RTCCLKDIV_DIVIDE_BY_2_VALUE << SI32_LCD_A_CLKCONTROL_RTCCLKDIV_SHIFT)
361 #define SI32_LCD_A_CLKCONTROL_RTCCLKDIV_DIVIDE_BY_4_VALUE  2
362 #define SI32_LCD_A_CLKCONTROL_RTCCLKDIV_DIVIDE_BY_4_U32 \
363    (SI32_LCD_A_CLKCONTROL_RTCCLKDIV_DIVIDE_BY_4_VALUE << SI32_LCD_A_CLKCONTROL_RTCCLKDIV_SHIFT)
364 #define SI32_LCD_A_CLKCONTROL_RTCCLKDIV_DIVIDE_BY_8_VALUE  3
365 #define SI32_LCD_A_CLKCONTROL_RTCCLKDIV_DIVIDE_BY_8_U32 \
366    (SI32_LCD_A_CLKCONTROL_RTCCLKDIV_DIVIDE_BY_8_VALUE << SI32_LCD_A_CLKCONTROL_RTCCLKDIV_SHIFT)
367 
368 
369 
370 struct SI32_LCD_A_BLKCONTROL_Struct
371 {
372    union
373    {
374       struct
375       {
376          // Hardware Blinking Enable
377          volatile uint8_t BLKMASK;
378          // Hardware Blinking Rate Divider Exponent
379          volatile uint32_t BLKREXP: 4;
380                   uint32_t reserved0: 20;
381       };
382       volatile uint32_t U32;
383    };
384 };
385 
386 #define SI32_LCD_A_BLKCONTROL_BLKMASK_MASK  0x000000FF
387 #define SI32_LCD_A_BLKCONTROL_BLKMASK_SHIFT  0
388 
389 #define SI32_LCD_A_BLKCONTROL_BLKREXP_MASK  0x00000F00
390 #define SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT  8
391 // Set blink rate divider to divide by 2.
392 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_2_VALUE  2
393 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_2_U32 \
394    (SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_2_VALUE << SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT)
395 // Set blink rate divider to divide by 4.
396 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_4_VALUE  3
397 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_4_U32 \
398    (SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_4_VALUE << SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT)
399 // Set blink rate divider to divide by 8.
400 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_8_VALUE  4
401 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_8_U32 \
402    (SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_8_VALUE << SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT)
403 // Set blink rate divider to divide by 16.
404 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_16_VALUE  5
405 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_16_U32 \
406    (SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_16_VALUE << SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT)
407 // Set blink rate divider to divide by 32.
408 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_32_VALUE  6
409 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_32_U32 \
410    (SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_32_VALUE << SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT)
411 // Set blink rate divider to divide by 64.
412 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_64_VALUE  7
413 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_64_U32 \
414    (SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_64_VALUE << SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT)
415 // Set blink rate divider to divide by 128.
416 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_128_VALUE  8
417 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_128_U32 \
418    (SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_128_VALUE << SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT)
419 // Set blink rate divider to divide by 256.
420 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_256_VALUE  9
421 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_256_U32 \
422    (SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_256_VALUE << SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT)
423 // Set blink rate divider to divide by 512.
424 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_512_VALUE  10
425 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_512_U32 \
426    (SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_512_VALUE << SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT)
427 // Set blink rate divider to divide by 1024.
428 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_1024_VALUE  11
429 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_1024_U32 \
430    (SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_1024_VALUE << SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT)
431 // Set blink rate divider to divide by 2048.
432 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_2048_VALUE  12
433 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_2048_U32 \
434    (SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_2048_VALUE << SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT)
435 // Set blink rate divider to divide by 4096.
436 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_4096_VALUE  13
437 #define SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_4096_U32 \
438    (SI32_LCD_A_BLKCONTROL_BLKREXP_DIVIDE_BY_4096_VALUE << SI32_LCD_A_BLKCONTROL_BLKREXP_SHIFT)
439 
440 
441 
442 struct SI32_LCD_A_SEGCONTROL_Struct
443 {
444    union
445    {
446       struct
447       {
448          // Hardware Bias Mode
449          volatile uint32_t BIASMD: 1;
450          // Segment Mode
451          volatile uint32_t SEGMD: 2;
452                   uint32_t reserved0: 1;
453          // Segment Blank Enable
454          volatile uint32_t BLANKEN: 1;
455          // Reset Phase Enable
456          volatile uint32_t RPHEN: 1;
457          // Reset Phase Mode
458          volatile uint32_t RPHMD: 3;
459                   uint32_t reserved1: 23;
460       };
461       volatile uint32_t U32;
462    };
463 };
464 
465 #define SI32_LCD_A_SEGCONTROL_BIASMD_MASK  0x00000001
466 #define SI32_LCD_A_SEGCONTROL_BIASMD_SHIFT  0
467 // Select 1/3 bias. Use for three-mux segment mode and four-mux segment mode.
468 #define SI32_LCD_A_SEGCONTROL_BIASMD_ONE_THIRD_VALUE  0
469 #define SI32_LCD_A_SEGCONTROL_BIASMD_ONE_THIRD_U32 \
470    (SI32_LCD_A_SEGCONTROL_BIASMD_ONE_THIRD_VALUE << SI32_LCD_A_SEGCONTROL_BIASMD_SHIFT)
471 // Select 1/2 bias. Use for two-mux segment mode.
472 #define SI32_LCD_A_SEGCONTROL_BIASMD_ONE_HALF_VALUE  1
473 #define SI32_LCD_A_SEGCONTROL_BIASMD_ONE_HALF_U32 \
474    (SI32_LCD_A_SEGCONTROL_BIASMD_ONE_HALF_VALUE << SI32_LCD_A_SEGCONTROL_BIASMD_SHIFT)
475 
476 #define SI32_LCD_A_SEGCONTROL_SEGMD_MASK  0x00000006
477 #define SI32_LCD_A_SEGCONTROL_SEGMD_SHIFT  1
478 // Select static segment mode with one common COMn.0 used.
479 #define SI32_LCD_A_SEGCONTROL_SEGMD_STATIC_VALUE  0
480 #define SI32_LCD_A_SEGCONTROL_SEGMD_STATIC_U32 \
481    (SI32_LCD_A_SEGCONTROL_SEGMD_STATIC_VALUE << SI32_LCD_A_SEGCONTROL_SEGMD_SHIFT)
482 // Select two-mux segment mode with two commons (COMn.0 and COMn.1) used.
483 #define SI32_LCD_A_SEGCONTROL_SEGMD_2_MUX_VALUE  1
484 #define SI32_LCD_A_SEGCONTROL_SEGMD_2_MUX_U32 \
485    (SI32_LCD_A_SEGCONTROL_SEGMD_2_MUX_VALUE << SI32_LCD_A_SEGCONTROL_SEGMD_SHIFT)
486 // Select three-mux segment mode with three commons (COMn.0, COMn.1, COMn.2) used.
487 #define SI32_LCD_A_SEGCONTROL_SEGMD_3_MUX_VALUE  2
488 #define SI32_LCD_A_SEGCONTROL_SEGMD_3_MUX_U32 \
489    (SI32_LCD_A_SEGCONTROL_SEGMD_3_MUX_VALUE << SI32_LCD_A_SEGCONTROL_SEGMD_SHIFT)
490 // Select four-mux segment mode with four commons (COMn.0, COMn.1, COMn.2 and
491 // COMn.3) used.
492 #define SI32_LCD_A_SEGCONTROL_SEGMD_4_MUX_VALUE  3
493 #define SI32_LCD_A_SEGCONTROL_SEGMD_4_MUX_U32 \
494    (SI32_LCD_A_SEGCONTROL_SEGMD_4_MUX_VALUE << SI32_LCD_A_SEGCONTROL_SEGMD_SHIFT)
495 
496 #define SI32_LCD_A_SEGCONTROL_BLANKEN_MASK  0x00000010
497 #define SI32_LCD_A_SEGCONTROL_BLANKEN_SHIFT  4
498 // Operate segments normally.
499 #define SI32_LCD_A_SEGCONTROL_BLANKEN_DISABLED_VALUE  0
500 #define SI32_LCD_A_SEGCONTROL_BLANKEN_DISABLED_U32 \
501    (SI32_LCD_A_SEGCONTROL_BLANKEN_DISABLED_VALUE << SI32_LCD_A_SEGCONTROL_BLANKEN_SHIFT)
502 // Blank the LCD by disabling all LCD segment and common pins.
503 #define SI32_LCD_A_SEGCONTROL_BLANKEN_ENABLED_VALUE  1
504 #define SI32_LCD_A_SEGCONTROL_BLANKEN_ENABLED_U32 \
505    (SI32_LCD_A_SEGCONTROL_BLANKEN_ENABLED_VALUE << SI32_LCD_A_SEGCONTROL_BLANKEN_SHIFT)
506 
507 #define SI32_LCD_A_SEGCONTROL_RPHEN_MASK  0x00000020
508 #define SI32_LCD_A_SEGCONTROL_RPHEN_SHIFT  5
509 // Hardware switches the LCD segment and common pin controls directly from one
510 // state to another.
511 #define SI32_LCD_A_SEGCONTROL_RPHEN_DISABLED_VALUE  0
512 #define SI32_LCD_A_SEGCONTROL_RPHEN_DISABLED_U32 \
513    (SI32_LCD_A_SEGCONTROL_RPHEN_DISABLED_VALUE << SI32_LCD_A_SEGCONTROL_RPHEN_SHIFT)
514 // Hardware switches the LCD segment and common pin controls to intermediate states
515 // for several RTC clock cycles before switching to the next state.
516 #define SI32_LCD_A_SEGCONTROL_RPHEN_ENABLED_VALUE  1
517 #define SI32_LCD_A_SEGCONTROL_RPHEN_ENABLED_U32 \
518    (SI32_LCD_A_SEGCONTROL_RPHEN_ENABLED_VALUE << SI32_LCD_A_SEGCONTROL_RPHEN_SHIFT)
519 
520 #define SI32_LCD_A_SEGCONTROL_RPHMD_MASK  0x000001C0
521 #define SI32_LCD_A_SEGCONTROL_RPHMD_SHIFT  6
522 
523 
524 
525 struct SI32_LCD_A_CTRSTCONTROL_Struct
526 {
527    union
528    {
529       struct
530       {
531          // Contrast Voltage
532          volatile uint32_t CTRST: 5;
533                   uint32_t reserved0: 11;
534          // Contrast Busy Flag
535          volatile uint32_t CTRSTBF: 1;
536                   uint32_t reserved1: 12;
537          // Charge Pump Capacitor Divider Enable
538          volatile uint32_t CPCDEN: 1;
539                   uint32_t reserved2: 2;
540       };
541       volatile uint32_t U32;
542    };
543 };
544 
545 #define SI32_LCD_A_CTRSTCONTROL_CTRST_MASK  0x0000001F
546 #define SI32_LCD_A_CTRSTCONTROL_CTRST_SHIFT  0
547 
548 #define SI32_LCD_A_CTRSTCONTROL_CTRSTBF_MASK  0x00010000
549 #define SI32_LCD_A_CTRSTCONTROL_CTRSTBF_SHIFT  16
550 // An update of the internal contrast registers is not in progress.
551 #define SI32_LCD_A_CTRSTCONTROL_CTRSTBF_NOT_SET_VALUE  0
552 #define SI32_LCD_A_CTRSTCONTROL_CTRSTBF_NOT_SET_U32 \
553    (SI32_LCD_A_CTRSTCONTROL_CTRSTBF_NOT_SET_VALUE << SI32_LCD_A_CTRSTCONTROL_CTRSTBF_SHIFT)
554 // The internal contrast registers are busy updating.
555 #define SI32_LCD_A_CTRSTCONTROL_CTRSTBF_SET_VALUE  1
556 #define SI32_LCD_A_CTRSTCONTROL_CTRSTBF_SET_U32 \
557    (SI32_LCD_A_CTRSTCONTROL_CTRSTBF_SET_VALUE << SI32_LCD_A_CTRSTCONTROL_CTRSTBF_SHIFT)
558 
559 #define SI32_LCD_A_CTRSTCONTROL_CPCDEN_MASK  0x20000000
560 #define SI32_LCD_A_CTRSTCONTROL_CPCDEN_SHIFT  29
561 // Disable the charge pump capacitor divider.
562 #define SI32_LCD_A_CTRSTCONTROL_CPCDEN_DISABLED_VALUE  0
563 #define SI32_LCD_A_CTRSTCONTROL_CPCDEN_DISABLED_U32 \
564    (SI32_LCD_A_CTRSTCONTROL_CPCDEN_DISABLED_VALUE << SI32_LCD_A_CTRSTCONTROL_CPCDEN_SHIFT)
565 // Enable the charge pump capacitor divider.
566 #define SI32_LCD_A_CTRSTCONTROL_CPCDEN_ENABLED_VALUE  1
567 #define SI32_LCD_A_CTRSTCONTROL_CPCDEN_ENABLED_U32 \
568    (SI32_LCD_A_CTRSTCONTROL_CPCDEN_ENABLED_VALUE << SI32_LCD_A_CTRSTCONTROL_CPCDEN_SHIFT)
569 
570 
571 
572 struct SI32_LCD_A_VBMCONTROL_Struct
573 {
574    union
575    {
576       struct
577       {
578          // VBAT Monitor Threshold
579          volatile uint32_t VBMTH: 5;
580                   uint32_t reserved0: 11;
581          // VBAT Monitor Busy Flag
582          volatile uint32_t VBMBF: 1;
583                   uint32_t reserved1: 5;
584          // VBAT Monitor Clock Divider
585          volatile uint32_t VBMCLKDIV: 3;
586                   uint32_t reserved2: 4;
587          // VBAT Monitor Capacitor Divider Enable
588          volatile uint32_t VBMCDEN: 1;
589          // VBAT Monitor Offset Enable
590          volatile uint32_t VBMOEN: 1;
591          // VBAT Monitor Enable
592          volatile uint32_t VBMEN: 1;
593       };
594       volatile uint32_t U32;
595    };
596 };
597 
598 #define SI32_LCD_A_VBMCONTROL_VBMTH_MASK  0x0000001F
599 #define SI32_LCD_A_VBMCONTROL_VBMTH_SHIFT  0
600 
601 #define SI32_LCD_A_VBMCONTROL_VBMBF_MASK  0x00010000
602 #define SI32_LCD_A_VBMCONTROL_VBMBF_SHIFT  16
603 // An update of the internal VBAT monitor registers is not in progress.
604 #define SI32_LCD_A_VBMCONTROL_VBMBF_NOT_SET_VALUE  0
605 #define SI32_LCD_A_VBMCONTROL_VBMBF_NOT_SET_U32 \
606    (SI32_LCD_A_VBMCONTROL_VBMBF_NOT_SET_VALUE << SI32_LCD_A_VBMCONTROL_VBMBF_SHIFT)
607 // The internal VBAT monitor registers are busy updating.
608 #define SI32_LCD_A_VBMCONTROL_VBMBF_SET_VALUE  1
609 #define SI32_LCD_A_VBMCONTROL_VBMBF_SET_U32 \
610    (SI32_LCD_A_VBMCONTROL_VBMBF_SET_VALUE << SI32_LCD_A_VBMCONTROL_VBMBF_SHIFT)
611 
612 #define SI32_LCD_A_VBMCONTROL_VBMCLKDIV_MASK  0x01C00000
613 #define SI32_LCD_A_VBMCONTROL_VBMCLKDIV_SHIFT  22
614 
615 #define SI32_LCD_A_VBMCONTROL_VBMCDEN_MASK  0x20000000
616 #define SI32_LCD_A_VBMCONTROL_VBMCDEN_SHIFT  29
617 // Disable the VBAT monitor capacitor divider.
618 #define SI32_LCD_A_VBMCONTROL_VBMCDEN_DISABLED_VALUE  0
619 #define SI32_LCD_A_VBMCONTROL_VBMCDEN_DISABLED_U32 \
620    (SI32_LCD_A_VBMCONTROL_VBMCDEN_DISABLED_VALUE << SI32_LCD_A_VBMCONTROL_VBMCDEN_SHIFT)
621 // Enable the VBAT monitor capacitor divider.
622 #define SI32_LCD_A_VBMCONTROL_VBMCDEN_ENABLED_VALUE  1
623 #define SI32_LCD_A_VBMCONTROL_VBMCDEN_ENABLED_U32 \
624    (SI32_LCD_A_VBMCONTROL_VBMCDEN_ENABLED_VALUE << SI32_LCD_A_VBMCONTROL_VBMCDEN_SHIFT)
625 
626 #define SI32_LCD_A_VBMCONTROL_VBMOEN_MASK  0x40000000
627 #define SI32_LCD_A_VBMCONTROL_VBMOEN_SHIFT  30
628 // The VBAT monitor threshold set by the VBMTH field functions as an absolute
629 // threshold value for the VBAT monitor.
630 #define SI32_LCD_A_VBMCONTROL_VBMOEN_DISABLED_VALUE  0
631 #define SI32_LCD_A_VBMCONTROL_VBMOEN_DISABLED_U32 \
632    (SI32_LCD_A_VBMCONTROL_VBMOEN_DISABLED_VALUE << SI32_LCD_A_VBMCONTROL_VBMOEN_SHIFT)
633 // The VBAT monitor threshold set by the VBMTH field functions as an offset to the
634 // LCD contrast value set by CTRSTMD.
635 #define SI32_LCD_A_VBMCONTROL_VBMOEN_ENABLED_VALUE  1
636 #define SI32_LCD_A_VBMCONTROL_VBMOEN_ENABLED_U32 \
637    (SI32_LCD_A_VBMCONTROL_VBMOEN_ENABLED_VALUE << SI32_LCD_A_VBMCONTROL_VBMOEN_SHIFT)
638 
639 #define SI32_LCD_A_VBMCONTROL_VBMEN_MASK  0x80000000
640 #define SI32_LCD_A_VBMCONTROL_VBMEN_SHIFT  31
641 // Disable the VBAT monitor.
642 #define SI32_LCD_A_VBMCONTROL_VBMEN_DISABLED_VALUE  0U
643 #define SI32_LCD_A_VBMCONTROL_VBMEN_DISABLED_U32 \
644    (SI32_LCD_A_VBMCONTROL_VBMEN_DISABLED_VALUE << SI32_LCD_A_VBMCONTROL_VBMEN_SHIFT)
645 // Enable the VBAT monitor.
646 #define SI32_LCD_A_VBMCONTROL_VBMEN_ENABLED_VALUE  1U
647 #define SI32_LCD_A_VBMCONTROL_VBMEN_ENABLED_U32 \
648    (SI32_LCD_A_VBMCONTROL_VBMEN_ENABLED_VALUE << SI32_LCD_A_VBMCONTROL_VBMEN_SHIFT)
649 
650 
651 
652 struct SI32_LCD_A_SEGMASK0_Struct
653 {
654    union
655    {
656       struct
657       {
658          // Segment Enable
659          volatile uint32_t SEGEN;
660       };
661       volatile uint32_t U32;
662    };
663 };
664 
665 #define SI32_LCD_A_SEGMASK0_SEGEN_MASK  0xFFFFFFFF
666 #define SI32_LCD_A_SEGMASK0_SEGEN_SHIFT  0
667 
668 
669 
670 struct SI32_LCD_A_SEGMASK1_Struct
671 {
672    union
673    {
674       struct
675       {
676          // Segment Enable
677          volatile uint8_t SEGEN;
678                   uint32_t reserved0: 24;
679       };
680       volatile uint32_t U32;
681    };
682 };
683 
684 #define SI32_LCD_A_SEGMASK1_SEGEN_MASK  0x000000FF
685 #define SI32_LCD_A_SEGMASK1_SEGEN_SHIFT  0
686 
687 
688 
689 struct SI32_LCD_A_SEGDATA0_Struct
690 {
691    union
692    {
693       // This is a Union register
694       volatile uint8_t  U8[4];
695       volatile uint16_t U16[2];
696       volatile uint32_t U32;
697    };
698 };
699 
700 #define SI32_LCD_A_SEGDATA0_SEGPIN0_MASK  0x0000000F
701 #define SI32_LCD_A_SEGDATA0_SEGPIN0_SHIFT  0
702 
703 #define SI32_LCD_A_SEGDATA0_SEGPIN1_MASK  0x000000F0
704 #define SI32_LCD_A_SEGDATA0_SEGPIN1_SHIFT  4
705 
706 #define SI32_LCD_A_SEGDATA0_SEGPIN2_MASK  0x00000F00
707 #define SI32_LCD_A_SEGDATA0_SEGPIN2_SHIFT  8
708 
709 #define SI32_LCD_A_SEGDATA0_SEGPIN3_MASK  0x0000F000
710 #define SI32_LCD_A_SEGDATA0_SEGPIN3_SHIFT  12
711 
712 #define SI32_LCD_A_SEGDATA0_SEGPIN4_MASK  0x000F0000
713 #define SI32_LCD_A_SEGDATA0_SEGPIN4_SHIFT  16
714 
715 #define SI32_LCD_A_SEGDATA0_SEGPIN5_MASK  0x00F00000
716 #define SI32_LCD_A_SEGDATA0_SEGPIN5_SHIFT  20
717 
718 #define SI32_LCD_A_SEGDATA0_SEGPIN6_MASK  0x0F000000
719 #define SI32_LCD_A_SEGDATA0_SEGPIN6_SHIFT  24
720 
721 #define SI32_LCD_A_SEGDATA0_SEGPIN7_MASK  0xF0000000
722 #define SI32_LCD_A_SEGDATA0_SEGPIN7_SHIFT  28
723 
724 
725 
726 struct SI32_LCD_A_SEGDATA1_Struct
727 {
728    union
729    {
730       // This is a Union register
731       volatile uint8_t  U8[4];
732       volatile uint16_t U16[2];
733       volatile uint32_t U32;
734    };
735 };
736 
737 #define SI32_LCD_A_SEGDATA1_SEGPIN8_MASK  0x0000000F
738 #define SI32_LCD_A_SEGDATA1_SEGPIN8_SHIFT  0
739 
740 #define SI32_LCD_A_SEGDATA1_SEGPIN9_MASK  0x000000F0
741 #define SI32_LCD_A_SEGDATA1_SEGPIN9_SHIFT  4
742 
743 #define SI32_LCD_A_SEGDATA1_SEGPIN10_MASK  0x00000F00
744 #define SI32_LCD_A_SEGDATA1_SEGPIN10_SHIFT  8
745 
746 #define SI32_LCD_A_SEGDATA1_SEGPIN11_MASK  0x0000F000
747 #define SI32_LCD_A_SEGDATA1_SEGPIN11_SHIFT  12
748 
749 #define SI32_LCD_A_SEGDATA1_SEGPIN12_MASK  0x000F0000
750 #define SI32_LCD_A_SEGDATA1_SEGPIN12_SHIFT  16
751 
752 #define SI32_LCD_A_SEGDATA1_SEGPIN13_MASK  0x00F00000
753 #define SI32_LCD_A_SEGDATA1_SEGPIN13_SHIFT  20
754 
755 #define SI32_LCD_A_SEGDATA1_SEGPIN14_MASK  0x0F000000
756 #define SI32_LCD_A_SEGDATA1_SEGPIN14_SHIFT  24
757 
758 #define SI32_LCD_A_SEGDATA1_SEGPIN15_MASK  0xF0000000
759 #define SI32_LCD_A_SEGDATA1_SEGPIN15_SHIFT  28
760 
761 
762 
763 struct SI32_LCD_A_SEGDATA2_Struct
764 {
765    union
766    {
767       // This is a Union register
768       volatile uint8_t  U8[4];
769       volatile uint16_t U16[2];
770       volatile uint32_t U32;
771    };
772 };
773 
774 #define SI32_LCD_A_SEGDATA2_SEGPIN16_MASK  0x0000000F
775 #define SI32_LCD_A_SEGDATA2_SEGPIN16_SHIFT  0
776 
777 #define SI32_LCD_A_SEGDATA2_SEGPIN17_MASK  0x000000F0
778 #define SI32_LCD_A_SEGDATA2_SEGPIN17_SHIFT  4
779 
780 #define SI32_LCD_A_SEGDATA2_SEGPIN18_MASK  0x00000F00
781 #define SI32_LCD_A_SEGDATA2_SEGPIN18_SHIFT  8
782 
783 #define SI32_LCD_A_SEGDATA2_SEGPIN19_MASK  0x0000F000
784 #define SI32_LCD_A_SEGDATA2_SEGPIN19_SHIFT  12
785 
786 #define SI32_LCD_A_SEGDATA2_SEGPIN20_MASK  0x000F0000
787 #define SI32_LCD_A_SEGDATA2_SEGPIN20_SHIFT  16
788 
789 #define SI32_LCD_A_SEGDATA2_SEGPIN21_MASK  0x00F00000
790 #define SI32_LCD_A_SEGDATA2_SEGPIN21_SHIFT  20
791 
792 #define SI32_LCD_A_SEGDATA2_SEGPIN22_MASK  0x0F000000
793 #define SI32_LCD_A_SEGDATA2_SEGPIN22_SHIFT  24
794 
795 #define SI32_LCD_A_SEGDATA2_SEGPIN23_MASK  0xF0000000
796 #define SI32_LCD_A_SEGDATA2_SEGPIN23_SHIFT  28
797 
798 
799 
800 struct SI32_LCD_A_SEGDATA3_Struct
801 {
802    union
803    {
804       // This is a Union register
805       volatile uint8_t  U8[4];
806       volatile uint16_t U16[2];
807       volatile uint32_t U32;
808    };
809 };
810 
811 #define SI32_LCD_A_SEGDATA3_SEGPIN24_MASK  0x0000000F
812 #define SI32_LCD_A_SEGDATA3_SEGPIN24_SHIFT  0
813 
814 #define SI32_LCD_A_SEGDATA3_SEGPIN25_MASK  0x000000F0
815 #define SI32_LCD_A_SEGDATA3_SEGPIN25_SHIFT  4
816 
817 #define SI32_LCD_A_SEGDATA3_SEGPIN26_MASK  0x00000F00
818 #define SI32_LCD_A_SEGDATA3_SEGPIN26_SHIFT  8
819 
820 #define SI32_LCD_A_SEGDATA3_SEGPIN27_MASK  0x0000F000
821 #define SI32_LCD_A_SEGDATA3_SEGPIN27_SHIFT  12
822 
823 #define SI32_LCD_A_SEGDATA3_SEGPIN28_MASK  0x000F0000
824 #define SI32_LCD_A_SEGDATA3_SEGPIN28_SHIFT  16
825 
826 #define SI32_LCD_A_SEGDATA3_SEGPIN29_MASK  0x00F00000
827 #define SI32_LCD_A_SEGDATA3_SEGPIN29_SHIFT  20
828 
829 #define SI32_LCD_A_SEGDATA3_SEGPIN30_MASK  0x0F000000
830 #define SI32_LCD_A_SEGDATA3_SEGPIN30_SHIFT  24
831 
832 #define SI32_LCD_A_SEGDATA3_SEGPIN31_MASK  0xF0000000
833 #define SI32_LCD_A_SEGDATA3_SEGPIN31_SHIFT  28
834 
835 
836 
837 struct SI32_LCD_A_SEGDATA4_Struct
838 {
839    union
840    {
841       // This is a Union register
842       volatile uint8_t  U8[4];
843       volatile uint16_t U16[2];
844       volatile uint32_t U32;
845    };
846 };
847 
848 #define SI32_LCD_A_SEGDATA4_SEGPIN32_MASK  0x0000000F
849 #define SI32_LCD_A_SEGDATA4_SEGPIN32_SHIFT  0
850 
851 #define SI32_LCD_A_SEGDATA4_SEGPIN33_MASK  0x000000F0
852 #define SI32_LCD_A_SEGDATA4_SEGPIN33_SHIFT  4
853 
854 #define SI32_LCD_A_SEGDATA4_SEGPIN34_MASK  0x00000F00
855 #define SI32_LCD_A_SEGDATA4_SEGPIN34_SHIFT  8
856 
857 #define SI32_LCD_A_SEGDATA4_SEGPIN35_MASK  0x0000F000
858 #define SI32_LCD_A_SEGDATA4_SEGPIN35_SHIFT  12
859 
860 #define SI32_LCD_A_SEGDATA4_SEGPIN36_MASK  0x000F0000
861 #define SI32_LCD_A_SEGDATA4_SEGPIN36_SHIFT  16
862 
863 #define SI32_LCD_A_SEGDATA4_SEGPIN37_MASK  0x00F00000
864 #define SI32_LCD_A_SEGDATA4_SEGPIN37_SHIFT  20
865 
866 #define SI32_LCD_A_SEGDATA4_SEGPIN38_MASK  0x0F000000
867 #define SI32_LCD_A_SEGDATA4_SEGPIN38_SHIFT  24
868 
869 #define SI32_LCD_A_SEGDATA4_SEGPIN39_MASK  0xF0000000
870 #define SI32_LCD_A_SEGDATA4_SEGPIN39_SHIFT  28
871 
872 
873 
874 typedef struct SI32_LCD_A_Struct
875 {
876    struct SI32_LCD_A_CONFIG_Struct                 CONFIG         ; // Base Address + 0x0
877    volatile uint32_t                               CONFIG_SET;
878    volatile uint32_t                               CONFIG_CLR;
879    uint32_t                                        reserved0;
880    uint32_t                                        reserved1[4];
881    struct SI32_LCD_A_CLKCONTROL_Struct             CLKCONTROL     ; // Base Address + 0x20
882    uint32_t                                        reserved2;
883    uint32_t                                        reserved3;
884    uint32_t                                        reserved4;
885    struct SI32_LCD_A_BLKCONTROL_Struct             BLKCONTROL     ; // Base Address + 0x30
886    uint32_t                                        reserved5;
887    uint32_t                                        reserved6;
888    uint32_t                                        reserved7;
889    struct SI32_LCD_A_SEGCONTROL_Struct             SEGCONTROL     ; // Base Address + 0x40
890    uint32_t                                        reserved8;
891    uint32_t                                        reserved9;
892    uint32_t                                        reserved10;
893    uint32_t                                        reserved11[4];
894    struct SI32_LCD_A_CTRSTCONTROL_Struct           CTRSTCONTROL   ; // Base Address + 0x60
895    uint32_t                                        reserved12;
896    uint32_t                                        reserved13;
897    uint32_t                                        reserved14;
898    struct SI32_LCD_A_VBMCONTROL_Struct             VBMCONTROL     ; // Base Address + 0x70
899    uint32_t                                        reserved15;
900    uint32_t                                        reserved16;
901    uint32_t                                        reserved17;
902    struct SI32_LCD_A_SEGMASK0_Struct               SEGMASK0       ; // Base Address + 0x80
903    volatile uint32_t                               SEGMASK0_SET;
904    volatile uint32_t                               SEGMASK0_CLR;
905    uint32_t                                        reserved18;
906    struct SI32_LCD_A_SEGMASK1_Struct               SEGMASK1       ; // Base Address + 0x90
907    volatile uint32_t                               SEGMASK1_SET;
908    volatile uint32_t                               SEGMASK1_CLR;
909    uint32_t                                        reserved19;
910    struct SI32_LCD_A_SEGDATA0_Struct               SEGDATA0       ; // Base Address + 0xa0
911    uint32_t                                        reserved20;
912    uint32_t                                        reserved21;
913    uint32_t                                        reserved22;
914    struct SI32_LCD_A_SEGDATA1_Struct               SEGDATA1       ; // Base Address + 0xb0
915    uint32_t                                        reserved23;
916    uint32_t                                        reserved24;
917    uint32_t                                        reserved25;
918    struct SI32_LCD_A_SEGDATA2_Struct               SEGDATA2       ; // Base Address + 0xc0
919    uint32_t                                        reserved26;
920    uint32_t                                        reserved27;
921    uint32_t                                        reserved28;
922    struct SI32_LCD_A_SEGDATA3_Struct               SEGDATA3       ; // Base Address + 0xd0
923    uint32_t                                        reserved29;
924    uint32_t                                        reserved30;
925    uint32_t                                        reserved31;
926    struct SI32_LCD_A_SEGDATA4_Struct               SEGDATA4       ; // Base Address + 0xe0
927    uint32_t                                        reserved32;
928    uint32_t                                        reserved33;
929    uint32_t                                        reserved34;
930    uint32_t                                        reserved35[4];
931    uint32_t                                        reserved36[4];
932 } SI32_LCD_A_Type;
933 
934 #ifdef __cplusplus
935 }
936 #endif
937 
938 #endif // __SI32_LCD_A_REGISTERS_H__
939 
940 //-eof--------------------------------------------------------------------------
941 
942