1/* 2 * Copyright (c) 2018 Yurii Hamann 3 * Copyright (c) 2019 Centaur Analytics, Inc 4 * Copyright (c) 2024 STMicroelectronics 5 * 6 * SPDX-License-Identifier: Apache-2.0 7 */ 8 9#include <arm/armv7-m.dtsi> 10#include <zephyr/dt-bindings/clock/stm32f7_clock.h> 11#include <zephyr/dt-bindings/i2c/i2c.h> 12#include <zephyr/dt-bindings/gpio/gpio.h> 13#include <zephyr/dt-bindings/pwm/pwm.h> 14#include <zephyr/dt-bindings/pwm/stm32_pwm.h> 15#include <zephyr/dt-bindings/dma/stm32_dma.h> 16#include <zephyr/dt-bindings/adc/stm32f4_adc.h> 17#include <zephyr/dt-bindings/reset/stm32f2_4_7_reset.h> 18#include <zephyr/dt-bindings/adc/adc.h> 19#include <zephyr/dt-bindings/memory-controller/stm32-fmc-sdram.h> 20#include <zephyr/dt-bindings/memory-attr/memory-attr.h> 21#include <zephyr/dt-bindings/memory-attr/memory-attr-arm.h> 22#include <freq.h> 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 quadspi_memory: memory-placeholder@90000000 { 49 compatible = "zephyr,memory-region", "mmio-sram"; 50 reg = <0x90000000 DT_SIZE_M(256)>; 51 zephyr,memory-region = "QSPI_PLACEHOLDER"; 52 zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_EXTMEM) )>; 53 }; 54 55 clocks { 56 clk_hse: clk-hse { 57 #clock-cells = <0>; 58 compatible = "st,stm32-hse-clock"; 59 status = "disabled"; 60 }; 61 62 clk_hsi: clk-hsi { 63 #clock-cells = <0>; 64 compatible = "fixed-clock"; 65 clock-frequency = <DT_FREQ_M(16)>; 66 status = "disabled"; 67 }; 68 69 clk_lse: clk-lse { 70 #clock-cells = <0>; 71 compatible = "st,stm32-lse-clock"; 72 clock-frequency = <32768>; 73 driving-capability = <0>; 74 status = "disabled"; 75 }; 76 77 clk_lsi: clk-lsi { 78 #clock-cells = <0>; 79 compatible = "fixed-clock"; 80 clock-frequency = <DT_FREQ_K(32)>; 81 status = "disabled"; 82 }; 83 84 pll: pll { 85 #clock-cells = <0>; 86 compatible = "st,stm32f7-pll-clock"; 87 status = "disabled"; 88 }; 89 }; 90 91 mcos { 92 mco1: mco1 { 93 compatible = "st,stm32-clock-mco"; 94 status = "disabled"; 95 }; 96 97 mco2: mco2 { 98 compatible = "st,stm32-clock-mco"; 99 status = "disabled"; 100 }; 101 }; 102 103 soc { 104 fmc: memory-controller@a0000000 { 105 compatible = "st,stm32-fmc"; 106 reg = <0xa0000000 0x400>; 107 clocks = <&rcc STM32_CLOCK(AHB3, 0U)>; 108 status = "disabled"; 109 110 sdram: sdram { 111 compatible = "st,stm32-fmc-sdram"; 112 #address-cells = <1>; 113 #size-cells = <0>; 114 status = "disabled"; 115 }; 116 }; 117 118 flash: flash-controller@40023c00 { 119 compatible = "st,stm32-flash-controller", "st,stm32f7-flash-controller"; 120 reg = <0x40023c00 0x400>; 121 interrupts = <4 0>; 122 123 #address-cells = <1>; 124 #size-cells = <1>; 125 126 flash0: flash@8000000 { 127 compatible = "st,stm32-nv-flash", "soc-nv-flash"; 128 129 write-block-size = <1>; 130 /* maximum erase time (ms) for a 256K sector */ 131 max-erase-time = <4000>; 132 }; 133 }; 134 135 rcc: rcc@40023800 { 136 compatible = "st,stm32-rcc"; 137 #clock-cells = <2>; 138 reg = <0x40023800 0x400>; 139 140 rctl: reset-controller { 141 compatible = "st,stm32-rcc-rctl"; 142 #reset-cells = <1>; 143 }; 144 }; 145 146 exti: interrupt-controller@40013c00 { 147 compatible = "st,stm32-exti"; 148 interrupt-controller; 149 #interrupt-cells = <1>; 150 #address-cells = <1>; 151 reg = <0x40013c00 0x400>; 152 num-lines = <16>; 153 interrupts = <6 0>, <7 0>, <8 0>, <9 0>, 154 <10 0>, <23 0>, <40 0>; 155 interrupt-names = "line0", "line1", "line2", "line3", 156 "line4", "line5-9", "line10-15"; 157 line-ranges = <0 1>, <1 1>, <2 1>, <3 1>, 158 <4 1>, <5 5>, <10 6>; 159 }; 160 161 pinctrl: pin-controller@40020000 { 162 compatible = "st,stm32-pinctrl"; 163 #address-cells = <1>; 164 #size-cells = <1>; 165 reg = <0x40020000 0x2400>; 166 167 gpioa: gpio@40020000 { 168 compatible = "st,stm32-gpio"; 169 gpio-controller; 170 #gpio-cells = <2>; 171 reg = <0x40020000 0x400>; 172 clocks = <&rcc STM32_CLOCK(AHB1, 0U)>; 173 }; 174 175 gpiob: gpio@40020400 { 176 compatible = "st,stm32-gpio"; 177 gpio-controller; 178 #gpio-cells = <2>; 179 reg = <0x40020400 0x400>; 180 clocks = <&rcc STM32_CLOCK(AHB1, 1U)>; 181 }; 182 183 gpioc: gpio@40020800 { 184 compatible = "st,stm32-gpio"; 185 gpio-controller; 186 #gpio-cells = <2>; 187 reg = <0x40020800 0x400>; 188 clocks = <&rcc STM32_CLOCK(AHB1, 2U)>; 189 }; 190 191 gpiod: gpio@40020C00 { 192 compatible = "st,stm32-gpio"; 193 gpio-controller; 194 #gpio-cells = <2>; 195 reg = <0x40020C00 0x400>; 196 clocks = <&rcc STM32_CLOCK(AHB1, 3U)>; 197 }; 198 199 gpioe: gpio@40021000 { 200 compatible = "st,stm32-gpio"; 201 gpio-controller; 202 #gpio-cells = <2>; 203 reg = <0x40021000 0x400>; 204 clocks = <&rcc STM32_CLOCK(AHB1, 4U)>; 205 }; 206 207 gpiof: gpio@40021400 { 208 compatible = "st,stm32-gpio"; 209 gpio-controller; 210 #gpio-cells = <2>; 211 reg = <0x40021400 0x400>; 212 clocks = <&rcc STM32_CLOCK(AHB1, 5U)>; 213 }; 214 215 gpiog: gpio@40021800 { 216 compatible = "st,stm32-gpio"; 217 gpio-controller; 218 #gpio-cells = <2>; 219 reg = <0x40021800 0x400>; 220 clocks = <&rcc STM32_CLOCK(AHB1, 6U)>; 221 }; 222 223 gpioh: gpio@40021C00 { 224 compatible = "st,stm32-gpio"; 225 gpio-controller; 226 #gpio-cells = <2>; 227 reg = <0x40021C00 0x400>; 228 clocks = <&rcc STM32_CLOCK(AHB1, 7U)>; 229 }; 230 231 gpioi: gpio@40022000 { 232 compatible = "st,stm32-gpio"; 233 gpio-controller; 234 #gpio-cells = <2>; 235 reg = <0x40022000 0x400>; 236 clocks = <&rcc STM32_CLOCK(AHB1, 8U)>; 237 }; 238 }; 239 240 iwdg: watchdog@40003000 { 241 compatible = "st,stm32-watchdog"; 242 reg = <0x40003000 0x400>; 243 status = "disabled"; 244 }; 245 246 wwdg: watchdog@40002c00 { 247 compatible = "st,stm32-window-watchdog"; 248 reg = <0x40002C00 0x400>; 249 clocks = <&rcc STM32_CLOCK(APB1, 11U)>; 250 interrupts = <0 7>; 251 status = "disabled"; 252 }; 253 254 usart1: serial@40011000 { 255 compatible = "st,stm32-usart", "st,stm32-uart"; 256 reg = <0x40011000 0x400>; 257 clocks = <&rcc STM32_CLOCK(APB2, 4U)>; 258 resets = <&rctl STM32_RESET(APB2, 4U)>; 259 interrupts = <37 0>; 260 status = "disabled"; 261 }; 262 263 usart2: serial@40004400 { 264 compatible = "st,stm32-usart", "st,stm32-uart"; 265 reg = <0x40004400 0x400>; 266 clocks = <&rcc STM32_CLOCK(APB1, 17U)>; 267 resets = <&rctl STM32_RESET(APB1, 17U)>; 268 interrupts = <38 0>; 269 status = "disabled"; 270 }; 271 272 usart3: serial@40004800 { 273 compatible = "st,stm32-usart", "st,stm32-uart"; 274 reg = <0x40004800 0x400>; 275 clocks = <&rcc STM32_CLOCK(APB1, 18U)>; 276 resets = <&rctl STM32_RESET(APB1, 18U)>; 277 interrupts = <39 0>; 278 status = "disabled"; 279 }; 280 281 uart4: serial@40004c00 { 282 compatible ="st,stm32-uart"; 283 reg = <0x40004c00 0x400>; 284 clocks = <&rcc STM32_CLOCK(APB1, 19U)>; 285 resets = <&rctl STM32_RESET(APB1, 19U)>; 286 interrupts = <52 0>; 287 status = "disabled"; 288 }; 289 290 uart5: serial@40005000 { 291 compatible = "st,stm32-uart"; 292 reg = <0x40005000 0x400>; 293 clocks = <&rcc STM32_CLOCK(APB1, 20U)>; 294 resets = <&rctl STM32_RESET(APB1, 20U)>; 295 interrupts = <53 0>; 296 status = "disabled"; 297 }; 298 299 usart6: serial@40011400 { 300 compatible = "st,stm32-usart", "st,stm32-uart"; 301 reg = <0x40011400 0x400>; 302 clocks = <&rcc STM32_CLOCK(APB2, 5U)>; 303 resets = <&rctl STM32_RESET(APB2, 5U)>; 304 interrupts = <71 0>; 305 status = "disabled"; 306 }; 307 308 uart7: serial@40007800 { 309 compatible = "st,stm32-uart"; 310 reg = <0x40007800 0x400>; 311 clocks = <&rcc STM32_CLOCK(APB1, 30U)>; 312 resets = <&rctl STM32_RESET(APB1, 30U)>; 313 interrupts = <82 0>; 314 status = "disabled"; 315 }; 316 317 uart8: serial@40007c00 { 318 compatible = "st,stm32-uart"; 319 reg = <0x40007c00 0x400>; 320 clocks = <&rcc STM32_CLOCK(APB1, 31U)>; 321 resets = <&rctl STM32_RESET(APB1, 31U)>; 322 interrupts = <83 0>; 323 status = "disabled"; 324 }; 325 326 i2c1: i2c@40005400 { 327 compatible = "st,stm32-i2c-v2"; 328 clock-frequency = <I2C_BITRATE_STANDARD>; 329 #address-cells = <1>; 330 #size-cells = <0>; 331 reg = <0x40005400 0x400>; 332 clocks = <&rcc STM32_CLOCK(APB1, 21U)>; 333 interrupts = <31 0>, <32 0>; 334 interrupt-names = "event", "error"; 335 status = "disabled"; 336 }; 337 338 i2c2: i2c@40005800 { 339 compatible = "st,stm32-i2c-v2"; 340 clock-frequency = <I2C_BITRATE_STANDARD>; 341 #address-cells = <1>; 342 #size-cells = <0>; 343 reg = <0x40005800 0x400>; 344 clocks = <&rcc STM32_CLOCK(APB1, 22U)>; 345 interrupts = <33 0>, <34 0>; 346 interrupt-names = "event", "error"; 347 status = "disabled"; 348 }; 349 350 i2c3: i2c@40005c00 { 351 compatible = "st,stm32-i2c-v2"; 352 clock-frequency = <I2C_BITRATE_STANDARD>; 353 #address-cells = <1>; 354 #size-cells = <0>; 355 reg = <0x40005c00 0x400>; 356 clocks = <&rcc STM32_CLOCK(APB1, 23U)>; 357 interrupts = <72 0>, <73 0>; 358 interrupt-names = "event", "error"; 359 status = "disabled"; 360 }; 361 362 spi1: spi@40013000 { 363 compatible = "st,stm32-spi-fifo", "st,stm32-spi"; 364 #address-cells = <1>; 365 #size-cells = <0>; 366 reg = <0x40013000 0x400>; 367 clocks = <&rcc STM32_CLOCK(APB2, 12U)>; 368 interrupts = <35 5>; 369 status = "disabled"; 370 }; 371 372 spi2: spi@40003800 { 373 compatible = "st,stm32-spi-fifo", "st,stm32-spi"; 374 #address-cells = <1>; 375 #size-cells = <0>; 376 reg = <0x40003800 0x400>; 377 clocks = <&rcc STM32_CLOCK(APB1, 14U)>; 378 interrupts = <36 5>; 379 status = "disabled"; 380 }; 381 382 spi3: spi@40003c00 { 383 compatible = "st,stm32-spi-fifo", "st,stm32-spi"; 384 #address-cells = <1>; 385 #size-cells = <0>; 386 reg = <0x40003c00 0x400>; 387 clocks = <&rcc STM32_CLOCK(APB1, 15U)>; 388 interrupts = <51 5>; 389 status = "disabled"; 390 }; 391 392 spi4: spi@40013400 { 393 compatible = "st,stm32-spi-fifo", "st,stm32-spi"; 394 #address-cells = <1>; 395 #size-cells = <0>; 396 reg = <0x40013400 0x400>; 397 clocks = <&rcc STM32_CLOCK(APB2, 13U)>; 398 interrupts = <84 5>; 399 status = "disabled"; 400 }; 401 402 spi5: spi@40015000 { 403 compatible = "st,stm32-spi-fifo", "st,stm32-spi"; 404 #address-cells = <1>; 405 #size-cells = <0>; 406 reg = <0x40015000 0x400>; 407 clocks = <&rcc STM32_CLOCK(APB2, 20U)>; 408 interrupts = <85 5>; 409 status = "disabled"; 410 }; 411 412 can1: can@40006400 { 413 compatible = "st,stm32-bxcan"; 414 reg = <0x40006400 0x400>; 415 interrupts = <19 0>, <20 0>, <21 0>, <22 0>; 416 interrupt-names = "TX", "RX0", "RX1", "SCE"; 417 clocks = <&rcc STM32_CLOCK(APB1, 25U)>; 418 status = "disabled"; 419 }; 420 421 timers1: timers@40010000 { 422 compatible = "st,stm32-timers"; 423 reg = <0x40010000 0x400>; 424 clocks = <&rcc STM32_CLOCK(APB2, 0U)>; 425 resets = <&rctl STM32_RESET(APB2, 0U)>; 426 interrupts = <24 0>, <25 0>, <26 0>, <27 0>; 427 interrupt-names = "brk", "up", "trgcom", "cc"; 428 st,prescaler = <0>; 429 status = "disabled"; 430 431 pwm { 432 compatible = "st,stm32-pwm"; 433 status = "disabled"; 434 #pwm-cells = <3>; 435 }; 436 }; 437 438 timers2: timers@40000000 { 439 compatible = "st,stm32-timers"; 440 reg = <0x40000000 0x400>; 441 clocks = <&rcc STM32_CLOCK(APB1, 0U)>; 442 resets = <&rctl STM32_RESET(APB1, 0U)>; 443 interrupts = <28 0>; 444 interrupt-names = "global"; 445 st,prescaler = <0>; 446 status = "disabled"; 447 448 pwm { 449 compatible = "st,stm32-pwm"; 450 status = "disabled"; 451 #pwm-cells = <3>; 452 }; 453 454 counter { 455 compatible = "st,stm32-counter"; 456 status = "disabled"; 457 }; 458 }; 459 460 timers3: timers@40000400 { 461 compatible = "st,stm32-timers"; 462 reg = <0x40000400 0x400>; 463 clocks = <&rcc STM32_CLOCK(APB1, 1U)>; 464 resets = <&rctl STM32_RESET(APB1, 1U)>; 465 interrupts = <29 0>; 466 interrupt-names = "global"; 467 st,prescaler = <0>; 468 status = "disabled"; 469 470 pwm { 471 compatible = "st,stm32-pwm"; 472 status = "disabled"; 473 #pwm-cells = <3>; 474 }; 475 476 counter { 477 compatible = "st,stm32-counter"; 478 status = "disabled"; 479 }; 480 }; 481 482 timers4: timers@40000800 { 483 compatible = "st,stm32-timers"; 484 reg = <0x40000800 0x400>; 485 clocks = <&rcc STM32_CLOCK(APB1, 2U)>; 486 resets = <&rctl STM32_RESET(APB1, 2U)>; 487 interrupts = <30 0>; 488 interrupt-names = "global"; 489 st,prescaler = <0>; 490 status = "disabled"; 491 492 pwm { 493 compatible = "st,stm32-pwm"; 494 status = "disabled"; 495 #pwm-cells = <3>; 496 }; 497 498 counter { 499 compatible = "st,stm32-counter"; 500 status = "disabled"; 501 }; 502 }; 503 504 timers5: timers@40000c00 { 505 compatible = "st,stm32-timers"; 506 reg = <0x40000c00 0x400>; 507 clocks = <&rcc STM32_CLOCK(APB1, 3U)>; 508 resets = <&rctl STM32_RESET(APB1, 3U)>; 509 interrupts = <50 0>; 510 interrupt-names = "global"; 511 st,prescaler = <0>; 512 status = "disabled"; 513 514 pwm { 515 compatible = "st,stm32-pwm"; 516 status = "disabled"; 517 #pwm-cells = <3>; 518 }; 519 520 counter { 521 compatible = "st,stm32-counter"; 522 status = "disabled"; 523 }; 524 }; 525 526 timers6: timers@40001000 { 527 compatible = "st,stm32-timers"; 528 reg = <0x40001000 0x400>; 529 clocks = <&rcc STM32_CLOCK(APB1, 4U)>; 530 resets = <&rctl STM32_RESET(APB1, 4U)>; 531 interrupts = <54 0>; 532 interrupt-names = "global"; 533 st,prescaler = <0>; 534 status = "disabled"; 535 536 counter { 537 compatible = "st,stm32-counter"; 538 status = "disabled"; 539 }; 540 }; 541 542 timers7: timers@40001400 { 543 compatible = "st,stm32-timers"; 544 reg = <0x40001400 0x400>; 545 clocks = <&rcc STM32_CLOCK(APB1, 5U)>; 546 resets = <&rctl STM32_RESET(APB1, 5U)>; 547 interrupts = <55 0>; 548 interrupt-names = "global"; 549 st,prescaler = <0>; 550 status = "disabled"; 551 552 counter { 553 compatible = "st,stm32-counter"; 554 status = "disabled"; 555 }; 556 }; 557 558 timers8: timers@40010400 { 559 compatible = "st,stm32-timers"; 560 reg = <0x40010400 0x400>; 561 clocks = <&rcc STM32_CLOCK(APB2, 1U)>; 562 resets = <&rctl STM32_RESET(APB2, 1U)>; 563 interrupts = <43 0>, <44 0>, <45 0>, <46 0>; 564 interrupt-names = "brk", "up", "trgcom", "cc"; 565 st,prescaler = <0>; 566 status = "disabled"; 567 568 pwm { 569 compatible = "st,stm32-pwm"; 570 status = "disabled"; 571 #pwm-cells = <3>; 572 }; 573 }; 574 575 timers9: timers@40014000 { 576 compatible = "st,stm32-timers"; 577 reg = <0x40014000 0x400>; 578 clocks = <&rcc STM32_CLOCK(APB2, 16U)>; 579 resets = <&rctl STM32_RESET(APB2, 16U)>; 580 interrupts = <24 0>; 581 interrupt-names = "global"; 582 st,prescaler = <0>; 583 status = "disabled"; 584 585 pwm { 586 compatible = "st,stm32-pwm"; 587 status = "disabled"; 588 #pwm-cells = <3>; 589 }; 590 591 counter { 592 compatible = "st,stm32-counter"; 593 status = "disabled"; 594 }; 595 }; 596 597 timers10: timers@40014400 { 598 compatible = "st,stm32-timers"; 599 reg = <0x40014400 0x400>; 600 clocks = <&rcc STM32_CLOCK(APB2, 17U)>; 601 resets = <&rctl STM32_RESET(APB2, 17U)>; 602 interrupts = <25 0>; 603 interrupt-names = "global"; 604 st,prescaler = <0>; 605 status = "disabled"; 606 607 pwm { 608 compatible = "st,stm32-pwm"; 609 status = "disabled"; 610 #pwm-cells = <3>; 611 }; 612 613 counter { 614 compatible = "st,stm32-counter"; 615 status = "disabled"; 616 }; 617 }; 618 619 timers11: timers@40014800 { 620 compatible = "st,stm32-timers"; 621 reg = <0x40014800 0x400>; 622 clocks = <&rcc STM32_CLOCK(APB2, 18U)>; 623 resets = <&rctl STM32_RESET(APB2, 18U)>; 624 interrupts = <26 0>; 625 interrupt-names = "global"; 626 st,prescaler = <0>; 627 status = "disabled"; 628 629 pwm { 630 compatible = "st,stm32-pwm"; 631 status = "disabled"; 632 #pwm-cells = <3>; 633 }; 634 635 counter { 636 compatible = "st,stm32-counter"; 637 status = "disabled"; 638 }; 639 }; 640 641 timers12: timers@40001800 { 642 compatible = "st,stm32-timers"; 643 reg = <0x40001800 0x400>; 644 clocks = <&rcc STM32_CLOCK(APB1, 6U)>; 645 resets = <&rctl STM32_RESET(APB1, 6U)>; 646 interrupts = <43 0>; 647 interrupt-names = "global"; 648 st,prescaler = <0>; 649 status = "disabled"; 650 651 pwm { 652 compatible = "st,stm32-pwm"; 653 status = "disabled"; 654 #pwm-cells = <3>; 655 }; 656 657 counter { 658 compatible = "st,stm32-counter"; 659 status = "disabled"; 660 }; 661 }; 662 663 timers13: timers@40001c00 { 664 compatible = "st,stm32-timers"; 665 reg = <0x40001c00 0x400>; 666 clocks = <&rcc STM32_CLOCK(APB1, 7U)>; 667 resets = <&rctl STM32_RESET(APB1, 7U)>; 668 interrupts = <44 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 timers14: timers@40002000 { 686 compatible = "st,stm32-timers"; 687 reg = <0x40002000 0x400>; 688 clocks = <&rcc STM32_CLOCK(APB1, 8U)>; 689 resets = <&rctl STM32_RESET(APB1, 8U)>; 690 interrupts = <45 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 usbotg_fs: usb@50000000 { 708 compatible = "st,stm32-otgfs"; 709 reg = <0x50000000 0x40000>; 710 interrupts = <67 0>; 711 interrupt-names = "otgfs"; 712 num-bidir-endpoints = <6>; 713 ram-size = <1280>; 714 maximum-speed = "full-speed"; 715 phys = <&otgfs_phy>; 716 clocks = <&rcc STM32_CLOCK(AHB2, 7U)>, 717 <&rcc STM32_SRC_PLL_Q CK48M_SEL(0)>; 718 status = "disabled"; 719 }; 720 721 usbotg_hs: usb@40040000 { 722 compatible = "st,stm32-otghs"; 723 reg = <0x40040000 0x40000>; 724 interrupts = <77 0>, <74 0>, <75 0>; 725 interrupt-names = "otghs", "ep1_out", "ep1_in"; 726 num-bidir-endpoints = <9>; 727 ram-size = <4096>; 728 maximum-speed = "full-speed"; 729 clocks = <&rcc STM32_CLOCK(AHB1, 29U)>, 730 <&rcc STM32_SRC_PLL_Q CK48M_SEL(0)>; 731 phys = <&otghs_fs_phy>; 732 status = "disabled"; 733 }; 734 735 rtc: rtc@40002800 { 736 compatible = "st,stm32-rtc"; 737 reg = <0x40002800 0x300>; 738 interrupts = <41 0>; 739 clocks = <&rcc STM32_CLOCK(APB1, 28U)>; 740 prescaler = <32768>; 741 alarms-count = <2>; 742 alrm-exti-line = <17>; 743 status = "disabled"; 744 745 bbram: backup_regs { 746 compatible = "st,stm32-bbram"; 747 st,backup-regs = <32>; 748 status = "disabled"; 749 }; 750 }; 751 752 adc1: adc@40012000 { 753 compatible = "st,stm32f4-adc", "st,stm32-adc"; 754 reg = <0x40012000 0x50>; 755 clocks = <&rcc STM32_CLOCK(APB2, 8U)>; 756 interrupts = <18 0>; 757 status = "disabled"; 758 #io-channel-cells = <1>; 759 resolutions = <STM32_ADC_RES(12, 0x00) 760 STM32_ADC_RES(10, 0x01) 761 STM32_ADC_RES(8, 0x02) 762 STM32_ADC_RES(6, 0x03)>; 763 sampling-times = <3 15 28 56 84 112 144 480>; 764 st,adc-clock-source = "SYNC"; 765 st,adc-sequencer = "FULLY_CONFIGURABLE"; 766 st,adc-oversampler = "OVERSAMPLER_NONE"; 767 }; 768 769 adc2: adc@40012100 { 770 compatible = "st,stm32f4-adc", "st,stm32-adc"; 771 reg = <0x40012100 0x50>; 772 clocks = <&rcc STM32_CLOCK(APB2, 9U)>; 773 interrupts = <18 0>; 774 status = "disabled"; 775 #io-channel-cells = <1>; 776 resolutions = <STM32_ADC_RES(12, 0x00) 777 STM32_ADC_RES(10, 0x01) 778 STM32_ADC_RES(8, 0x02) 779 STM32_ADC_RES(6, 0x03)>; 780 sampling-times = <3 15 28 56 84 112 144 480>; 781 st,adc-clock-source = "SYNC"; 782 st,adc-sequencer = "FULLY_CONFIGURABLE"; 783 st,adc-oversampler = "OVERSAMPLER_NONE"; 784 }; 785 786 adc3: adc@40012200 { 787 compatible = "st,stm32f4-adc", "st,stm32-adc"; 788 reg = <0x40012200 0x50>; 789 clocks = <&rcc STM32_CLOCK(APB2, 10U)>; 790 interrupts = <18 0>; 791 status = "disabled"; 792 #io-channel-cells = <1>; 793 resolutions = <STM32_ADC_RES(12, 0x00) 794 STM32_ADC_RES(10, 0x01) 795 STM32_ADC_RES(8, 0x02) 796 STM32_ADC_RES(6, 0x03)>; 797 sampling-times = <3 15 28 56 84 112 144 480>; 798 st,adc-clock-source = "SYNC"; 799 st,adc-sequencer = "FULLY_CONFIGURABLE"; 800 st,adc-oversampler = "OVERSAMPLER_NONE"; 801 }; 802 803 dac1: dac@40007400 { 804 compatible = "st,stm32-dac"; 805 reg = <0x40007400 0x400>; 806 clocks = <&rcc STM32_CLOCK(APB1, 29U)>; 807 status = "disabled"; 808 #io-channel-cells = <1>; 809 }; 810 811 dma1: dma@40026000 { 812 compatible = "st,stm32-dma-v1"; 813 #dma-cells = <4>; 814 reg = <0x40026000 0x400>; 815 interrupts = <11 0 12 0 13 0 14 0 15 0 16 0 17 0 47 0>; 816 clocks = <&rcc STM32_CLOCK(AHB1, 21U)>; 817 status = "disabled"; 818 }; 819 820 dma2: dma@40026400 { 821 compatible = "st,stm32-dma-v1"; 822 #dma-cells = <4>; 823 reg = <0x40026400 0x400>; 824 interrupts = <56 0 57 0 58 0 59 0 60 0 68 0 69 0 70 0>; 825 clocks = <&rcc STM32_CLOCK(AHB1, 22U)>; 826 st,mem2mem; 827 status = "disabled"; 828 }; 829 830 rng: rng@50060800 { 831 compatible = "st,stm32-rng"; 832 reg = <0x50060800 0x400>; 833 interrupts = <80 0>; 834 clocks = <&rcc STM32_CLOCK(AHB2, 6U)>, 835 <&rcc STM32_SRC_PLL_Q CK48M_SEL(0)>; 836 status = "disabled"; 837 }; 838 839 sdmmc1: sdmmc@40012c00 { 840 compatible = "st,stm32-sdmmc"; 841 reg = <0x40012c00 0x400>; 842 clocks = <&rcc STM32_CLOCK(APB2, 11U)>, 843 <&rcc STM32_SRC_PLL_Q SDMMC1_SEL(0)>; 844 resets = <&rctl STM32_RESET(APB2, 11U)>; 845 interrupts = <49 0>; 846 status = "disabled"; 847 }; 848 849 backup_sram: memory@40024000 { 850 compatible = "zephyr,memory-region", "st,stm32-backup-sram"; 851 reg = <0x40024000 DT_SIZE_K(4)>; 852 clocks = <&rcc STM32_CLOCK(AHB1, 18U)>; 853 zephyr,memory-region = "BACKUP_SRAM"; 854 status = "disabled"; 855 }; 856 857 quadspi: quadspi@a0001000 { 858 compatible = "st,stm32-qspi"; 859 #address-cells = <0x1>; 860 #size-cells = <0x0>; 861 reg = <0xa0001000 0x34>; 862 interrupts = <92 0>; 863 clocks = <&rcc STM32_CLOCK(AHB3, 1U)>; 864 status = "disabled"; 865 }; 866 }; 867 868 die_temp: dietemp { 869 compatible = "st,stm32-temp-cal"; 870 ts-cal1-addr = <0x1FF0F44C>; 871 ts-cal2-addr = <0x1FF0F44E>; 872 ts-cal1-temp = <30>; 873 ts-cal2-temp = <110>; 874 ts-cal-vrefanalog = <3300>; 875 io-channels = <&adc1 18>; 876 status = "disabled"; 877 }; 878 879 vref: vref { 880 compatible = "st,stm32-vref"; 881 vrefint-cal-addr = <0x1FF0F44A>; 882 vrefint-cal-mv = <3300>; 883 io-channels = <&adc1 17>; 884 status = "disabled"; 885 }; 886 887 vbat: vbat { 888 compatible = "st,stm32-vbat"; 889 ratio = <4>; 890 io-channels = <&adc1 18>; 891 status = "disabled"; 892 }; 893 894 otghs_fs_phy: otghs_fs_phy { 895 compatible = "usb-nop-xceiv"; 896 #phy-cells = <0>; 897 }; 898 899 otgfs_phy: otgfs_phy { 900 compatible = "usb-nop-xceiv"; 901 #phy-cells = <0>; 902 }; 903 904 smbus1: smbus1 { 905 compatible = "st,stm32-smbus"; 906 #address-cells = <1>; 907 #size-cells = <0>; 908 i2c = <&i2c2>; 909 status = "disabled"; 910 }; 911 912 smbus2: smbus2 { 913 compatible = "st,stm32-smbus"; 914 #address-cells = <1>; 915 #size-cells = <0>; 916 i2c = <&i2c2>; 917 status = "disabled"; 918 }; 919 920 smbus3: smbus3 { 921 compatible = "st,stm32-smbus"; 922 #address-cells = <1>; 923 #size-cells = <0>; 924 i2c = <&i2c3>; 925 status = "disabled"; 926 }; 927}; 928 929&nvic { 930 arm,num-irq-priority-bits = <4>; 931}; 932