1/* 2 * Copyright (c) 2021 The Chromium OS Authors 3 * Copyright (c) 2021 Linaro Limited 4 * Copyright (c) 2023 PSICONTROL nv 5 * Copyright (c) 2024 STMicroelectronics 6 * 7 * SPDX-License-Identifier: Apache-2.0 8 */ 9 10 11#include <arm/armv8-m.dtsi> 12#include <zephyr/dt-bindings/adc/adc.h> 13#include <zephyr/dt-bindings/pwm/pwm.h> 14#include <zephyr/dt-bindings/clock/stm32u5_clock.h> 15#include <zephyr/dt-bindings/gpio/gpio.h> 16#include <zephyr/dt-bindings/i2c/i2c.h> 17#include <zephyr/dt-bindings/flash_controller/ospi.h> 18#include <zephyr/dt-bindings/reset/stm32u5_reset.h> 19#include <zephyr/dt-bindings/dma/stm32_dma.h> 20#include <zephyr/dt-bindings/memory-controller/stm32-fmc-nor-psram.h> 21#include <zephyr/dt-bindings/adc/stm32u5_adc.h> 22#include <zephyr/dt-bindings/power/stm32_pwr.h> 23#include <freq.h> 24 25/ { 26 chosen { 27 zephyr,entropy = &rng; 28 zephyr,flash-controller = &flash; 29 }; 30 31 cpus { 32 #address-cells = <1>; 33 #size-cells = <0>; 34 35 cpu0: cpu@0 { 36 device_type = "cpu"; 37 compatible = "arm,cortex-m33"; 38 reg = <0>; 39 #address-cells = <1>; 40 #size-cells = <1>; 41 cpu-power-states = <&stop0 &stop1 &stop2>; 42 43 mpu: mpu@e000ed90 { 44 compatible = "arm,armv8m-mpu"; 45 reg = <0xe000ed90 0x40>; 46 }; 47 }; 48 49 power-states { 50 stop0: state0 { 51 compatible = "zephyr,power-state"; 52 power-state-name = "suspend-to-idle"; 53 substate-id = <1>; 54 min-residency-us = <100>; 55 }; 56 stop1: state1 { 57 compatible = "zephyr,power-state"; 58 power-state-name = "suspend-to-idle"; 59 substate-id = <2>; 60 min-residency-us = <500>; 61 }; 62 stop2: state2 { 63 compatible = "zephyr,power-state"; 64 power-state-name = "suspend-to-idle"; 65 substate-id = <3>; 66 min-residency-us = <900>; 67 }; 68 /omit-if-no-ref/ stop3: state3 { 69 compatible = "zephyr,power-state"; 70 power-state-name = "suspend-to-idle"; 71 substate-id = <4>; 72 min-residency-us = <200000>; 73 exit-latency-us = <130>; 74 }; 75 }; 76 }; 77 78 sram0: memory@20000000 { 79 compatible = "mmio-sram"; 80 }; 81 82 clocks { 83 clk_hse: clk-hse { 84 #clock-cells = <0>; 85 compatible = "st,stm32-hse-clock"; 86 status = "disabled"; 87 }; 88 89 clk_hsi: clk-hsi { 90 #clock-cells = <0>; 91 compatible = "fixed-clock"; 92 clock-frequency = <DT_FREQ_M(16)>; 93 status = "disabled"; 94 }; 95 96 clk_hsi48: clk-hsi48 { 97 #clock-cells = <0>; 98 compatible = "fixed-clock"; 99 clock-frequency = <DT_FREQ_M(48)>; 100 status = "disabled"; 101 }; 102 103 clk_msis: clk-msis { 104 #clock-cells = <0>; 105 compatible = "st,stm32u5-msi-clock"; 106 msi-range = <4>; /* 4MHz (reset value) */ 107 status = "disabled"; 108 }; 109 110 clk_msik: clk-msik { 111 #clock-cells = <0>; 112 compatible = "st,stm32u5-msi-clock"; 113 msi-range = <4>; /* 4MHz (reset value) */ 114 status = "disabled"; 115 }; 116 117 clk_lse: clk-lse { 118 #clock-cells = <0>; 119 compatible = "st,stm32-lse-clock"; 120 clock-frequency = <32768>; 121 driving-capability = <2>; 122 status = "disabled"; 123 }; 124 125 clk_lsi: clk-lsi { 126 #clock-cells = <0>; 127 compatible = "fixed-clock"; 128 clock-frequency = <DT_FREQ_K(32)>; 129 status = "disabled"; 130 }; 131 132 pll1: pll: pll { 133 #clock-cells = <0>; 134 compatible = "st,stm32u5-pll-clock"; 135 status = "disabled"; 136 }; 137 138 pll2: pll2 { 139 #clock-cells = <0>; 140 compatible = "st,stm32u5-pll-clock"; 141 status = "disabled"; 142 }; 143 144 pll3: pll3 { 145 #clock-cells = <0>; 146 compatible = "st,stm32u5-pll-clock"; 147 status = "disabled"; 148 }; 149 }; 150 151 mcos { 152 mco1: mco1 { 153 compatible = "st,stm32-clock-mco"; 154 status = "disabled"; 155 }; 156 }; 157 158 soc { 159 flash: flash-controller@40022000 { 160 compatible = "st,stm32-flash-controller", "st,stm32l5-flash-controller"; 161 reg = <0x40022000 0x400>; 162 interrupts = <6 0>; 163 164 #address-cells = <1>; 165 #size-cells = <1>; 166 167 flash0: flash@8000000 { 168 compatible = "st,stm32-nv-flash", "soc-nv-flash"; 169 170 write-block-size = <16>; 171 erase-block-size = <8192>; 172 /* maximum erase time(ms) for a 8K sector */ 173 max-erase-time = <5>; 174 }; 175 }; 176 177 rcc: rcc@46020c00 { 178 compatible = "st,stm32u5-rcc"; 179 clocks-controller; 180 #clock-cells = <2>; 181 reg = <0x46020c00 0x400>; 182 183 rctl: reset-controller { 184 compatible = "st,stm32-rcc-rctl"; 185 #reset-cells = <1>; 186 }; 187 }; 188 189 exti: interrupt-controller@46022000 { 190 compatible = "st,stm32g0-exti", "st,stm32-exti"; 191 interrupt-controller; 192 #interrupt-cells = <1>; 193 #address-cells = <1>; 194 reg = <0x46022000 0x400>; 195 num-lines = <16>; 196 interrupts = <11 0>, <12 0>, <13 0>, <14 0>, 197 <15 0>, <16 0>, <17 0>, <18 0>, 198 <19 0>, <20 0>, <21 0>, <22 0>, 199 <23 0>, <24 0>, <25 0>, <26 0>; 200 interrupt-names = "line0", "line1", "line2", "line3", 201 "line4", "line5", "line6", "line7", 202 "line8", "line9", "line10", "line11", 203 "line12", "line13", "line14", "line15"; 204 line-ranges = <0 1>, <1 1>, <2 1>, <3 1>, 205 <4 1>, <5 1>, <6 1>, <7 1>, 206 <8 1>, <9 1>, <10 1>, <11 1>, 207 <12 1>, <13 1>, <14 1>, <15 1>; 208 }; 209 210 pinctrl: pin-controller@42020000 { 211 compatible = "st,stm32-pinctrl"; 212 #address-cells = <1>; 213 #size-cells = <1>; 214 reg = <0x42020000 0x2000>; 215 216 gpioa: gpio@42020000 { 217 compatible = "st,stm32-gpio"; 218 gpio-controller; 219 #gpio-cells = <2>; 220 reg = <0x42020000 0x400>; 221 clocks = <&rcc STM32_CLOCK(AHB2, 0U)>; 222 }; 223 224 gpiob: gpio@42020400 { 225 compatible = "st,stm32-gpio"; 226 gpio-controller; 227 #gpio-cells = <2>; 228 reg = <0x42020400 0x400>; 229 clocks = <&rcc STM32_CLOCK(AHB2, 1U)>; 230 }; 231 232 gpioc: gpio@42020800 { 233 compatible = "st,stm32-gpio"; 234 gpio-controller; 235 #gpio-cells = <2>; 236 reg = <0x42020800 0x400>; 237 clocks = <&rcc STM32_CLOCK(AHB2, 2U)>; 238 }; 239 240 gpiod: gpio@42020c00 { 241 compatible = "st,stm32-gpio"; 242 gpio-controller; 243 #gpio-cells = <2>; 244 reg = <0x42020c00 0x400>; 245 clocks = <&rcc STM32_CLOCK(AHB2, 3U)>; 246 }; 247 248 gpioe: gpio@42021000 { 249 compatible = "st,stm32-gpio"; 250 gpio-controller; 251 #gpio-cells = <2>; 252 reg = <0x42021000 0x400>; 253 clocks = <&rcc STM32_CLOCK(AHB2, 4U)>; 254 }; 255 256 gpiof: gpio@42021400 { 257 compatible = "st,stm32-gpio"; 258 gpio-controller; 259 #gpio-cells = <2>; 260 reg = <0x42021400 0x400>; 261 clocks = <&rcc STM32_CLOCK(AHB2, 5U)>; 262 }; 263 264 gpiog: gpio@42021800 { 265 compatible = "st,stm32-gpio"; 266 gpio-controller; 267 #gpio-cells = <2>; 268 reg = <0x42021800 0x400>; 269 clocks = <&rcc STM32_CLOCK(AHB2, 6U)>; 270 }; 271 272 gpioh: gpio@42021c00 { 273 compatible = "st,stm32-gpio"; 274 gpio-controller; 275 #gpio-cells = <2>; 276 reg = <0x42021c00 0x400>; 277 clocks = <&rcc STM32_CLOCK(AHB2, 7U)>; 278 }; 279 280 gpioi: gpio@42022000 { 281 compatible = "st,stm32-gpio"; 282 gpio-controller; 283 #gpio-cells = <2>; 284 reg = <0x42022000 0x400>; 285 clocks = <&rcc STM32_CLOCK(AHB2, 8U)>; 286 }; 287 }; 288 289 iwdg: watchdog@40003000 { 290 compatible = "st,stm32-watchdog"; 291 reg = <0x40003000 0x400>; 292 status = "disabled"; 293 }; 294 295 wwdg: wwdg1: watchdog@40002c00 { 296 compatible = "st,stm32-window-watchdog"; 297 reg = <0x40002c00 0x1000>; 298 clocks = <&rcc STM32_CLOCK(APB1, 11U)>; 299 interrupts = <0 7>; 300 status = "disabled"; 301 }; 302 303 backup_sram: memory@40036400 { 304 compatible = "zephyr,memory-region", "st,stm32-backup-sram"; 305 reg = <0x40036400 DT_SIZE_K(2)>; 306 /* BKPSRAMEN and RAMCFGEN clock enable */ 307 clocks = <&rcc STM32_CLOCK(AHB1, 28U)>; 308 zephyr,memory-region = "BACKUP_SRAM"; 309 status = "disabled"; 310 }; 311 312 usart1: serial@40013800 { 313 compatible = "st,stm32-usart", "st,stm32-uart"; 314 reg = <0x40013800 0x400>; 315 clocks = <&rcc STM32_CLOCK(APB2, 14U)>; 316 resets = <&rctl STM32_RESET(APB2, 14U)>; 317 interrupts = <61 0>; 318 status = "disabled"; 319 }; 320 321 usart2: serial@40004400 { 322 compatible = "st,stm32-usart", "st,stm32-uart"; 323 reg = <0x40004400 0x400>; 324 clocks = <&rcc STM32_CLOCK(APB1, 17U)>; 325 resets = <&rctl STM32_RESET(APB1L, 17U)>; 326 interrupts = <62 0>; 327 status = "disabled"; 328 }; 329 330 usart3: serial@40004800 { 331 compatible = "st,stm32-usart", "st,stm32-uart"; 332 reg = <0x40004800 0x400>; 333 clocks = <&rcc STM32_CLOCK(APB1, 18U)>; 334 resets = <&rctl STM32_RESET(APB1L, 18U)>; 335 interrupts = <63 0>; 336 status = "disabled"; 337 }; 338 339 uart4: serial@40004c00 { 340 compatible = "st,stm32-uart"; 341 reg = <0x40004c00 0x400>; 342 clocks = <&rcc STM32_CLOCK(APB1, 19U)>; 343 resets = <&rctl STM32_RESET(APB1L, 19U)>; 344 interrupts = <64 0>; 345 status = "disabled"; 346 }; 347 348 uart5: serial@40005000 { 349 compatible = "st,stm32-uart"; 350 reg = <0x40005000 0x400>; 351 clocks = <&rcc STM32_CLOCK(APB1, 20U)>; 352 resets = <&rctl STM32_RESET(APB1L, 20U)>; 353 interrupts = <65 0>; 354 status = "disabled"; 355 }; 356 357 lpuart1: serial@46002400 { 358 compatible = "st,stm32-lpuart", "st,stm32-uart"; 359 reg = <0x46002400 0x400>; 360 clocks = <&rcc STM32_CLOCK(APB3, 6U)>; 361 resets = <&rctl STM32_RESET(APB3, 6U)>; 362 interrupts = <66 0>; 363 status = "disabled"; 364 }; 365 366 spi1: spi@40013000 { 367 compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi"; 368 #address-cells = <1>; 369 #size-cells = <0>; 370 reg = <0x40013000 0x400>; 371 interrupts = <59 5>; 372 clocks = <&rcc STM32_CLOCK(APB2, 12U)>; 373 status = "disabled"; 374 }; 375 376 spi2: spi@40003800 { 377 compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi"; 378 #address-cells = <1>; 379 #size-cells = <0>; 380 reg = <0x40003800 0x400>; 381 interrupts = <60 5>; 382 clocks = <&rcc STM32_CLOCK(APB1, 14U)>; 383 status = "disabled"; 384 }; 385 386 spi3: spi@46002000 { 387 compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi"; 388 #address-cells = <1>; 389 #size-cells = <0>; 390 reg = <0x46002000 0x400>; 391 interrupts = <99 5>; 392 clocks = <&rcc STM32_CLOCK(APB3, 5U)>; 393 status = "disabled"; 394 }; 395 396 i2c1: i2c@40005400 { 397 compatible = "st,stm32-i2c-v2"; 398 clock-frequency = <I2C_BITRATE_STANDARD>; 399 #address-cells = <1>; 400 #size-cells = <0>; 401 reg = <0x40005400 0x400>; 402 clocks = <&rcc STM32_CLOCK(APB1, 21U)>; 403 interrupts = <55 0>, <56 0>; 404 interrupt-names = "event", "error"; 405 status = "disabled"; 406 }; 407 408 i2c2: i2c@40005800 { 409 compatible = "st,stm32-i2c-v2"; 410 clock-frequency = <I2C_BITRATE_STANDARD>; 411 #address-cells = <1>; 412 #size-cells = <0>; 413 reg = <0x40005800 0x400>; 414 clocks = <&rcc STM32_CLOCK(APB1, 22U)>; 415 interrupts = <57 0>, <58 0>; 416 interrupt-names = "event", "error"; 417 status = "disabled"; 418 }; 419 420 i2c3: i2c@46002800 { 421 compatible = "st,stm32-i2c-v2"; 422 clock-frequency = <I2C_BITRATE_STANDARD>; 423 #address-cells = <1>; 424 #size-cells = <0>; 425 reg = <0x46002800 0x400>; 426 clocks = <&rcc STM32_CLOCK(APB3, 7U)>; 427 interrupts = <88 0>, <89 0>; 428 interrupt-names = "event", "error"; 429 status = "disabled"; 430 }; 431 432 i2c4: i2c@40008400 { 433 compatible = "st,stm32-i2c-v2"; 434 clock-frequency = <I2C_BITRATE_STANDARD>; 435 #address-cells = <1>; 436 #size-cells = <0>; 437 reg = <0x40008400 0x400>; 438 clocks = <&rcc STM32_CLOCK(APB1_2, 1U)>; 439 interrupts = <101 0>, <100 0>; 440 interrupt-names = "event", "error"; 441 status = "disabled"; 442 }; 443 444 lptim1: timers@46004400 { 445 compatible = "st,stm32-lptim"; 446 #address-cells = <1>; 447 #size-cells = <0>; 448 reg = <0x46004400 0x400>; 449 clocks = <&rcc STM32_CLOCK(APB3, 11U)>; 450 interrupts = <67 1>; 451 interrupt-names = "wakeup"; 452 status = "disabled"; 453 }; 454 455 lptim2: timers@40009400 { 456 compatible = "st,stm32-lptim"; 457 #address-cells = <1>; 458 #size-cells = <0>; 459 reg = <0x40009400 0x400>; 460 clocks = <&rcc STM32_CLOCK(APB1_2, 5U)>; 461 interrupts = <68 0>; 462 interrupt-names = "global"; 463 status = "disabled"; 464 }; 465 466 lptim3: timers@46004800 { 467 compatible = "st,stm32-lptim"; 468 #address-cells = <1>; 469 #size-cells = <0>; 470 reg = <0x46004800 0x400>; 471 clocks = <&rcc STM32_CLOCK(APB3, 12U)>; 472 interrupts = <98 0>; 473 interrupt-names = "global"; 474 status = "disabled"; 475 }; 476 477 lptim4: timers@46004c00 { 478 compatible = "st,stm32-lptim"; 479 #address-cells = <1>; 480 #size-cells = <0>; 481 reg = <0x46004c00 0x400>; 482 clocks = <&rcc STM32_CLOCK(APB3, 13U)>; 483 interrupts = <110 0>; 484 interrupt-names = "global"; 485 status = "disabled"; 486 }; 487 488 rtc: rtc@46007800 { 489 compatible = "st,stm32-rtc"; 490 reg = <0x46007800 0x400>; 491 interrupts = <2 0>; 492 clocks = <&rcc STM32_CLOCK(APB3, 21U)>; 493 prescaler = <32768>; 494 alarms-count = <2>; 495 status = "disabled"; 496 }; 497 498 timers1: timers@40012c00 { 499 compatible = "st,stm32-timers"; 500 reg = <0x40012c00 0x400>; 501 clocks = <&rcc STM32_CLOCK(APB2, 11U)>; 502 resets = <&rctl STM32_RESET(APB2, 11U)>; 503 interrupts = <41 0>, <42 0>, <43 0>, <44 0>; 504 interrupt-names = "brk", "up", "trgcom", "cc"; 505 status = "disabled"; 506 507 pwm { 508 compatible = "st,stm32-pwm"; 509 status = "disabled"; 510 #pwm-cells = <3>; 511 }; 512 }; 513 514 timers2: timers@40000000 { 515 compatible = "st,stm32-timers"; 516 reg = <0x40000000 0x400>; 517 clocks = <&rcc STM32_CLOCK(APB1, 0U)>; 518 resets = <&rctl STM32_RESET(APB1L, 0U)>; 519 interrupts = <45 0>; 520 interrupt-names = "global"; 521 status = "disabled"; 522 523 pwm { 524 compatible = "st,stm32-pwm"; 525 status = "disabled"; 526 #pwm-cells = <3>; 527 }; 528 }; 529 530 timers3: timers@40000400 { 531 compatible = "st,stm32-timers"; 532 reg = <0x40000400 0x400>; 533 clocks = <&rcc STM32_CLOCK(APB1, 1U)>; 534 resets = <&rctl STM32_RESET(APB1L, 1U)>; 535 interrupts = <46 0>; 536 interrupt-names = "global"; 537 status = "disabled"; 538 539 pwm { 540 compatible = "st,stm32-pwm"; 541 status = "disabled"; 542 #pwm-cells = <3>; 543 }; 544 }; 545 546 timers4: timers@40000800 { 547 compatible = "st,stm32-timers"; 548 reg = <0x40000800 0x400>; 549 clocks = <&rcc STM32_CLOCK(APB1, 2U)>; 550 resets = <&rctl STM32_RESET(APB1L, 2U)>; 551 interrupts = <47 0>; 552 interrupt-names = "global"; 553 status = "disabled"; 554 555 pwm { 556 compatible = "st,stm32-pwm"; 557 status = "disabled"; 558 #pwm-cells = <3>; 559 }; 560 561 counter { 562 compatible = "st,stm32-counter"; 563 status = "disabled"; 564 }; 565 }; 566 567 timers5: timers@40000c00 { 568 compatible = "st,stm32-timers"; 569 reg = <0x40000c00 0x400>; 570 clocks = <&rcc STM32_CLOCK(APB1, 3U)>; 571 resets = <&rctl STM32_RESET(APB1L, 3U)>; 572 interrupts = <48 0>; 573 interrupt-names = "global"; 574 status = "disabled"; 575 576 pwm { 577 compatible = "st,stm32-pwm"; 578 status = "disabled"; 579 #pwm-cells = <3>; 580 }; 581 582 counter { 583 compatible = "st,stm32-counter"; 584 status = "disabled"; 585 }; 586 }; 587 588 timers6: timers@40001000 { 589 compatible = "st,stm32-timers"; 590 reg = <0x40001000 0x400>; 591 clocks = <&rcc STM32_CLOCK(APB1, 4U)>; 592 resets = <&rctl STM32_RESET(APB1L, 4U)>; 593 interrupts = <49 0>; 594 interrupt-names = "global"; 595 status = "disabled"; 596 597 pwm { 598 compatible = "st,stm32-pwm"; 599 status = "disabled"; 600 #pwm-cells = <3>; 601 }; 602 }; 603 604 timers7: timers@40001400 { 605 compatible = "st,stm32-timers"; 606 reg = <0x40001400 0x400>; 607 clocks = <&rcc STM32_CLOCK(APB1, 5U)>; 608 resets = <&rctl STM32_RESET(APB1L, 5U)>; 609 interrupts = <50 0>; 610 interrupt-names = "global"; 611 status = "disabled"; 612 613 pwm { 614 compatible = "st,stm32-pwm"; 615 status = "disabled"; 616 #pwm-cells = <3>; 617 }; 618 }; 619 620 timers8: timers@40013400 { 621 compatible = "st,stm32-timers"; 622 reg = <0x40013400 0x400>; 623 clocks = <&rcc STM32_CLOCK(APB2, 13U)>; 624 resets = <&rctl STM32_RESET(APB2, 13U)>; 625 interrupts = <51 0>, <52 0>, <53 0>, <54 0>; 626 interrupt-names = "brk", "up", "trgcom", "cc"; 627 status = "disabled"; 628 629 pwm { 630 compatible = "st,stm32-pwm"; 631 status = "disabled"; 632 #pwm-cells = <3>; 633 }; 634 }; 635 636 timers15: timers@40014000 { 637 compatible = "st,stm32-timers"; 638 reg = <0x40014000 0x400>; 639 clocks = <&rcc STM32_CLOCK(APB2, 16U)>; 640 resets = <&rctl STM32_RESET(APB2, 16U)>; 641 interrupts = <69 0>; 642 interrupt-names = "global"; 643 status = "disabled"; 644 645 pwm { 646 compatible = "st,stm32-pwm"; 647 status = "disabled"; 648 #pwm-cells = <3>; 649 }; 650 651 counter { 652 compatible = "st,stm32-counter"; 653 status = "disabled"; 654 }; 655 }; 656 657 timers16: timers@40014400 { 658 compatible = "st,stm32-timers"; 659 reg = <0x40014400 0x400>; 660 clocks = <&rcc STM32_CLOCK(APB2, 17U)>; 661 resets = <&rctl STM32_RESET(APB2, 17U)>; 662 interrupts = <70 0>; 663 interrupt-names = "global"; 664 status = "disabled"; 665 666 pwm { 667 compatible = "st,stm32-pwm"; 668 status = "disabled"; 669 #pwm-cells = <3>; 670 }; 671 672 counter { 673 compatible = "st,stm32-counter"; 674 status = "disabled"; 675 }; 676 }; 677 678 timers17: timers@40014800 { 679 compatible = "st,stm32-timers"; 680 reg = <0x40014800 0x400>; 681 clocks = <&rcc STM32_CLOCK(APB2, 18U)>; 682 resets = <&rctl STM32_RESET(APB2, 18U)>; 683 interrupts = <71 0>; 684 interrupt-names = "global"; 685 status = "disabled"; 686 687 pwm { 688 compatible = "st,stm32-pwm"; 689 status = "disabled"; 690 #pwm-cells = <3>; 691 }; 692 693 counter { 694 compatible = "st,stm32-counter"; 695 status = "disabled"; 696 }; 697 }; 698 699 octospi1: octospi@420d1400 { 700 compatible = "st,stm32-ospi"; 701 reg = <0x420d1400 0x400>; 702 interrupts = <76 0>; 703 clock-names = "ospix", "ospi-ker", "ospi-mgr"; 704 clocks = <&rcc STM32_CLOCK(AHB2_2, 4U)>, 705 <&rcc STM32_SRC_SYSCLK OCTOSPI_SEL(0)>, 706 <&rcc STM32_CLOCK(AHB2, 21U)>; 707 #address-cells = <1>; 708 #size-cells = <0>; 709 status = "disabled"; 710 }; 711 712 octospi2: octospi@420d2400 { 713 compatible = "st,stm32-ospi"; 714 reg = <0x420d2400 0x400>; 715 interrupts = <120 0>; 716 clock-names = "ospix", "ospi-ker", "ospi-mgr"; 717 clocks = <&rcc STM32_CLOCK(AHB2_2, 8U)>, 718 <&rcc STM32_SRC_SYSCLK OCTOSPI_SEL(0)>, 719 <&rcc STM32_CLOCK(AHB2, 21U)>; 720 #address-cells = <1>; 721 #size-cells = <0>; 722 status = "disabled"; 723 }; 724 725 aes: aes@420c0000 { 726 compatible = "st,stm32-aes"; 727 reg = <0x420c0000 0x400>; 728 clocks = <&rcc STM32_CLOCK(AHB2, 16U)>; 729 resets = <&rctl STM32_RESET(AHB2L, 16U)>; 730 interrupts = <93 0>; 731 status = "disabled"; 732 }; 733 734 rng: rng@420c0800 { 735 compatible = "st,stm32-rng"; 736 reg = <0x420c0800 0x400>; 737 clocks = <&rcc STM32_CLOCK(AHB2, 18U)>; 738 interrupts = <94 0>; 739 nist-config = <0xf60d00>; 740 health-test-config = <0x9aae>; 741 status = "disabled"; 742 }; 743 744 /* 745 * The SDMMC domain clock can be chosen between ICLK and PLL1P. 746 * But ICLK is itself chosen among HSI48 (the default), PLL2Q, 747 * PLL1Q and MSIK. 748 * 749 * Currently, configuring ICLK is unsupported. When support for 750 * ICLK comes in the future, the clock source for sdmmc1 and 751 * sdmmc2 will have to be replaced with STM32_SRC_ICLK. 752 */ 753 sdmmc1: sdmmc@420c8000 { 754 compatible = "st,stm32-sdmmc"; 755 reg = <0x420c8000 0x400>; 756 clocks = <&rcc STM32_CLOCK(AHB2, 27U)>, 757 <&rcc STM32_SRC_HSI48 SDMMC_SEL(0)>; 758 resets = <&rctl STM32_RESET(AHB2L, 27U)>; 759 interrupts = <78 0>; 760 status = "disabled"; 761 }; 762 763 sdmmc2: sdmmc@420c8c00 { 764 compatible = "st,stm32-sdmmc"; 765 reg = <0x420c8c00 0x400>; 766 clocks = <&rcc STM32_CLOCK(AHB2, 28U)>, 767 <&rcc STM32_SRC_HSI48 SDMMC_SEL(0)>; 768 resets = <&rctl STM32_RESET(AHB2L, 28U)>; 769 interrupts = <79 0>; 770 status = "disabled"; 771 }; 772 773 dac1: dac@46021800 { 774 compatible = "st,stm32-dac"; 775 reg = <0x46021800 0x400>; 776 clocks = <&rcc STM32_CLOCK(AHB3, 6U)>; 777 status = "disabled"; 778 #io-channel-cells = <1>; 779 }; 780 781 adc1: adc@42028000 { 782 compatible = "st,stm32-adc"; 783 reg = <0x42028000 0x400>; 784 clocks = <&rcc STM32_CLOCK(AHB2, 10U)>, 785 <&rcc STM32_SRC_HCLK ADCDAC_SEL(0)>; 786 interrupts = <37 0>; 787 status = "disabled"; 788 #io-channel-cells = <1>; 789 resolutions = <STM32_ADC_RES(14, 0x00) 790 STM32_ADC_RES(12, 0x01) 791 STM32_ADC_RES(10, 0x02) 792 STM32_ADC_RES(8, 0x03)>; 793 sampling-times = <5 6 12 20 36 68 391 814>; 794 st,adc-clock-source = "ASYNC"; 795 st,adc-sequencer = "FULLY_CONFIGURABLE"; 796 st,adc-oversampler = "OVERSAMPLER_EXTENDED"; 797 }; 798 799 adc4: adc@46021000 { 800 compatible = "st,stm32-adc"; 801 reg = <0x46021000 0x400>; 802 clocks = <&rcc STM32_CLOCK(AHB3, 5U)>, 803 <&rcc STM32_SRC_HCLK ADCDAC_SEL(0)>; 804 interrupts = <113 0>; 805 status = "disabled"; 806 #io-channel-cells = <1>; 807 resolutions = <STM32_ADC_RES(12, 0x00) 808 STM32_ADC_RES(10, 0x01) 809 STM32_ADC_RES(8, 0x02) 810 STM32_ADC_RES(6, 0x03)>; 811 sampling-times = <2 4 8 13 20 40 80 815>; 812 num-sampling-time-common-channels = <2>; 813 st,adc-clock-source = "ASYNC"; 814 st,adc-sequencer = "NOT_FULLY_CONFIGURABLE"; 815 st,adc-oversampler = "OVERSAMPLER_MINIMAL"; 816 }; 817 818 fdcan1: can@4000a400 { 819 compatible = "st,stm32-fdcan"; 820 reg = <0x4000a400 0x400>, <0x4000ac00 0x350>; 821 reg-names = "m_can", "message_ram"; 822 interrupts = <39 0>, <40 0>; 823 interrupt-names = "int0", "int1"; 824 clocks = <&rcc STM32_CLOCK(APB1_2, 9U)>; 825 bosch,mram-cfg = <0x0 28 8 3 3 0 3 3>; 826 status = "disabled"; 827 }; 828 829 ucpd1: ucpd@4000dc00 { 830 compatible = "st,stm32-ucpd"; 831 reg = <0x4000dc00 0x400>; 832 clocks = <&rcc STM32_CLOCK(APB1, 23U)>; 833 interrupts = <106 0>; 834 status = "disabled"; 835 }; 836 837 gpdma1: dma@40020000 { 838 compatible = "st,stm32u5-dma"; 839 #dma-cells = <3>; 840 reg = <0x40020000 0x400>; 841 interrupts = <29 0 30 0 31 0 32 0 33 0 34 0 35 0 36 0 842 80 0 81 0 82 0 83 0 84 0 85 0 86 0 87 0>; 843 clocks = <&rcc STM32_CLOCK(AHB1, 0U)>; 844 dma-channels = <16>; 845 dma-requests = <114>; 846 dma-offset = <0>; 847 status = "disabled"; 848 }; 849 850 fmc: memory-controller@420d0400 { 851 compatible = "st,stm32-fmc"; 852 reg = <0x420d0400 0x400>; 853 clocks = <&rcc STM32_CLOCK(AHB2_2, 0U)>; 854 status = "disabled"; 855 856 sram { 857 compatible = "st,stm32-fmc-nor-psram"; 858 #address-cells = <1>; 859 #size-cells = <0>; 860 status = "disabled"; 861 }; 862 }; 863 864 pwr: power@46020800 { 865 compatible = "st,stm32-pwr"; 866 reg = <0x46020800 0x400>; /* PWR register bank */ 867 status = "disabled"; 868 869 wkup-pins-nb = <8>; /* 8 system wake-up pins */ 870 wkup-pin-srcs = <3>; /* 3 gpio sources associated with each wkup pin */ 871 wkup-pins-pol; 872 wkup-pins-pupd; 873 874 #address-cells = <1>; 875 #size-cells = <0>; 876 877 wkup-pin@1 { 878 reg = <0x1>; 879 wkup-gpios = <&gpioa 0 STM32_PWR_WKUP_PIN_SRC_0>, 880 <&gpiob 2 STM32_PWR_WKUP_PIN_SRC_1>, 881 <&gpioe 4 STM32_PWR_WKUP_PIN_SRC_2>; 882 }; 883 884 wkup-pin@2 { 885 reg = <0x2>; 886 wkup-gpios = <&gpioa 4 STM32_PWR_WKUP_PIN_SRC_0>, 887 <&gpioc 13 STM32_PWR_WKUP_PIN_SRC_1>, 888 <&gpioe 5 STM32_PWR_WKUP_PIN_SRC_2>; 889 }; 890 891 wkup-pin@3 { 892 reg = <0x3>; 893 wkup-gpios = <&gpioe 6 STM32_PWR_WKUP_PIN_SRC_0>, 894 <&gpioa 1 STM32_PWR_WKUP_PIN_SRC_1>, 895 <&gpiob 6 STM32_PWR_WKUP_PIN_SRC_2>; 896 }; 897 898 wkup-pin@4 { 899 reg = <0x4>; 900 wkup-gpios = <&gpioa 2 STM32_PWR_WKUP_PIN_SRC_0>, 901 <&gpiob 1 STM32_PWR_WKUP_PIN_SRC_1>, 902 <&gpiob 7 STM32_PWR_WKUP_PIN_SRC_2>; 903 }; 904 905 wkup-pin@5 { 906 reg = <0x5>; 907 wkup-gpios = <&gpioc 5 STM32_PWR_WKUP_PIN_SRC_0>, 908 <&gpioa 3 STM32_PWR_WKUP_PIN_SRC_1>, 909 <&gpiob 8 STM32_PWR_WKUP_PIN_SRC_2>; 910 }; 911 912 wkup-pin@6 { 913 reg = <0x6>; 914 wkup-gpios = <&gpiob 5 STM32_PWR_WKUP_PIN_SRC_0>, 915 <&gpioa 5 STM32_PWR_WKUP_PIN_SRC_1>, 916 <&gpioe 7 STM32_PWR_WKUP_PIN_SRC_2>; 917 }; 918 919 wkup-pin@7 { 920 reg = <0x7>; 921 wkup-gpios = <&gpiob 15 STM32_PWR_WKUP_PIN_SRC_0>, 922 <&gpioa 6 STM32_PWR_WKUP_PIN_SRC_1>, 923 <&gpioe 8 STM32_PWR_WKUP_PIN_SRC_2>; 924 }; 925 926 wkup-pin@8 { 927 reg = <0x8>; 928 wkup-gpios = <&gpiof 2 STM32_PWR_WKUP_PIN_SRC_0>, 929 <&gpioa 7 STM32_PWR_WKUP_PIN_SRC_1>, 930 <&gpiob 10 STM32_PWR_WKUP_PIN_SRC_2>; 931 }; 932 }; 933 934 }; 935 936 swj_port: swj_port { 937 compatible = "swj-connector"; 938 pinctrl-0 = <&debug_jtms_swdio_pa13 &debug_jtck_swclk_pa14 939 &debug_jtdi_pa15 &debug_jtdo_swo_pb3 940 &debug_jtrst_pb4>; 941 pinctrl-1 = <&analog_pa13 &analog_pa14 &analog_pa15 942 &analog_pb3 &analog_pb4>; 943 pinctrl-names = "default", "sleep"; 944 }; 945 946 die_temp: dietemp { 947 compatible = "st,stm32-temp-cal"; 948 ts-cal1-addr = <0x0BFA0710>; 949 ts-cal2-addr = <0x0BFA0742>; 950 ts-cal1-temp = <30>; 951 ts-cal2-temp = <130>; 952 ts-cal-vrefanalog = <3000>; 953 ts-cal-resolution = <14>; 954 io-channels = <&adc1 19>; 955 status = "disabled"; 956 }; 957 958 vref1: vref_1 { 959 compatible = "st,stm32-vref"; 960 vrefint-cal-addr = <0x0BFA07A5>; 961 vrefint-cal-mv = <3000>; 962 io-channels = <&adc1 0>; 963 status = "disabled"; 964 }; 965 966 vref4: vref_4 { 967 compatible = "st,stm32-vref"; 968 vrefint-cal-addr = <0x0BFA07A5>; 969 vrefint-cal-mv = <3000>; 970 io-channels = <&adc4 0>; 971 status = "disabled"; 972 }; 973 974 vbat1: vbat_1 { 975 compatible = "st,stm32-vbat"; 976 ratio = <4>; 977 io-channels = <&adc1 18>; 978 status = "disabled"; 979 }; 980 981 vbat4: vbat_4 { 982 compatible = "st,stm32-vbat"; 983 ratio = <4>; 984 io-channels = <&adc4 14>; 985 status = "disabled"; 986 }; 987 988 smbus1: smbus1 { 989 compatible = "st,stm32-smbus"; 990 #address-cells = <1>; 991 #size-cells = <0>; 992 i2c = <&i2c1>; 993 status = "disabled"; 994 }; 995 996 smbus2: smbus2 { 997 compatible = "st,stm32-smbus"; 998 #address-cells = <1>; 999 #size-cells = <0>; 1000 i2c = <&i2c2>; 1001 status = "disabled"; 1002 }; 1003 1004 smbus3: smbus3 { 1005 compatible = "st,stm32-smbus"; 1006 #address-cells = <1>; 1007 #size-cells = <0>; 1008 i2c = <&i2c3>; 1009 status = "disabled"; 1010 }; 1011 1012 smbus4: smbus4 { 1013 compatible = "st,stm32-smbus"; 1014 #address-cells = <1>; 1015 #size-cells = <0>; 1016 i2c = <&i2c4>; 1017 status = "disabled"; 1018 }; 1019}; 1020 1021&nvic { 1022 arm,num-irq-priority-bits = <4>; 1023}; 1024