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_DTM_A_REGISTERS_H__ 27 #define __SI32_DTM_A_REGISTERS_H__ 28 29 #include <stdint.h> 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 struct SI32_DTM_A_CONTROL_Struct 36 { 37 union 38 { 39 struct 40 { 41 // Active State Counter 42 volatile uint8_t STCOUNT; 43 // Active State 44 volatile uint32_t ST: 4; 45 // Last State 46 volatile uint32_t LASTST: 4; 47 // Inhibit Signal Select 48 volatile uint32_t INHSSEL: 4; 49 uint32_t reserved0: 3; 50 // Debug Mode 51 volatile uint32_t DBGMD: 1; 52 // Inhibit Status Flag 53 volatile uint32_t INHF: 1; 54 // Destination Peripheral DMA Request Status Flag 55 volatile uint32_t DSTREQF: 1; 56 // Source Peripheral DMA Request Status Flag 57 volatile uint32_t SRCREQF: 1; 58 // DTM Module Inhibit 59 volatile uint32_t DTMINH: 1; 60 // Timeout Error Interrupt Flag 61 volatile uint32_t TOERRI: 1; 62 // DMA Error Interrupt Flag 63 volatile uint32_t DMAERRI: 1; 64 // Module Interrupt Flag 65 volatile uint32_t DTMI: 1; 66 // Module Enable 67 volatile uint32_t DTMEN: 1; 68 }; 69 volatile uint32_t U32; 70 }; 71 }; 72 73 #define SI32_DTM_A_CONTROL_STCOUNT_MASK 0x000000FF 74 #define SI32_DTM_A_CONTROL_STCOUNT_SHIFT 0 75 76 #define SI32_DTM_A_CONTROL_ST_MASK 0x00000F00 77 #define SI32_DTM_A_CONTROL_ST_SHIFT 8 78 79 #define SI32_DTM_A_CONTROL_LASTST_MASK 0x0000F000 80 #define SI32_DTM_A_CONTROL_LASTST_SHIFT 12 81 82 #define SI32_DTM_A_CONTROL_INHSSEL_MASK 0x000F0000 83 #define SI32_DTM_A_CONTROL_INHSSEL_SHIFT 16 84 // Select inhibit signal source DTMnINH.0. 85 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH0_VALUE 0 86 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH0_U32 \ 87 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH0_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 88 // Select inhibit signal source DTMnINH.1. 89 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH1_VALUE 1 90 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH1_U32 \ 91 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH1_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 92 // Select inhibit signal source DTMnINH.2. 93 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH2_VALUE 2 94 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH2_U32 \ 95 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH2_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 96 // Select inhibit signal source DTMnINH.3. 97 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH3_VALUE 3 98 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH3_U32 \ 99 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH3_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 100 // Select inhibit signal source DTMnINH.4. 101 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH4_VALUE 4 102 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH4_U32 \ 103 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH4_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 104 // Select inhibit signal source DTMnINH.5. 105 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH5_VALUE 5 106 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH5_U32 \ 107 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH5_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 108 // Select inhibit signal source DTMnINH.6. 109 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH6_VALUE 6 110 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH6_U32 \ 111 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH6_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 112 // Select inhibit signal source DTMnINH.7. 113 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH7_VALUE 7 114 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH7_U32 \ 115 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH7_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 116 // Select inhibit signal source DTMnINH.8. 117 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH8_VALUE 8 118 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH8_U32 \ 119 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH8_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 120 // Select inhibit signal source DTMnINH.9. 121 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH9_VALUE 9 122 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH9_U32 \ 123 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH9_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 124 // Select inhibit signal source DTMnINH.10. 125 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH10_VALUE 10 126 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH10_U32 \ 127 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH10_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 128 // Select inhibit signal source DTMnINH.11. 129 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH11_VALUE 11 130 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH11_U32 \ 131 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH11_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 132 // Select inhibit signal source DTMnINH.12. 133 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH12_VALUE 12 134 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH12_U32 \ 135 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH12_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 136 // Select inhibit signal source DTMnINH.13. 137 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH13_VALUE 13 138 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH13_U32 \ 139 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH13_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 140 // Select inhibit signal source DTMnINH.14. 141 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH14_VALUE 14 142 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH14_U32 \ 143 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH14_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 144 // Select inhibit signal source DTMnINH.15. 145 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH15_VALUE 15 146 #define SI32_DTM_A_CONTROL_INHSSEL_DTMNINH15_U32 \ 147 (SI32_DTM_A_CONTROL_INHSSEL_DTMNINH15_VALUE << SI32_DTM_A_CONTROL_INHSSEL_SHIFT) 148 149 #define SI32_DTM_A_CONTROL_DBGMD_MASK 0x00800000 150 #define SI32_DTM_A_CONTROL_DBGMD_SHIFT 23 151 // The DTM module will continue to operate while the core is halted in debug mode. 152 #define SI32_DTM_A_CONTROL_DBGMD_RUN_VALUE 0 153 #define SI32_DTM_A_CONTROL_DBGMD_RUN_U32 \ 154 (SI32_DTM_A_CONTROL_DBGMD_RUN_VALUE << SI32_DTM_A_CONTROL_DBGMD_SHIFT) 155 // A debug breakpoint will cause the DTM module to halt. 156 #define SI32_DTM_A_CONTROL_DBGMD_HALT_VALUE 1 157 #define SI32_DTM_A_CONTROL_DBGMD_HALT_U32 \ 158 (SI32_DTM_A_CONTROL_DBGMD_HALT_VALUE << SI32_DTM_A_CONTROL_DBGMD_SHIFT) 159 160 #define SI32_DTM_A_CONTROL_INHF_MASK 0x01000000 161 #define SI32_DTM_A_CONTROL_INHF_SHIFT 24 162 // The inhibit signal is inactive. 163 #define SI32_DTM_A_CONTROL_INHF_NOT_SET_VALUE 0 164 #define SI32_DTM_A_CONTROL_INHF_NOT_SET_U32 \ 165 (SI32_DTM_A_CONTROL_INHF_NOT_SET_VALUE << SI32_DTM_A_CONTROL_INHF_SHIFT) 166 // The inhibit signal is active. 167 #define SI32_DTM_A_CONTROL_INHF_SET_VALUE 1 168 #define SI32_DTM_A_CONTROL_INHF_SET_U32 \ 169 (SI32_DTM_A_CONTROL_INHF_SET_VALUE << SI32_DTM_A_CONTROL_INHF_SHIFT) 170 171 #define SI32_DTM_A_CONTROL_DSTREQF_MASK 0x02000000 172 #define SI32_DTM_A_CONTROL_DSTREQF_SHIFT 25 173 // The destination peripheral did not request a DMA transfer. 174 #define SI32_DTM_A_CONTROL_DSTREQF_NOT_SET_VALUE 0 175 #define SI32_DTM_A_CONTROL_DSTREQF_NOT_SET_U32 \ 176 (SI32_DTM_A_CONTROL_DSTREQF_NOT_SET_VALUE << SI32_DTM_A_CONTROL_DSTREQF_SHIFT) 177 // The destination peripheral requested a DMA transfer. 178 #define SI32_DTM_A_CONTROL_DSTREQF_SET_VALUE 1 179 #define SI32_DTM_A_CONTROL_DSTREQF_SET_U32 \ 180 (SI32_DTM_A_CONTROL_DSTREQF_SET_VALUE << SI32_DTM_A_CONTROL_DSTREQF_SHIFT) 181 182 #define SI32_DTM_A_CONTROL_SRCREQF_MASK 0x04000000 183 #define SI32_DTM_A_CONTROL_SRCREQF_SHIFT 26 184 // The source peripheral did not request a DMA transfer. 185 #define SI32_DTM_A_CONTROL_SRCREQF_NOT_SET_VALUE 0 186 #define SI32_DTM_A_CONTROL_SRCREQF_NOT_SET_U32 \ 187 (SI32_DTM_A_CONTROL_SRCREQF_NOT_SET_VALUE << SI32_DTM_A_CONTROL_SRCREQF_SHIFT) 188 // The source peripheral requested a DMA transfer. 189 #define SI32_DTM_A_CONTROL_SRCREQF_SET_VALUE 1 190 #define SI32_DTM_A_CONTROL_SRCREQF_SET_U32 \ 191 (SI32_DTM_A_CONTROL_SRCREQF_SET_VALUE << SI32_DTM_A_CONTROL_SRCREQF_SHIFT) 192 193 #define SI32_DTM_A_CONTROL_DTMINH_MASK 0x08000000 194 #define SI32_DTM_A_CONTROL_DTMINH_SHIFT 27 195 // The DTM module does not ignore DMA requests. 196 #define SI32_DTM_A_CONTROL_DTMINH_INACTIVE_VALUE 0 197 #define SI32_DTM_A_CONTROL_DTMINH_INACTIVE_U32 \ 198 (SI32_DTM_A_CONTROL_DTMINH_INACTIVE_VALUE << SI32_DTM_A_CONTROL_DTMINH_SHIFT) 199 // The DTM module ignores DMA requests until this bit is cleared. 200 #define SI32_DTM_A_CONTROL_DTMINH_ACTIVE_VALUE 1 201 #define SI32_DTM_A_CONTROL_DTMINH_ACTIVE_U32 \ 202 (SI32_DTM_A_CONTROL_DTMINH_ACTIVE_VALUE << SI32_DTM_A_CONTROL_DTMINH_SHIFT) 203 204 #define SI32_DTM_A_CONTROL_TOERRI_MASK 0x10000000 205 #define SI32_DTM_A_CONTROL_TOERRI_SHIFT 28 206 // A timeout error has not occurred. 207 #define SI32_DTM_A_CONTROL_TOERRI_NOT_SET_VALUE 0 208 #define SI32_DTM_A_CONTROL_TOERRI_NOT_SET_U32 \ 209 (SI32_DTM_A_CONTROL_TOERRI_NOT_SET_VALUE << SI32_DTM_A_CONTROL_TOERRI_SHIFT) 210 // A timeout error occurred. 211 #define SI32_DTM_A_CONTROL_TOERRI_SET_VALUE 1 212 #define SI32_DTM_A_CONTROL_TOERRI_SET_U32 \ 213 (SI32_DTM_A_CONTROL_TOERRI_SET_VALUE << SI32_DTM_A_CONTROL_TOERRI_SHIFT) 214 215 #define SI32_DTM_A_CONTROL_DMAERRI_MASK 0x20000000 216 #define SI32_DTM_A_CONTROL_DMAERRI_SHIFT 29 217 // A DMA error has not occurred. 218 #define SI32_DTM_A_CONTROL_DMAERRI_NOT_SET_VALUE 0 219 #define SI32_DTM_A_CONTROL_DMAERRI_NOT_SET_U32 \ 220 (SI32_DTM_A_CONTROL_DMAERRI_NOT_SET_VALUE << SI32_DTM_A_CONTROL_DMAERRI_SHIFT) 221 // A DMA error occurred. 222 #define SI32_DTM_A_CONTROL_DMAERRI_SET_VALUE 1 223 #define SI32_DTM_A_CONTROL_DMAERRI_SET_U32 \ 224 (SI32_DTM_A_CONTROL_DMAERRI_SET_VALUE << SI32_DTM_A_CONTROL_DMAERRI_SHIFT) 225 226 #define SI32_DTM_A_CONTROL_DTMI_MASK 0x40000000 227 #define SI32_DTM_A_CONTROL_DTMI_SHIFT 30 228 // A state transition or timeout has not occurred. 229 #define SI32_DTM_A_CONTROL_DTMI_NOT_SET_VALUE 0 230 #define SI32_DTM_A_CONTROL_DTMI_NOT_SET_U32 \ 231 (SI32_DTM_A_CONTROL_DTMI_NOT_SET_VALUE << SI32_DTM_A_CONTROL_DTMI_SHIFT) 232 // A state transition (SECSTIEN or PRISTIEN set to 1) or timeout (TOERRIEN = 1) 233 // occurred. 234 #define SI32_DTM_A_CONTROL_DTMI_SET_VALUE 1 235 #define SI32_DTM_A_CONTROL_DTMI_SET_U32 \ 236 (SI32_DTM_A_CONTROL_DTMI_SET_VALUE << SI32_DTM_A_CONTROL_DTMI_SHIFT) 237 238 #define SI32_DTM_A_CONTROL_DTMEN_MASK 0x80000000 239 #define SI32_DTM_A_CONTROL_DTMEN_SHIFT 31 240 // Disable the DTM module. 241 #define SI32_DTM_A_CONTROL_DTMEN_DISABLED_VALUE 0U 242 #define SI32_DTM_A_CONTROL_DTMEN_DISABLED_U32 \ 243 (SI32_DTM_A_CONTROL_DTMEN_DISABLED_VALUE << SI32_DTM_A_CONTROL_DTMEN_SHIFT) 244 // Enable the DTM module. 245 #define SI32_DTM_A_CONTROL_DTMEN_ENABLED_VALUE 1U 246 #define SI32_DTM_A_CONTROL_DTMEN_ENABLED_U32 \ 247 (SI32_DTM_A_CONTROL_DTMEN_ENABLED_VALUE << SI32_DTM_A_CONTROL_DTMEN_SHIFT) 248 249 250 251 struct SI32_DTM_A_TIMEOUT_Struct 252 { 253 union 254 { 255 struct 256 { 257 // Timeout Counter Reload 258 volatile uint16_t TORELOAD; 259 // Timeout Counter 260 volatile uint16_t TOCOUNT; 261 }; 262 volatile uint32_t U32; 263 }; 264 }; 265 266 #define SI32_DTM_A_TIMEOUT_TORELOAD_MASK 0x0000FFFF 267 #define SI32_DTM_A_TIMEOUT_TORELOAD_SHIFT 0 268 269 #define SI32_DTM_A_TIMEOUT_TOCOUNT_MASK 0xFFFF0000 270 #define SI32_DTM_A_TIMEOUT_TOCOUNT_SHIFT 16 271 272 273 274 struct SI32_DTM_A_MSTCOUNT_Struct 275 { 276 union 277 { 278 struct 279 { 280 // Master Counter 281 volatile uint16_t MSTCOUNT_BITS; 282 uint32_t reserved0: 16; 283 }; 284 volatile uint32_t U32; 285 }; 286 }; 287 288 #define SI32_DTM_A_MSTCOUNT_MSTCOUNT_MASK 0x0000FFFF 289 #define SI32_DTM_A_MSTCOUNT_MSTCOUNT_SHIFT 0 290 291 292 293 struct SI32_DTM_A_STATEADDR_Struct 294 { 295 union 296 { 297 struct 298 { 299 uint32_t reserved0: 2; 300 // State Address 301 volatile uint32_t STATEADDR_BITS: 30; 302 }; 303 volatile uint32_t U32; 304 }; 305 }; 306 307 #define SI32_DTM_A_STATEADDR_STATEADDR_MASK 0xFFFFFFFC 308 #define SI32_DTM_A_STATEADDR_STATEADDR_SHIFT 2 309 310 311 312 struct SI32_DTM_A_STATE_Struct 313 { 314 union 315 { 316 struct 317 { 318 // Active State Counter Reload 319 volatile uint8_t STRELOAD; 320 // Secondary State 321 volatile uint32_t SECST: 4; 322 // Primary State 323 volatile uint32_t PRIST: 4; 324 // Destination Module 325 volatile uint32_t DSTMOD: 4; 326 // Source Module 327 volatile uint32_t SRCMOD: 4; 328 // DTM Channel Select 329 volatile uint32_t DTMCHSEL: 2; 330 // Inhibit Signal Polarity 331 volatile uint32_t INHSPOL: 1; 332 // Module Inhibit Enable 333 volatile uint32_t DTMINH: 1; 334 // Master Decrement Enable 335 volatile uint32_t MSTDECEN: 1; 336 // Timeout Enable 337 volatile uint32_t TOERRIEN: 1; 338 // Secondary State Transition Interrupt Enable 339 volatile uint32_t SECSTIEN: 1; 340 // Primary State Transition Interrupt Enable 341 volatile uint32_t PRISTIEN: 1; 342 }; 343 volatile uint32_t U32; 344 }; 345 }; 346 347 #define SI32_DTM_A_STATE_STRELOAD_MASK 0x000000FF 348 #define SI32_DTM_A_STATE_STRELOAD_SHIFT 0 349 350 #define SI32_DTM_A_STATE_SECST_MASK 0x00000F00 351 #define SI32_DTM_A_STATE_SECST_SHIFT 8 352 353 #define SI32_DTM_A_STATE_PRIST_MASK 0x0000F000 354 #define SI32_DTM_A_STATE_PRIST_SHIFT 12 355 356 #define SI32_DTM_A_STATE_DSTMOD_MASK 0x000F0000 357 #define SI32_DTM_A_STATE_DSTMOD_SHIFT 16 358 // Select destination module DTMnDST.0. 359 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST0_VALUE 0 360 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST0_U32 \ 361 (SI32_DTM_A_STATE_DSTMOD_DTMNDST0_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 362 // Select destination module DTMnDST.1. 363 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST1_VALUE 1 364 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST1_U32 \ 365 (SI32_DTM_A_STATE_DSTMOD_DTMNDST1_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 366 // Select destination module DTMnDST.2. 367 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST2_VALUE 2 368 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST2_U32 \ 369 (SI32_DTM_A_STATE_DSTMOD_DTMNDST2_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 370 // Select destination module DTMnDST.3. 371 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST3_VALUE 3 372 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST3_U32 \ 373 (SI32_DTM_A_STATE_DSTMOD_DTMNDST3_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 374 // Select destination module DTMnDST.4. 375 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST4_VALUE 4 376 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST4_U32 \ 377 (SI32_DTM_A_STATE_DSTMOD_DTMNDST4_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 378 // Select destination module DTMnDST.5. 379 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST5_VALUE 5 380 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST5_U32 \ 381 (SI32_DTM_A_STATE_DSTMOD_DTMNDST5_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 382 // Select destination module DTMnDST.6. 383 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST6_VALUE 6 384 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST6_U32 \ 385 (SI32_DTM_A_STATE_DSTMOD_DTMNDST6_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 386 // Select destination module DTMnDST.7. 387 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST7_VALUE 7 388 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST7_U32 \ 389 (SI32_DTM_A_STATE_DSTMOD_DTMNDST7_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 390 // Select destination module DTMnDST.8. 391 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST8_VALUE 8 392 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST8_U32 \ 393 (SI32_DTM_A_STATE_DSTMOD_DTMNDST8_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 394 // Select destination module DTMnDST.9. 395 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST9_VALUE 9 396 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST9_U32 \ 397 (SI32_DTM_A_STATE_DSTMOD_DTMNDST9_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 398 // Select destination module DTMnDST.10. 399 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST10_VALUE 10 400 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST10_U32 \ 401 (SI32_DTM_A_STATE_DSTMOD_DTMNDST10_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 402 // Select destination module DTMnDST.11. 403 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST11_VALUE 11 404 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST11_U32 \ 405 (SI32_DTM_A_STATE_DSTMOD_DTMNDST11_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 406 // Select destination module DTMnDST.12. 407 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST12_VALUE 12 408 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST12_U32 \ 409 (SI32_DTM_A_STATE_DSTMOD_DTMNDST12_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 410 // Select destination module DTMnDST.13. 411 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST13_VALUE 13 412 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST13_U32 \ 413 (SI32_DTM_A_STATE_DSTMOD_DTMNDST13_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 414 // Select destination module DTMnDST.14. 415 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST14_VALUE 14 416 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST14_U32 \ 417 (SI32_DTM_A_STATE_DSTMOD_DTMNDST14_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 418 // Select no destination module (DTMnDST.15). 419 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST15_VALUE 15 420 #define SI32_DTM_A_STATE_DSTMOD_DTMNDST15_U32 \ 421 (SI32_DTM_A_STATE_DSTMOD_DTMNDST15_VALUE << SI32_DTM_A_STATE_DSTMOD_SHIFT) 422 423 #define SI32_DTM_A_STATE_SRCMOD_MASK 0x00F00000 424 #define SI32_DTM_A_STATE_SRCMOD_SHIFT 20 425 // Select source module DTMnSRC.0. 426 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC0_VALUE 0 427 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC0_U32 \ 428 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC0_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 429 // Select source module DTMnSRC.1. 430 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC1_VALUE 1 431 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC1_U32 \ 432 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC1_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 433 // Select source module DTMnSRC.2. 434 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC2_VALUE 2 435 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC2_U32 \ 436 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC2_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 437 // Select source module DTMnSRC.3. 438 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC3_VALUE 3 439 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC3_U32 \ 440 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC3_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 441 // Select source module DTMnSRC.4. 442 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC4_VALUE 4 443 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC4_U32 \ 444 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC4_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 445 // Select source module DTMnSRC.5. 446 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC5_VALUE 5 447 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC5_U32 \ 448 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC5_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 449 // Select source module DTMnSRC.6. 450 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC6_VALUE 6 451 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC6_U32 \ 452 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC6_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 453 // Select source module DTMnSRC.7. 454 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC7_VALUE 7 455 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC7_U32 \ 456 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC7_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 457 // Select source module DTMnSRC.8. 458 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC8_VALUE 8 459 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC8_U32 \ 460 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC8_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 461 // Select source module DTMnSRC.9. 462 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC9_VALUE 9 463 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC9_U32 \ 464 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC9_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 465 // Select source module DTMnSRC.10. 466 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC10_VALUE 10 467 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC10_U32 \ 468 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC10_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 469 // Select source module DTMnSRC.11. 470 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC11_VALUE 11 471 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC11_U32 \ 472 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC11_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 473 // Select source module DTMnSRC.12. 474 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC12_VALUE 12 475 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC12_U32 \ 476 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC12_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 477 // Select source module DTMnSRC.13. 478 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC13_VALUE 13 479 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC13_U32 \ 480 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC13_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 481 // Select source module DTMnSRC.14. 482 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC14_VALUE 14 483 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC14_U32 \ 484 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC14_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 485 // Select no source module (DTMnSRC.15). 486 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC15_VALUE 15 487 #define SI32_DTM_A_STATE_SRCMOD_DTMNSRC15_U32 \ 488 (SI32_DTM_A_STATE_SRCMOD_DTMNSRC15_VALUE << SI32_DTM_A_STATE_SRCMOD_SHIFT) 489 490 #define SI32_DTM_A_STATE_DTMCHSEL_MASK 0x03000000 491 #define SI32_DTM_A_STATE_DTMCHSEL_SHIFT 24 492 // Select DTMn channel A for this state. 493 #define SI32_DTM_A_STATE_DTMCHSEL_CH_A_VALUE 0 494 #define SI32_DTM_A_STATE_DTMCHSEL_CH_A_U32 \ 495 (SI32_DTM_A_STATE_DTMCHSEL_CH_A_VALUE << SI32_DTM_A_STATE_DTMCHSEL_SHIFT) 496 // Select DTMn channel B for this state. 497 #define SI32_DTM_A_STATE_DTMCHSEL_CH_B_VALUE 1 498 #define SI32_DTM_A_STATE_DTMCHSEL_CH_B_U32 \ 499 (SI32_DTM_A_STATE_DTMCHSEL_CH_B_VALUE << SI32_DTM_A_STATE_DTMCHSEL_SHIFT) 500 // Select DTMn channel C for this state. 501 #define SI32_DTM_A_STATE_DTMCHSEL_CH_C_VALUE 2 502 #define SI32_DTM_A_STATE_DTMCHSEL_CH_C_U32 \ 503 (SI32_DTM_A_STATE_DTMCHSEL_CH_C_VALUE << SI32_DTM_A_STATE_DTMCHSEL_SHIFT) 504 // Select DTMn channel D for this state. 505 #define SI32_DTM_A_STATE_DTMCHSEL_CH_D_VALUE 3 506 #define SI32_DTM_A_STATE_DTMCHSEL_CH_D_U32 \ 507 (SI32_DTM_A_STATE_DTMCHSEL_CH_D_VALUE << SI32_DTM_A_STATE_DTMCHSEL_SHIFT) 508 509 #define SI32_DTM_A_STATE_INHSPOL_MASK 0x04000000 510 #define SI32_DTM_A_STATE_INHSPOL_SHIFT 26 511 // A logic low on the pin selected by INHSEL will allow the DTM to proceed. 512 #define SI32_DTM_A_STATE_INHSPOL_ACTIVE_LOW_VALUE 0 513 #define SI32_DTM_A_STATE_INHSPOL_ACTIVE_LOW_U32 \ 514 (SI32_DTM_A_STATE_INHSPOL_ACTIVE_LOW_VALUE << SI32_DTM_A_STATE_INHSPOL_SHIFT) 515 // A logic high on the pin selected by INHSEL will allow the DTM to proceed. 516 #define SI32_DTM_A_STATE_INHSPOL_ACTIVE_HIGH_VALUE 1 517 #define SI32_DTM_A_STATE_INHSPOL_ACTIVE_HIGH_U32 \ 518 (SI32_DTM_A_STATE_INHSPOL_ACTIVE_HIGH_VALUE << SI32_DTM_A_STATE_INHSPOL_SHIFT) 519 520 #define SI32_DTM_A_STATE_DTMINH_MASK 0x08000000 521 #define SI32_DTM_A_STATE_DTMINH_SHIFT 27 522 // The DTM module does not ignore any DMA requests. 523 #define SI32_DTM_A_STATE_DTMINH_INACTIVE_VALUE 0 524 #define SI32_DTM_A_STATE_DTMINH_INACTIVE_U32 \ 525 (SI32_DTM_A_STATE_DTMINH_INACTIVE_VALUE << SI32_DTM_A_STATE_DTMINH_SHIFT) 526 // The DTM module ignores all DMA requests until the inhibit signal selected by 527 // INHSSEL matches the polarity polarity set by INHSPOL. 528 #define SI32_DTM_A_STATE_DTMINH_ACTIVE_VALUE 1 529 #define SI32_DTM_A_STATE_DTMINH_ACTIVE_U32 \ 530 (SI32_DTM_A_STATE_DTMINH_ACTIVE_VALUE << SI32_DTM_A_STATE_DTMINH_SHIFT) 531 532 #define SI32_DTM_A_STATE_MSTDECEN_MASK 0x10000000 533 #define SI32_DTM_A_STATE_MSTDECEN_SHIFT 28 534 // Disable master counter decrements. 535 #define SI32_DTM_A_STATE_MSTDECEN_DISABLED_VALUE 0 536 #define SI32_DTM_A_STATE_MSTDECEN_DISABLED_U32 \ 537 (SI32_DTM_A_STATE_MSTDECEN_DISABLED_VALUE << SI32_DTM_A_STATE_MSTDECEN_SHIFT) 538 // Enable master counter decrements. 539 #define SI32_DTM_A_STATE_MSTDECEN_ENABLED_VALUE 1 540 #define SI32_DTM_A_STATE_MSTDECEN_ENABLED_U32 \ 541 (SI32_DTM_A_STATE_MSTDECEN_ENABLED_VALUE << SI32_DTM_A_STATE_MSTDECEN_SHIFT) 542 543 #define SI32_DTM_A_STATE_TOERRIEN_MASK 0x20000000 544 #define SI32_DTM_A_STATE_TOERRIEN_SHIFT 29 545 // Disable timeouts and timeout interrupts. 546 #define SI32_DTM_A_STATE_TOERRIEN_DISABLED_VALUE 0 547 #define SI32_DTM_A_STATE_TOERRIEN_DISABLED_U32 \ 548 (SI32_DTM_A_STATE_TOERRIEN_DISABLED_VALUE << SI32_DTM_A_STATE_TOERRIEN_SHIFT) 549 // Enable timeouts and timeout interrupts. 550 #define SI32_DTM_A_STATE_TOERRIEN_ENABLED_VALUE 1 551 #define SI32_DTM_A_STATE_TOERRIEN_ENABLED_U32 \ 552 (SI32_DTM_A_STATE_TOERRIEN_ENABLED_VALUE << SI32_DTM_A_STATE_TOERRIEN_SHIFT) 553 554 #define SI32_DTM_A_STATE_SECSTIEN_MASK 0x40000000 555 #define SI32_DTM_A_STATE_SECSTIEN_SHIFT 30 556 // Disable secondary state transition interrupts. 557 #define SI32_DTM_A_STATE_SECSTIEN_DISABLED_VALUE 0 558 #define SI32_DTM_A_STATE_SECSTIEN_DISABLED_U32 \ 559 (SI32_DTM_A_STATE_SECSTIEN_DISABLED_VALUE << SI32_DTM_A_STATE_SECSTIEN_SHIFT) 560 // Enable secondary state transition interrupts. 561 #define SI32_DTM_A_STATE_SECSTIEN_ENABLED_VALUE 1 562 #define SI32_DTM_A_STATE_SECSTIEN_ENABLED_U32 \ 563 (SI32_DTM_A_STATE_SECSTIEN_ENABLED_VALUE << SI32_DTM_A_STATE_SECSTIEN_SHIFT) 564 565 #define SI32_DTM_A_STATE_PRISTIEN_MASK 0x80000000 566 #define SI32_DTM_A_STATE_PRISTIEN_SHIFT 31 567 // Disable primary state transition interrupts. 568 #define SI32_DTM_A_STATE_PRISTIEN_DISABLED_VALUE 0U 569 #define SI32_DTM_A_STATE_PRISTIEN_DISABLED_U32 \ 570 (SI32_DTM_A_STATE_PRISTIEN_DISABLED_VALUE << SI32_DTM_A_STATE_PRISTIEN_SHIFT) 571 // Enable primary state transition interrupts. 572 #define SI32_DTM_A_STATE_PRISTIEN_ENABLED_VALUE 1U 573 #define SI32_DTM_A_STATE_PRISTIEN_ENABLED_U32 \ 574 (SI32_DTM_A_STATE_PRISTIEN_ENABLED_VALUE << SI32_DTM_A_STATE_PRISTIEN_SHIFT) 575 576 577 578 typedef struct SI32_DTM_A_Struct 579 { 580 struct SI32_DTM_A_CONTROL_Struct CONTROL ; // Base Address + 0x0 581 volatile uint32_t CONTROL_SET; 582 volatile uint32_t CONTROL_CLR; 583 uint32_t reserved0; 584 struct SI32_DTM_A_TIMEOUT_Struct TIMEOUT ; // Base Address + 0x10 585 uint32_t reserved1; 586 uint32_t reserved2; 587 uint32_t reserved3; 588 struct SI32_DTM_A_MSTCOUNT_Struct MSTCOUNT ; // Base Address + 0x20 589 uint32_t reserved4; 590 uint32_t reserved5; 591 uint32_t reserved6; 592 struct SI32_DTM_A_STATEADDR_Struct STATEADDR ; // Base Address + 0x30 593 uint32_t reserved7; 594 uint32_t reserved8; 595 uint32_t reserved9; 596 struct SI32_DTM_A_STATE_Struct STATE ; // Base Address + 0x40 597 uint32_t reserved10; 598 uint32_t reserved11; 599 uint32_t reserved12; 600 } SI32_DTM_A_Type; 601 602 #ifdef __cplusplus 603 } 604 #endif 605 606 #endif // __SI32_DTM_A_REGISTERS_H__ 607 608 //-eof-------------------------------------------------------------------------- 609 610