1 /* 2 * Copyright (c) 2024 Microchip 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef _MICROCHIP_PIC32CXSG_RTC_COMPONENT_FIXUP_H_ 8 #define _MICROCHIP_PIC32CXSG_RTC_COMPONENT_FIXUP_H_ 9 10 /* -------- RTC_MODE0_CTRLA : (RTC Offset: 0x00) (R/W 16) MODE0 Control A -------- */ 11 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 12 typedef union { 13 struct { 14 uint16_t SWRST:1; /*!< bit: 0 Software Reset */ 15 uint16_t ENABLE:1; /*!< bit: 1 Enable */ 16 uint16_t MODE:2; /*!< bit: 2.. 3 Operating Mode */ 17 uint16_t :3; /*!< bit: 4.. 6 Reserved */ 18 uint16_t MATCHCLR:1; /*!< bit: 7 Clear on Match */ 19 uint16_t PRESCALER:4; /*!< bit: 8..11 Prescaler */ 20 uint16_t :1; /*!< bit: 12 Reserved */ 21 uint16_t BKTRST:1; /*!< bit: 13 BKUP Registers Reset On Tamper Enable */ 22 uint16_t GPTRST:1; /*!< bit: 14 GP Registers Reset On Tamper Enable */ 23 uint16_t COUNTSYNC:1; /*!< bit: 15 Count Read Synchronization Enable */ 24 } bit; /*!< Structure used for bit access */ 25 uint16_t reg; /*!< Type used for register access */ 26 } RTC_MODE0_CTRLA_Type; 27 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 28 29 /* -------- RTC_MODE1_CTRLA : (RTC Offset: 0x00) (R/W 16) MODE1 Control A -------- */ 30 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 31 typedef union { 32 struct { 33 uint16_t SWRST:1; /*!< bit: 0 Software Reset */ 34 uint16_t ENABLE:1; /*!< bit: 1 Enable */ 35 uint16_t MODE:2; /*!< bit: 2.. 3 Operating Mode */ 36 uint16_t :4; /*!< bit: 4.. 7 Reserved */ 37 uint16_t PRESCALER:4; /*!< bit: 8..11 Prescaler */ 38 uint16_t :1; /*!< bit: 12 Reserved */ 39 uint16_t BKTRST:1; /*!< bit: 13 BKUP Registers Reset On Tamper Enable */ 40 uint16_t GPTRST:1; /*!< bit: 14 GP Registers Reset On Tamper Enable */ 41 uint16_t COUNTSYNC:1; /*!< bit: 15 Count Read Synchronization Enable */ 42 } bit; /*!< Structure used for bit access */ 43 uint16_t reg; /*!< Type used for register access */ 44 } RTC_MODE1_CTRLA_Type; 45 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 46 47 /* -------- RTC_MODE2_CTRLA : (RTC Offset: 0x00) (R/W 16) MODE2 Control A -------- */ 48 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 49 typedef union { 50 struct { 51 uint16_t SWRST:1; /*!< bit: 0 Software Reset */ 52 uint16_t ENABLE:1; /*!< bit: 1 Enable */ 53 uint16_t MODE:2; /*!< bit: 2.. 3 Operating Mode */ 54 uint16_t :2; /*!< bit: 4.. 5 Reserved */ 55 uint16_t CLKREP:1; /*!< bit: 6 Clock Representation */ 56 uint16_t MATCHCLR:1; /*!< bit: 7 Clear on Match */ 57 uint16_t PRESCALER:4; /*!< bit: 8..11 Prescaler */ 58 uint16_t :1; /*!< bit: 12 Reserved */ 59 uint16_t BKTRST:1; /*!< bit: 13 BKUP Registers Reset On Tamper Enable */ 60 uint16_t GPTRST:1; /*!< bit: 14 GP Registers Reset On Tamper Enable */ 61 uint16_t CLOCKSYNC:1; /*!< bit: 15 Clock Read Synchronization Enable */ 62 } bit; /*!< Structure used for bit access */ 63 uint16_t reg; /*!< Type used for register access */ 64 } RTC_MODE2_CTRLA_Type; 65 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 66 67 /* -------- RTC_MODE0_CTRLB : (RTC Offset: 0x02) (R/W 16) MODE0 Control B -------- */ 68 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 69 typedef union { 70 struct { 71 uint16_t GP0EN:1; /*!< bit: 0 General Purpose 0 Enable */ 72 uint16_t GP2EN:1; /*!< bit: 1 General Purpose 2 Enable */ 73 uint16_t :2; /*!< bit: 2.. 3 Reserved */ 74 uint16_t DEBMAJ:1; /*!< bit: 4 Debouncer Majority Enable */ 75 uint16_t DEBASYNC:1; /*!< bit: 5 Debouncer Asynchronous Enable */ 76 uint16_t RTCOUT:1; /*!< bit: 6 RTC Output Enable */ 77 uint16_t DMAEN:1; /*!< bit: 7 DMA Enable */ 78 uint16_t DEBF:3; /*!< bit: 8..10 Debounce Freqnuency */ 79 uint16_t :1; /*!< bit: 11 Reserved */ 80 uint16_t ACTF:3; /*!< bit: 12..14 Active Layer Freqnuency */ 81 uint16_t :1; /*!< bit: 15 Reserved */ 82 } bit; /*!< Structure used for bit access */ 83 uint16_t reg; /*!< Type used for register access */ 84 } RTC_MODE0_CTRLB_Type; 85 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 86 87 /* -------- RTC_MODE1_CTRLB : (RTC Offset: 0x02) (R/W 16) MODE1 Control B -------- */ 88 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 89 typedef union { 90 struct { 91 uint16_t GP0EN:1; /*!< bit: 0 General Purpose 0 Enable */ 92 uint16_t GP2EN:1; /*!< bit: 1 General Purpose 2 Enable */ 93 uint16_t :2; /*!< bit: 2.. 3 Reserved */ 94 uint16_t DEBMAJ:1; /*!< bit: 4 Debouncer Majority Enable */ 95 uint16_t DEBASYNC:1; /*!< bit: 5 Debouncer Asynchronous Enable */ 96 uint16_t RTCOUT:1; /*!< bit: 6 RTC Output Enable */ 97 uint16_t DMAEN:1; /*!< bit: 7 DMA Enable */ 98 uint16_t DEBF:3; /*!< bit: 8..10 Debounce Freqnuency */ 99 uint16_t :1; /*!< bit: 11 Reserved */ 100 uint16_t ACTF:3; /*!< bit: 12..14 Active Layer Freqnuency */ 101 uint16_t :1; /*!< bit: 15 Reserved */ 102 } bit; /*!< Structure used for bit access */ 103 uint16_t reg; /*!< Type used for register access */ 104 } RTC_MODE1_CTRLB_Type; 105 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 106 107 /* -------- RTC_MODE2_CTRLB : (RTC Offset: 0x02) (R/W 16) MODE2 Control B -------- */ 108 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 109 typedef union { 110 struct { 111 uint16_t GP0EN:1; /*!< bit: 0 General Purpose 0 Enable */ 112 uint16_t GP2EN:1; /*!< bit: 1 General Purpose 2 Enable */ 113 uint16_t :2; /*!< bit: 2.. 3 Reserved */ 114 uint16_t DEBMAJ:1; /*!< bit: 4 Debouncer Majority Enable */ 115 uint16_t DEBASYNC:1; /*!< bit: 5 Debouncer Asynchronous Enable */ 116 uint16_t RTCOUT:1; /*!< bit: 6 RTC Output Enable */ 117 uint16_t DMAEN:1; /*!< bit: 7 DMA Enable */ 118 uint16_t DEBF:3; /*!< bit: 8..10 Debounce Freqnuency */ 119 uint16_t :1; /*!< bit: 11 Reserved */ 120 uint16_t ACTF:3; /*!< bit: 12..14 Active Layer Freqnuency */ 121 uint16_t :1; /*!< bit: 15 Reserved */ 122 } bit; /*!< Structure used for bit access */ 123 uint16_t reg; /*!< Type used for register access */ 124 } RTC_MODE2_CTRLB_Type; 125 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 126 127 /* -------- RTC_MODE0_EVCTRL : (RTC Offset: 0x04) (R/W 32) MODE0 Event Control -------- */ 128 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 129 typedef union { 130 struct { 131 uint32_t PEREO0:1; /*!< bit: 0 Periodic Interval 0 Event Output Enable */ 132 uint32_t PEREO1:1; /*!< bit: 1 Periodic Interval 1 Event Output Enable */ 133 uint32_t PEREO2:1; /*!< bit: 2 Periodic Interval 2 Event Output Enable */ 134 uint32_t PEREO3:1; /*!< bit: 3 Periodic Interval 3 Event Output Enable */ 135 uint32_t PEREO4:1; /*!< bit: 4 Periodic Interval 4 Event Output Enable */ 136 uint32_t PEREO5:1; /*!< bit: 5 Periodic Interval 5 Event Output Enable */ 137 uint32_t PEREO6:1; /*!< bit: 6 Periodic Interval 6 Event Output Enable */ 138 uint32_t PEREO7:1; /*!< bit: 7 Periodic Interval 7 Event Output Enable */ 139 uint32_t CMPEO0:1; /*!< bit: 8 Compare 0 Event Output Enable */ 140 uint32_t CMPEO1:1; /*!< bit: 9 Compare 1 Event Output Enable */ 141 uint32_t :4; /*!< bit: 10..13 Reserved */ 142 uint32_t TAMPEREO:1; /*!< bit: 14 Tamper Event Output Enable */ 143 uint32_t OVFEO:1; /*!< bit: 15 Overflow Event Output Enable */ 144 uint32_t TAMPEVEI:1; /*!< bit: 16 Tamper Event Input Enable */ 145 uint32_t :15; /*!< bit: 17..31 Reserved */ 146 } bit; /*!< Structure used for bit access */ 147 struct { 148 uint32_t PEREO:8; /*!< bit: 0.. 7 Periodic Interval x Event Output Enable */ 149 uint32_t CMPEO:2; /*!< bit: 8.. 9 Compare x Event Output Enable */ 150 uint32_t :22; /*!< bit: 10..31 Reserved */ 151 } vec; /*!< Structure used for vec access */ 152 uint32_t reg; /*!< Type used for register access */ 153 } RTC_MODE0_EVCTRL_Type; 154 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 155 156 /* -------- RTC_MODE1_EVCTRL : (RTC Offset: 0x04) (R/W 32) MODE1 Event Control -------- */ 157 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 158 typedef union { 159 struct { 160 uint32_t PEREO0:1; /*!< bit: 0 Periodic Interval 0 Event Output Enable */ 161 uint32_t PEREO1:1; /*!< bit: 1 Periodic Interval 1 Event Output Enable */ 162 uint32_t PEREO2:1; /*!< bit: 2 Periodic Interval 2 Event Output Enable */ 163 uint32_t PEREO3:1; /*!< bit: 3 Periodic Interval 3 Event Output Enable */ 164 uint32_t PEREO4:1; /*!< bit: 4 Periodic Interval 4 Event Output Enable */ 165 uint32_t PEREO5:1; /*!< bit: 5 Periodic Interval 5 Event Output Enable */ 166 uint32_t PEREO6:1; /*!< bit: 6 Periodic Interval 6 Event Output Enable */ 167 uint32_t PEREO7:1; /*!< bit: 7 Periodic Interval 7 Event Output Enable */ 168 uint32_t CMPEO0:1; /*!< bit: 8 Compare 0 Event Output Enable */ 169 uint32_t CMPEO1:1; /*!< bit: 9 Compare 1 Event Output Enable */ 170 uint32_t CMPEO2:1; /*!< bit: 10 Compare 2 Event Output Enable */ 171 uint32_t CMPEO3:1; /*!< bit: 11 Compare 3 Event Output Enable */ 172 uint32_t :2; /*!< bit: 12..13 Reserved */ 173 uint32_t TAMPEREO:1; /*!< bit: 14 Tamper Event Output Enable */ 174 uint32_t OVFEO:1; /*!< bit: 15 Overflow Event Output Enable */ 175 uint32_t TAMPEVEI:1; /*!< bit: 16 Tamper Event Input Enable */ 176 uint32_t :15; /*!< bit: 17..31 Reserved */ 177 } bit; /*!< Structure used for bit access */ 178 struct { 179 uint32_t PEREO:8; /*!< bit: 0.. 7 Periodic Interval x Event Output Enable */ 180 uint32_t CMPEO:4; /*!< bit: 8..11 Compare x Event Output Enable */ 181 uint32_t :20; /*!< bit: 12..31 Reserved */ 182 } vec; /*!< Structure used for vec access */ 183 uint32_t reg; /*!< Type used for register access */ 184 } RTC_MODE1_EVCTRL_Type; 185 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 186 187 /* -------- RTC_MODE2_EVCTRL : (RTC Offset: 0x04) (R/W 32) MODE2 Event Control -------- */ 188 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 189 typedef union { 190 struct { 191 uint32_t PEREO0:1; /*!< bit: 0 Periodic Interval 0 Event Output Enable */ 192 uint32_t PEREO1:1; /*!< bit: 1 Periodic Interval 1 Event Output Enable */ 193 uint32_t PEREO2:1; /*!< bit: 2 Periodic Interval 2 Event Output Enable */ 194 uint32_t PEREO3:1; /*!< bit: 3 Periodic Interval 3 Event Output Enable */ 195 uint32_t PEREO4:1; /*!< bit: 4 Periodic Interval 4 Event Output Enable */ 196 uint32_t PEREO5:1; /*!< bit: 5 Periodic Interval 5 Event Output Enable */ 197 uint32_t PEREO6:1; /*!< bit: 6 Periodic Interval 6 Event Output Enable */ 198 uint32_t PEREO7:1; /*!< bit: 7 Periodic Interval 7 Event Output Enable */ 199 uint32_t ALARMEO0:1; /*!< bit: 8 Alarm 0 Event Output Enable */ 200 uint32_t ALARMEO1:1; /*!< bit: 9 Alarm 1 Event Output Enable */ 201 uint32_t :4; /*!< bit: 10..13 Reserved */ 202 uint32_t TAMPEREO:1; /*!< bit: 14 Tamper Event Output Enable */ 203 uint32_t OVFEO:1; /*!< bit: 15 Overflow Event Output Enable */ 204 uint32_t TAMPEVEI:1; /*!< bit: 16 Tamper Event Input Enable */ 205 uint32_t :15; /*!< bit: 17..31 Reserved */ 206 } bit; /*!< Structure used for bit access */ 207 struct { 208 uint32_t PEREO:8; /*!< bit: 0.. 7 Periodic Interval x Event Output Enable */ 209 uint32_t ALARMEO:2; /*!< bit: 8.. 9 Alarm x Event Output Enable */ 210 uint32_t :22; /*!< bit: 10..31 Reserved */ 211 } vec; /*!< Structure used for vec access */ 212 uint32_t reg; /*!< Type used for register access */ 213 } RTC_MODE2_EVCTRL_Type; 214 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 215 216 /* -------- RTC_MODE0_INTENCLR : (RTC Offset: 0x08) (R/W 16) MODE0 Interrupt Enable Clear -------- */ 217 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 218 typedef union { 219 struct { 220 uint16_t PER0:1; /*!< bit: 0 Periodic Interval 0 Interrupt Enable */ 221 uint16_t PER1:1; /*!< bit: 1 Periodic Interval 1 Interrupt Enable */ 222 uint16_t PER2:1; /*!< bit: 2 Periodic Interval 2 Interrupt Enable */ 223 uint16_t PER3:1; /*!< bit: 3 Periodic Interval 3 Interrupt Enable */ 224 uint16_t PER4:1; /*!< bit: 4 Periodic Interval 4 Interrupt Enable */ 225 uint16_t PER5:1; /*!< bit: 5 Periodic Interval 5 Interrupt Enable */ 226 uint16_t PER6:1; /*!< bit: 6 Periodic Interval 6 Interrupt Enable */ 227 uint16_t PER7:1; /*!< bit: 7 Periodic Interval 7 Interrupt Enable */ 228 uint16_t CMP0:1; /*!< bit: 8 Compare 0 Interrupt Enable */ 229 uint16_t CMP1:1; /*!< bit: 9 Compare 1 Interrupt Enable */ 230 uint16_t :4; /*!< bit: 10..13 Reserved */ 231 uint16_t TAMPER:1; /*!< bit: 14 Tamper Enable */ 232 uint16_t OVF:1; /*!< bit: 15 Overflow Interrupt Enable */ 233 } bit; /*!< Structure used for bit access */ 234 struct { 235 uint16_t PER:8; /*!< bit: 0.. 7 Periodic Interval x Interrupt Enable */ 236 uint16_t CMP:2; /*!< bit: 8.. 9 Compare x Interrupt Enable */ 237 uint16_t :6; /*!< bit: 10..15 Reserved */ 238 } vec; /*!< Structure used for vec access */ 239 uint16_t reg; /*!< Type used for register access */ 240 } RTC_MODE0_INTENCLR_Type; 241 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 242 243 /* -------- RTC_MODE1_INTENCLR : (RTC Offset: 0x08) (R/W 16) MODE1 Interrupt Enable Clear -------- */ 244 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 245 typedef union { 246 struct { 247 uint16_t PER0:1; /*!< bit: 0 Periodic Interval 0 Interrupt Enable */ 248 uint16_t PER1:1; /*!< bit: 1 Periodic Interval 1 Interrupt Enable */ 249 uint16_t PER2:1; /*!< bit: 2 Periodic Interval 2 Interrupt Enable */ 250 uint16_t PER3:1; /*!< bit: 3 Periodic Interval 3 Interrupt Enable */ 251 uint16_t PER4:1; /*!< bit: 4 Periodic Interval 4 Interrupt Enable */ 252 uint16_t PER5:1; /*!< bit: 5 Periodic Interval 5 Interrupt Enable */ 253 uint16_t PER6:1; /*!< bit: 6 Periodic Interval 6 Interrupt Enable */ 254 uint16_t PER7:1; /*!< bit: 7 Periodic Interval 7 Interrupt Enable */ 255 uint16_t CMP0:1; /*!< bit: 8 Compare 0 Interrupt Enable */ 256 uint16_t CMP1:1; /*!< bit: 9 Compare 1 Interrupt Enable */ 257 uint16_t CMP2:1; /*!< bit: 10 Compare 2 Interrupt Enable */ 258 uint16_t CMP3:1; /*!< bit: 11 Compare 3 Interrupt Enable */ 259 uint16_t :2; /*!< bit: 12..13 Reserved */ 260 uint16_t TAMPER:1; /*!< bit: 14 Tamper Enable */ 261 uint16_t OVF:1; /*!< bit: 15 Overflow Interrupt Enable */ 262 } bit; /*!< Structure used for bit access */ 263 struct { 264 uint16_t PER:8; /*!< bit: 0.. 7 Periodic Interval x Interrupt Enable */ 265 uint16_t CMP:4; /*!< bit: 8..11 Compare x Interrupt Enable */ 266 uint16_t :4; /*!< bit: 12..15 Reserved */ 267 } vec; /*!< Structure used for vec access */ 268 uint16_t reg; /*!< Type used for register access */ 269 } RTC_MODE1_INTENCLR_Type; 270 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 271 272 /* -------- RTC_MODE2_INTENCLR : (RTC Offset: 0x08) (R/W 16) MODE2 Interrupt Enable Clear -------- */ 273 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 274 typedef union { 275 struct { 276 uint16_t PER0:1; /*!< bit: 0 Periodic Interval 0 Interrupt Enable */ 277 uint16_t PER1:1; /*!< bit: 1 Periodic Interval 1 Interrupt Enable */ 278 uint16_t PER2:1; /*!< bit: 2 Periodic Interval 2 Interrupt Enable */ 279 uint16_t PER3:1; /*!< bit: 3 Periodic Interval 3 Interrupt Enable */ 280 uint16_t PER4:1; /*!< bit: 4 Periodic Interval 4 Interrupt Enable */ 281 uint16_t PER5:1; /*!< bit: 5 Periodic Interval 5 Interrupt Enable */ 282 uint16_t PER6:1; /*!< bit: 6 Periodic Interval 6 Interrupt Enable */ 283 uint16_t PER7:1; /*!< bit: 7 Periodic Interval 7 Interrupt Enable */ 284 uint16_t ALARM0:1; /*!< bit: 8 Alarm 0 Interrupt Enable */ 285 uint16_t ALARM1:1; /*!< bit: 9 Alarm 1 Interrupt Enable */ 286 uint16_t :4; /*!< bit: 10..13 Reserved */ 287 uint16_t TAMPER:1; /*!< bit: 14 Tamper Enable */ 288 uint16_t OVF:1; /*!< bit: 15 Overflow Interrupt Enable */ 289 } bit; /*!< Structure used for bit access */ 290 struct { 291 uint16_t PER:8; /*!< bit: 0.. 7 Periodic Interval x Interrupt Enable */ 292 uint16_t ALARM:2; /*!< bit: 8.. 9 Alarm x Interrupt Enable */ 293 uint16_t :6; /*!< bit: 10..15 Reserved */ 294 } vec; /*!< Structure used for vec access */ 295 uint16_t reg; /*!< Type used for register access */ 296 } RTC_MODE2_INTENCLR_Type; 297 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 298 299 /* -------- RTC_MODE0_INTENSET : (RTC Offset: 0x0A) (R/W 16) MODE0 Interrupt Enable Set -------- */ 300 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 301 typedef union { 302 struct { 303 uint16_t PER0:1; /*!< bit: 0 Periodic Interval 0 Interrupt Enable */ 304 uint16_t PER1:1; /*!< bit: 1 Periodic Interval 1 Interrupt Enable */ 305 uint16_t PER2:1; /*!< bit: 2 Periodic Interval 2 Interrupt Enable */ 306 uint16_t PER3:1; /*!< bit: 3 Periodic Interval 3 Interrupt Enable */ 307 uint16_t PER4:1; /*!< bit: 4 Periodic Interval 4 Interrupt Enable */ 308 uint16_t PER5:1; /*!< bit: 5 Periodic Interval 5 Interrupt Enable */ 309 uint16_t PER6:1; /*!< bit: 6 Periodic Interval 6 Interrupt Enable */ 310 uint16_t PER7:1; /*!< bit: 7 Periodic Interval 7 Interrupt Enable */ 311 uint16_t CMP0:1; /*!< bit: 8 Compare 0 Interrupt Enable */ 312 uint16_t CMP1:1; /*!< bit: 9 Compare 1 Interrupt Enable */ 313 uint16_t :4; /*!< bit: 10..13 Reserved */ 314 uint16_t TAMPER:1; /*!< bit: 14 Tamper Enable */ 315 uint16_t OVF:1; /*!< bit: 15 Overflow Interrupt Enable */ 316 } bit; /*!< Structure used for bit access */ 317 struct { 318 uint16_t PER:8; /*!< bit: 0.. 7 Periodic Interval x Interrupt Enable */ 319 uint16_t CMP:2; /*!< bit: 8.. 9 Compare x Interrupt Enable */ 320 uint16_t :6; /*!< bit: 10..15 Reserved */ 321 } vec; /*!< Structure used for vec access */ 322 uint16_t reg; /*!< Type used for register access */ 323 } RTC_MODE0_INTENSET_Type; 324 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 325 326 /* -------- RTC_MODE1_INTENSET : (RTC Offset: 0x0A) (R/W 16) MODE1 Interrupt Enable Set -------- */ 327 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 328 typedef union { 329 struct { 330 uint16_t PER0:1; /*!< bit: 0 Periodic Interval 0 Interrupt Enable */ 331 uint16_t PER1:1; /*!< bit: 1 Periodic Interval 1 Interrupt Enable */ 332 uint16_t PER2:1; /*!< bit: 2 Periodic Interval 2 Interrupt Enable */ 333 uint16_t PER3:1; /*!< bit: 3 Periodic Interval 3 Interrupt Enable */ 334 uint16_t PER4:1; /*!< bit: 4 Periodic Interval 4 Interrupt Enable */ 335 uint16_t PER5:1; /*!< bit: 5 Periodic Interval 5 Interrupt Enable */ 336 uint16_t PER6:1; /*!< bit: 6 Periodic Interval 6 Interrupt Enable */ 337 uint16_t PER7:1; /*!< bit: 7 Periodic Interval 7 Interrupt Enable */ 338 uint16_t CMP0:1; /*!< bit: 8 Compare 0 Interrupt Enable */ 339 uint16_t CMP1:1; /*!< bit: 9 Compare 1 Interrupt Enable */ 340 uint16_t CMP2:1; /*!< bit: 10 Compare 2 Interrupt Enable */ 341 uint16_t CMP3:1; /*!< bit: 11 Compare 3 Interrupt Enable */ 342 uint16_t :2; /*!< bit: 12..13 Reserved */ 343 uint16_t TAMPER:1; /*!< bit: 14 Tamper Enable */ 344 uint16_t OVF:1; /*!< bit: 15 Overflow Interrupt Enable */ 345 } bit; /*!< Structure used for bit access */ 346 struct { 347 uint16_t PER:8; /*!< bit: 0.. 7 Periodic Interval x Interrupt Enable */ 348 uint16_t CMP:4; /*!< bit: 8..11 Compare x Interrupt Enable */ 349 uint16_t :4; /*!< bit: 12..15 Reserved */ 350 } vec; /*!< Structure used for vec access */ 351 uint16_t reg; /*!< Type used for register access */ 352 } RTC_MODE1_INTENSET_Type; 353 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 354 355 /* -------- RTC_MODE2_INTENSET : (RTC Offset: 0x0A) (R/W 16) MODE2 Interrupt Enable Set -------- */ 356 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 357 typedef union { 358 struct { 359 uint16_t PER0:1; /*!< bit: 0 Periodic Interval 0 Enable */ 360 uint16_t PER1:1; /*!< bit: 1 Periodic Interval 1 Enable */ 361 uint16_t PER2:1; /*!< bit: 2 Periodic Interval 2 Enable */ 362 uint16_t PER3:1; /*!< bit: 3 Periodic Interval 3 Enable */ 363 uint16_t PER4:1; /*!< bit: 4 Periodic Interval 4 Enable */ 364 uint16_t PER5:1; /*!< bit: 5 Periodic Interval 5 Enable */ 365 uint16_t PER6:1; /*!< bit: 6 Periodic Interval 6 Enable */ 366 uint16_t PER7:1; /*!< bit: 7 Periodic Interval 7 Enable */ 367 uint16_t ALARM0:1; /*!< bit: 8 Alarm 0 Interrupt Enable */ 368 uint16_t ALARM1:1; /*!< bit: 9 Alarm 1 Interrupt Enable */ 369 uint16_t :4; /*!< bit: 10..13 Reserved */ 370 uint16_t TAMPER:1; /*!< bit: 14 Tamper Enable */ 371 uint16_t OVF:1; /*!< bit: 15 Overflow Interrupt Enable */ 372 } bit; /*!< Structure used for bit access */ 373 struct { 374 uint16_t PER:8; /*!< bit: 0.. 7 Periodic Interval x Enable */ 375 uint16_t ALARM:2; /*!< bit: 8.. 9 Alarm x Interrupt Enable */ 376 uint16_t :6; /*!< bit: 10..15 Reserved */ 377 } vec; /*!< Structure used for vec access */ 378 uint16_t reg; /*!< Type used for register access */ 379 } RTC_MODE2_INTENSET_Type; 380 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 381 382 /* -------- RTC_MODE0_INTFLAG : (RTC Offset: 0x0C) (R/W 16) MODE0 Interrupt Flag Status and Clear -------- */ 383 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 384 typedef union { // __I to avoid read-modify-write on write-to-clear register 385 struct { 386 __I uint16_t PER0:1; /*!< bit: 0 Periodic Interval 0 */ 387 __I uint16_t PER1:1; /*!< bit: 1 Periodic Interval 1 */ 388 __I uint16_t PER2:1; /*!< bit: 2 Periodic Interval 2 */ 389 __I uint16_t PER3:1; /*!< bit: 3 Periodic Interval 3 */ 390 __I uint16_t PER4:1; /*!< bit: 4 Periodic Interval 4 */ 391 __I uint16_t PER5:1; /*!< bit: 5 Periodic Interval 5 */ 392 __I uint16_t PER6:1; /*!< bit: 6 Periodic Interval 6 */ 393 __I uint16_t PER7:1; /*!< bit: 7 Periodic Interval 7 */ 394 __I uint16_t CMP0:1; /*!< bit: 8 Compare 0 */ 395 __I uint16_t CMP1:1; /*!< bit: 9 Compare 1 */ 396 __I uint16_t :4; /*!< bit: 10..13 Reserved */ 397 __I uint16_t TAMPER:1; /*!< bit: 14 Tamper */ 398 __I uint16_t OVF:1; /*!< bit: 15 Overflow */ 399 } bit; /*!< Structure used for bit access */ 400 struct { 401 __I uint16_t PER:8; /*!< bit: 0.. 7 Periodic Interval x */ 402 __I uint16_t CMP:2; /*!< bit: 8.. 9 Compare x */ 403 __I uint16_t :6; /*!< bit: 10..15 Reserved */ 404 } vec; /*!< Structure used for vec access */ 405 uint16_t reg; /*!< Type used for register access */ 406 } RTC_MODE0_INTFLAG_Type; 407 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 408 409 /* -------- RTC_MODE1_INTFLAG : (RTC Offset: 0x0C) (R/W 16) MODE1 Interrupt Flag Status and Clear -------- */ 410 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 411 typedef union { // __I to avoid read-modify-write on write-to-clear register 412 struct { 413 __I uint16_t PER0:1; /*!< bit: 0 Periodic Interval 0 */ 414 __I uint16_t PER1:1; /*!< bit: 1 Periodic Interval 1 */ 415 __I uint16_t PER2:1; /*!< bit: 2 Periodic Interval 2 */ 416 __I uint16_t PER3:1; /*!< bit: 3 Periodic Interval 3 */ 417 __I uint16_t PER4:1; /*!< bit: 4 Periodic Interval 4 */ 418 __I uint16_t PER5:1; /*!< bit: 5 Periodic Interval 5 */ 419 __I uint16_t PER6:1; /*!< bit: 6 Periodic Interval 6 */ 420 __I uint16_t PER7:1; /*!< bit: 7 Periodic Interval 7 */ 421 __I uint16_t CMP0:1; /*!< bit: 8 Compare 0 */ 422 __I uint16_t CMP1:1; /*!< bit: 9 Compare 1 */ 423 __I uint16_t CMP2:1; /*!< bit: 10 Compare 2 */ 424 __I uint16_t CMP3:1; /*!< bit: 11 Compare 3 */ 425 __I uint16_t :2; /*!< bit: 12..13 Reserved */ 426 __I uint16_t TAMPER:1; /*!< bit: 14 Tamper */ 427 __I uint16_t OVF:1; /*!< bit: 15 Overflow */ 428 } bit; /*!< Structure used for bit access */ 429 struct { 430 __I uint16_t PER:8; /*!< bit: 0.. 7 Periodic Interval x */ 431 __I uint16_t CMP:4; /*!< bit: 8..11 Compare x */ 432 __I uint16_t :4; /*!< bit: 12..15 Reserved */ 433 } vec; /*!< Structure used for vec access */ 434 uint16_t reg; /*!< Type used for register access */ 435 } RTC_MODE1_INTFLAG_Type; 436 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 437 438 /* -------- RTC_MODE2_INTFLAG : (RTC Offset: 0x0C) (R/W 16) MODE2 Interrupt Flag Status and Clear -------- */ 439 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 440 typedef union { // __I to avoid read-modify-write on write-to-clear register 441 struct { 442 __I uint16_t PER0:1; /*!< bit: 0 Periodic Interval 0 */ 443 __I uint16_t PER1:1; /*!< bit: 1 Periodic Interval 1 */ 444 __I uint16_t PER2:1; /*!< bit: 2 Periodic Interval 2 */ 445 __I uint16_t PER3:1; /*!< bit: 3 Periodic Interval 3 */ 446 __I uint16_t PER4:1; /*!< bit: 4 Periodic Interval 4 */ 447 __I uint16_t PER5:1; /*!< bit: 5 Periodic Interval 5 */ 448 __I uint16_t PER6:1; /*!< bit: 6 Periodic Interval 6 */ 449 __I uint16_t PER7:1; /*!< bit: 7 Periodic Interval 7 */ 450 __I uint16_t ALARM0:1; /*!< bit: 8 Alarm 0 */ 451 __I uint16_t ALARM1:1; /*!< bit: 9 Alarm 1 */ 452 __I uint16_t :4; /*!< bit: 10..13 Reserved */ 453 __I uint16_t TAMPER:1; /*!< bit: 14 Tamper */ 454 __I uint16_t OVF:1; /*!< bit: 15 Overflow */ 455 } bit; /*!< Structure used for bit access */ 456 struct { 457 __I uint16_t PER:8; /*!< bit: 0.. 7 Periodic Interval x */ 458 __I uint16_t ALARM:2; /*!< bit: 8.. 9 Alarm x */ 459 __I uint16_t :6; /*!< bit: 10..15 Reserved */ 460 } vec; /*!< Structure used for vec access */ 461 uint16_t reg; /*!< Type used for register access */ 462 } RTC_MODE2_INTFLAG_Type; 463 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 464 465 /* -------- RTC_DBGCTRL : (RTC Offset: 0x0E) (R/W 8) Debug Control -------- */ 466 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 467 typedef union { 468 struct { 469 uint8_t DBGRUN:1; /*!< bit: 0 Run During Debug */ 470 uint8_t :7; /*!< bit: 1.. 7 Reserved */ 471 } bit; /*!< Structure used for bit access */ 472 uint8_t reg; /*!< Type used for register access */ 473 } RTC_DBGCTRL_Type; 474 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 475 476 /* -------- RTC_MODE0_SYNCBUSY : (RTC Offset: 0x10) ( R/ 32) MODE0 Synchronization Busy Status -------- */ 477 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 478 typedef union { 479 struct { 480 uint32_t SWRST:1; /*!< bit: 0 Software Reset Busy */ 481 uint32_t ENABLE:1; /*!< bit: 1 Enable Bit Busy */ 482 uint32_t FREQCORR:1; /*!< bit: 2 FREQCORR Register Busy */ 483 uint32_t COUNT:1; /*!< bit: 3 COUNT Register Busy */ 484 uint32_t :1; /*!< bit: 4 Reserved */ 485 uint32_t COMP0:1; /*!< bit: 5 COMP 0 Register Busy */ 486 uint32_t COMP1:1; /*!< bit: 6 COMP 1 Register Busy */ 487 uint32_t :8; /*!< bit: 7..14 Reserved */ 488 uint32_t COUNTSYNC:1; /*!< bit: 15 Count Synchronization Enable Bit Busy */ 489 uint32_t GP0:1; /*!< bit: 16 General Purpose 0 Register Busy */ 490 uint32_t GP1:1; /*!< bit: 17 General Purpose 1 Register Busy */ 491 uint32_t GP2:1; /*!< bit: 18 General Purpose 2 Register Busy */ 492 uint32_t GP3:1; /*!< bit: 19 General Purpose 3 Register Busy */ 493 uint32_t :12; /*!< bit: 20..31 Reserved */ 494 } bit; /*!< Structure used for bit access */ 495 struct { 496 uint32_t :5; /*!< bit: 0.. 4 Reserved */ 497 uint32_t COMP:2; /*!< bit: 5.. 6 COMP x Register Busy */ 498 uint32_t :9; /*!< bit: 7..15 Reserved */ 499 uint32_t GP:4; /*!< bit: 16..19 General Purpose x Register Busy */ 500 uint32_t :12; /*!< bit: 20..31 Reserved */ 501 } vec; /*!< Structure used for vec access */ 502 uint32_t reg; /*!< Type used for register access */ 503 } RTC_MODE0_SYNCBUSY_Type; 504 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 505 /* -------- RTC_MODE1_SYNCBUSY : (RTC Offset: 0x10) ( R/ 32) MODE1 Synchronization Busy Status -------- */ 506 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 507 typedef union { 508 struct { 509 uint32_t SWRST:1; /*!< bit: 0 Software Reset Bit Busy */ 510 uint32_t ENABLE:1; /*!< bit: 1 Enable Bit Busy */ 511 uint32_t FREQCORR:1; /*!< bit: 2 FREQCORR Register Busy */ 512 uint32_t COUNT:1; /*!< bit: 3 COUNT Register Busy */ 513 uint32_t PER:1; /*!< bit: 4 PER Register Busy */ 514 uint32_t COMP0:1; /*!< bit: 5 COMP 0 Register Busy */ 515 uint32_t COMP1:1; /*!< bit: 6 COMP 1 Register Busy */ 516 uint32_t COMP2:1; /*!< bit: 7 COMP 2 Register Busy */ 517 uint32_t COMP3:1; /*!< bit: 8 COMP 3 Register Busy */ 518 uint32_t :6; /*!< bit: 9..14 Reserved */ 519 uint32_t COUNTSYNC:1; /*!< bit: 15 Count Synchronization Enable Bit Busy */ 520 uint32_t GP0:1; /*!< bit: 16 General Purpose 0 Register Busy */ 521 uint32_t GP1:1; /*!< bit: 17 General Purpose 1 Register Busy */ 522 uint32_t GP2:1; /*!< bit: 18 General Purpose 2 Register Busy */ 523 uint32_t GP3:1; /*!< bit: 19 General Purpose 3 Register Busy */ 524 uint32_t :12; /*!< bit: 20..31 Reserved */ 525 } bit; /*!< Structure used for bit access */ 526 struct { 527 uint32_t :5; /*!< bit: 0.. 4 Reserved */ 528 uint32_t COMP:4; /*!< bit: 5.. 8 COMP x Register Busy */ 529 uint32_t :7; /*!< bit: 9..15 Reserved */ 530 uint32_t GP:4; /*!< bit: 16..19 General Purpose x Register Busy */ 531 uint32_t :12; /*!< bit: 20..31 Reserved */ 532 } vec; /*!< Structure used for vec access */ 533 uint32_t reg; /*!< Type used for register access */ 534 } RTC_MODE1_SYNCBUSY_Type; 535 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 536 537 /* -------- RTC_MODE2_SYNCBUSY : (RTC Offset: 0x10) ( R/ 32) MODE2 Synchronization Busy Status -------- */ 538 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 539 typedef union { 540 struct { 541 uint32_t SWRST:1; /*!< bit: 0 Software Reset Bit Busy */ 542 uint32_t ENABLE:1; /*!< bit: 1 Enable Bit Busy */ 543 uint32_t FREQCORR:1; /*!< bit: 2 FREQCORR Register Busy */ 544 uint32_t CLOCK:1; /*!< bit: 3 CLOCK Register Busy */ 545 uint32_t :1; /*!< bit: 4 Reserved */ 546 uint32_t ALARM0:1; /*!< bit: 5 ALARM 0 Register Busy */ 547 uint32_t ALARM1:1; /*!< bit: 6 ALARM 1 Register Busy */ 548 uint32_t :4; /*!< bit: 7..10 Reserved */ 549 uint32_t MASK0:1; /*!< bit: 11 MASK 0 Register Busy */ 550 uint32_t MASK1:1; /*!< bit: 12 MASK 1 Register Busy */ 551 uint32_t :2; /*!< bit: 13..14 Reserved */ 552 uint32_t CLOCKSYNC:1; /*!< bit: 15 Clock Synchronization Enable Bit Busy */ 553 uint32_t GP0:1; /*!< bit: 16 General Purpose 0 Register Busy */ 554 uint32_t GP1:1; /*!< bit: 17 General Purpose 1 Register Busy */ 555 uint32_t GP2:1; /*!< bit: 18 General Purpose 2 Register Busy */ 556 uint32_t GP3:1; /*!< bit: 19 General Purpose 3 Register Busy */ 557 uint32_t :12; /*!< bit: 20..31 Reserved */ 558 } bit; /*!< Structure used for bit access */ 559 struct { 560 uint32_t :5; /*!< bit: 0.. 4 Reserved */ 561 uint32_t ALARM:2; /*!< bit: 5.. 6 ALARM x Register Busy */ 562 uint32_t :4; /*!< bit: 7..10 Reserved */ 563 uint32_t MASK:2; /*!< bit: 11..12 MASK x Register Busy */ 564 uint32_t :3; /*!< bit: 13..15 Reserved */ 565 uint32_t GP:4; /*!< bit: 16..19 General Purpose x Register Busy */ 566 uint32_t :12; /*!< bit: 20..31 Reserved */ 567 } vec; /*!< Structure used for vec access */ 568 uint32_t reg; /*!< Type used for register access */ 569 } RTC_MODE2_SYNCBUSY_Type; 570 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 571 572 /* -------- RTC_FREQCORR : (RTC Offset: 0x14) (R/W 8) Frequency Correction -------- */ 573 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 574 typedef union { 575 struct { 576 uint8_t VALUE:7; /*!< bit: 0.. 6 Correction Value */ 577 uint8_t SIGN:1; /*!< bit: 7 Correction Sign */ 578 } bit; /*!< Structure used for bit access */ 579 uint8_t reg; /*!< Type used for register access */ 580 } RTC_FREQCORR_Type; 581 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 582 583 /* -------- RTC_MODE0_COUNT : (RTC Offset: 0x18) (R/W 32) MODE0 Counter Value -------- */ 584 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 585 typedef union { 586 struct { 587 uint32_t COUNT:32; /*!< bit: 0..31 Counter Value */ 588 } bit; /*!< Structure used for bit access */ 589 uint32_t reg; /*!< Type used for register access */ 590 } RTC_MODE0_COUNT_Type; 591 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 592 593 /* -------- RTC_MODE1_COUNT : (RTC Offset: 0x18) (R/W 16) MODE1 Counter Value -------- */ 594 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 595 typedef union { 596 struct { 597 uint16_t COUNT:16; /*!< bit: 0..15 Counter Value */ 598 } bit; /*!< Structure used for bit access */ 599 uint16_t reg; /*!< Type used for register access */ 600 } RTC_MODE1_COUNT_Type; 601 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 602 603 /* -------- RTC_MODE2_CLOCK : (RTC Offset: 0x18) (R/W 32) MODE2 Clock Value -------- */ 604 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 605 typedef union { 606 struct { 607 uint32_t SECOND:6; /*!< bit: 0.. 5 Second */ 608 uint32_t MINUTE:6; /*!< bit: 6..11 Minute */ 609 uint32_t HOUR:5; /*!< bit: 12..16 Hour */ 610 uint32_t DAY:5; /*!< bit: 17..21 Day */ 611 uint32_t MONTH:4; /*!< bit: 22..25 Month */ 612 uint32_t YEAR:6; /*!< bit: 26..31 Year */ 613 } bit; /*!< Structure used for bit access */ 614 uint32_t reg; /*!< Type used for register access */ 615 } RTC_MODE2_CLOCK_Type; 616 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 617 618 /* -------- RTC_MODE1_PER : (RTC Offset: 0x1C) (R/W 16) MODE1 Counter Period -------- */ 619 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 620 typedef union { 621 struct { 622 uint16_t PER:16; /*!< bit: 0..15 Counter Period */ 623 } bit; /*!< Structure used for bit access */ 624 uint16_t reg; /*!< Type used for register access */ 625 } RTC_MODE1_PER_Type; 626 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 627 628 /* -------- RTC_MODE0_COMP : (RTC Offset: 0x20) (R/W 32) MODE0 Compare n Value -------- */ 629 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 630 typedef union { 631 struct { 632 uint32_t COMP:32; /*!< bit: 0..31 Compare Value */ 633 } bit; /*!< Structure used for bit access */ 634 uint32_t reg; /*!< Type used for register access */ 635 } RTC_MODE0_COMP_Type; 636 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 637 638 /* -------- RTC_MODE1_COMP : (RTC Offset: 0x20) (R/W 16) MODE1 Compare n Value -------- */ 639 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 640 typedef union { 641 struct { 642 uint16_t COMP:16; /*!< bit: 0..15 Compare Value */ 643 } bit; /*!< Structure used for bit access */ 644 uint16_t reg; /*!< Type used for register access */ 645 } RTC_MODE1_COMP_Type; 646 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 647 648 /* -------- RTC_MODE2_ALARM : (RTC Offset: 0x20) (R/W 32) MODE2 MODE2_ALARM Alarm n Value -------- */ 649 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 650 typedef union { 651 struct { 652 uint32_t SECOND:6; /*!< bit: 0.. 5 Second */ 653 uint32_t MINUTE:6; /*!< bit: 6..11 Minute */ 654 uint32_t HOUR:5; /*!< bit: 12..16 Hour */ 655 uint32_t DAY:5; /*!< bit: 17..21 Day */ 656 uint32_t MONTH:4; /*!< bit: 22..25 Month */ 657 uint32_t YEAR:6; /*!< bit: 26..31 Year */ 658 } bit; /*!< Structure used for bit access */ 659 uint32_t reg; /*!< Type used for register access */ 660 } RTC_MODE2_ALARM_Type; 661 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 662 663 #define RTC_MODE2_ALARM_OFFSET 0x20 /**< \brief (RTC_MODE2_ALARM offset) MODE2_ALARM Alarm n Value */ 664 #define RTC_MODE2_ALARM_RESETVALUE _U_(0x00000000) /**< \brief (RTC_MODE2_ALARM reset_value) MODE2_ALARM Alarm n Value */ 665 666 #define RTC_MODE2_ALARM_SECOND_Pos 0 /**< \brief (RTC_MODE2_ALARM) Second */ 667 #define RTC_MODE2_ALARM_SECOND_Msk (_U_(0x3F) << RTC_MODE2_ALARM_SECOND_Pos) 668 #define RTC_MODE2_ALARM_SECOND(value) (RTC_MODE2_ALARM_SECOND_Msk & ((value) << RTC_MODE2_ALARM_SECOND_Pos)) 669 #define RTC_MODE2_ALARM_MINUTE_Pos 6 /**< \brief (RTC_MODE2_ALARM) Minute */ 670 #define RTC_MODE2_ALARM_MINUTE_Msk (_U_(0x3F) << RTC_MODE2_ALARM_MINUTE_Pos) 671 #define RTC_MODE2_ALARM_MINUTE(value) (RTC_MODE2_ALARM_MINUTE_Msk & ((value) << RTC_MODE2_ALARM_MINUTE_Pos)) 672 #define RTC_MODE2_ALARM_HOUR_Pos 12 /**< \brief (RTC_MODE2_ALARM) Hour */ 673 #define RTC_MODE2_ALARM_HOUR_Msk (_U_(0x1F) << RTC_MODE2_ALARM_HOUR_Pos) 674 #define RTC_MODE2_ALARM_HOUR(value) (RTC_MODE2_ALARM_HOUR_Msk & ((value) << RTC_MODE2_ALARM_HOUR_Pos)) 675 #define RTC_MODE2_ALARM_HOUR_AM_Val _U_(0x0) /**< \brief (RTC_MODE2_ALARM) Morning hour */ 676 #define RTC_MODE2_ALARM_HOUR_PM_Val _U_(0x10) /**< \brief (RTC_MODE2_ALARM) Afternoon hour */ 677 #define RTC_MODE2_ALARM_HOUR_AM (RTC_MODE2_ALARM_HOUR_AM_Val << RTC_MODE2_ALARM_HOUR_Pos) 678 #define RTC_MODE2_ALARM_HOUR_PM (RTC_MODE2_ALARM_HOUR_PM_Val << RTC_MODE2_ALARM_HOUR_Pos) 679 #define RTC_MODE2_ALARM_DAY_Pos 17 /**< \brief (RTC_MODE2_ALARM) Day */ 680 #define RTC_MODE2_ALARM_DAY_Msk (_U_(0x1F) << RTC_MODE2_ALARM_DAY_Pos) 681 #define RTC_MODE2_ALARM_DAY(value) (RTC_MODE2_ALARM_DAY_Msk & ((value) << RTC_MODE2_ALARM_DAY_Pos)) 682 #define RTC_MODE2_ALARM_MONTH_Pos 22 /**< \brief (RTC_MODE2_ALARM) Month */ 683 #define RTC_MODE2_ALARM_MONTH_Msk (_U_(0xF) << RTC_MODE2_ALARM_MONTH_Pos) 684 #define RTC_MODE2_ALARM_MONTH(value) (RTC_MODE2_ALARM_MONTH_Msk & ((value) << RTC_MODE2_ALARM_MONTH_Pos)) 685 #define RTC_MODE2_ALARM_YEAR_Pos 26 /**< \brief (RTC_MODE2_ALARM) Year */ 686 #define RTC_MODE2_ALARM_YEAR_Msk (_U_(0x3F) << RTC_MODE2_ALARM_YEAR_Pos) 687 #define RTC_MODE2_ALARM_YEAR(value) (RTC_MODE2_ALARM_YEAR_Msk & ((value) << RTC_MODE2_ALARM_YEAR_Pos)) 688 #define RTC_MODE2_ALARM_MASK _U_(0xFFFFFFFF) /**< \brief (RTC_MODE2_ALARM) MASK Register */ 689 690 /* -------- RTC_MODE2_MASK : (RTC Offset: 0x24) (R/W 8) MODE2 MODE2_ALARM Alarm n Mask -------- */ 691 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 692 typedef union { 693 struct { 694 uint8_t SEL:3; /*!< bit: 0.. 2 Alarm Mask Selection */ 695 uint8_t :5; /*!< bit: 3.. 7 Reserved */ 696 } bit; /*!< Structure used for bit access */ 697 uint8_t reg; /*!< Type used for register access */ 698 } RTC_MODE2_MASK_Type; 699 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 700 701 #define RTC_MODE2_MASK_OFFSET 0x24 /**< \brief (RTC_MODE2_MASK offset) MODE2_ALARM Alarm n Mask */ 702 #define RTC_MODE2_MASK_RESETVALUE _U_(0x00) /**< \brief (RTC_MODE2_MASK reset_value) MODE2_ALARM Alarm n Mask */ 703 704 #define RTC_MODE2_MASK_SEL_Pos 0 /**< \brief (RTC_MODE2_MASK) Alarm Mask Selection */ 705 #define RTC_MODE2_MASK_SEL_Msk (_U_(0x7) << RTC_MODE2_MASK_SEL_Pos) 706 #define RTC_MODE2_MASK_SEL(value) (RTC_MODE2_MASK_SEL_Msk & ((value) << RTC_MODE2_MASK_SEL_Pos)) 707 #define RTC_MODE2_MASK_SEL_OFF_Val _U_(0x0) /**< \brief (RTC_MODE2_MASK) Alarm Disabled */ 708 #define RTC_MODE2_MASK_SEL_SS_Val _U_(0x1) /**< \brief (RTC_MODE2_MASK) Match seconds only */ 709 #define RTC_MODE2_MASK_SEL_MMSS_Val _U_(0x2) /**< \brief (RTC_MODE2_MASK) Match seconds and minutes only */ 710 #define RTC_MODE2_MASK_SEL_HHMMSS_Val _U_(0x3) /**< \brief (RTC_MODE2_MASK) Match seconds, minutes, and hours only */ 711 #define RTC_MODE2_MASK_SEL_DDHHMMSS_Val _U_(0x4) /**< \brief (RTC_MODE2_MASK) Match seconds, minutes, hours, and days only */ 712 #define RTC_MODE2_MASK_SEL_MMDDHHMMSS_Val _U_(0x5) /**< \brief (RTC_MODE2_MASK) Match seconds, minutes, hours, days, and months only */ 713 #define RTC_MODE2_MASK_SEL_YYMMDDHHMMSS_Val _U_(0x6) /**< \brief (RTC_MODE2_MASK) Match seconds, minutes, hours, days, months, and years */ 714 #define RTC_MODE2_MASK_SEL_OFF (RTC_MODE2_MASK_SEL_OFF_Val << RTC_MODE2_MASK_SEL_Pos) 715 #define RTC_MODE2_MASK_SEL_SS (RTC_MODE2_MASK_SEL_SS_Val << RTC_MODE2_MASK_SEL_Pos) 716 #define RTC_MODE2_MASK_SEL_MMSS (RTC_MODE2_MASK_SEL_MMSS_Val << RTC_MODE2_MASK_SEL_Pos) 717 #define RTC_MODE2_MASK_SEL_HHMMSS (RTC_MODE2_MASK_SEL_HHMMSS_Val << RTC_MODE2_MASK_SEL_Pos) 718 #define RTC_MODE2_MASK_SEL_DDHHMMSS (RTC_MODE2_MASK_SEL_DDHHMMSS_Val << RTC_MODE2_MASK_SEL_Pos) 719 #define RTC_MODE2_MASK_SEL_MMDDHHMMSS (RTC_MODE2_MASK_SEL_MMDDHHMMSS_Val << RTC_MODE2_MASK_SEL_Pos) 720 #define RTC_MODE2_MASK_SEL_YYMMDDHHMMSS (RTC_MODE2_MASK_SEL_YYMMDDHHMMSS_Val << RTC_MODE2_MASK_SEL_Pos) 721 #define RTC_MODE2_MASK_MASK _U_(0x07) /**< \brief (RTC_MODE2_MASK) MASK Register */ 722 723 /* -------- RTC_GP : (RTC Offset: 0x40) (R/W 32) General Purpose -------- */ 724 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 725 typedef union { 726 struct { 727 uint32_t GP:32; /*!< bit: 0..31 General Purpose */ 728 } bit; /*!< Structure used for bit access */ 729 uint32_t reg; /*!< Type used for register access */ 730 } RTC_GP_Type; 731 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 732 733 /* -------- RTC_TAMPCTRL : (RTC Offset: 0x60) (R/W 32) Tamper Control -------- */ 734 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 735 typedef union { 736 struct { 737 uint32_t IN0ACT:2; /*!< bit: 0.. 1 Tamper Input 0 Action */ 738 uint32_t IN1ACT:2; /*!< bit: 2.. 3 Tamper Input 1 Action */ 739 uint32_t IN2ACT:2; /*!< bit: 4.. 5 Tamper Input 2 Action */ 740 uint32_t IN3ACT:2; /*!< bit: 6.. 7 Tamper Input 3 Action */ 741 uint32_t IN4ACT:2; /*!< bit: 8.. 9 Tamper Input 4 Action */ 742 uint32_t :6; /*!< bit: 10..15 Reserved */ 743 uint32_t TAMLVL0:1; /*!< bit: 16 Tamper Level Select 0 */ 744 uint32_t TAMLVL1:1; /*!< bit: 17 Tamper Level Select 1 */ 745 uint32_t TAMLVL2:1; /*!< bit: 18 Tamper Level Select 2 */ 746 uint32_t TAMLVL3:1; /*!< bit: 19 Tamper Level Select 3 */ 747 uint32_t TAMLVL4:1; /*!< bit: 20 Tamper Level Select 4 */ 748 uint32_t :3; /*!< bit: 21..23 Reserved */ 749 uint32_t DEBNC0:1; /*!< bit: 24 Debouncer Enable 0 */ 750 uint32_t DEBNC1:1; /*!< bit: 25 Debouncer Enable 1 */ 751 uint32_t DEBNC2:1; /*!< bit: 26 Debouncer Enable 2 */ 752 uint32_t DEBNC3:1; /*!< bit: 27 Debouncer Enable 3 */ 753 uint32_t DEBNC4:1; /*!< bit: 28 Debouncer Enable 4 */ 754 uint32_t :3; /*!< bit: 29..31 Reserved */ 755 } bit; /*!< Structure used for bit access */ 756 struct { 757 uint32_t :16; /*!< bit: 0..15 Reserved */ 758 uint32_t TAMLVL:5; /*!< bit: 16..20 Tamper Level Select x */ 759 uint32_t :3; /*!< bit: 21..23 Reserved */ 760 uint32_t DEBNC:5; /*!< bit: 24..28 Debouncer Enable x */ 761 uint32_t :3; /*!< bit: 29..31 Reserved */ 762 } vec; /*!< Structure used for vec access */ 763 uint32_t reg; /*!< Type used for register access */ 764 } RTC_TAMPCTRL_Type; 765 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 766 767 /* -------- RTC_MODE0_TIMESTAMP : (RTC Offset: 0x64) ( R/ 32) MODE0 Timestamp -------- */ 768 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 769 typedef union { 770 struct { 771 uint32_t COUNT:32; /*!< bit: 0..31 Count Timestamp Value */ 772 } bit; /*!< Structure used for bit access */ 773 uint32_t reg; /*!< Type used for register access */ 774 } RTC_MODE0_TIMESTAMP_Type; 775 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 776 777 /* -------- RTC_MODE1_TIMESTAMP : (RTC Offset: 0x64) ( R/ 32) MODE1 Timestamp -------- */ 778 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 779 typedef union { 780 struct { 781 uint32_t COUNT:16; /*!< bit: 0..15 Count Timestamp Value */ 782 uint32_t :16; /*!< bit: 16..31 Reserved */ 783 } bit; /*!< Structure used for bit access */ 784 uint32_t reg; /*!< Type used for register access */ 785 } RTC_MODE1_TIMESTAMP_Type; 786 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 787 788 /* -------- RTC_MODE2_TIMESTAMP : (RTC Offset: 0x64) ( R/ 32) MODE2 Timestamp -------- */ 789 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 790 typedef union { 791 struct { 792 uint32_t SECOND:6; /*!< bit: 0.. 5 Second Timestamp Value */ 793 uint32_t MINUTE:6; /*!< bit: 6..11 Minute Timestamp Value */ 794 uint32_t HOUR:5; /*!< bit: 12..16 Hour Timestamp Value */ 795 uint32_t DAY:5; /*!< bit: 17..21 Day Timestamp Value */ 796 uint32_t MONTH:4; /*!< bit: 22..25 Month Timestamp Value */ 797 uint32_t YEAR:6; /*!< bit: 26..31 Year Timestamp Value */ 798 } bit; /*!< Structure used for bit access */ 799 uint32_t reg; /*!< Type used for register access */ 800 } RTC_MODE2_TIMESTAMP_Type; 801 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 802 803 /* -------- RTC_TAMPID : (RTC Offset: 0x68) (R/W 32) Tamper ID -------- */ 804 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 805 typedef union { 806 struct { 807 uint32_t TAMPID0:1; /*!< bit: 0 Tamper Input 0 Detected */ 808 uint32_t TAMPID1:1; /*!< bit: 1 Tamper Input 1 Detected */ 809 uint32_t TAMPID2:1; /*!< bit: 2 Tamper Input 2 Detected */ 810 uint32_t TAMPID3:1; /*!< bit: 3 Tamper Input 3 Detected */ 811 uint32_t TAMPID4:1; /*!< bit: 4 Tamper Input 4 Detected */ 812 uint32_t :26; /*!< bit: 5..30 Reserved */ 813 uint32_t TAMPEVT:1; /*!< bit: 31 Tamper Event Detected */ 814 } bit; /*!< Structure used for bit access */ 815 struct { 816 uint32_t TAMPID:5; /*!< bit: 0.. 4 Tamper Input x Detected */ 817 uint32_t :27; /*!< bit: 5..31 Reserved */ 818 } vec; /*!< Structure used for vec access */ 819 uint32_t reg; /*!< Type used for register access */ 820 } RTC_TAMPID_Type; 821 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 822 823 /* -------- RTC_BKUP : (RTC Offset: 0x80) (R/W 32) Backup -------- */ 824 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 825 typedef union { 826 struct { 827 uint32_t BKUP:32; /*!< bit: 0..31 Backup */ 828 } bit; /*!< Structure used for bit access */ 829 uint32_t reg; /*!< Type used for register access */ 830 } RTC_BKUP_Type; 831 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 832 833 /** \brief RtcMode2Alarm hardware registers */ 834 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 835 typedef struct { 836 __IO RTC_MODE2_ALARM_Type ALARM; /**< \brief Offset: 0x00 (R/W 32) MODE2_ALARM Alarm n Value */ 837 __IO RTC_MODE2_MASK_Type MASK; /**< \brief Offset: 0x04 (R/W 8) MODE2_ALARM Alarm n Mask */ 838 RoReg8 Reserved1[0x3]; 839 } RtcMode2Alarm; 840 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 841 842 /** \brief RTC_MODE0 hardware registers */ 843 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 844 typedef struct { /* 32-bit Counter with Single 32-bit Compare */ 845 __IO RTC_MODE0_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 16) MODE0 Control A */ 846 __IO RTC_MODE0_CTRLB_Type CTRLB; /**< \brief Offset: 0x02 (R/W 16) MODE0 Control B */ 847 __IO RTC_MODE0_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x04 (R/W 32) MODE0 Event Control */ 848 __IO RTC_MODE0_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x08 (R/W 16) MODE0 Interrupt Enable Clear */ 849 __IO RTC_MODE0_INTENSET_Type INTENSET; /**< \brief Offset: 0x0A (R/W 16) MODE0 Interrupt Enable Set */ 850 __IO RTC_MODE0_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x0C (R/W 16) MODE0 Interrupt Flag Status and Clear */ 851 __IO RTC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x0E (R/W 8) Debug Control */ 852 RoReg8 Reserved1[0x1]; 853 __I RTC_MODE0_SYNCBUSY_Type SYNCBUSY; /**< \brief Offset: 0x10 (R/ 32) MODE0 Synchronization Busy Status */ 854 __IO RTC_FREQCORR_Type FREQCORR; /**< \brief Offset: 0x14 (R/W 8) Frequency Correction */ 855 RoReg8 Reserved2[0x3]; 856 __IO RTC_MODE0_COUNT_Type COUNT; /**< \brief Offset: 0x18 (R/W 32) MODE0 Counter Value */ 857 RoReg8 Reserved3[0x4]; 858 __IO RTC_MODE0_COMP_Type COMP[2]; /**< \brief Offset: 0x20 (R/W 32) MODE0 Compare n Value */ 859 RoReg8 Reserved4[0x18]; 860 __IO RTC_GP_Type GP[4]; /**< \brief Offset: 0x40 (R/W 32) General Purpose */ 861 RoReg8 Reserved5[0x10]; 862 __IO RTC_TAMPCTRL_Type TAMPCTRL; /**< \brief Offset: 0x60 (R/W 32) Tamper Control */ 863 __I RTC_MODE0_TIMESTAMP_Type TIMESTAMP; /**< \brief Offset: 0x64 (R/ 32) MODE0 Timestamp */ 864 __IO RTC_TAMPID_Type TAMPID; /**< \brief Offset: 0x68 (R/W 32) Tamper ID */ 865 RoReg8 Reserved6[0x14]; 866 __IO RTC_BKUP_Type BKUP[8]; /**< \brief Offset: 0x80 (R/W 32) Backup */ 867 } RtcMode0; 868 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 869 870 /** \brief RTC_MODE1 hardware registers */ 871 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 872 typedef struct { /* 16-bit Counter with Two 16-bit Compares */ 873 __IO RTC_MODE1_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 16) MODE1 Control A */ 874 __IO RTC_MODE1_CTRLB_Type CTRLB; /**< \brief Offset: 0x02 (R/W 16) MODE1 Control B */ 875 __IO RTC_MODE1_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x04 (R/W 32) MODE1 Event Control */ 876 __IO RTC_MODE1_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x08 (R/W 16) MODE1 Interrupt Enable Clear */ 877 __IO RTC_MODE1_INTENSET_Type INTENSET; /**< \brief Offset: 0x0A (R/W 16) MODE1 Interrupt Enable Set */ 878 __IO RTC_MODE1_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x0C (R/W 16) MODE1 Interrupt Flag Status and Clear */ 879 __IO RTC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x0E (R/W 8) Debug Control */ 880 RoReg8 Reserved1[0x1]; 881 __I RTC_MODE1_SYNCBUSY_Type SYNCBUSY; /**< \brief Offset: 0x10 (R/ 32) MODE1 Synchronization Busy Status */ 882 __IO RTC_FREQCORR_Type FREQCORR; /**< \brief Offset: 0x14 (R/W 8) Frequency Correction */ 883 RoReg8 Reserved2[0x3]; 884 __IO RTC_MODE1_COUNT_Type COUNT; /**< \brief Offset: 0x18 (R/W 16) MODE1 Counter Value */ 885 RoReg8 Reserved3[0x2]; 886 __IO RTC_MODE1_PER_Type PER; /**< \brief Offset: 0x1C (R/W 16) MODE1 Counter Period */ 887 RoReg8 Reserved4[0x2]; 888 __IO RTC_MODE1_COMP_Type COMP[4]; /**< \brief Offset: 0x20 (R/W 16) MODE1 Compare n Value */ 889 RoReg8 Reserved5[0x18]; 890 __IO RTC_GP_Type GP[4]; /**< \brief Offset: 0x40 (R/W 32) General Purpose */ 891 RoReg8 Reserved6[0x10]; 892 __IO RTC_TAMPCTRL_Type TAMPCTRL; /**< \brief Offset: 0x60 (R/W 32) Tamper Control */ 893 __I RTC_MODE1_TIMESTAMP_Type TIMESTAMP; /**< \brief Offset: 0x64 (R/ 32) MODE1 Timestamp */ 894 __IO RTC_TAMPID_Type TAMPID; /**< \brief Offset: 0x68 (R/W 32) Tamper ID */ 895 RoReg8 Reserved7[0x14]; 896 __IO RTC_BKUP_Type BKUP[8]; /**< \brief Offset: 0x80 (R/W 32) Backup */ 897 } RtcMode1; 898 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 899 900 /** \brief RTC_MODE2 hardware registers */ 901 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 902 typedef struct { /* Clock/Calendar with Alarm */ 903 __IO RTC_MODE2_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 16) MODE2 Control A */ 904 __IO RTC_MODE2_CTRLB_Type CTRLB; /**< \brief Offset: 0x02 (R/W 16) MODE2 Control B */ 905 __IO RTC_MODE2_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x04 (R/W 32) MODE2 Event Control */ 906 __IO RTC_MODE2_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x08 (R/W 16) MODE2 Interrupt Enable Clear */ 907 __IO RTC_MODE2_INTENSET_Type INTENSET; /**< \brief Offset: 0x0A (R/W 16) MODE2 Interrupt Enable Set */ 908 __IO RTC_MODE2_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x0C (R/W 16) MODE2 Interrupt Flag Status and Clear */ 909 __IO RTC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x0E (R/W 8) Debug Control */ 910 RoReg8 Reserved1[0x1]; 911 __I RTC_MODE2_SYNCBUSY_Type SYNCBUSY; /**< \brief Offset: 0x10 (R/ 32) MODE2 Synchronization Busy Status */ 912 __IO RTC_FREQCORR_Type FREQCORR; /**< \brief Offset: 0x14 (R/W 8) Frequency Correction */ 913 RoReg8 Reserved2[0x3]; 914 __IO RTC_MODE2_CLOCK_Type CLOCK; /**< \brief Offset: 0x18 (R/W 32) MODE2 Clock Value */ 915 RoReg8 Reserved3[0x4]; 916 RtcMode2Alarm Mode2Alarm[2]; /**< \brief Offset: 0x20 RtcMode2Alarm groups [NUM_OF_ALARMS] */ 917 RoReg8 Reserved4[0x10]; 918 __IO RTC_GP_Type GP[4]; /**< \brief Offset: 0x40 (R/W 32) General Purpose */ 919 RoReg8 Reserved5[0x10]; 920 __IO RTC_TAMPCTRL_Type TAMPCTRL; /**< \brief Offset: 0x60 (R/W 32) Tamper Control */ 921 __I RTC_MODE2_TIMESTAMP_Type TIMESTAMP; /**< \brief Offset: 0x64 (R/ 32) MODE2 Timestamp */ 922 __IO RTC_TAMPID_Type TAMPID; /**< \brief Offset: 0x68 (R/W 32) Tamper ID */ 923 RoReg8 Reserved6[0x14]; 924 __IO RTC_BKUP_Type BKUP[8]; /**< \brief Offset: 0x80 (R/W 32) Backup */ 925 } RtcMode2; 926 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 927 928 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 929 typedef union { 930 RtcMode0 MODE0; /**< \brief Offset: 0x00 32-bit Counter with Single 32-bit Compare */ 931 RtcMode1 MODE1; /**< \brief Offset: 0x00 16-bit Counter with Two 16-bit Compares */ 932 RtcMode2 MODE2; /**< \brief Offset: 0x00 Clock/Calendar with Alarm */ 933 } Rtc; 934 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 935 936 #endif /* _MICROCHIP_PIC32CXSG_RTC_COMPONENT_FIXUP_H_ */ 937