1/* 2 * Copyright (c) 2024 STMicroelectronics 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7#include <arm/armv7-m.dtsi> 8#include <zephyr/dt-bindings/clock/stm32h7rs_clock.h> 9#include <zephyr/dt-bindings/gpio/gpio.h> 10#include <zephyr/dt-bindings/i2c/i2c.h> 11#include <zephyr/dt-bindings/pwm/pwm.h> 12#include <zephyr/dt-bindings/pwm/stm32_pwm.h> 13#include <zephyr/dt-bindings/reset/stm32h7rs_reset.h> 14#include <zephyr/dt-bindings/adc/stm32h7_adc.h> 15#include <zephyr/dt-bindings/adc/adc.h> 16#include <zephyr/dt-bindings/memory-attr/memory-attr.h> 17#include <zephyr/dt-bindings/memory-attr/memory-attr-arm.h> 18#include <freq.h> 19 20/* 21 * STM32H7RS line contains has many common peripherals with STM32H7. 22 */ 23 24/ { 25 chosen { 26 zephyr,entropy = &rng; 27 zephyr,flash-controller = &flash; 28 }; 29 30 cpus { 31 #address-cells = <1>; 32 #size-cells = <0>; 33 34 cpu0: cpu@0 { 35 device_type = "cpu"; 36 compatible = "arm,cortex-m7"; 37 reg = <0>; 38 #address-cells = <1>; 39 #size-cells = <1>; 40 41 mpu: mpu@e000ed90 { 42 compatible = "arm,armv7m-mpu"; 43 reg = <0xe000ed90 0x40>; 44 }; 45 }; 46 }; 47 48 /* System data RAM accessible over AXI bus: AXI SRAM1 in CD domain */ 49 sram0: memory@24000000 { 50 compatible = "mmio-sram"; 51 reg = <0x24000000 DT_SIZE_K(128)>; 52 }; 53 54 /* System data RAM accessible over AHB bus: SRAM1 in D2 domain */ 55 sram1: memory@30000000 { 56 reg = <0x30000000 DT_SIZE_K(16)>; 57 compatible = "zephyr,memory-region", "mmio-sram"; 58 zephyr,memory-region = "SRAM1"; 59 }; 60 61 /* System data RAM accessible over AHB bus: SRAM2 in D2 domain */ 62 sram2: memory@30004000 { 63 compatible = "zephyr,memory-region", "mmio-sram"; 64 reg = <0x30004000 DT_SIZE_K(16)>; 65 zephyr,memory-region = "SRAM2"; 66 }; 67 68 dtcm: memory@20000000 { 69 compatible = "zephyr,memory-region", "arm,dtcm"; 70 reg = <0x20000000 DT_SIZE_K(128)>; 71 zephyr,memory-region = "DTCM"; 72 }; 73 74 itcm: memory@0 { 75 compatible = "zephyr,memory-region", "arm,itcm"; 76 reg = <0x00000000 DT_SIZE_K(64)>; 77 zephyr,memory-region = "ITCM"; 78 }; 79 80 ext_memory: memory@70000000 { 81 compatible = "zephyr,memory-region"; 82 reg = <0x70000000 DT_SIZE_M(256)>; 83 zephyr,memory-region = "EXTMEM"; 84 zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_EXTMEM) )>; 85 }; 86 87 clocks { 88 #address-cells = <1>; 89 #size-cells = <0>; 90 91 clk_hse: clk-hse { 92 #clock-cells = <0>; 93 compatible = "st,stm32-hse-clock"; 94 status = "disabled"; 95 }; 96 97 clk_hsi: clk-hsi { 98 #clock-cells = <0>; 99 compatible = "st,stm32h7-hsi-clock"; 100 hsi-div = <1>; /* HSI RC: 64MHz, hsi_clk = 64MHz */ 101 clock-frequency = <DT_FREQ_M(64)>; 102 status = "disabled"; 103 }; 104 105 clk_hsi48: clk-hsi48 { 106 #clock-cells = <0>; 107 compatible = "fixed-clock"; 108 clock-frequency = <DT_FREQ_M(48)>; 109 status = "disabled"; 110 }; 111 112 clk_csi: clk-csi { 113 #clock-cells = <0>; 114 compatible = "fixed-clock"; 115 clock-frequency = <DT_FREQ_M(4)>; 116 status = "disabled"; 117 }; 118 119 clk_lse: clk-lse { 120 #clock-cells = <0>; 121 compatible = "st,stm32-lse-clock"; 122 clock-frequency = <32768>; 123 driving-capability = <0>; 124 status = "disabled"; 125 }; 126 127 clk_lsi: clk-lsi { 128 #clock-cells = <0>; 129 compatible = "fixed-clock"; 130 clock-frequency = <DT_FREQ_K(32)>; 131 status = "disabled"; 132 }; 133 134 pll: pll@0 { 135 #clock-cells = <0>; 136 compatible = "st,stm32h7rs-pll-clock"; 137 reg = <0>; 138 status = "disabled"; 139 }; 140 141 pll2: pll@1 { 142 #clock-cells = <0>; 143 compatible = "st,stm32h7rs-pll-clock"; 144 reg = <1>; 145 status = "disabled"; 146 }; 147 148 pll3: pll@2 { 149 #clock-cells = <0>; 150 compatible = "st,stm32h7rs-pll-clock"; 151 reg = <2>; 152 status = "disabled"; 153 }; 154 155 perck: perck { 156 #clock-cells = <0>; 157 compatible = "st,stm32-clock-mux"; 158 status = "disabled"; 159 }; 160 }; 161 162 mcos { 163 mco1: mco1 { 164 compatible = "st,stm32-clock-mco"; 165 status = "disabled"; 166 }; 167 168 mco2: mco2 { 169 compatible = "st,stm32-clock-mco"; 170 status = "disabled"; 171 }; 172 }; 173 174 soc { 175 flash: flash-controller@52002000 { 176 compatible = "st,stm32-flash-controller", "st,stm32h7-flash-controller"; 177 reg = <0x52002000 0x400>; 178 interrupts = <8 0>; 179 clocks = <&rcc STM32_CLOCK(AHB3, 8U)>; 180 181 #address-cells = <1>; 182 #size-cells = <1>; 183 184 flash0: flash@8000000 { 185 compatible = "st,stm32-nv-flash", "soc-nv-flash"; 186 write-block-size = <32>; 187 erase-block-size = <DT_SIZE_K(8)>; 188 /* maximum erase time for a 8K sector */ 189 max-erase-time = <3>; 190 }; 191 }; 192 193 rcc: rcc@58024400 { 194 compatible = "st,stm32h7rs-rcc"; 195 #clock-cells = <2>; 196 reg = <0x58024400 0x400>; 197 198 rctl: reset-controller { 199 compatible = "st,stm32-rcc-rctl"; 200 #reset-cells = <1>; 201 }; 202 }; 203 204 exti: interrupt-controller@58000000 { 205 compatible = "st,stm32h7rs-exti", "st,stm32-exti"; 206 interrupt-controller; 207 #interrupt-cells = <1>; 208 #address-cells = <1>; 209 reg = <0x58000000 0x400>; 210 /* SBS for interrupt */ 211 num-lines = <16>; 212 interrupts = <16 0>, <17 0>, <18 0>, <19 0>, 213 <20 0>, <21 0>, <22 0>, <23 0>, 214 <24 0>, <25 0>, <26 0>, <27 0>, 215 <28 0>, <29 0>, <30 0>, <31 0>; 216 interrupt-names = "line0", "line1", "line2", "line3", 217 "line4", "line5", "line6", "line7", 218 "line8", "line9", "line10", "line11", 219 "line12", "line13", "line14", "line15"; 220 line-ranges = <0 1>, <1 1>, <2 1>, <3 1>, 221 <4 1>, <5 1>, <6 1>, <7 1>, 222 <8 1>, <9 1>, <10 1>, <11 1>, 223 <12 1>, <13 1>, <14 1>, <15 1>; 224 }; 225 226 pinctrl: pin-controller@58020000 { 227 compatible = "st,stm32-pinctrl"; 228 #address-cells = <1>; 229 #size-cells = <1>; 230 reg = <0x58020000 0x2400>; 231 232 gpioa: gpio@58020000 { 233 compatible = "st,stm32-gpio"; 234 gpio-controller; 235 #gpio-cells = <2>; 236 reg = <0x58020000 0x400>; 237 clocks = <&rcc STM32_CLOCK(AHB4, 0U)>; 238 }; 239 240 gpiob: gpio@58020400 { 241 compatible = "st,stm32-gpio"; 242 gpio-controller; 243 #gpio-cells = <2>; 244 reg = <0x58020400 0x400>; 245 clocks = <&rcc STM32_CLOCK(AHB4, 1U)>; 246 }; 247 248 gpioc: gpio@58020800 { 249 compatible = "st,stm32-gpio"; 250 gpio-controller; 251 #gpio-cells = <2>; 252 reg = <0x58020800 0x400>; 253 clocks = <&rcc STM32_CLOCK(AHB4, 2U)>; 254 }; 255 256 gpiod: gpio@58020C00 { 257 compatible = "st,stm32-gpio"; 258 gpio-controller; 259 #gpio-cells = <2>; 260 reg = <0x58020C00 0x400>; 261 clocks = <&rcc STM32_CLOCK(AHB4, 3U)>; 262 }; 263 264 gpioe: gpio@58021000 { 265 compatible = "st,stm32-gpio"; 266 gpio-controller; 267 #gpio-cells = <2>; 268 reg = <0x58021000 0x400>; 269 clocks = <&rcc STM32_CLOCK(AHB4, 4U)>; 270 }; 271 272 gpiof: gpio@58021400 { 273 compatible = "st,stm32-gpio"; 274 gpio-controller; 275 #gpio-cells = <2>; 276 reg = <0x58021400 0x400>; 277 clocks = <&rcc STM32_CLOCK(AHB4, 5U)>; 278 }; 279 280 gpiog: gpio@58021800 { 281 compatible = "st,stm32-gpio"; 282 gpio-controller; 283 #gpio-cells = <2>; 284 reg = <0x58021800 0x400>; 285 clocks = <&rcc STM32_CLOCK(AHB4, 6U)>; 286 }; 287 288 gpioh: gpio@58021c00 { 289 compatible = "st,stm32-gpio"; 290 gpio-controller; 291 #gpio-cells = <2>; 292 reg = <0x58021c00 0x400>; 293 clocks = <&rcc STM32_CLOCK(AHB4, 7U)>; 294 }; 295 296 gpiom: gpio@58023000 { 297 compatible = "st,stm32-gpio"; 298 gpio-controller; 299 #gpio-cells = <2>; 300 reg = <0x58023000 0x400>; 301 clocks = <&rcc STM32_CLOCK(AHB4, 12U)>; 302 }; 303 304 gpion: gpio@58023400 { 305 compatible = "st,stm32-gpio"; 306 gpio-controller; 307 #gpio-cells = <2>; 308 reg = <0x58023400 0x400>; 309 clocks = <&rcc STM32_CLOCK(AHB4, 13U)>; 310 }; 311 312 gpioo: gpio@58023800 { 313 compatible = "st,stm32-gpio"; 314 gpio-controller; 315 #gpio-cells = <2>; 316 reg = <0x58023800 0x400>; 317 clocks = <&rcc STM32_CLOCK(AHB4, 14U)>; 318 }; 319 320 gpiop: gpio@58023c00 { 321 compatible = "st,stm32-gpio"; 322 gpio-controller; 323 #gpio-cells = <2>; 324 reg = <0x58023c00 0x400>; 325 clocks = <&rcc STM32_CLOCK(AHB4, 15U)>; 326 }; 327 }; 328 329 usart1: serial@42001000 { 330 compatible = "st,stm32-usart", "st,stm32-uart"; 331 reg = <0x42001000 0x400>; 332 clocks = <&rcc STM32_CLOCK(APB2, 4U)>; 333 resets = <&rctl STM32_RESET(APB2, 4U)>; 334 interrupts = <82 0>; 335 status = "disabled"; 336 }; 337 usart2: serial@40004400 { 338 compatible = "st,stm32-usart", "st,stm32-uart"; 339 reg = <0x40004400 0x400>; 340 clocks = <&rcc STM32_CLOCK(APB1, 17U)>; 341 resets = <&rctl STM32_RESET(APB1L, 17U)>; 342 interrupts = <83 0>; 343 status = "disabled"; 344 }; 345 usart3: serial@40004800 { 346 compatible = "st,stm32-usart", "st,stm32-uart"; 347 reg = <0x40004800 0x400>; 348 clocks = <&rcc STM32_CLOCK(APB1, 18U)>; 349 resets = <&rctl STM32_RESET(APB1L, 18U)>; 350 interrupts = <84 0>; 351 status = "disabled"; 352 }; 353 uart4: serial@40004c00 { 354 compatible ="st,stm32-uart"; 355 reg = <0x40004c00 0x400>; 356 clocks = <&rcc STM32_CLOCK(APB1, 19U)>; 357 resets = <&rctl STM32_RESET(APB1L, 19U)>; 358 interrupts = <85 0>; 359 status = "disabled"; 360 }; 361 uart5: serial@40005000 { 362 compatible = "st,stm32-uart"; 363 reg = <0x40005000 0x400>; 364 clocks = <&rcc STM32_CLOCK(APB1, 20U)>; 365 resets = <&rctl STM32_RESET(APB1L, 20U)>; 366 interrupts = <86 0>; 367 status = "disabled"; 368 }; 369 uart7: serial@40007800 { 370 compatible = "st,stm32-uart"; 371 reg = <0x40007800 0x400>; 372 clocks = <&rcc STM32_CLOCK(APB1, 30U)>; 373 resets = <&rctl STM32_RESET(APB1L, 30U)>; 374 interrupts = <87 0>; 375 status = "disabled"; 376 }; 377 uart8: serial@40007c00 { 378 compatible = "st,stm32-uart"; 379 reg = <0x40007c00 0x400>; 380 clocks = <&rcc STM32_CLOCK(APB1, 31U)>; 381 resets = <&rctl STM32_RESET(APB1L, 31U)>; 382 interrupts = <88 0>; 383 status = "disabled"; 384 }; 385 386 lpuart1: serial@58000c00 { 387 compatible = "st,stm32-lpuart", "st,stm32-uart"; 388 reg = <0x58000c00 0x400>; 389 clocks = <&rcc STM32_CLOCK(APB4, 3U)>; 390 resets = <&rctl STM32_RESET(APB4, 3U)>; 391 interrupts = <131 0>; 392 status = "disabled"; 393 }; 394 395 i2c1: i2c@40005400 { 396 compatible = "st,stm32-i2c-v2"; 397 clock-frequency = <I2C_BITRATE_STANDARD>; 398 #address-cells = <1>; 399 #size-cells = <0>; 400 reg = <0x40005400 0x400>; 401 clocks = <&rcc STM32_CLOCK(APB1, 21U)>; 402 interrupts = <76 0>, <77 0>; 403 interrupt-names = "event", "error"; 404 status = "disabled"; 405 }; 406 407 i2c2: i2c@40005800 { 408 compatible = "st,stm32-i2c-v2"; 409 clock-frequency = <I2C_BITRATE_STANDARD>; 410 #address-cells = <1>; 411 #size-cells = <0>; 412 reg = <0x40005800 0x400>; 413 clocks = <&rcc STM32_CLOCK(APB1, 22U)>; 414 interrupts = <78 0>, <79 0>; 415 interrupt-names = "event", "error"; 416 status = "disabled"; 417 }; 418 419 i2c3: i2c@40005c00 { 420 compatible = "st,stm32-i2c-v2"; 421 clock-frequency = <I2C_BITRATE_STANDARD>; 422 #address-cells = <1>; 423 #size-cells = <0>; 424 reg = <0x40005c00 0x400>; 425 clocks = <&rcc STM32_CLOCK(APB1, 23U)>; 426 interrupts = <80 0>, <81 0>; 427 interrupt-names = "event", "error"; 428 status = "disabled"; 429 }; 430 431 spi1: spi@42003000 { 432 compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi"; 433 #address-cells = <1>; 434 #size-cells = <0>; 435 reg = <0x42003000 0x400>; 436 clocks = <&rcc STM32_CLOCK(APB2, 12U)>, 437 <&rcc STM32_SRC_PLL1_Q SPI1_SEL(0)>; 438 interrupts = <58 0>; 439 status = "disabled"; 440 }; 441 442 spi2: spi@40003800 { 443 compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi"; 444 #address-cells = <1>; 445 #size-cells = <0>; 446 reg = <0x40003800 0x400>; 447 clocks = <&rcc STM32_CLOCK(APB1, 14U)>, 448 <&rcc STM32_SRC_PLL1_Q SPI23_SEL(0)>; 449 interrupts = <59 0>; 450 status = "disabled"; 451 }; 452 453 spi3: spi@40003c00 { 454 compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi"; 455 #address-cells = <1>; 456 #size-cells = <0>; 457 reg = <0x40003c00 0x400>; 458 clocks = <&rcc STM32_CLOCK(APB1, 15U)>, 459 <&rcc STM32_SRC_PLL1_Q SPI23_SEL(0)>; 460 interrupts = <60 0>; 461 status = "disabled"; 462 }; 463 464 spi4: spi@42003400 { 465 compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi"; 466 #address-cells = <1>; 467 #size-cells = <0>; 468 reg = <0x42003400 0x400>; 469 clocks = <&rcc STM32_CLOCK(APB2, 13U)>; 470 interrupts = <61 0>; 471 status = "disabled"; 472 }; 473 474 spi5: spi@42005000 { 475 compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi"; 476 #address-cells = <1>; 477 #size-cells = <0>; 478 reg = <0x42005000 0x400>; 479 clocks = <&rcc STM32_CLOCK(APB2, 20U)>; 480 interrupts = <62 0>; 481 status = "disabled"; 482 }; 483 484 i2s1: i2s@40013000 { 485 compatible = "st,stm32h7-i2s", "st,stm32-i2s"; 486 #address-cells = <1>; 487 #size-cells = <0>; 488 reg = <0x40013000 0x400>; 489 clocks = <&rcc STM32_CLOCK(APB2, 12U)>, 490 <&rcc STM32_SRC_PLL1_Q SPI1_SEL(0)>; 491 interrupts = <35 3>; 492 status = "disabled"; 493 }; 494 495 iwdg: iwdg1: watchdog@58004800 { 496 compatible = "st,stm32-watchdog"; 497 reg = <0x58004800 0x400>; 498 interrupts = <3 0>; 499 status = "disabled"; 500 }; 501 502 wwdg: wwdg1: watchdog@40002c00 { 503 compatible = "st,stm32-window-watchdog"; 504 reg = <0x40002c00 0x1000>; 505 clocks = <&rcc STM32_CLOCK(APB1, 11U)>; 506 interrupts = <4 7>; 507 status = "disabled"; 508 }; 509 510 timers1: timers@42000000 { 511 compatible = "st,stm32-timers"; 512 reg = <0x42000000 0x400>; 513 clocks = <&rcc STM32_CLOCK(APB2, 0U)>; 514 resets = <&rctl STM32_RESET(APB2, 0U)>; 515 interrupts = <47 0>, <48 0>, <49 0>, <50 0>; 516 interrupt-names = "brk", "up", "trgcom", "cc"; 517 st,prescaler = <0>; 518 status = "disabled"; 519 520 pwm { 521 compatible = "st,stm32-pwm"; 522 status = "disabled"; 523 #pwm-cells = <3>; 524 }; 525 }; 526 527 timers2: timers@40000000 { 528 compatible = "st,stm32-timers"; 529 reg = <0x40000000 0x400>; 530 clocks = <&rcc STM32_CLOCK(APB1, 0U)>; 531 resets = <&rctl STM32_RESET(APB1L, 0U)>; 532 interrupts = <51 0>; 533 interrupt-names = "global"; 534 st,prescaler = <0>; 535 status = "disabled"; 536 537 pwm { 538 compatible = "st,stm32-pwm"; 539 status = "disabled"; 540 #pwm-cells = <3>; 541 }; 542 543 counter { 544 compatible = "st,stm32-counter"; 545 status = "disabled"; 546 }; 547 }; 548 549 timers3: timers@40000400 { 550 compatible = "st,stm32-timers"; 551 reg = <0x40000400 0x400>; 552 clocks = <&rcc STM32_CLOCK(APB1, 1U)>; 553 resets = <&rctl STM32_RESET(APB1L, 1U)>; 554 interrupts = <52 0>; 555 interrupt-names = "global"; 556 st,prescaler = <0>; 557 status = "disabled"; 558 559 pwm { 560 compatible = "st,stm32-pwm"; 561 status = "disabled"; 562 #pwm-cells = <3>; 563 }; 564 565 counter { 566 compatible = "st,stm32-counter"; 567 status = "disabled"; 568 }; 569 }; 570 571 timers4: timers@40000800 { 572 compatible = "st,stm32-timers"; 573 reg = <0x40000800 0x400>; 574 clocks = <&rcc STM32_CLOCK(APB1, 2U)>; 575 resets = <&rctl STM32_RESET(APB1L, 2U)>; 576 interrupts = <53 0>; 577 interrupt-names = "global"; 578 st,prescaler = <0>; 579 status = "disabled"; 580 581 pwm { 582 compatible = "st,stm32-pwm"; 583 status = "disabled"; 584 #pwm-cells = <3>; 585 }; 586 587 counter { 588 compatible = "st,stm32-counter"; 589 status = "disabled"; 590 }; 591 }; 592 593 timers5: timers@40000c00 { 594 compatible = "st,stm32-timers"; 595 reg = <0x40000c00 0x400>; 596 clocks = <&rcc STM32_CLOCK(APB1, 3U)>; 597 resets = <&rctl STM32_RESET(APB1L, 3U)>; 598 interrupts = <54 0>; 599 interrupt-names = "global"; 600 st,prescaler = <0>; 601 status = "disabled"; 602 603 pwm { 604 compatible = "st,stm32-pwm"; 605 status = "disabled"; 606 #pwm-cells = <3>; 607 }; 608 609 counter { 610 compatible = "st,stm32-counter"; 611 status = "disabled"; 612 }; 613 }; 614 615 timers6: timers@40001000 { 616 compatible = "st,stm32-timers"; 617 reg = <0x40001000 0x400>; 618 clocks = <&rcc STM32_CLOCK(APB1, 4U)>; 619 resets = <&rctl STM32_RESET(APB1L, 4U)>; 620 interrupts = <55 0>; 621 interrupt-names = "global"; 622 st,prescaler = <0>; 623 status = "disabled"; 624 625 counter { 626 compatible = "st,stm32-counter"; 627 status = "disabled"; 628 }; 629 }; 630 631 timers7: timers@40001400 { 632 compatible = "st,stm32-timers"; 633 reg = <0x40001400 0x400>; 634 clocks = <&rcc STM32_CLOCK(APB1, 5U)>; 635 resets = <&rctl STM32_RESET(APB1L, 5U)>; 636 interrupts = <56 0>; 637 interrupt-names = "global"; 638 st,prescaler = <0>; 639 status = "disabled"; 640 641 counter { 642 compatible = "st,stm32-counter"; 643 status = "disabled"; 644 }; 645 }; 646 647 timers9: timers@42004c00 { 648 compatible = "st,stm32-timers"; 649 reg = <0x42004c00 0x400>; 650 clocks = <&rcc STM32_CLOCK(APB2, 19U)>; 651 resets = <&rctl STM32_RESET(APB2, 19U)>; 652 interrupts = <57 0>; 653 interrupt-names = "global"; 654 st,prescaler = <0>; 655 status = "disabled"; 656 657 counter { 658 compatible = "st,stm32-counter"; 659 status = "disabled"; 660 }; 661 }; 662 663 timers15: timers@42004000 { 664 compatible = "st,stm32-timers"; 665 reg = <0x42004000 0x400>; 666 clocks = <&rcc STM32_CLOCK(APB2, 16U)>; 667 resets = <&rctl STM32_RESET(APB2, 16U)>; 668 interrupts = <116 0>; 669 interrupt-names = "global"; 670 st,prescaler = <0>; 671 status = "disabled"; 672 673 pwm { 674 compatible = "st,stm32-pwm"; 675 status = "disabled"; 676 #pwm-cells = <3>; 677 }; 678 679 counter { 680 compatible = "st,stm32-counter"; 681 status = "disabled"; 682 }; 683 }; 684 685 timers16: timers@42004400 { 686 compatible = "st,stm32-timers"; 687 reg = <0x42004400 0x400>; 688 clocks = <&rcc STM32_CLOCK(APB1, 17U)>; 689 resets = <&rctl STM32_RESET(APB2, 17U)>; 690 interrupts = <117 0>; 691 interrupt-names = "global"; 692 st,prescaler = <0>; 693 status = "disabled"; 694 695 pwm { 696 compatible = "st,stm32-pwm"; 697 status = "disabled"; 698 #pwm-cells = <3>; 699 }; 700 701 counter { 702 compatible = "st,stm32-counter"; 703 status = "disabled"; 704 }; 705 }; 706 707 timers17: timers@42004800 { 708 compatible = "st,stm32-timers"; 709 reg = <0x42004800 0x400>; 710 clocks = <&rcc STM32_CLOCK(APB1, 18U)>; 711 resets = <&rctl STM32_RESET(APB2, 18U)>; 712 interrupts = <118 0>; 713 interrupt-names = "global"; 714 st,prescaler = <0>; 715 status = "disabled"; 716 717 pwm { 718 compatible = "st,stm32-pwm"; 719 status = "disabled"; 720 #pwm-cells = <3>; 721 }; 722 723 counter { 724 compatible = "st,stm32-counter"; 725 status = "disabled"; 726 }; 727 }; 728 729 lptim1: timers@40002400 { 730 compatible = "st,stm32-lptim"; 731 clocks = <&rcc STM32_CLOCK(APB1, 9U)>; 732 #address-cells = <1>; 733 #size-cells = <0>; 734 reg = <0x40002400 0x400>; 735 interrupts = <119 1>; 736 interrupt-names = "wakeup"; 737 status = "disabled"; 738 }; 739 740 adc1: adc@40022000 { 741 compatible = "st,stm32-adc"; 742 reg = <0x40022000 0x400>; 743 clocks = <&rcc STM32_CLOCK(AHB1, 5U)>; 744 interrupts = <38 0>; 745 status = "disabled"; 746 #io-channel-cells = <1>; 747 resolutions = <STM32_ADC_RES(12, 0x00) 748 STM32_ADC_RES(10, 0x01) 749 STM32_ADC_RES(8, 0x2) 750 STM32_ADC_RES(6, 0x3)>; 751 sampling-times = <3 7 13 25 48 93 248 641>; 752 st,adc-sequencer = "FULLY_CONFIGURABLE"; 753 st,adc-oversampler = "OVERSAMPLER_MINIMAL"; 754 }; 755 756 adc2: adc@40022100 { 757 compatible = "st,stm32-adc"; 758 reg = <0x40022100 0x400>; 759 clocks = <&rcc STM32_CLOCK(AHB1, 5U)>; 760 interrupts = <38 0>; 761 status = "disabled"; 762 #io-channel-cells = <1>; 763 resolutions = <STM32_ADC_RES(12, 0x00) 764 STM32_ADC_RES(10, 0x01) 765 STM32_ADC_RES(8, 0x02) 766 STM32_ADC_RES(6, 0x03)>; 767 sampling-times = <3 7 13 25 48 93 248 641>; 768 st,adc-sequencer = "FULLY_CONFIGURABLE"; 769 st,adc-oversampler = "OVERSAMPLER_MINIMAL"; 770 }; 771 772 rng: rng@48020000 { 773 compatible = "st,stm32-rng"; 774 reg = <0x48020000 0x400>; 775 clocks = <&rcc STM32_CLOCK(AHB3, 0U)>; 776 interrupts = <37 0>; 777 status = "disabled"; 778 }; 779 }; 780 781 die_temp: dietemp { 782 compatible = "st,stm32-temp-cal"; 783 ts-cal1-addr = <0x08FFF814>; 784 ts-cal2-addr = <0x08FFF818>; 785 ts-cal1-temp = <30>; 786 ts-cal2-temp = <130>; 787 ts-cal-vrefanalog = <3300>; 788 ts-cal-resolution = <12>; 789 io-channels = <&adc1 16>; 790 status = "disabled"; 791 }; 792 793 vbat: vbat { 794 compatible = "st,stm32-vbat"; 795 ratio = <4>; 796 status = "disabled"; 797 io-channels = <&adc2 16>; 798 }; 799 800 vref: vref { 801 compatible = "st,stm32-vref"; 802 vrefint-cal-addr = <0x08fff810>; 803 vrefint-cal-mv = <3300>; 804 status = "disabled"; 805 io-channels = <&adc1 17>; 806 }; 807}; 808 809&nvic { 810 arm,num-irq-priority-bits = <4>; 811}; 812