1 /** 2 * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #pragma once 7 8 #include <stdint.h> 9 #include "soc/soc.h" 10 #ifdef __cplusplus 11 extern "C" { 12 #endif 13 14 /* The value that needs to be written to TIMG_WDT_WKEY to write-enable the wdt registers */ 15 #define TIMG_WDT_WKEY_VALUE 0x50D83AA1 16 17 /* Possible values for TIMG_WDT_STGx */ 18 #define TIMG_WDT_STG_SEL_OFF 0 19 #define TIMG_WDT_STG_SEL_INT 1 20 #define TIMG_WDT_STG_SEL_RESET_CPU 2 21 #define TIMG_WDT_STG_SEL_RESET_SYSTEM 3 22 23 #define TIMG_WDT_RESET_LENGTH_100_NS 0 24 #define TIMG_WDT_RESET_LENGTH_200_NS 1 25 #define TIMG_WDT_RESET_LENGTH_300_NS 2 26 #define TIMG_WDT_RESET_LENGTH_400_NS 3 27 #define TIMG_WDT_RESET_LENGTH_500_NS 4 28 #define TIMG_WDT_RESET_LENGTH_800_NS 5 29 #define TIMG_WDT_RESET_LENGTH_1600_NS 6 30 #define TIMG_WDT_RESET_LENGTH_3200_NS 7 31 /* Possible values for TIMG_WDT_STGx */ 32 #define TIMG_WDT_STG_SEL_OFF 0 33 #define TIMG_WDT_STG_SEL_INT 1 34 #define TIMG_WDT_STG_SEL_RESET_CPU 2 35 #define TIMG_WDT_STG_SEL_RESET_SYSTEM 3 36 37 38 /** TIMG_T0CONFIG_REG register 39 * Timer 0 configuration register 40 */ 41 #define TIMG_T0CONFIG_REG(i) (REG_TIMG_BASE(i) + 0x0) 42 /** TIMG_T0_USE_XTAL : R/W; bitpos: [9]; default: 0; 43 * 1: Use XTAL_CLK as the source clock of timer group. 0: Use APB_CLK as the source 44 * clock of timer group. 45 */ 46 #define TIMG_T0_USE_XTAL (BIT(9)) 47 #define TIMG_T0_USE_XTAL_M (TIMG_T0_USE_XTAL_V << TIMG_T0_USE_XTAL_S) 48 #define TIMG_T0_USE_XTAL_V 0x00000001U 49 #define TIMG_T0_USE_XTAL_S 9 50 /** TIMG_T0_ALARM_EN : R/W/SC; bitpos: [10]; default: 0; 51 * When set, the alarm is enabled. This bit is automatically cleared once an 52 * alarm occurs. 53 */ 54 #define TIMG_T0_ALARM_EN (BIT(10)) 55 #define TIMG_T0_ALARM_EN_M (TIMG_T0_ALARM_EN_V << TIMG_T0_ALARM_EN_S) 56 #define TIMG_T0_ALARM_EN_V 0x00000001U 57 #define TIMG_T0_ALARM_EN_S 10 58 /** TIMG_T0_DIVCNT_RST : WT; bitpos: [12]; default: 0; 59 * When set, Timer 0 's clock divider counter will be reset. 60 */ 61 #define TIMG_T0_DIVCNT_RST (BIT(12)) 62 #define TIMG_T0_DIVCNT_RST_M (TIMG_T0_DIVCNT_RST_V << TIMG_T0_DIVCNT_RST_S) 63 #define TIMG_T0_DIVCNT_RST_V 0x00000001U 64 #define TIMG_T0_DIVCNT_RST_S 12 65 /** TIMG_T0_DIVIDER : R/W; bitpos: [28:13]; default: 1; 66 * Timer 0 clock (T0_clk) prescaler value. 67 */ 68 #define TIMG_T0_DIVIDER 0x0000FFFFU 69 #define TIMG_T0_DIVIDER_M (TIMG_T0_DIVIDER_V << TIMG_T0_DIVIDER_S) 70 #define TIMG_T0_DIVIDER_V 0x0000FFFFU 71 #define TIMG_T0_DIVIDER_S 13 72 /** TIMG_T0_AUTORELOAD : R/W; bitpos: [29]; default: 1; 73 * When set, timer 0 auto-reload at alarm is enabled. 74 */ 75 #define TIMG_T0_AUTORELOAD (BIT(29)) 76 #define TIMG_T0_AUTORELOAD_M (TIMG_T0_AUTORELOAD_V << TIMG_T0_AUTORELOAD_S) 77 #define TIMG_T0_AUTORELOAD_V 0x00000001U 78 #define TIMG_T0_AUTORELOAD_S 29 79 /** TIMG_T0_INCREASE : R/W; bitpos: [30]; default: 1; 80 * When set, the timer 0 time-base counter will increment every clock tick. When 81 * cleared, the timer 0 time-base counter will decrement. 82 */ 83 #define TIMG_T0_INCREASE (BIT(30)) 84 #define TIMG_T0_INCREASE_M (TIMG_T0_INCREASE_V << TIMG_T0_INCREASE_S) 85 #define TIMG_T0_INCREASE_V 0x00000001U 86 #define TIMG_T0_INCREASE_S 30 87 /** TIMG_T0_EN : R/W/SS/SC; bitpos: [31]; default: 0; 88 * When set, the timer 0 time-base counter is enabled. 89 */ 90 #define TIMG_T0_EN (BIT(31)) 91 #define TIMG_T0_EN_M (TIMG_T0_EN_V << TIMG_T0_EN_S) 92 #define TIMG_T0_EN_V 0x00000001U 93 #define TIMG_T0_EN_S 31 94 95 /** TIMG_T0LO_REG register 96 * Timer 0 current value, low 32 bits 97 */ 98 #define TIMG_T0LO_REG(i) (REG_TIMG_BASE(i) + 0x4) 99 /** TIMG_T0_LO : RO; bitpos: [31:0]; default: 0; 100 * After writing to TIMG_T0UPDATE_REG, the low 32 bits of the time-base counter 101 * of timer 0 can be read here. 102 */ 103 #define TIMG_T0_LO 0xFFFFFFFFU 104 #define TIMG_T0_LO_M (TIMG_T0_LO_V << TIMG_T0_LO_S) 105 #define TIMG_T0_LO_V 0xFFFFFFFFU 106 #define TIMG_T0_LO_S 0 107 108 /** TIMG_T0HI_REG register 109 * Timer 0 current value, high 22 bits 110 */ 111 #define TIMG_T0HI_REG(i) (REG_TIMG_BASE(i) + 0x8) 112 /** TIMG_T0_HI : RO; bitpos: [21:0]; default: 0; 113 * After writing to TIMG_T0UPDATE_REG, the high 22 bits of the time-base counter 114 * of timer 0 can be read here. 115 */ 116 #define TIMG_T0_HI 0x003FFFFFU 117 #define TIMG_T0_HI_M (TIMG_T0_HI_V << TIMG_T0_HI_S) 118 #define TIMG_T0_HI_V 0x003FFFFFU 119 #define TIMG_T0_HI_S 0 120 121 /** TIMG_T0UPDATE_REG register 122 * Write to copy current timer value to TIMGn_T0_(LO/HI)_REG 123 */ 124 #define TIMG_T0UPDATE_REG(i) (REG_TIMG_BASE(i) + 0xc) 125 /** TIMG_T0_UPDATE : R/W/SC; bitpos: [31]; default: 0; 126 * After writing 0 or 1 to TIMG_T0UPDATE_REG, the counter value is latched. 127 */ 128 #define TIMG_T0_UPDATE (BIT(31)) 129 #define TIMG_T0_UPDATE_M (TIMG_T0_UPDATE_V << TIMG_T0_UPDATE_S) 130 #define TIMG_T0_UPDATE_V 0x00000001U 131 #define TIMG_T0_UPDATE_S 31 132 133 /** TIMG_T0ALARMLO_REG register 134 * Timer 0 alarm value, low 32 bits 135 */ 136 #define TIMG_T0ALARMLO_REG(i) (REG_TIMG_BASE(i) + 0x10) 137 /** TIMG_T0_ALARM_LO : R/W; bitpos: [31:0]; default: 0; 138 * Timer 0 alarm trigger time-base counter value, low 32 bits. 139 */ 140 #define TIMG_T0_ALARM_LO 0xFFFFFFFFU 141 #define TIMG_T0_ALARM_LO_M (TIMG_T0_ALARM_LO_V << TIMG_T0_ALARM_LO_S) 142 #define TIMG_T0_ALARM_LO_V 0xFFFFFFFFU 143 #define TIMG_T0_ALARM_LO_S 0 144 145 /** TIMG_T0ALARMHI_REG register 146 * Timer 0 alarm value, high bits 147 */ 148 #define TIMG_T0ALARMHI_REG(i) (REG_TIMG_BASE(i) + 0x14) 149 /** TIMG_T0_ALARM_HI : R/W; bitpos: [21:0]; default: 0; 150 * Timer 0 alarm trigger time-base counter value, high 22 bits. 151 */ 152 #define TIMG_T0_ALARM_HI 0x003FFFFFU 153 #define TIMG_T0_ALARM_HI_M (TIMG_T0_ALARM_HI_V << TIMG_T0_ALARM_HI_S) 154 #define TIMG_T0_ALARM_HI_V 0x003FFFFFU 155 #define TIMG_T0_ALARM_HI_S 0 156 157 /** TIMG_T0LOADLO_REG register 158 * Timer 0 reload value, low 32 bits 159 */ 160 #define TIMG_T0LOADLO_REG(i) (REG_TIMG_BASE(i) + 0x18) 161 /** TIMG_T0_LOAD_LO : R/W; bitpos: [31:0]; default: 0; 162 * Low 32 bits of the value that a reload will load onto timer 0 time-base 163 * Counter. 164 */ 165 #define TIMG_T0_LOAD_LO 0xFFFFFFFFU 166 #define TIMG_T0_LOAD_LO_M (TIMG_T0_LOAD_LO_V << TIMG_T0_LOAD_LO_S) 167 #define TIMG_T0_LOAD_LO_V 0xFFFFFFFFU 168 #define TIMG_T0_LOAD_LO_S 0 169 170 /** TIMG_T0LOADHI_REG register 171 * Timer 0 reload value, high 22 bits 172 */ 173 #define TIMG_T0LOADHI_REG(i) (REG_TIMG_BASE(i) + 0x1c) 174 /** TIMG_T0_LOAD_HI : R/W; bitpos: [21:0]; default: 0; 175 * High 22 bits of the value that a reload will load onto timer 0 time-base 176 * counter. 177 */ 178 #define TIMG_T0_LOAD_HI 0x003FFFFFU 179 #define TIMG_T0_LOAD_HI_M (TIMG_T0_LOAD_HI_V << TIMG_T0_LOAD_HI_S) 180 #define TIMG_T0_LOAD_HI_V 0x003FFFFFU 181 #define TIMG_T0_LOAD_HI_S 0 182 183 /** TIMG_T0LOAD_REG register 184 * Write to reload timer from TIMG_T0_(LOADLOLOADHI)_REG 185 */ 186 #define TIMG_T0LOAD_REG(i) (REG_TIMG_BASE(i) + 0x20) 187 /** TIMG_T0_LOAD : WT; bitpos: [31:0]; default: 0; 188 * 189 * Write any value to trigger a timer 0 time-base counter reload. 190 */ 191 #define TIMG_T0_LOAD 0xFFFFFFFFU 192 #define TIMG_T0_LOAD_M (TIMG_T0_LOAD_V << TIMG_T0_LOAD_S) 193 #define TIMG_T0_LOAD_V 0xFFFFFFFFU 194 #define TIMG_T0_LOAD_S 0 195 196 /** TIMG_WDTCONFIG0_REG register 197 * Watchdog timer configuration register 198 */ 199 #define TIMG_WDTCONFIG0_REG(i) (REG_TIMG_BASE(i) + 0x48) 200 /** TIMG_WDT_APPCPU_RESET_EN : R/W; bitpos: [12]; default: 0; 201 * WDT reset CPU enable. 202 */ 203 #define TIMG_WDT_APPCPU_RESET_EN (BIT(12)) 204 #define TIMG_WDT_APPCPU_RESET_EN_M (TIMG_WDT_APPCPU_RESET_EN_V << TIMG_WDT_APPCPU_RESET_EN_S) 205 #define TIMG_WDT_APPCPU_RESET_EN_V 0x00000001U 206 #define TIMG_WDT_APPCPU_RESET_EN_S 12 207 /** TIMG_WDT_PROCPU_RESET_EN : R/W; bitpos: [13]; default: 0; 208 * WDT reset CPU enable. 209 */ 210 #define TIMG_WDT_PROCPU_RESET_EN (BIT(13)) 211 #define TIMG_WDT_PROCPU_RESET_EN_M (TIMG_WDT_PROCPU_RESET_EN_V << TIMG_WDT_PROCPU_RESET_EN_S) 212 #define TIMG_WDT_PROCPU_RESET_EN_V 0x00000001U 213 #define TIMG_WDT_PROCPU_RESET_EN_S 13 214 /** TIMG_WDT_FLASHBOOT_MOD_EN : R/W; bitpos: [14]; default: 1; 215 * When set, Flash boot protection is enabled. 216 */ 217 #define TIMG_WDT_FLASHBOOT_MOD_EN (BIT(14)) 218 #define TIMG_WDT_FLASHBOOT_MOD_EN_M (TIMG_WDT_FLASHBOOT_MOD_EN_V << TIMG_WDT_FLASHBOOT_MOD_EN_S) 219 #define TIMG_WDT_FLASHBOOT_MOD_EN_V 0x00000001U 220 #define TIMG_WDT_FLASHBOOT_MOD_EN_S 14 221 /** TIMG_WDT_SYS_RESET_LENGTH : R/W; bitpos: [17:15]; default: 1; 222 * System reset signal length selection. 0: 100 ns, 1: 200 ns, 223 * 2: 300 ns, 3: 400 ns, 4: 500 ns, 5: 800 ns, 6: 1.6 us, 7: 3.2 us. 224 */ 225 #define TIMG_WDT_SYS_RESET_LENGTH 0x00000007U 226 #define TIMG_WDT_SYS_RESET_LENGTH_M (TIMG_WDT_SYS_RESET_LENGTH_V << TIMG_WDT_SYS_RESET_LENGTH_S) 227 #define TIMG_WDT_SYS_RESET_LENGTH_V 0x00000007U 228 #define TIMG_WDT_SYS_RESET_LENGTH_S 15 229 /** TIMG_WDT_CPU_RESET_LENGTH : R/W; bitpos: [20:18]; default: 1; 230 * CPU reset signal length selection. 0: 100 ns, 1: 200 ns, 231 * 2: 300 ns, 3: 400 ns, 4: 500 ns, 5: 800 ns, 6: 1.6 us, 7: 3.2 us. 232 */ 233 #define TIMG_WDT_CPU_RESET_LENGTH 0x00000007U 234 #define TIMG_WDT_CPU_RESET_LENGTH_M (TIMG_WDT_CPU_RESET_LENGTH_V << TIMG_WDT_CPU_RESET_LENGTH_S) 235 #define TIMG_WDT_CPU_RESET_LENGTH_V 0x00000007U 236 #define TIMG_WDT_CPU_RESET_LENGTH_S 18 237 /** TIMG_WDT_USE_XTAL : R/W; bitpos: [21]; default: 0; 238 * choose WDT clock:0-apb_clk, 1-xtal_clk. 239 */ 240 #define TIMG_WDT_USE_XTAL (BIT(21)) 241 #define TIMG_WDT_USE_XTAL_M (TIMG_WDT_USE_XTAL_V << TIMG_WDT_USE_XTAL_S) 242 #define TIMG_WDT_USE_XTAL_V 0x00000001U 243 #define TIMG_WDT_USE_XTAL_S 21 244 /** TIMG_WDT_CONF_UPDATE_EN : WT; bitpos: [22]; default: 0; 245 * update the WDT configuration registers 246 */ 247 #define TIMG_WDT_CONF_UPDATE_EN (BIT(22)) 248 #define TIMG_WDT_CONF_UPDATE_EN_M (TIMG_WDT_CONF_UPDATE_EN_V << TIMG_WDT_CONF_UPDATE_EN_S) 249 #define TIMG_WDT_CONF_UPDATE_EN_V 0x00000001U 250 #define TIMG_WDT_CONF_UPDATE_EN_S 22 251 /** TIMG_WDT_STG3 : R/W; bitpos: [24:23]; default: 0; 252 * Stage 3 configuration. 0: off, 1: interrupt, 2: reset CPU, 3: reset system. 253 */ 254 #define TIMG_WDT_STG3 0x00000003U 255 #define TIMG_WDT_STG3_M (TIMG_WDT_STG3_V << TIMG_WDT_STG3_S) 256 #define TIMG_WDT_STG3_V 0x00000003U 257 #define TIMG_WDT_STG3_S 23 258 /** TIMG_WDT_STG2 : R/W; bitpos: [26:25]; default: 0; 259 * Stage 2 configuration. 0: off, 1: interrupt, 2: reset CPU, 3: reset system. 260 */ 261 #define TIMG_WDT_STG2 0x00000003U 262 #define TIMG_WDT_STG2_M (TIMG_WDT_STG2_V << TIMG_WDT_STG2_S) 263 #define TIMG_WDT_STG2_V 0x00000003U 264 #define TIMG_WDT_STG2_S 25 265 /** TIMG_WDT_STG1 : R/W; bitpos: [28:27]; default: 0; 266 * Stage 1 configuration. 0: off, 1: interrupt, 2: reset CPU, 3: reset system. 267 */ 268 #define TIMG_WDT_STG1 0x00000003U 269 #define TIMG_WDT_STG1_M (TIMG_WDT_STG1_V << TIMG_WDT_STG1_S) 270 #define TIMG_WDT_STG1_V 0x00000003U 271 #define TIMG_WDT_STG1_S 27 272 /** TIMG_WDT_STG0 : R/W; bitpos: [30:29]; default: 0; 273 * Stage 0 configuration. 0: off, 1: interrupt, 2: reset CPU, 3: reset system. 274 */ 275 #define TIMG_WDT_STG0 0x00000003U 276 #define TIMG_WDT_STG0_M (TIMG_WDT_STG0_V << TIMG_WDT_STG0_S) 277 #define TIMG_WDT_STG0_V 0x00000003U 278 #define TIMG_WDT_STG0_S 29 279 /** TIMG_WDT_EN : R/W; bitpos: [31]; default: 0; 280 * When set, MWDT is enabled. 281 */ 282 #define TIMG_WDT_EN (BIT(31)) 283 #define TIMG_WDT_EN_M (TIMG_WDT_EN_V << TIMG_WDT_EN_S) 284 #define TIMG_WDT_EN_V 0x00000001U 285 #define TIMG_WDT_EN_S 31 286 287 /** TIMG_WDTCONFIG1_REG register 288 * Watchdog timer prescaler register 289 */ 290 #define TIMG_WDTCONFIG1_REG(i) (REG_TIMG_BASE(i) + 0x4c) 291 /** TIMG_WDT_DIVCNT_RST : WT; bitpos: [0]; default: 0; 292 * When set, WDT 's clock divider counter will be reset. 293 */ 294 #define TIMG_WDT_DIVCNT_RST (BIT(0)) 295 #define TIMG_WDT_DIVCNT_RST_M (TIMG_WDT_DIVCNT_RST_V << TIMG_WDT_DIVCNT_RST_S) 296 #define TIMG_WDT_DIVCNT_RST_V 0x00000001U 297 #define TIMG_WDT_DIVCNT_RST_S 0 298 /** TIMG_WDT_CLK_PRESCALE : R/W; bitpos: [31:16]; default: 1; 299 * MWDT clock prescaler value. MWDT clock period = 12.5 ns * 300 * TIMG_WDT_CLK_PRESCALE. 301 */ 302 #define TIMG_WDT_CLK_PRESCALE 0x0000FFFFU 303 #define TIMG_WDT_CLK_PRESCALE_M (TIMG_WDT_CLK_PRESCALE_V << TIMG_WDT_CLK_PRESCALE_S) 304 #define TIMG_WDT_CLK_PRESCALE_V 0x0000FFFFU 305 #define TIMG_WDT_CLK_PRESCALE_S 16 306 307 /** TIMG_WDTCONFIG2_REG register 308 * Watchdog timer stage 0 timeout value 309 */ 310 #define TIMG_WDTCONFIG2_REG(i) (REG_TIMG_BASE(i) + 0x50) 311 /** TIMG_WDT_STG0_HOLD : R/W; bitpos: [31:0]; default: 26000000; 312 * Stage 0 timeout value, in MWDT clock cycles. 313 */ 314 #define TIMG_WDT_STG0_HOLD 0xFFFFFFFFU 315 #define TIMG_WDT_STG0_HOLD_M (TIMG_WDT_STG0_HOLD_V << TIMG_WDT_STG0_HOLD_S) 316 #define TIMG_WDT_STG0_HOLD_V 0xFFFFFFFFU 317 #define TIMG_WDT_STG0_HOLD_S 0 318 319 /** TIMG_WDTCONFIG3_REG register 320 * Watchdog timer stage 1 timeout value 321 */ 322 #define TIMG_WDTCONFIG3_REG(i) (REG_TIMG_BASE(i) + 0x54) 323 /** TIMG_WDT_STG1_HOLD : R/W; bitpos: [31:0]; default: 134217727; 324 * Stage 1 timeout value, in MWDT clock cycles. 325 */ 326 #define TIMG_WDT_STG1_HOLD 0xFFFFFFFFU 327 #define TIMG_WDT_STG1_HOLD_M (TIMG_WDT_STG1_HOLD_V << TIMG_WDT_STG1_HOLD_S) 328 #define TIMG_WDT_STG1_HOLD_V 0xFFFFFFFFU 329 #define TIMG_WDT_STG1_HOLD_S 0 330 331 /** TIMG_WDTCONFIG4_REG register 332 * Watchdog timer stage 2 timeout value 333 */ 334 #define TIMG_WDTCONFIG4_REG(i) (REG_TIMG_BASE(i) + 0x58) 335 /** TIMG_WDT_STG2_HOLD : R/W; bitpos: [31:0]; default: 1048575; 336 * Stage 2 timeout value, in MWDT clock cycles. 337 */ 338 #define TIMG_WDT_STG2_HOLD 0xFFFFFFFFU 339 #define TIMG_WDT_STG2_HOLD_M (TIMG_WDT_STG2_HOLD_V << TIMG_WDT_STG2_HOLD_S) 340 #define TIMG_WDT_STG2_HOLD_V 0xFFFFFFFFU 341 #define TIMG_WDT_STG2_HOLD_S 0 342 343 /** TIMG_WDTCONFIG5_REG register 344 * Watchdog timer stage 3 timeout value 345 */ 346 #define TIMG_WDTCONFIG5_REG(i) (REG_TIMG_BASE(i) + 0x5c) 347 /** TIMG_WDT_STG3_HOLD : R/W; bitpos: [31:0]; default: 1048575; 348 * Stage 3 timeout value, in MWDT clock cycles. 349 */ 350 #define TIMG_WDT_STG3_HOLD 0xFFFFFFFFU 351 #define TIMG_WDT_STG3_HOLD_M (TIMG_WDT_STG3_HOLD_V << TIMG_WDT_STG3_HOLD_S) 352 #define TIMG_WDT_STG3_HOLD_V 0xFFFFFFFFU 353 #define TIMG_WDT_STG3_HOLD_S 0 354 355 /** TIMG_WDTFEED_REG register 356 * Write to feed the watchdog timer 357 */ 358 #define TIMG_WDTFEED_REG(i) (REG_TIMG_BASE(i) + 0x60) 359 /** TIMG_WDT_FEED : WT; bitpos: [31:0]; default: 0; 360 * Write any value to feed the MWDT. (WO) 361 */ 362 #define TIMG_WDT_FEED 0xFFFFFFFFU 363 #define TIMG_WDT_FEED_M (TIMG_WDT_FEED_V << TIMG_WDT_FEED_S) 364 #define TIMG_WDT_FEED_V 0xFFFFFFFFU 365 #define TIMG_WDT_FEED_S 0 366 367 /** TIMG_WDTWPROTECT_REG register 368 * Watchdog write protect register 369 */ 370 #define TIMG_WDTWPROTECT_REG(i) (REG_TIMG_BASE(i) + 0x64) 371 /** TIMG_WDT_WKEY : R/W; bitpos: [31:0]; default: 1356348065; 372 * If the register contains a different value than its reset value, write 373 * protection is enabled. 374 */ 375 #define TIMG_WDT_WKEY 0xFFFFFFFFU 376 #define TIMG_WDT_WKEY_M (TIMG_WDT_WKEY_V << TIMG_WDT_WKEY_S) 377 #define TIMG_WDT_WKEY_V 0xFFFFFFFFU 378 #define TIMG_WDT_WKEY_S 0 379 380 /** TIMG_RTCCALICFG_REG register 381 * RTC calibration configure register 382 */ 383 #define TIMG_RTCCALICFG_REG(i) (REG_TIMG_BASE(i) + 0x68) 384 /** TIMG_RTC_CALI_START_CYCLING : R/W; bitpos: [12]; default: 1; 385 * 0: one-shot frequency calculation,1: periodic frequency calculation, 386 */ 387 #define TIMG_RTC_CALI_START_CYCLING (BIT(12)) 388 #define TIMG_RTC_CALI_START_CYCLING_M (TIMG_RTC_CALI_START_CYCLING_V << TIMG_RTC_CALI_START_CYCLING_S) 389 #define TIMG_RTC_CALI_START_CYCLING_V 0x00000001U 390 #define TIMG_RTC_CALI_START_CYCLING_S 12 391 /** TIMG_RTC_CALI_CLK_SEL : R/W; bitpos: [14:13]; default: 0; 392 * 0:rtc slow clock. 1:clk_8m, 2:xtal_32k. 393 */ 394 #define TIMG_RTC_CALI_CLK_SEL 0x00000003U 395 #define TIMG_RTC_CALI_CLK_SEL_M (TIMG_RTC_CALI_CLK_SEL_V << TIMG_RTC_CALI_CLK_SEL_S) 396 #define TIMG_RTC_CALI_CLK_SEL_V 0x00000003U 397 #define TIMG_RTC_CALI_CLK_SEL_S 13 398 /** TIMG_RTC_CALI_RDY : RO; bitpos: [15]; default: 0; 399 * indicate one-shot frequency calculation is done. 400 */ 401 #define TIMG_RTC_CALI_RDY (BIT(15)) 402 #define TIMG_RTC_CALI_RDY_M (TIMG_RTC_CALI_RDY_V << TIMG_RTC_CALI_RDY_S) 403 #define TIMG_RTC_CALI_RDY_V 0x00000001U 404 #define TIMG_RTC_CALI_RDY_S 15 405 /** TIMG_RTC_CALI_MAX : R/W; bitpos: [30:16]; default: 1; 406 * Configure the time to calculate RTC slow clock's frequency. 407 */ 408 #define TIMG_RTC_CALI_MAX 0x00007FFFU 409 #define TIMG_RTC_CALI_MAX_M (TIMG_RTC_CALI_MAX_V << TIMG_RTC_CALI_MAX_S) 410 #define TIMG_RTC_CALI_MAX_V 0x00007FFFU 411 #define TIMG_RTC_CALI_MAX_S 16 412 /** TIMG_RTC_CALI_START : R/W; bitpos: [31]; default: 0; 413 * Set this bit to start one-shot frequency calculation. 414 */ 415 #define TIMG_RTC_CALI_START (BIT(31)) 416 #define TIMG_RTC_CALI_START_M (TIMG_RTC_CALI_START_V << TIMG_RTC_CALI_START_S) 417 #define TIMG_RTC_CALI_START_V 0x00000001U 418 #define TIMG_RTC_CALI_START_S 31 419 420 /** TIMG_RTCCALICFG1_REG register 421 * RTC calibration configure1 register 422 */ 423 #define TIMG_RTCCALICFG1_REG(i) (REG_TIMG_BASE(i) + 0x6c) 424 /** TIMG_RTC_CALI_CYCLING_DATA_VLD : RO; bitpos: [0]; default: 0; 425 * indicate periodic frequency calculation is done. 426 */ 427 #define TIMG_RTC_CALI_CYCLING_DATA_VLD (BIT(0)) 428 #define TIMG_RTC_CALI_CYCLING_DATA_VLD_M (TIMG_RTC_CALI_CYCLING_DATA_VLD_V << TIMG_RTC_CALI_CYCLING_DATA_VLD_S) 429 #define TIMG_RTC_CALI_CYCLING_DATA_VLD_V 0x00000001U 430 #define TIMG_RTC_CALI_CYCLING_DATA_VLD_S 0 431 /** TIMG_RTC_CALI_VALUE : RO; bitpos: [31:7]; default: 0; 432 * When one-shot or periodic frequency calculation is done, read this value to 433 * calculate RTC slow clock's frequency. 434 */ 435 #define TIMG_RTC_CALI_VALUE 0x01FFFFFFU 436 #define TIMG_RTC_CALI_VALUE_M (TIMG_RTC_CALI_VALUE_V << TIMG_RTC_CALI_VALUE_S) 437 #define TIMG_RTC_CALI_VALUE_V 0x01FFFFFFU 438 #define TIMG_RTC_CALI_VALUE_S 7 439 440 /** TIMG_INT_ENA_TIMERS_REG register 441 * Interrupt enable bits 442 */ 443 #define TIMG_INT_ENA_TIMERS_REG(i) (REG_TIMG_BASE(i) + 0x70) 444 /** TIMG_T0_INT_ENA : R/W; bitpos: [0]; default: 0; 445 * The interrupt enable bit for the TIMG_T$x_INT interrupt. 446 */ 447 #define TIMG_T0_INT_ENA (BIT(0)) 448 #define TIMG_T0_INT_ENA_M (TIMG_T0_INT_ENA_V << TIMG_T0_INT_ENA_S) 449 #define TIMG_T0_INT_ENA_V 0x00000001U 450 #define TIMG_T0_INT_ENA_S 0 451 /** TIMG_WDT_INT_ENA : R/W; bitpos: [1]; default: 0; 452 * The interrupt enable bit for the TIMG_WDT_INT interrupt. 453 */ 454 #define TIMG_WDT_INT_ENA (BIT(1)) 455 #define TIMG_WDT_INT_ENA_M (TIMG_WDT_INT_ENA_V << TIMG_WDT_INT_ENA_S) 456 #define TIMG_WDT_INT_ENA_V 0x00000001U 457 #define TIMG_WDT_INT_ENA_S 1 458 459 /** TIMG_INT_RAW_TIMERS_REG register 460 * Raw interrupt status 461 */ 462 #define TIMG_INT_RAW_TIMERS_REG(i) (REG_TIMG_BASE(i) + 0x74) 463 /** TIMG_T0_INT_RAW : R/SS/WTC; bitpos: [0]; default: 0; 464 * The raw interrupt status bit for the TIMG_T$x_INT interrupt. 465 */ 466 #define TIMG_T0_INT_RAW (BIT(0)) 467 #define TIMG_T0_INT_RAW_M (TIMG_T0_INT_RAW_V << TIMG_T0_INT_RAW_S) 468 #define TIMG_T0_INT_RAW_V 0x00000001U 469 #define TIMG_T0_INT_RAW_S 0 470 /** TIMG_WDT_INT_RAW : R/SS/WTC; bitpos: [1]; default: 0; 471 * The raw interrupt status bit for the TIMG_WDT_INT interrupt. 472 */ 473 #define TIMG_WDT_INT_RAW (BIT(1)) 474 #define TIMG_WDT_INT_RAW_M (TIMG_WDT_INT_RAW_V << TIMG_WDT_INT_RAW_S) 475 #define TIMG_WDT_INT_RAW_V 0x00000001U 476 #define TIMG_WDT_INT_RAW_S 1 477 478 /** TIMG_INT_ST_TIMERS_REG register 479 * Masked interrupt status 480 */ 481 #define TIMG_INT_ST_TIMERS_REG(i) (REG_TIMG_BASE(i) + 0x78) 482 /** TIMG_T0_INT_ST : RO; bitpos: [0]; default: 0; 483 * The masked interrupt status bit for the TIMG_T$x_INT interrupt. 484 */ 485 #define TIMG_T0_INT_ST (BIT(0)) 486 #define TIMG_T0_INT_ST_M (TIMG_T0_INT_ST_V << TIMG_T0_INT_ST_S) 487 #define TIMG_T0_INT_ST_V 0x00000001U 488 #define TIMG_T0_INT_ST_S 0 489 /** TIMG_WDT_INT_ST : RO; bitpos: [1]; default: 0; 490 * The masked interrupt status bit for the TIMG_WDT_INT interrupt. 491 */ 492 #define TIMG_WDT_INT_ST (BIT(1)) 493 #define TIMG_WDT_INT_ST_M (TIMG_WDT_INT_ST_V << TIMG_WDT_INT_ST_S) 494 #define TIMG_WDT_INT_ST_V 0x00000001U 495 #define TIMG_WDT_INT_ST_S 1 496 497 /** TIMG_INT_CLR_TIMERS_REG register 498 * Interrupt clear bits 499 */ 500 #define TIMG_INT_CLR_TIMERS_REG(i) (REG_TIMG_BASE(i) + 0x7c) 501 /** TIMG_T0_INT_CLR : WT; bitpos: [0]; default: 0; 502 * Set this bit to clear the TIMG_T$x_INT interrupt. 503 */ 504 #define TIMG_T0_INT_CLR (BIT(0)) 505 #define TIMG_T0_INT_CLR_M (TIMG_T0_INT_CLR_V << TIMG_T0_INT_CLR_S) 506 #define TIMG_T0_INT_CLR_V 0x00000001U 507 #define TIMG_T0_INT_CLR_S 0 508 /** TIMG_WDT_INT_CLR : WT; bitpos: [1]; default: 0; 509 * Set this bit to clear the TIMG_WDT_INT interrupt. 510 */ 511 #define TIMG_WDT_INT_CLR (BIT(1)) 512 #define TIMG_WDT_INT_CLR_M (TIMG_WDT_INT_CLR_V << TIMG_WDT_INT_CLR_S) 513 #define TIMG_WDT_INT_CLR_V 0x00000001U 514 #define TIMG_WDT_INT_CLR_S 1 515 516 /** TIMG_RTCCALICFG2_REG register 517 * Timer group calibration register 518 */ 519 #define TIMG_RTCCALICFG2_REG(i) (REG_TIMG_BASE(i) + 0x80) 520 /** TIMG_RTC_CALI_TIMEOUT : RO; bitpos: [0]; default: 0; 521 * RTC calibration timeout indicator 522 */ 523 #define TIMG_RTC_CALI_TIMEOUT (BIT(0)) 524 #define TIMG_RTC_CALI_TIMEOUT_M (TIMG_RTC_CALI_TIMEOUT_V << TIMG_RTC_CALI_TIMEOUT_S) 525 #define TIMG_RTC_CALI_TIMEOUT_V 0x00000001U 526 #define TIMG_RTC_CALI_TIMEOUT_S 0 527 /** TIMG_RTC_CALI_TIMEOUT_RST_CNT : R/W; bitpos: [6:3]; default: 3; 528 * Cycles that release calibration timeout reset 529 */ 530 #define TIMG_RTC_CALI_TIMEOUT_RST_CNT 0x0000000FU 531 #define TIMG_RTC_CALI_TIMEOUT_RST_CNT_M (TIMG_RTC_CALI_TIMEOUT_RST_CNT_V << TIMG_RTC_CALI_TIMEOUT_RST_CNT_S) 532 #define TIMG_RTC_CALI_TIMEOUT_RST_CNT_V 0x0000000FU 533 #define TIMG_RTC_CALI_TIMEOUT_RST_CNT_S 3 534 /** TIMG_RTC_CALI_TIMEOUT_THRES : R/W; bitpos: [31:7]; default: 33554431; 535 * Threshold value for the RTC calibration timer. If the calibration timer's value 536 * exceeds this threshold, a timeout is triggered. 537 */ 538 #define TIMG_RTC_CALI_TIMEOUT_THRES 0x01FFFFFFU 539 #define TIMG_RTC_CALI_TIMEOUT_THRES_M (TIMG_RTC_CALI_TIMEOUT_THRES_V << TIMG_RTC_CALI_TIMEOUT_THRES_S) 540 #define TIMG_RTC_CALI_TIMEOUT_THRES_V 0x01FFFFFFU 541 #define TIMG_RTC_CALI_TIMEOUT_THRES_S 7 542 543 /** TIMG_NTIMERS_DATE_REG register 544 * Timer version control register 545 */ 546 #define TIMG_NTIMERS_DATE_REG(i) (REG_TIMG_BASE(i) + 0xf8) 547 /** TIMG_NTIMGS_DATE : R/W; bitpos: [27:0]; default: 35676274; 548 * Timer version control register 549 */ 550 #define TIMG_NTIMGS_DATE 0x0FFFFFFFU 551 #define TIMG_NTIMGS_DATE_M (TIMG_NTIMGS_DATE_V << TIMG_NTIMGS_DATE_S) 552 #define TIMG_NTIMGS_DATE_V 0x0FFFFFFFU 553 #define TIMG_NTIMGS_DATE_S 0 554 555 /** TIMG_REGCLK_REG register 556 * Timer group clock gate register 557 */ 558 #define TIMG_REGCLK_REG(i) (REG_TIMG_BASE(i) + 0xfc) 559 /** TIMG_ETM_EN : R/W; bitpos: [28]; default: 1; 560 * enable timer's etm task and event 561 */ 562 #define TIMG_ETM_EN (BIT(28)) 563 #define TIMG_ETM_EN_M (TIMG_ETM_EN_V << TIMG_ETM_EN_S) 564 #define TIMG_ETM_EN_V 0x00000001U 565 #define TIMG_ETM_EN_S 28 566 /** TIMG_WDT_CLK_IS_ACTIVE : R/W; bitpos: [29]; default: 1; 567 * enable WDT's clock 568 */ 569 #define TIMG_WDT_CLK_IS_ACTIVE (BIT(29)) 570 #define TIMG_WDT_CLK_IS_ACTIVE_M (TIMG_WDT_CLK_IS_ACTIVE_V << TIMG_WDT_CLK_IS_ACTIVE_S) 571 #define TIMG_WDT_CLK_IS_ACTIVE_V 0x00000001U 572 #define TIMG_WDT_CLK_IS_ACTIVE_S 29 573 /** TIMG_TIMER_CLK_IS_ACTIVE : R/W; bitpos: [30]; default: 1; 574 * enable Timer $x's clock 575 */ 576 #define TIMG_TIMER_CLK_IS_ACTIVE (BIT(30)) 577 #define TIMG_TIMER_CLK_IS_ACTIVE_M (TIMG_TIMER_CLK_IS_ACTIVE_V << TIMG_TIMER_CLK_IS_ACTIVE_S) 578 #define TIMG_TIMER_CLK_IS_ACTIVE_V 0x00000001U 579 #define TIMG_TIMER_CLK_IS_ACTIVE_S 30 580 /** TIMG_CLK_EN : R/W; bitpos: [31]; default: 0; 581 * Register clock gate signal. 1: Registers can be read and written to by software. 0: 582 * Registers can not be read or written to by software. 583 */ 584 #define TIMG_CLK_EN (BIT(31)) 585 #define TIMG_CLK_EN_M (TIMG_CLK_EN_V << TIMG_CLK_EN_S) 586 #define TIMG_CLK_EN_V 0x00000001U 587 #define TIMG_CLK_EN_S 31 588 589 #ifdef __cplusplus 590 } 591 #endif 592