1 /**************************************************************************//** 2 * @file 3 * @brief Device Manager API Definition 4 ****************************************************************************** 5 * # License 6 * <b>Copyright 2024 Silicon Laboratories, Inc. www.silabs.com</b> 7 ****************************************************************************** 8 * 9 * SPDX-License-Identifier: Zlib 10 * 11 * The licensor of this software is Silicon Laboratories Inc. 12 * 13 * This software is provided 'as-is', without any express or implied 14 * warranty. In no event will the authors be held liable for any damages 15 * arising from the use of this software. 16 * 17 * Permission is granted to anyone to use this software for any purpose, 18 * including commercial applications, and to alter it and redistribute it 19 * freely, subject to the following restrictions: 20 * 21 * 1. The origin of this software must not be misrepresented; you must not 22 * claim that you wrote the original software. If you use this software 23 * in a product, an acknowledgment in the product documentation would be 24 * appreciated but is not required. 25 * 2. Altered source versions must be plainly marked as such, and must not be 26 * misrepresented as being the original software. 27 * 3. This notice may not be removed or altered from any source distribution. 28 * 29 *****************************************************************************/ 30 31 #include "sl_device_peripheral.h" 32 #include "sl_device_clock.h" 33 #include "cmsis_compiler.h" 34 35 /***************************************************************************//** 36 * Device Abstraction Peripheral default values. 37 ******************************************************************************/ 38 // Weak definition of peripheral ACMP0. 39 __WEAK const sl_peripheral_val_t sl_peripheral_val_acmp0 = { .base = 0xFFFFFFFF, 40 .clk_branch = SL_CLOCK_BRANCH_INVALID, 41 .bus_clock = SL_BUS_CLOCK_INVALID }; 42 43 // Weak definition of peripheral ACMP1. 44 __WEAK const sl_peripheral_val_t sl_peripheral_val_acmp1 = { .base = 0xFFFFFFFF, 45 .clk_branch = SL_CLOCK_BRANCH_INVALID, 46 .bus_clock = SL_BUS_CLOCK_INVALID }; 47 48 // Weak definition of peripheral ADC0. 49 __WEAK const sl_peripheral_val_t sl_peripheral_val_adc0 = { .base = 0xFFFFFFFF, 50 .clk_branch = SL_CLOCK_BRANCH_INVALID, 51 .bus_clock = SL_BUS_CLOCK_INVALID }; 52 53 // Weak definition of peripheral AES. 54 __WEAK const sl_peripheral_val_t sl_peripheral_val_aes = { .base = 0xFFFFFFFF, 55 .clk_branch = SL_CLOCK_BRANCH_INVALID, 56 .bus_clock = SL_BUS_CLOCK_INVALID }; 57 58 // Weak definition of peripheral AMUXCP0. 59 __WEAK const sl_peripheral_val_t sl_peripheral_val_amuxcp0 = { .base = 0xFFFFFFFF, 60 .clk_branch = SL_CLOCK_BRANCH_INVALID, 61 .bus_clock = SL_BUS_CLOCK_INVALID }; 62 63 // Weak definition of peripheral BUFC. 64 __WEAK const sl_peripheral_val_t sl_peripheral_val_bufc = { .base = 0xFFFFFFFF, 65 .clk_branch = SL_CLOCK_BRANCH_INVALID, 66 .bus_clock = SL_BUS_CLOCK_INVALID }; 67 68 // Weak definition of peripheral BURAM. 69 __WEAK const sl_peripheral_val_t sl_peripheral_val_buram = { .base = 0xFFFFFFFF, 70 .clk_branch = SL_CLOCK_BRANCH_INVALID, 71 .bus_clock = SL_BUS_CLOCK_INVALID }; 72 73 // Weak definition of peripheral BURTC. 74 __WEAK const sl_peripheral_val_t sl_peripheral_val_burtc = { .base = 0xFFFFFFFF, 75 .clk_branch = SL_CLOCK_BRANCH_INVALID, 76 .bus_clock = SL_BUS_CLOCK_INVALID }; 77 78 // Weak definition of peripheral CMU. 79 __WEAK const sl_peripheral_val_t sl_peripheral_val_cmu = { .base = 0xFFFFFFFF, 80 .clk_branch = SL_CLOCK_BRANCH_INVALID, 81 .bus_clock = SL_BUS_CLOCK_INVALID }; 82 83 // Weak definition of peripheral CRYPTOACC. 84 __WEAK const sl_peripheral_val_t sl_peripheral_val_cryptoacc = { .base = 0xFFFFFFFF, 85 .clk_branch = SL_CLOCK_BRANCH_INVALID, 86 .bus_clock = SL_BUS_CLOCK_INVALID }; 87 88 // Weak definition of peripheral DCDC. 89 __WEAK const sl_peripheral_val_t sl_peripheral_val_dcdc = { .base = 0xFFFFFFFF, 90 .clk_branch = SL_CLOCK_BRANCH_INVALID, 91 .bus_clock = SL_BUS_CLOCK_INVALID }; 92 93 // Weak definition of peripheral DEVINFO. 94 __WEAK const sl_peripheral_val_t sl_peripheral_val_devinfo = { .base = 0xFFFFFFFF, 95 .clk_branch = SL_CLOCK_BRANCH_INVALID, 96 .bus_clock = SL_BUS_CLOCK_INVALID }; 97 98 // Weak definition of peripheral DMEM. 99 __WEAK const sl_peripheral_val_t sl_peripheral_val_dmem = { .base = 0xFFFFFFFF, 100 .clk_branch = SL_CLOCK_BRANCH_INVALID, 101 .bus_clock = SL_BUS_CLOCK_INVALID }; 102 103 // Weak definition of peripheral DMEM0. 104 __WEAK const sl_peripheral_val_t sl_peripheral_val_dmem0 = { .base = 0xFFFFFFFF, 105 .clk_branch = SL_CLOCK_BRANCH_INVALID, 106 .bus_clock = SL_BUS_CLOCK_INVALID }; 107 108 // Weak definition of peripheral DMEM1. 109 __WEAK const sl_peripheral_val_t sl_peripheral_val_dmem1 = { .base = 0xFFFFFFFF, 110 .clk_branch = SL_CLOCK_BRANCH_INVALID, 111 .bus_clock = SL_BUS_CLOCK_INVALID }; 112 113 // Weak definition of peripheral DPLL0. 114 __WEAK const sl_peripheral_val_t sl_peripheral_val_dpll0 = { .base = 0xFFFFFFFF, 115 .clk_branch = SL_CLOCK_BRANCH_INVALID, 116 .bus_clock = SL_BUS_CLOCK_INVALID }; 117 118 // Weak definition of peripheral EMU. 119 __WEAK const sl_peripheral_val_t sl_peripheral_val_emu = { .base = 0xFFFFFFFF, 120 .clk_branch = SL_CLOCK_BRANCH_INVALID, 121 .bus_clock = SL_BUS_CLOCK_INVALID }; 122 123 // Weak definition of peripheral ETAMPDET. 124 __WEAK const sl_peripheral_val_t sl_peripheral_val_etampdet = { .base = 0xFFFFFFFF, 125 .clk_branch = SL_CLOCK_BRANCH_INVALID, 126 .bus_clock = SL_BUS_CLOCK_INVALID }; 127 128 // Weak definition of peripheral EUART0. 129 __WEAK const sl_peripheral_val_t sl_peripheral_val_euart0 = { .base = 0xFFFFFFFF, 130 .clk_branch = SL_CLOCK_BRANCH_INVALID, 131 .bus_clock = SL_BUS_CLOCK_INVALID }; 132 133 // Weak definition of peripheral EUSART0. 134 __WEAK const sl_peripheral_val_t sl_peripheral_val_eusart0 = { .base = 0xFFFFFFFF, 135 .clk_branch = SL_CLOCK_BRANCH_INVALID, 136 .bus_clock = SL_BUS_CLOCK_INVALID }; 137 138 // Weak definition of peripheral EUSART1. 139 __WEAK const sl_peripheral_val_t sl_peripheral_val_eusart1 = { .base = 0xFFFFFFFF, 140 .clk_branch = SL_CLOCK_BRANCH_INVALID, 141 .bus_clock = SL_BUS_CLOCK_INVALID }; 142 143 // Weak definition of peripheral EUSART2. 144 __WEAK const sl_peripheral_val_t sl_peripheral_val_eusart2 = { .base = 0xFFFFFFFF, 145 .clk_branch = SL_CLOCK_BRANCH_INVALID, 146 .bus_clock = SL_BUS_CLOCK_INVALID }; 147 148 // Weak definition of peripheral EUSART3. 149 __WEAK const sl_peripheral_val_t sl_peripheral_val_eusart3 = { .base = 0xFFFFFFFF, 150 .clk_branch = SL_CLOCK_BRANCH_INVALID, 151 .bus_clock = SL_BUS_CLOCK_INVALID }; 152 153 // Weak definition of peripheral EUSART4. 154 __WEAK const sl_peripheral_val_t sl_peripheral_val_eusart4 = { .base = 0xFFFFFFFF, 155 .clk_branch = SL_CLOCK_BRANCH_INVALID, 156 .bus_clock = SL_BUS_CLOCK_INVALID }; 157 158 // Weak definition of peripheral FSRCO. 159 __WEAK const sl_peripheral_val_t sl_peripheral_val_fsrco = { .base = 0xFFFFFFFF, 160 .clk_branch = SL_CLOCK_BRANCH_INVALID, 161 .bus_clock = SL_BUS_CLOCK_INVALID }; 162 163 // Weak definition of peripheral GPCRC0. 164 __WEAK const sl_peripheral_val_t sl_peripheral_val_gpcrc0 = { .base = 0xFFFFFFFF, 165 .clk_branch = SL_CLOCK_BRANCH_INVALID, 166 .bus_clock = SL_BUS_CLOCK_INVALID }; 167 168 // Weak definition of peripheral GPIO. 169 __WEAK const sl_peripheral_val_t sl_peripheral_val_gpio = { .base = 0xFFFFFFFF, 170 .clk_branch = SL_CLOCK_BRANCH_INVALID, 171 .bus_clock = SL_BUS_CLOCK_INVALID }; 172 173 // Weak definition of peripheral HFRCO0. 174 __WEAK const sl_peripheral_val_t sl_peripheral_val_hfrco0 = { .base = 0xFFFFFFFF, 175 .clk_branch = SL_CLOCK_BRANCH_INVALID, 176 .bus_clock = SL_BUS_CLOCK_INVALID }; 177 178 // Weak definition of peripheral HFRCOEM23. 179 __WEAK const sl_peripheral_val_t sl_peripheral_val_hfrcoem23 = { .base = 0xFFFFFFFF, 180 .clk_branch = SL_CLOCK_BRANCH_INVALID, 181 .bus_clock = SL_BUS_CLOCK_INVALID }; 182 183 // Weak definition of peripheral HFXO0. 184 __WEAK const sl_peripheral_val_t sl_peripheral_val_hfxo0 = { .base = 0xFFFFFFFF, 185 .clk_branch = SL_CLOCK_BRANCH_INVALID, 186 .bus_clock = SL_BUS_CLOCK_INVALID }; 187 188 // Weak definition of peripheral HOSTMAILBOX. 189 __WEAK const sl_peripheral_val_t sl_peripheral_val_hostmailbox = { .base = 0xFFFFFFFF, 190 .clk_branch = SL_CLOCK_BRANCH_INVALID, 191 .bus_clock = SL_BUS_CLOCK_INVALID }; 192 193 // Weak definition of peripheral HOSTPORTAL. 194 __WEAK const sl_peripheral_val_t sl_peripheral_val_hostportal = { .base = 0xFFFFFFFF, 195 .clk_branch = SL_CLOCK_BRANCH_INVALID, 196 .bus_clock = SL_BUS_CLOCK_INVALID }; 197 198 // Weak definition of peripheral I2C0. 199 __WEAK const sl_peripheral_val_t sl_peripheral_val_i2c0 = { .base = 0xFFFFFFFF, 200 .clk_branch = SL_CLOCK_BRANCH_INVALID, 201 .bus_clock = SL_BUS_CLOCK_INVALID }; 202 203 // Weak definition of peripheral I2C1. 204 __WEAK const sl_peripheral_val_t sl_peripheral_val_i2c1 = { .base = 0xFFFFFFFF, 205 .clk_branch = SL_CLOCK_BRANCH_INVALID, 206 .bus_clock = SL_BUS_CLOCK_INVALID }; 207 208 // Weak definition of peripheral I2C2. 209 __WEAK const sl_peripheral_val_t sl_peripheral_val_i2c2 = { .base = 0xFFFFFFFF, 210 .clk_branch = SL_CLOCK_BRANCH_INVALID, 211 .bus_clock = SL_BUS_CLOCK_INVALID }; 212 213 // Weak definition of peripheral I2C3. 214 __WEAK const sl_peripheral_val_t sl_peripheral_val_i2c3 = { .base = 0xFFFFFFFF, 215 .clk_branch = SL_CLOCK_BRANCH_INVALID, 216 .bus_clock = SL_BUS_CLOCK_INVALID }; 217 218 // Weak definition of peripheral IADC0. 219 __WEAK const sl_peripheral_val_t sl_peripheral_val_iadc0 = { .base = 0xFFFFFFFF, 220 .clk_branch = SL_CLOCK_BRANCH_INVALID, 221 .bus_clock = SL_BUS_CLOCK_INVALID }; 222 223 // Weak definition of peripheral ICACHE0. 224 __WEAK const sl_peripheral_val_t sl_peripheral_val_icache0 = { .base = 0xFFFFFFFF, 225 .clk_branch = SL_CLOCK_BRANCH_INVALID, 226 .bus_clock = SL_BUS_CLOCK_INVALID }; 227 228 // Weak definition of peripheral KEYSCAN. 229 __WEAK const sl_peripheral_val_t sl_peripheral_val_keyscan = { .base = 0xFFFFFFFF, 230 .clk_branch = SL_CLOCK_BRANCH_INVALID, 231 .bus_clock = SL_BUS_CLOCK_INVALID }; 232 233 // Weak definition of peripheral L1ICACHE0. 234 __WEAK const sl_peripheral_val_t sl_peripheral_val_l1icache0 = { .base = 0xFFFFFFFF, 235 .clk_branch = SL_CLOCK_BRANCH_INVALID, 236 .bus_clock = SL_BUS_CLOCK_INVALID }; 237 238 // Weak definition of peripheral L2ICACHE0. 239 __WEAK const sl_peripheral_val_t sl_peripheral_val_l2icache0 = { .base = 0xFFFFFFFF, 240 .clk_branch = SL_CLOCK_BRANCH_INVALID, 241 .bus_clock = SL_BUS_CLOCK_INVALID }; 242 243 // Weak definition of peripheral LCD. 244 __WEAK const sl_peripheral_val_t sl_peripheral_val_lcd = { .base = 0xFFFFFFFF, 245 .clk_branch = SL_CLOCK_BRANCH_INVALID, 246 .bus_clock = SL_BUS_CLOCK_INVALID }; 247 248 // Weak definition of peripheral LCDRF. 249 __WEAK const sl_peripheral_val_t sl_peripheral_val_lcdrf = { .base = 0xFFFFFFFF, 250 .clk_branch = SL_CLOCK_BRANCH_INVALID, 251 .bus_clock = SL_BUS_CLOCK_INVALID }; 252 253 // Weak definition of peripheral LDMA0. 254 __WEAK const sl_peripheral_val_t sl_peripheral_val_ldma0 = { .base = 0xFFFFFFFF, 255 .clk_branch = SL_CLOCK_BRANCH_INVALID, 256 .bus_clock = SL_BUS_CLOCK_INVALID }; 257 258 // Weak definition of peripheral LDMAXBAR0. 259 __WEAK const sl_peripheral_val_t sl_peripheral_val_ldmaxbar0 = { .base = 0xFFFFFFFF, 260 .clk_branch = SL_CLOCK_BRANCH_INVALID, 261 .bus_clock = SL_BUS_CLOCK_INVALID }; 262 263 // Weak definition of peripheral LEDDRV0. 264 __WEAK const sl_peripheral_val_t sl_peripheral_val_leddrv0 = { .base = 0xFFFFFFFF, 265 .clk_branch = SL_CLOCK_BRANCH_INVALID, 266 .bus_clock = SL_BUS_CLOCK_INVALID }; 267 268 // Weak definition of peripheral LESENSE. 269 __WEAK const sl_peripheral_val_t sl_peripheral_val_lesense = { .base = 0xFFFFFFFF, 270 .clk_branch = SL_CLOCK_BRANCH_INVALID, 271 .bus_clock = SL_BUS_CLOCK_INVALID }; 272 273 // Weak definition of peripheral LETIMER0. 274 __WEAK const sl_peripheral_val_t sl_peripheral_val_letimer0 = { .base = 0xFFFFFFFF, 275 .clk_branch = SL_CLOCK_BRANCH_INVALID, 276 .bus_clock = SL_BUS_CLOCK_INVALID }; 277 278 // Weak definition of peripheral LFRCO. 279 __WEAK const sl_peripheral_val_t sl_peripheral_val_lfrco = { .base = 0xFFFFFFFF, 280 .clk_branch = SL_CLOCK_BRANCH_INVALID, 281 .bus_clock = SL_BUS_CLOCK_INVALID }; 282 283 // Weak definition of peripheral LFXO. 284 __WEAK const sl_peripheral_val_t sl_peripheral_val_lfxo = { .base = 0xFFFFFFFF, 285 .clk_branch = SL_CLOCK_BRANCH_INVALID, 286 .bus_clock = SL_BUS_CLOCK_INVALID }; 287 288 // Weak definition of peripheral LPWAES. 289 __WEAK const sl_peripheral_val_t sl_peripheral_val_lpwaes = { .base = 0xFFFFFFFF, 290 .clk_branch = SL_CLOCK_BRANCH_INVALID, 291 .bus_clock = SL_BUS_CLOCK_INVALID }; 292 293 // Weak definition of peripheral LPW0PORTAL. 294 __WEAK const sl_peripheral_val_t sl_peripheral_val_lpw0portal = { .base = 0xFFFFFFFF, 295 .clk_branch = SL_CLOCK_BRANCH_INVALID, 296 .bus_clock = SL_BUS_CLOCK_INVALID }; 297 298 // Weak definition of peripheral LVGD. 299 __WEAK const sl_peripheral_val_t sl_peripheral_val_lvgd = { .base = 0xFFFFFFFF, 300 .clk_branch = SL_CLOCK_BRANCH_INVALID, 301 .bus_clock = SL_BUS_CLOCK_INVALID }; 302 303 // Weak definition of peripheral MPAHBRAM. 304 __WEAK const sl_peripheral_val_t sl_peripheral_val_mpahbram = { .base = 0xFFFFFFFF, 305 .clk_branch = SL_CLOCK_BRANCH_INVALID, 306 .bus_clock = SL_BUS_CLOCK_INVALID }; 307 308 // Weak definition of peripheral MSC. 309 __WEAK const sl_peripheral_val_t sl_peripheral_val_msc = { .base = 0xFFFFFFFF, 310 .clk_branch = SL_CLOCK_BRANCH_INVALID, 311 .bus_clock = SL_BUS_CLOCK_INVALID }; 312 313 // Weak definition of peripheral MVP. 314 __WEAK const sl_peripheral_val_t sl_peripheral_val_mvp = { .base = 0xFFFFFFFF, 315 .clk_branch = SL_CLOCK_BRANCH_INVALID, 316 .bus_clock = SL_BUS_CLOCK_INVALID }; 317 318 // Weak definition of peripheral PCNT0. 319 __WEAK const sl_peripheral_val_t sl_peripheral_val_pcnt0 = { .base = 0xFFFFFFFF, 320 .clk_branch = SL_CLOCK_BRANCH_INVALID, 321 .bus_clock = SL_BUS_CLOCK_INVALID }; 322 323 // Weak definition of peripheral PDM. 324 __WEAK const sl_peripheral_val_t sl_peripheral_val_pdm = { .base = 0xFFFFFFFF, 325 .clk_branch = SL_CLOCK_BRANCH_INVALID, 326 .bus_clock = SL_BUS_CLOCK_INVALID }; 327 328 // Weak definition of peripheral PFMXPPRF. 329 __WEAK const sl_peripheral_val_t sl_peripheral_val_pfmxpprf = { .base = 0xFFFFFFFF, 330 .clk_branch = SL_CLOCK_BRANCH_INVALID, 331 .bus_clock = SL_BUS_CLOCK_INVALID }; 332 333 // Weak definition of peripheral PIXELRZ0. 334 __WEAK const sl_peripheral_val_t sl_peripheral_val_pixelrz0 = { .base = 0xFFFFFFFF, 335 .clk_branch = SL_CLOCK_BRANCH_INVALID, 336 .bus_clock = SL_BUS_CLOCK_INVALID }; 337 338 // Weak definition of peripheral PIXELRZ1. 339 __WEAK const sl_peripheral_val_t sl_peripheral_val_pixelrz1 = { .base = 0xFFFFFFFF, 340 .clk_branch = SL_CLOCK_BRANCH_INVALID, 341 .bus_clock = SL_BUS_CLOCK_INVALID }; 342 343 // Weak definition of peripheral PRORTC. 344 __WEAK const sl_peripheral_val_t sl_peripheral_val_prortc = { .base = 0xFFFFFFFF, 345 .clk_branch = SL_CLOCK_BRANCH_INVALID, 346 .bus_clock = SL_BUS_CLOCK_INVALID }; 347 348 // Weak definition of peripheral PRS. 349 __WEAK const sl_peripheral_val_t sl_peripheral_val_prs = { .base = 0xFFFFFFFF, 350 .clk_branch = SL_CLOCK_BRANCH_INVALID, 351 .bus_clock = SL_BUS_CLOCK_INVALID }; 352 353 // Weak definition of peripheral RADIOAES. 354 __WEAK const sl_peripheral_val_t sl_peripheral_val_radioaes = { .base = 0xFFFFFFFF, 355 .clk_branch = SL_CLOCK_BRANCH_INVALID, 356 .bus_clock = SL_BUS_CLOCK_INVALID }; 357 358 // Weak definition of peripheral RFFPLL0. 359 __WEAK const sl_peripheral_val_t sl_peripheral_val_rffpll0 = { .base = 0xFFFFFFFF, 360 .clk_branch = SL_CLOCK_BRANCH_INVALID, 361 .bus_clock = SL_BUS_CLOCK_INVALID }; 362 363 // Weak definition of peripheral RPA. 364 __WEAK const sl_peripheral_val_t sl_peripheral_val_rpa = { .base = 0xFFFFFFFF, 365 .clk_branch = SL_CLOCK_BRANCH_INVALID, 366 .bus_clock = SL_BUS_CLOCK_INVALID }; 367 368 // Weak definition of peripheral RTCC. 369 __WEAK const sl_peripheral_val_t sl_peripheral_val_rtcc = { .base = 0xFFFFFFFF, 370 .clk_branch = SL_CLOCK_BRANCH_INVALID, 371 .bus_clock = SL_BUS_CLOCK_INVALID }; 372 373 // Weak definition of peripheral SCRATCHPAD. 374 __WEAK const sl_peripheral_val_t sl_peripheral_val_scratchpad = { .base = 0xFFFFFFFF, 375 .clk_branch = SL_CLOCK_BRANCH_INVALID, 376 .bus_clock = SL_BUS_CLOCK_INVALID }; 377 378 // Weak definition of peripheral SEMAILBOX. 379 __WEAK const sl_peripheral_val_t sl_peripheral_val_semailbox = { .base = 0xFFFFFFFF, 380 .clk_branch = SL_CLOCK_BRANCH_INVALID, 381 .bus_clock = SL_BUS_CLOCK_INVALID }; 382 383 // Weak definition of peripheral SEMAPHORE0. 384 __WEAK const sl_peripheral_val_t sl_peripheral_val_semaphore0 = { .base = 0xFFFFFFFF, 385 .clk_branch = SL_CLOCK_BRANCH_INVALID, 386 .bus_clock = SL_BUS_CLOCK_INVALID }; 387 388 // Weak definition of peripheral SEMAPHORE1. 389 __WEAK const sl_peripheral_val_t sl_peripheral_val_semaphore1 = { .base = 0xFFFFFFFF, 390 .clk_branch = SL_CLOCK_BRANCH_INVALID, 391 .bus_clock = SL_BUS_CLOCK_INVALID }; 392 393 // Weak definition of peripheral SEPORTAL. 394 __WEAK const sl_peripheral_val_t sl_peripheral_val_seportal = { .base = 0xFFFFFFFF, 395 .clk_branch = SL_CLOCK_BRANCH_INVALID, 396 .bus_clock = SL_BUS_CLOCK_INVALID }; 397 398 // Weak definition of peripheral SEPUF. 399 __WEAK const sl_peripheral_val_t sl_peripheral_val_sepuf = { .base = 0xFFFFFFFF, 400 .clk_branch = SL_CLOCK_BRANCH_INVALID, 401 .bus_clock = SL_BUS_CLOCK_INVALID }; 402 403 // Weak definition of peripheral SMU. 404 __WEAK const sl_peripheral_val_t sl_peripheral_val_smu = { .base = 0xFFFFFFFF, 405 .clk_branch = SL_CLOCK_BRANCH_INVALID, 406 .bus_clock = SL_BUS_CLOCK_INVALID }; 407 408 // Weak definition of peripheral SOCPLL0. 409 __WEAK const sl_peripheral_val_t sl_peripheral_val_socpll0 = { .base = 0xFFFFFFFF, 410 .clk_branch = SL_CLOCK_BRANCH_INVALID, 411 .bus_clock = SL_BUS_CLOCK_INVALID }; 412 413 // Weak definition of peripheral SYMCRYPTO. 414 __WEAK const sl_peripheral_val_t sl_peripheral_val_symcrypto = { .base = 0xFFFFFFFF, 415 .clk_branch = SL_CLOCK_BRANCH_INVALID, 416 .bus_clock = SL_BUS_CLOCK_INVALID }; 417 418 // Weak definition of peripheral SYSCFG. 419 __WEAK const sl_peripheral_val_t sl_peripheral_val_syscfg = { .base = 0xFFFFFFFF, 420 .clk_branch = SL_CLOCK_BRANCH_INVALID, 421 .bus_clock = SL_BUS_CLOCK_INVALID }; 422 423 // Weak definition of peripheral SYSRTC0. 424 __WEAK const sl_peripheral_val_t sl_peripheral_val_sysrtc0 = { .base = 0xFFFFFFFF, 425 .clk_branch = SL_CLOCK_BRANCH_INVALID, 426 .bus_clock = SL_BUS_CLOCK_INVALID }; 427 428 // Weak definition of peripheral TIMER0. 429 __WEAK const sl_peripheral_val_t sl_peripheral_val_timer0 = { .base = 0xFFFFFFFF, 430 .clk_branch = SL_CLOCK_BRANCH_INVALID, 431 .bus_clock = SL_BUS_CLOCK_INVALID }; 432 433 // Weak definition of peripheral TIMER1. 434 __WEAK const sl_peripheral_val_t sl_peripheral_val_timer1 = { .base = 0xFFFFFFFF, 435 .clk_branch = SL_CLOCK_BRANCH_INVALID, 436 .bus_clock = SL_BUS_CLOCK_INVALID }; 437 438 // Weak definition of peripheral TIMER2. 439 __WEAK const sl_peripheral_val_t sl_peripheral_val_timer2 = { .base = 0xFFFFFFFF, 440 .clk_branch = SL_CLOCK_BRANCH_INVALID, 441 .bus_clock = SL_BUS_CLOCK_INVALID }; 442 443 // Weak definition of peripheral TIMER3. 444 __WEAK const sl_peripheral_val_t sl_peripheral_val_timer3 = { .base = 0xFFFFFFFF, 445 .clk_branch = SL_CLOCK_BRANCH_INVALID, 446 .bus_clock = SL_BUS_CLOCK_INVALID }; 447 448 // Weak definition of peripheral TIMER4. 449 __WEAK const sl_peripheral_val_t sl_peripheral_val_timer4 = { .base = 0xFFFFFFFF, 450 .clk_branch = SL_CLOCK_BRANCH_INVALID, 451 .bus_clock = SL_BUS_CLOCK_INVALID }; 452 453 // Weak definition of peripheral TIMER5. 454 __WEAK const sl_peripheral_val_t sl_peripheral_val_timer5 = { .base = 0xFFFFFFFF, 455 .clk_branch = SL_CLOCK_BRANCH_INVALID, 456 .bus_clock = SL_BUS_CLOCK_INVALID }; 457 458 // Weak definition of peripheral TIMER6. 459 __WEAK const sl_peripheral_val_t sl_peripheral_val_timer6 = { .base = 0xFFFFFFFF, 460 .clk_branch = SL_CLOCK_BRANCH_INVALID, 461 .bus_clock = SL_BUS_CLOCK_INVALID }; 462 463 // Weak definition of peripheral TIMER7. 464 __WEAK const sl_peripheral_val_t sl_peripheral_val_timer7 = { .base = 0xFFFFFFFF, 465 .clk_branch = SL_CLOCK_BRANCH_INVALID, 466 .bus_clock = SL_BUS_CLOCK_INVALID }; 467 468 // Weak definition of peripheral TIMER8. 469 __WEAK const sl_peripheral_val_t sl_peripheral_val_timer8 = { .base = 0xFFFFFFFF, 470 .clk_branch = SL_CLOCK_BRANCH_INVALID, 471 .bus_clock = SL_BUS_CLOCK_INVALID }; 472 473 // Weak definition of peripheral TIMER9. 474 __WEAK const sl_peripheral_val_t sl_peripheral_val_timer9 = { .base = 0xFFFFFFFF, 475 .clk_branch = SL_CLOCK_BRANCH_INVALID, 476 .bus_clock = SL_BUS_CLOCK_INVALID }; 477 478 // Weak definition of peripheral ULFRCO. 479 __WEAK const sl_peripheral_val_t sl_peripheral_val_ulfrco = { .base = 0xFFFFFFFF, 480 .clk_branch = SL_CLOCK_BRANCH_INVALID, 481 .bus_clock = SL_BUS_CLOCK_INVALID }; 482 483 // Weak definition of peripheral USART0. 484 __WEAK const sl_peripheral_val_t sl_peripheral_val_usart0 = { .base = 0xFFFFFFFF, 485 .clk_branch = SL_CLOCK_BRANCH_INVALID, 486 .bus_clock = SL_BUS_CLOCK_INVALID }; 487 488 // Weak definition of peripheral USART1. 489 __WEAK const sl_peripheral_val_t sl_peripheral_val_usart1 = { .base = 0xFFFFFFFF, 490 .clk_branch = SL_CLOCK_BRANCH_INVALID, 491 .bus_clock = SL_BUS_CLOCK_INVALID }; 492 493 // Weak definition of peripheral USART2. 494 __WEAK const sl_peripheral_val_t sl_peripheral_val_usart2 = { .base = 0xFFFFFFFF, 495 .clk_branch = SL_CLOCK_BRANCH_INVALID, 496 .bus_clock = SL_BUS_CLOCK_INVALID }; 497 498 // Weak definition of peripheral USB. 499 __WEAK const sl_peripheral_val_t sl_peripheral_val_usb = { .base = 0xFFFFFFFF, 500 .clk_branch = SL_CLOCK_BRANCH_INVALID, 501 .bus_clock = SL_BUS_CLOCK_INVALID }; 502 503 // Weak definition of peripheral USBAHB. 504 __WEAK const sl_peripheral_val_t sl_peripheral_val_usbahb = { .base = 0xFFFFFFFF, 505 .clk_branch = SL_CLOCK_BRANCH_INVALID, 506 .bus_clock = SL_BUS_CLOCK_INVALID }; 507 508 // Weak definition of peripheral USBPLL0. 509 __WEAK const sl_peripheral_val_t sl_peripheral_val_usbpll0 = { .base = 0xFFFFFFFF, 510 .clk_branch = SL_CLOCK_BRANCH_INVALID, 511 .bus_clock = SL_BUS_CLOCK_INVALID }; 512 513 // Weak definition of peripheral VDAC0. 514 __WEAK const sl_peripheral_val_t sl_peripheral_val_vdac0 = { .base = 0xFFFFFFFF, 515 .clk_branch = SL_CLOCK_BRANCH_INVALID, 516 .bus_clock = SL_BUS_CLOCK_INVALID }; 517 518 // Weak definition of peripheral VDAC1. 519 __WEAK const sl_peripheral_val_t sl_peripheral_val_vdac1 = { .base = 0xFFFFFFFF, 520 .clk_branch = SL_CLOCK_BRANCH_INVALID, 521 .bus_clock = SL_BUS_CLOCK_INVALID }; 522 523 // Weak definition of peripheral WDOG0. 524 __WEAK const sl_peripheral_val_t sl_peripheral_val_wdog0 = { .base = 0xFFFFFFFF, 525 .clk_branch = SL_CLOCK_BRANCH_INVALID, 526 .bus_clock = SL_BUS_CLOCK_INVALID }; 527 528 // Weak definition of peripheral WDOG1. 529 __WEAK const sl_peripheral_val_t sl_peripheral_val_wdog1 = { .base = 0xFFFFFFFF, 530 .clk_branch = SL_CLOCK_BRANCH_INVALID, 531 .bus_clock = SL_BUS_CLOCK_INVALID }; 532 533 #if defined(__ICCARM__) 534 // Disable IAR multiple typedefs declaration warning. 535 #pragma diag_suppress=Pe301 536 #endif 537 538 // External base address getter declaration for ACMP. 539 extern ACMP_TypeDef *sl_device_peripheral_acmp_get_base_addr(const sl_peripheral_t peripheral); 540 541 // External base address getter declaration for ADC. 542 extern ADC_TypeDef *sl_device_peripheral_adc_get_base_addr(const sl_peripheral_t peripheral); 543 544 // External base address getter declaration for AES. 545 extern AES_TypeDef *sl_device_peripheral_aes_get_base_addr(const sl_peripheral_t peripheral); 546 547 // External base address getter declaration for AMUXCP. 548 extern AMUXCP_TypeDef *sl_device_peripheral_amuxcp_get_base_addr(const sl_peripheral_t peripheral); 549 550 // External base address getter declaration for BUFC. 551 extern BUFC_TypeDef *sl_device_peripheral_bufc_get_base_addr(const sl_peripheral_t peripheral); 552 553 // External base address getter declaration for BURAM. 554 extern BURAM_TypeDef *sl_device_peripheral_buram_get_base_addr(const sl_peripheral_t peripheral); 555 556 // External base address getter declaration for BURTC. 557 extern BURTC_TypeDef *sl_device_peripheral_burtc_get_base_addr(const sl_peripheral_t peripheral); 558 559 // External base address getter declaration for CMU. 560 extern CMU_TypeDef *sl_device_peripheral_cmu_get_base_addr(const sl_peripheral_t peripheral); 561 562 // External base address getter declaration for CRYPTOACC. 563 extern CRYPTOACC_TypeDef *sl_device_peripheral_cryptoacc_get_base_addr(const sl_peripheral_t peripheral); 564 565 // External base address getter declaration for CRYPTOACC_PKCTRL. 566 extern CRYPTOACC_PKCTRL_TypeDef *sl_device_peripheral_cryptoacc_pkctrl_get_base_addr(const sl_peripheral_t peripheral); 567 568 // External base address getter declaration for CRYPTOACC_RNGCTRL. 569 extern CRYPTOACC_RNGCTRL_TypeDef *sl_device_peripheral_cryptoacc_rngctrl_get_base_addr(const sl_peripheral_t peripheral); 570 571 // External base address getter declaration for DCDC. 572 extern DCDC_TypeDef *sl_device_peripheral_dcdc_get_base_addr(const sl_peripheral_t peripheral); 573 574 // External base address getter declaration for DEVINFO. 575 extern DEVINFO_TypeDef *sl_device_peripheral_devinfo_get_base_addr(const sl_peripheral_t peripheral); 576 577 // External base address getter declaration for DPLL. 578 extern DPLL_TypeDef *sl_device_peripheral_dpll_get_base_addr(const sl_peripheral_t peripheral); 579 580 // External base address getter declaration for EMU. 581 extern EMU_TypeDef *sl_device_peripheral_emu_get_base_addr(const sl_peripheral_t peripheral); 582 583 // External base address getter declaration for EMU_CFGNS. 584 extern EMU_CFGNS_TypeDef *sl_device_peripheral_emu_cfgns_get_base_addr(const sl_peripheral_t peripheral); 585 586 // External base address getter declaration for ETAMPDET. 587 extern ETAMPDET_TypeDef *sl_device_peripheral_etampdet_get_base_addr(const sl_peripheral_t peripheral); 588 589 // External base address getter declaration for EUSART. 590 extern EUSART_TypeDef *sl_device_peripheral_eusart_get_base_addr(const sl_peripheral_t peripheral); 591 592 // External base address getter declaration for FSRCO. 593 extern FSRCO_TypeDef *sl_device_peripheral_fsrco_get_base_addr(const sl_peripheral_t peripheral); 594 595 // External base address getter declaration for GPCRC. 596 extern GPCRC_TypeDef *sl_device_peripheral_gpcrc_get_base_addr(const sl_peripheral_t peripheral); 597 598 // External base address getter declaration for GPIO. 599 extern GPIO_TypeDef *sl_device_peripheral_gpio_get_base_addr(const sl_peripheral_t peripheral); 600 601 // External base address getter declaration for HFRCO. 602 extern HFRCO_TypeDef *sl_device_peripheral_hfrco_get_base_addr(const sl_peripheral_t peripheral); 603 604 // External base address getter declaration for HFXO. 605 extern HFXO_TypeDef *sl_device_peripheral_hfxo_get_base_addr(const sl_peripheral_t peripheral); 606 607 // External base address getter declaration for HOSTPORTAL. 608 extern HOSTPORTAL_TypeDef *sl_device_peripheral_hostportal_get_base_addr(const sl_peripheral_t peripheral); 609 610 // External base address getter declaration for HYDRARAM. 611 extern HYDRARAM_TypeDef *sl_device_peripheral_hydraram_get_base_addr(const sl_peripheral_t peripheral); 612 613 // External base address getter declaration for I2C. 614 extern I2C_TypeDef *sl_device_peripheral_i2c_get_base_addr(const sl_peripheral_t peripheral); 615 616 // External base address getter declaration for IADC. 617 extern IADC_TypeDef *sl_device_peripheral_iadc_get_base_addr(const sl_peripheral_t peripheral); 618 619 // External base address getter declaration for ICACHE. 620 extern ICACHE_TypeDef *sl_device_peripheral_icache_get_base_addr(const sl_peripheral_t peripheral); 621 622 // External base address getter declaration for KEYSCAN. 623 extern KEYSCAN_TypeDef *sl_device_peripheral_keyscan_get_base_addr(const sl_peripheral_t peripheral); 624 625 // External base address getter declaration for L2CACHE. 626 extern L2CACHE_TypeDef *sl_device_peripheral_l2cache_get_base_addr(const sl_peripheral_t peripheral); 627 628 // External base address getter declaration for LCD. 629 extern LCD_TypeDef *sl_device_peripheral_lcd_get_base_addr(const sl_peripheral_t peripheral); 630 631 // External base address getter declaration for LCDRF. 632 extern LCDRF_TypeDef *sl_device_peripheral_lcdrf_get_base_addr(const sl_peripheral_t peripheral); 633 634 // External base address getter declaration for LDMA. 635 extern LDMA_TypeDef *sl_device_peripheral_ldma_get_base_addr(const sl_peripheral_t peripheral); 636 637 // External base address getter declaration for LDMAXBAR. 638 extern LDMAXBAR_TypeDef *sl_device_peripheral_ldmaxbar_get_base_addr(const sl_peripheral_t peripheral); 639 640 // External base address getter declaration for LEDDRV. 641 extern LEDDRV_TypeDef *sl_device_peripheral_leddrv_get_base_addr(const sl_peripheral_t peripheral); 642 643 // External base address getter declaration for LESENSE. 644 extern LESENSE_TypeDef *sl_device_peripheral_lesense_get_base_addr(const sl_peripheral_t peripheral); 645 646 // External base address getter declaration for LETIMER. 647 extern LETIMER_TypeDef *sl_device_peripheral_letimer_get_base_addr(const sl_peripheral_t peripheral); 648 649 // External base address getter declaration for LFRCO. 650 extern LFRCO_TypeDef *sl_device_peripheral_lfrco_get_base_addr(const sl_peripheral_t peripheral); 651 652 // External base address getter declaration for LFXO. 653 extern LFXO_TypeDef *sl_device_peripheral_lfxo_get_base_addr(const sl_peripheral_t peripheral); 654 655 // External base address getter declaration for LPWAES. 656 extern LPWAES_TypeDef *sl_device_peripheral_lpwaes_get_base_addr(const sl_peripheral_t peripheral); 657 658 // External base address getter declaration for LPW0PORTAL. 659 extern LPW0PORTAL_TypeDef *sl_device_peripheral_lpw0portal_get_base_addr(const sl_peripheral_t peripheral); 660 661 // External base address getter declaration for LVGD. 662 extern LVGD_TypeDef *sl_device_peripheral_lvgd_get_base_addr(const sl_peripheral_t peripheral); 663 664 // External base address getter declaration for MAILBOX. 665 extern MAILBOX_TypeDef *sl_device_peripheral_mailbox_get_base_addr(const sl_peripheral_t peripheral); 666 667 // External base address getter declaration for MPAHBRAM. 668 extern MPAHBRAM_TypeDef *sl_device_peripheral_mpahbram_get_base_addr(const sl_peripheral_t peripheral); 669 670 // External base address getter declaration for MSC. 671 extern MSC_TypeDef *sl_device_peripheral_msc_get_base_addr(const sl_peripheral_t peripheral); 672 673 // External base address getter declaration for MVP. 674 extern MVP_TypeDef *sl_device_peripheral_mvp_get_base_addr(const sl_peripheral_t peripheral); 675 676 // External base address getter declaration for PCNT. 677 extern PCNT_TypeDef *sl_device_peripheral_pcnt_get_base_addr(const sl_peripheral_t peripheral); 678 679 // External base address getter declaration for PDM. 680 extern PDM_TypeDef *sl_device_peripheral_pdm_get_base_addr(const sl_peripheral_t peripheral); 681 682 // External base address getter declaration for PFMXPPRF. 683 extern PFMXPPRF_TypeDef *sl_device_peripheral_pfmxpprf_get_base_addr(const sl_peripheral_t peripheral); 684 685 // External base address getter declaration for PIXELRZ. 686 extern PIXELRZ_TypeDef *sl_device_peripheral_pixelrz_get_base_addr(const sl_peripheral_t peripheral); 687 688 // External base address getter declaration for PRS. 689 extern PRS_TypeDef *sl_device_peripheral_prs_get_base_addr(const sl_peripheral_t peripheral); 690 691 // External base address getter declaration for RFFPLL. 692 extern RFFPLL_TypeDef *sl_device_peripheral_rffpll_get_base_addr(const sl_peripheral_t peripheral); 693 694 // External base address getter declaration for RPA. 695 extern RPA_TypeDef *sl_device_peripheral_rpa_get_base_addr(const sl_peripheral_t peripheral); 696 697 // External base address getter declaration for RTCC. 698 extern RTCC_TypeDef *sl_device_peripheral_rtcc_get_base_addr(const sl_peripheral_t peripheral); 699 700 // External base address getter declaration for SCRATCHPAD. 701 extern SCRATCHPAD_TypeDef *sl_device_peripheral_scratchpad_get_base_addr(const sl_peripheral_t peripheral); 702 703 // External base address getter declaration for SEMAILBOX_AHBHOST. 704 extern SEMAILBOX_AHBHOST_TypeDef *sl_device_peripheral_semailbox_ahbhost_get_base_addr(const sl_peripheral_t peripheral); 705 706 // External base address getter declaration for SEMAILBOX_HOST. 707 extern SEMAILBOX_HOST_TypeDef *sl_device_peripheral_semailbox_host_get_base_addr(const sl_peripheral_t peripheral); 708 709 // External base address getter declaration for SEMAPHORE. 710 extern SEMAPHORE_TypeDef *sl_device_peripheral_semaphore_get_base_addr(const sl_peripheral_t peripheral); 711 712 // External base address getter declaration for SEPORTAL. 713 extern SEPORTAL_TypeDef *sl_device_peripheral_seportal_get_base_addr(const sl_peripheral_t peripheral); 714 715 // External base address getter declaration for SEPUF_APBCFG. 716 extern SEPUF_APBCFG_TypeDef *sl_device_peripheral_sepuf_apbcfg_get_base_addr(const sl_peripheral_t peripheral); 717 718 // External base address getter declaration for SMU. 719 extern SMU_TypeDef *sl_device_peripheral_smu_get_base_addr(const sl_peripheral_t peripheral); 720 721 // External base address getter declaration for SOCPLL. 722 extern SOCPLL_TypeDef *sl_device_peripheral_socpll_get_base_addr(const sl_peripheral_t peripheral); 723 724 // External base address getter declaration for SYMCRYPTO. 725 extern SYMCRYPTO_TypeDef *sl_device_peripheral_symcrypto_get_base_addr(const sl_peripheral_t peripheral); 726 727 // External base address getter declaration for SYSCFG. 728 extern SYSCFG_TypeDef *sl_device_peripheral_syscfg_get_base_addr(const sl_peripheral_t peripheral); 729 730 // External base address getter declaration for SYSCFG_CFGNS. 731 extern SYSCFG_CFGNS_TypeDef *sl_device_peripheral_syscfg_cfgns_get_base_addr(const sl_peripheral_t peripheral); 732 733 // External base address getter declaration for SYSRTC. 734 extern SYSRTC_TypeDef *sl_device_peripheral_sysrtc_get_base_addr(const sl_peripheral_t peripheral); 735 736 // External base address getter declaration for TIMER. 737 extern TIMER_TypeDef *sl_device_peripheral_timer_get_base_addr(const sl_peripheral_t peripheral); 738 739 // External base address getter declaration for ULFRCO. 740 extern ULFRCO_TypeDef *sl_device_peripheral_ulfrco_get_base_addr(const sl_peripheral_t peripheral); 741 742 // External base address getter declaration for USART. 743 extern USART_TypeDef *sl_device_peripheral_usart_get_base_addr(const sl_peripheral_t peripheral); 744 745 // External base address getter declaration for USBAHB_AHBS. 746 extern USBAHB_AHBS_TypeDef *sl_device_peripheral_usbahb_ahbs_get_base_addr(const sl_peripheral_t peripheral); 747 748 // External base address getter declaration for USBPLL. 749 extern USBPLL_TypeDef *sl_device_peripheral_usbpll_get_base_addr(const sl_peripheral_t peripheral); 750 751 // External base address getter declaration for USB_APBS. 752 extern USB_APBS_TypeDef *sl_device_peripheral_usb_apbs_get_base_addr(const sl_peripheral_t peripheral); 753 754 // External base address getter declaration for VDAC. 755 extern VDAC_TypeDef *sl_device_peripheral_vdac_get_base_addr(const sl_peripheral_t peripheral); 756 757 // External base address getter declaration for WDOG. 758 extern WDOG_TypeDef *sl_device_peripheral_wdog_get_base_addr(const sl_peripheral_t peripheral); 759 760 // External clock branch getter declaration. 761 extern sl_clock_branch_t sl_device_peripheral_get_clock_branch(const sl_peripheral_t peripheral); 762 763 // External bus clock getter declaration. 764 extern sl_bus_clock_t sl_device_peripheral_get_bus_clock(const sl_peripheral_t peripheral); 765 766 #if defined(__ICCARM__) 767 // Disable IAR multiple typedefs declaration warning. 768 #pragma diag_default=Pe301 769 #endif 770