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_RTC_A_REGISTERS_H__ 27 #define __SI32_RTC_A_REGISTERS_H__ 28 29 #include <stdint.h> 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 struct SI32_RTC_A_CONFIG_Struct 36 { 37 union 38 { 39 struct 40 { 41 // Alarm 0 Automatic Reset Enable 42 volatile uint32_t ALM0AREN: 1; 43 // RTC Timer Run Control 44 volatile uint32_t RUN: 1; 45 // Missing Clock Detector Enable 46 volatile uint32_t MCLKEN: 1; 47 // Automatic Crystal Load Capacitance Stepping Enable 48 volatile uint32_t ASEN: 1; 49 // Load Capacitance Value 50 volatile uint32_t RTCLC: 4; 51 uint32_t reserved0: 8; 52 // Bias Doubler Enable 53 volatile uint32_t BDEN: 1; 54 // Crystal Oscillator Enable 55 volatile uint32_t CRYSEN: 1; 56 // Automatic Gain Control Enable 57 volatile uint32_t AGCEN: 1; 58 uint32_t reserved1: 5; 59 // Alarm 0 Enable 60 volatile uint32_t ALM0EN: 1; 61 // Alarm 1 Enable 62 volatile uint32_t ALM1EN: 1; 63 // Alarm 2 Enable 64 volatile uint32_t ALM2EN: 1; 65 uint32_t reserved2: 2; 66 // RTC0 External Output Enable 67 volatile uint32_t RTCOEN: 1; 68 // RTC Timer Clock Select 69 volatile uint32_t CLKSEL: 1; 70 // RTC Timer Enable 71 volatile uint32_t RTCEN: 1; 72 }; 73 volatile uint32_t U32; 74 }; 75 }; 76 77 #define SI32_RTC_A_CONFIG_ALM0AREN_MASK 0x00000001 78 #define SI32_RTC_A_CONFIG_ALM0AREN_SHIFT 0 79 // Disable the Alarm 0 automatic reset. 80 #define SI32_RTC_A_CONFIG_ALM0AREN_DISABLED_VALUE 0 81 #define SI32_RTC_A_CONFIG_ALM0AREN_DISABLED_U32 \ 82 (SI32_RTC_A_CONFIG_ALM0AREN_DISABLED_VALUE << SI32_RTC_A_CONFIG_ALM0AREN_SHIFT) 83 // Enable the Alarm 0 automatic reset. 84 #define SI32_RTC_A_CONFIG_ALM0AREN_ENABLED_VALUE 1 85 #define SI32_RTC_A_CONFIG_ALM0AREN_ENABLED_U32 \ 86 (SI32_RTC_A_CONFIG_ALM0AREN_ENABLED_VALUE << SI32_RTC_A_CONFIG_ALM0AREN_SHIFT) 87 88 #define SI32_RTC_A_CONFIG_RUN_MASK 0x00000002 89 #define SI32_RTC_A_CONFIG_RUN_SHIFT 1 90 // Stop the RTC timer. 91 #define SI32_RTC_A_CONFIG_RUN_STOP_VALUE 0 92 #define SI32_RTC_A_CONFIG_RUN_STOP_U32 \ 93 (SI32_RTC_A_CONFIG_RUN_STOP_VALUE << SI32_RTC_A_CONFIG_RUN_SHIFT) 94 // Start the RTC timer running. 95 #define SI32_RTC_A_CONFIG_RUN_START_VALUE 1 96 #define SI32_RTC_A_CONFIG_RUN_START_U32 \ 97 (SI32_RTC_A_CONFIG_RUN_START_VALUE << SI32_RTC_A_CONFIG_RUN_SHIFT) 98 99 #define SI32_RTC_A_CONFIG_MCLKEN_MASK 0x00000004 100 #define SI32_RTC_A_CONFIG_MCLKEN_SHIFT 2 101 // Disable the missing clock detector. 102 #define SI32_RTC_A_CONFIG_MCLKEN_DISABLED_VALUE 0 103 #define SI32_RTC_A_CONFIG_MCLKEN_DISABLED_U32 \ 104 (SI32_RTC_A_CONFIG_MCLKEN_DISABLED_VALUE << SI32_RTC_A_CONFIG_MCLKEN_SHIFT) 105 // Enable the missing clock detector. If the missing clock detector triggers, it 106 // will generate an RTC Fail event. 107 #define SI32_RTC_A_CONFIG_MCLKEN_ENABLED_VALUE 1 108 #define SI32_RTC_A_CONFIG_MCLKEN_ENABLED_U32 \ 109 (SI32_RTC_A_CONFIG_MCLKEN_ENABLED_VALUE << SI32_RTC_A_CONFIG_MCLKEN_SHIFT) 110 111 #define SI32_RTC_A_CONFIG_ASEN_MASK 0x00000008 112 #define SI32_RTC_A_CONFIG_ASEN_SHIFT 3 113 // Disable automatic load capacitance stepping. 114 #define SI32_RTC_A_CONFIG_ASEN_DISABLED_VALUE 0 115 #define SI32_RTC_A_CONFIG_ASEN_DISABLED_U32 \ 116 (SI32_RTC_A_CONFIG_ASEN_DISABLED_VALUE << SI32_RTC_A_CONFIG_ASEN_SHIFT) 117 // Enable automatic load capacitance stepping. 118 #define SI32_RTC_A_CONFIG_ASEN_ENABLED_VALUE 1 119 #define SI32_RTC_A_CONFIG_ASEN_ENABLED_U32 \ 120 (SI32_RTC_A_CONFIG_ASEN_ENABLED_VALUE << SI32_RTC_A_CONFIG_ASEN_SHIFT) 121 122 #define SI32_RTC_A_CONFIG_RTCLC_MASK 0x000000F0 123 #define SI32_RTC_A_CONFIG_RTCLC_SHIFT 4 124 125 #define SI32_RTC_A_CONFIG_BDEN_MASK 0x00010000 126 #define SI32_RTC_A_CONFIG_BDEN_SHIFT 16 127 // Disable the bias doubler, saving power. 128 #define SI32_RTC_A_CONFIG_BDEN_DISABLED_VALUE 0 129 #define SI32_RTC_A_CONFIG_BDEN_DISABLED_U32 \ 130 (SI32_RTC_A_CONFIG_BDEN_DISABLED_VALUE << SI32_RTC_A_CONFIG_BDEN_SHIFT) 131 // Enable the bias doubler. 132 #define SI32_RTC_A_CONFIG_BDEN_ENABLED_VALUE 1 133 #define SI32_RTC_A_CONFIG_BDEN_ENABLED_U32 \ 134 (SI32_RTC_A_CONFIG_BDEN_ENABLED_VALUE << SI32_RTC_A_CONFIG_BDEN_SHIFT) 135 136 #define SI32_RTC_A_CONFIG_CRYSEN_MASK 0x00020000 137 #define SI32_RTC_A_CONFIG_CRYSEN_SHIFT 17 138 // Disable the crystal oscillator circuitry. 139 #define SI32_RTC_A_CONFIG_CRYSEN_DISABLED_VALUE 0 140 #define SI32_RTC_A_CONFIG_CRYSEN_DISABLED_U32 \ 141 (SI32_RTC_A_CONFIG_CRYSEN_DISABLED_VALUE << SI32_RTC_A_CONFIG_CRYSEN_SHIFT) 142 // Enable the crystal oscillator circuitry. 143 #define SI32_RTC_A_CONFIG_CRYSEN_ENABLED_VALUE 1 144 #define SI32_RTC_A_CONFIG_CRYSEN_ENABLED_U32 \ 145 (SI32_RTC_A_CONFIG_CRYSEN_ENABLED_VALUE << SI32_RTC_A_CONFIG_CRYSEN_SHIFT) 146 147 #define SI32_RTC_A_CONFIG_AGCEN_MASK 0x00040000 148 #define SI32_RTC_A_CONFIG_AGCEN_SHIFT 18 149 // Disable automatic gain control. 150 #define SI32_RTC_A_CONFIG_AGCEN_DISABLED_VALUE 0 151 #define SI32_RTC_A_CONFIG_AGCEN_DISABLED_U32 \ 152 (SI32_RTC_A_CONFIG_AGCEN_DISABLED_VALUE << SI32_RTC_A_CONFIG_AGCEN_SHIFT) 153 // Enable automatic gain control, saving power. 154 #define SI32_RTC_A_CONFIG_AGCEN_ENABLED_VALUE 1 155 #define SI32_RTC_A_CONFIG_AGCEN_ENABLED_U32 \ 156 (SI32_RTC_A_CONFIG_AGCEN_ENABLED_VALUE << SI32_RTC_A_CONFIG_AGCEN_SHIFT) 157 158 #define SI32_RTC_A_CONFIG_ALM0EN_MASK 0x01000000 159 #define SI32_RTC_A_CONFIG_ALM0EN_SHIFT 24 160 // Disable RTC Alarm 0. 161 #define SI32_RTC_A_CONFIG_ALM0EN_DISABLED_VALUE 0 162 #define SI32_RTC_A_CONFIG_ALM0EN_DISABLED_U32 \ 163 (SI32_RTC_A_CONFIG_ALM0EN_DISABLED_VALUE << SI32_RTC_A_CONFIG_ALM0EN_SHIFT) 164 // Enable RTC Alarm 0 and Alarm 0 Interrupt. 165 #define SI32_RTC_A_CONFIG_ALM0EN_ENABLED_VALUE 1 166 #define SI32_RTC_A_CONFIG_ALM0EN_ENABLED_U32 \ 167 (SI32_RTC_A_CONFIG_ALM0EN_ENABLED_VALUE << SI32_RTC_A_CONFIG_ALM0EN_SHIFT) 168 169 #define SI32_RTC_A_CONFIG_ALM1EN_MASK 0x02000000 170 #define SI32_RTC_A_CONFIG_ALM1EN_SHIFT 25 171 // Disable RTC Alarm 1. 172 #define SI32_RTC_A_CONFIG_ALM1EN_DISABLED_VALUE 0 173 #define SI32_RTC_A_CONFIG_ALM1EN_DISABLED_U32 \ 174 (SI32_RTC_A_CONFIG_ALM1EN_DISABLED_VALUE << SI32_RTC_A_CONFIG_ALM1EN_SHIFT) 175 // Enable RTC Alarm 1 and Alarm 1 Interrupt. 176 #define SI32_RTC_A_CONFIG_ALM1EN_ENABLED_VALUE 1 177 #define SI32_RTC_A_CONFIG_ALM1EN_ENABLED_U32 \ 178 (SI32_RTC_A_CONFIG_ALM1EN_ENABLED_VALUE << SI32_RTC_A_CONFIG_ALM1EN_SHIFT) 179 180 #define SI32_RTC_A_CONFIG_ALM2EN_MASK 0x04000000 181 #define SI32_RTC_A_CONFIG_ALM2EN_SHIFT 26 182 // Disable RTC Alarm 2. 183 #define SI32_RTC_A_CONFIG_ALM2EN_DISABLED_VALUE 0 184 #define SI32_RTC_A_CONFIG_ALM2EN_DISABLED_U32 \ 185 (SI32_RTC_A_CONFIG_ALM2EN_DISABLED_VALUE << SI32_RTC_A_CONFIG_ALM2EN_SHIFT) 186 // Enable RTC Alarm 2 and Alarm 2 Interrupt. 187 #define SI32_RTC_A_CONFIG_ALM2EN_ENABLED_VALUE 1 188 #define SI32_RTC_A_CONFIG_ALM2EN_ENABLED_U32 \ 189 (SI32_RTC_A_CONFIG_ALM2EN_ENABLED_VALUE << SI32_RTC_A_CONFIG_ALM2EN_SHIFT) 190 191 #define SI32_RTC_A_CONFIG_RTCOEN_MASK 0x20000000 192 #define SI32_RTC_A_CONFIG_RTCOEN_SHIFT 29 193 // Disable the external RTCnOSC output. 194 #define SI32_RTC_A_CONFIG_RTCOEN_DISABLED_VALUE 0 195 #define SI32_RTC_A_CONFIG_RTCOEN_DISABLED_U32 \ 196 (SI32_RTC_A_CONFIG_RTCOEN_DISABLED_VALUE << SI32_RTC_A_CONFIG_RTCOEN_SHIFT) 197 // Enable the external RTCnOSC output. 198 #define SI32_RTC_A_CONFIG_RTCOEN_ENABLED_VALUE 1 199 #define SI32_RTC_A_CONFIG_RTCOEN_ENABLED_U32 \ 200 (SI32_RTC_A_CONFIG_RTCOEN_ENABLED_VALUE << SI32_RTC_A_CONFIG_RTCOEN_SHIFT) 201 202 #define SI32_RTC_A_CONFIG_CLKSEL_MASK 0x40000000 203 #define SI32_RTC_A_CONFIG_CLKSEL_SHIFT 30 204 // Select the External Crystal or External CMOS Clock as the RTC Timer clock 205 // (RTCnTCLK) source. 206 #define SI32_RTC_A_CONFIG_CLKSEL_RTCNOSC_VALUE 0 207 #define SI32_RTC_A_CONFIG_CLKSEL_RTCNOSC_U32 \ 208 (SI32_RTC_A_CONFIG_CLKSEL_RTCNOSC_VALUE << SI32_RTC_A_CONFIG_CLKSEL_SHIFT) 209 // Select the Low Frequency Oscillator as the RTC Timer clock (RTCnTCLK) source. 210 #define SI32_RTC_A_CONFIG_CLKSEL_LFOSCN_VALUE 1 211 #define SI32_RTC_A_CONFIG_CLKSEL_LFOSCN_U32 \ 212 (SI32_RTC_A_CONFIG_CLKSEL_LFOSCN_VALUE << SI32_RTC_A_CONFIG_CLKSEL_SHIFT) 213 214 #define SI32_RTC_A_CONFIG_RTCEN_MASK 0x80000000 215 #define SI32_RTC_A_CONFIG_RTCEN_SHIFT 31 216 // Disable the RTC timer. 217 #define SI32_RTC_A_CONFIG_RTCEN_DISABLED_VALUE 0U 218 #define SI32_RTC_A_CONFIG_RTCEN_DISABLED_U32 \ 219 (SI32_RTC_A_CONFIG_RTCEN_DISABLED_VALUE << SI32_RTC_A_CONFIG_RTCEN_SHIFT) 220 // Enable the RTC timer. 221 #define SI32_RTC_A_CONFIG_RTCEN_ENABLED_VALUE 1U 222 #define SI32_RTC_A_CONFIG_RTCEN_ENABLED_U32 \ 223 (SI32_RTC_A_CONFIG_RTCEN_ENABLED_VALUE << SI32_RTC_A_CONFIG_RTCEN_SHIFT) 224 225 226 227 struct SI32_RTC_A_CONTROL_Struct 228 { 229 union 230 { 231 struct 232 { 233 // Alarm 0 Interrupt Flag 234 volatile uint32_t ALM0I: 1; 235 // Alarm 1 Interrupt Flag 236 volatile uint32_t ALM1I: 1; 237 // Alarm 2 Interrupt Flag 238 volatile uint32_t ALM2I: 1; 239 // RTC Timer Capture 240 volatile uint32_t TMRCAP: 1; 241 // RTC Timer Set 242 volatile uint32_t TMRSET: 1; 243 // RTC External Oscillator Valid Flag 244 volatile uint32_t CLKVF: 1; 245 // RTC Oscillator Fail Interrupt Flag 246 volatile uint32_t OSCFI: 1; 247 // RTC High Speed Mode Enable 248 volatile uint32_t HSMDEN: 1; 249 // RTC Load Capacitance Ready Flag 250 volatile uint32_t LRDYF: 1; 251 uint32_t reserved0: 23; 252 }; 253 volatile uint32_t U32; 254 }; 255 }; 256 257 #define SI32_RTC_A_CONTROL_ALM0I_MASK 0x00000001 258 #define SI32_RTC_A_CONTROL_ALM0I_SHIFT 0 259 // Alarm 0 event has not occurred. 260 #define SI32_RTC_A_CONTROL_ALM0I_NOT_SET_VALUE 0 261 #define SI32_RTC_A_CONTROL_ALM0I_NOT_SET_U32 \ 262 (SI32_RTC_A_CONTROL_ALM0I_NOT_SET_VALUE << SI32_RTC_A_CONTROL_ALM0I_SHIFT) 263 // Alarm 0 event occurred. 264 #define SI32_RTC_A_CONTROL_ALM0I_SET_VALUE 1 265 #define SI32_RTC_A_CONTROL_ALM0I_SET_U32 \ 266 (SI32_RTC_A_CONTROL_ALM0I_SET_VALUE << SI32_RTC_A_CONTROL_ALM0I_SHIFT) 267 268 #define SI32_RTC_A_CONTROL_ALM1I_MASK 0x00000002 269 #define SI32_RTC_A_CONTROL_ALM1I_SHIFT 1 270 // Alarm 1 event has not occurred. 271 #define SI32_RTC_A_CONTROL_ALM1I_NOT_SET_VALUE 0 272 #define SI32_RTC_A_CONTROL_ALM1I_NOT_SET_U32 \ 273 (SI32_RTC_A_CONTROL_ALM1I_NOT_SET_VALUE << SI32_RTC_A_CONTROL_ALM1I_SHIFT) 274 // Alarm 1 event occurred. 275 #define SI32_RTC_A_CONTROL_ALM1I_SET_VALUE 1 276 #define SI32_RTC_A_CONTROL_ALM1I_SET_U32 \ 277 (SI32_RTC_A_CONTROL_ALM1I_SET_VALUE << SI32_RTC_A_CONTROL_ALM1I_SHIFT) 278 279 #define SI32_RTC_A_CONTROL_ALM2I_MASK 0x00000004 280 #define SI32_RTC_A_CONTROL_ALM2I_SHIFT 2 281 // Alarm 2 event has not occurred. 282 #define SI32_RTC_A_CONTROL_ALM2I_NOT_SET_VALUE 0 283 #define SI32_RTC_A_CONTROL_ALM2I_NOT_SET_U32 \ 284 (SI32_RTC_A_CONTROL_ALM2I_NOT_SET_VALUE << SI32_RTC_A_CONTROL_ALM2I_SHIFT) 285 // Alarm 2 event occurred. 286 #define SI32_RTC_A_CONTROL_ALM2I_SET_VALUE 1 287 #define SI32_RTC_A_CONTROL_ALM2I_SET_U32 \ 288 (SI32_RTC_A_CONTROL_ALM2I_SET_VALUE << SI32_RTC_A_CONTROL_ALM2I_SHIFT) 289 290 #define SI32_RTC_A_CONTROL_TMRCAP_MASK 0x00000008 291 #define SI32_RTC_A_CONTROL_TMRCAP_SHIFT 3 292 // RTC timer capture operation is complete. 293 #define SI32_RTC_A_CONTROL_TMRCAP_NOT_SET_VALUE 0 294 #define SI32_RTC_A_CONTROL_TMRCAP_NOT_SET_U32 \ 295 (SI32_RTC_A_CONTROL_TMRCAP_NOT_SET_VALUE << SI32_RTC_A_CONTROL_TMRCAP_SHIFT) 296 // Start the RTC timer capture. 297 #define SI32_RTC_A_CONTROL_TMRCAP_SET_VALUE 1 298 #define SI32_RTC_A_CONTROL_TMRCAP_SET_U32 \ 299 (SI32_RTC_A_CONTROL_TMRCAP_SET_VALUE << SI32_RTC_A_CONTROL_TMRCAP_SHIFT) 300 301 #define SI32_RTC_A_CONTROL_TMRSET_MASK 0x00000010 302 #define SI32_RTC_A_CONTROL_TMRSET_SHIFT 4 303 // RTC timer set operation is complete. 304 #define SI32_RTC_A_CONTROL_TMRSET_NOT_SET_VALUE 0 305 #define SI32_RTC_A_CONTROL_TMRSET_NOT_SET_U32 \ 306 (SI32_RTC_A_CONTROL_TMRSET_NOT_SET_VALUE << SI32_RTC_A_CONTROL_TMRSET_SHIFT) 307 // Start the RTC timer set. 308 #define SI32_RTC_A_CONTROL_TMRSET_SET_VALUE 1 309 #define SI32_RTC_A_CONTROL_TMRSET_SET_U32 \ 310 (SI32_RTC_A_CONTROL_TMRSET_SET_VALUE << SI32_RTC_A_CONTROL_TMRSET_SHIFT) 311 312 #define SI32_RTC_A_CONTROL_CLKVF_MASK 0x00000020 313 #define SI32_RTC_A_CONTROL_CLKVF_SHIFT 5 314 // External oscillator is not valid. 315 #define SI32_RTC_A_CONTROL_CLKVF_NOT_SET_VALUE 0 316 #define SI32_RTC_A_CONTROL_CLKVF_NOT_SET_U32 \ 317 (SI32_RTC_A_CONTROL_CLKVF_NOT_SET_VALUE << SI32_RTC_A_CONTROL_CLKVF_SHIFT) 318 // External oscillator is valid. 319 #define SI32_RTC_A_CONTROL_CLKVF_SET_VALUE 1 320 #define SI32_RTC_A_CONTROL_CLKVF_SET_U32 \ 321 (SI32_RTC_A_CONTROL_CLKVF_SET_VALUE << SI32_RTC_A_CONTROL_CLKVF_SHIFT) 322 323 #define SI32_RTC_A_CONTROL_OSCFI_MASK 0x00000040 324 #define SI32_RTC_A_CONTROL_OSCFI_SHIFT 6 325 // Oscillator is running. 326 #define SI32_RTC_A_CONTROL_OSCFI_NOT_SET_VALUE 0 327 #define SI32_RTC_A_CONTROL_OSCFI_NOT_SET_U32 \ 328 (SI32_RTC_A_CONTROL_OSCFI_NOT_SET_VALUE << SI32_RTC_A_CONTROL_OSCFI_SHIFT) 329 // Oscillator has failed. 330 #define SI32_RTC_A_CONTROL_OSCFI_SET_VALUE 1 331 #define SI32_RTC_A_CONTROL_OSCFI_SET_U32 \ 332 (SI32_RTC_A_CONTROL_OSCFI_SET_VALUE << SI32_RTC_A_CONTROL_OSCFI_SHIFT) 333 334 #define SI32_RTC_A_CONTROL_HSMDEN_MASK 0x00000080 335 #define SI32_RTC_A_CONTROL_HSMDEN_SHIFT 7 336 // Disable high speed mode. (AHBCLK < 4x RTCnTCLK) 337 #define SI32_RTC_A_CONTROL_HSMDEN_DISABLED_VALUE 0 338 #define SI32_RTC_A_CONTROL_HSMDEN_DISABLED_U32 \ 339 (SI32_RTC_A_CONTROL_HSMDEN_DISABLED_VALUE << SI32_RTC_A_CONTROL_HSMDEN_SHIFT) 340 // Enable high speed mode. (AHBCLK >= 4x RTCnTCLK) 341 #define SI32_RTC_A_CONTROL_HSMDEN_ENABLED_VALUE 1 342 #define SI32_RTC_A_CONTROL_HSMDEN_ENABLED_U32 \ 343 (SI32_RTC_A_CONTROL_HSMDEN_ENABLED_VALUE << SI32_RTC_A_CONTROL_HSMDEN_SHIFT) 344 345 #define SI32_RTC_A_CONTROL_LRDYF_MASK 0x00000100 346 #define SI32_RTC_A_CONTROL_LRDYF_SHIFT 8 347 // The load capacitance is currently stepping. 348 #define SI32_RTC_A_CONTROL_LRDYF_NOT_SET_VALUE 0 349 #define SI32_RTC_A_CONTROL_LRDYF_NOT_SET_U32 \ 350 (SI32_RTC_A_CONTROL_LRDYF_NOT_SET_VALUE << SI32_RTC_A_CONTROL_LRDYF_SHIFT) 351 // The load capacitance has reached its programmed value. 352 #define SI32_RTC_A_CONTROL_LRDYF_SET_VALUE 1 353 #define SI32_RTC_A_CONTROL_LRDYF_SET_U32 \ 354 (SI32_RTC_A_CONTROL_LRDYF_SET_VALUE << SI32_RTC_A_CONTROL_LRDYF_SHIFT) 355 356 357 358 struct SI32_RTC_A_ALARM0_Struct 359 { 360 union 361 { 362 struct 363 { 364 // RTC Alarm 0 365 volatile uint32_t ALARM0_BITS; 366 }; 367 volatile uint32_t U32; 368 }; 369 }; 370 371 #define SI32_RTC_A_ALARM0_ALARM0_MASK 0xFFFFFFFF 372 #define SI32_RTC_A_ALARM0_ALARM0_SHIFT 0 373 374 375 376 struct SI32_RTC_A_ALARM1_Struct 377 { 378 union 379 { 380 struct 381 { 382 // RTC Alarm 1 383 volatile uint32_t ALARM1_BITS; 384 }; 385 volatile uint32_t U32; 386 }; 387 }; 388 389 #define SI32_RTC_A_ALARM1_ALARM1_MASK 0xFFFFFFFF 390 #define SI32_RTC_A_ALARM1_ALARM1_SHIFT 0 391 392 393 394 struct SI32_RTC_A_ALARM2_Struct 395 { 396 union 397 { 398 struct 399 { 400 // RTC Alarm 2 401 volatile uint32_t ALARM2_BITS; 402 }; 403 volatile uint32_t U32; 404 }; 405 }; 406 407 #define SI32_RTC_A_ALARM2_ALARM2_MASK 0xFFFFFFFF 408 #define SI32_RTC_A_ALARM2_ALARM2_SHIFT 0 409 410 411 412 struct SI32_RTC_A_SETCAP_Struct 413 { 414 union 415 { 416 struct 417 { 418 // RTC Timer Set/Capture Value 419 volatile uint32_t SETCAP_BITS; 420 }; 421 volatile uint32_t U32; 422 }; 423 }; 424 425 #define SI32_RTC_A_SETCAP_SETCAP_MASK 0xFFFFFFFF 426 #define SI32_RTC_A_SETCAP_SETCAP_SHIFT 0 427 428 429 430 struct SI32_RTC_A_LFOCONTROL_Struct 431 { 432 union 433 { 434 struct 435 { 436 uint32_t reserved0: 31; 437 // Low Frequency Oscillator Enable 438 volatile uint32_t LFOSCEN: 1; 439 }; 440 volatile uint32_t U32; 441 }; 442 }; 443 444 #define SI32_RTC_A_LFOCONTROL_LFOSCEN_MASK 0x80000000 445 #define SI32_RTC_A_LFOCONTROL_LFOSCEN_SHIFT 31 446 // Disable the Low Frequency Oscillator (LFOSCn). 447 #define SI32_RTC_A_LFOCONTROL_LFOSCEN_DISABLED_VALUE 0U 448 #define SI32_RTC_A_LFOCONTROL_LFOSCEN_DISABLED_U32 \ 449 (SI32_RTC_A_LFOCONTROL_LFOSCEN_DISABLED_VALUE << SI32_RTC_A_LFOCONTROL_LFOSCEN_SHIFT) 450 // Enable the Low Frequency Oscillator (LFOSCn). 451 #define SI32_RTC_A_LFOCONTROL_LFOSCEN_ENABLED_VALUE 1U 452 #define SI32_RTC_A_LFOCONTROL_LFOSCEN_ENABLED_U32 \ 453 (SI32_RTC_A_LFOCONTROL_LFOSCEN_ENABLED_VALUE << SI32_RTC_A_LFOCONTROL_LFOSCEN_SHIFT) 454 455 456 457 typedef struct SI32_RTC_A_Struct 458 { 459 struct SI32_RTC_A_CONFIG_Struct CONFIG ; // Base Address + 0x0 460 volatile uint32_t CONFIG_SET; 461 volatile uint32_t CONFIG_CLR; 462 uint32_t reserved0; 463 struct SI32_RTC_A_CONTROL_Struct CONTROL ; // Base Address + 0x10 464 volatile uint32_t CONTROL_SET; 465 volatile uint32_t CONTROL_CLR; 466 uint32_t reserved1; 467 struct SI32_RTC_A_ALARM0_Struct ALARM0 ; // Base Address + 0x20 468 uint32_t reserved2; 469 uint32_t reserved3; 470 uint32_t reserved4; 471 struct SI32_RTC_A_ALARM1_Struct ALARM1 ; // Base Address + 0x30 472 uint32_t reserved5; 473 uint32_t reserved6; 474 uint32_t reserved7; 475 struct SI32_RTC_A_ALARM2_Struct ALARM2 ; // Base Address + 0x40 476 uint32_t reserved8; 477 uint32_t reserved9; 478 uint32_t reserved10; 479 struct SI32_RTC_A_SETCAP_Struct SETCAP ; // Base Address + 0x50 480 uint32_t reserved11; 481 uint32_t reserved12; 482 uint32_t reserved13; 483 struct SI32_RTC_A_LFOCONTROL_Struct LFOCONTROL ; // Base Address + 0x60 484 uint32_t reserved14; 485 uint32_t reserved15; 486 uint32_t reserved16; 487 uint32_t reserved17[4]; 488 uint32_t reserved18[4]; 489 } SI32_RTC_A_Type; 490 491 #ifdef __cplusplus 492 } 493 #endif 494 495 #endif // __SI32_RTC_A_REGISTERS_H__ 496 497 //-eof-------------------------------------------------------------------------- 498 499