1/* 2 * Copyright (c) 2021 The Chromium OS Authors 3 * Copyright (c) 2020 Linaro Limited 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 */ 7 8 9#include <arm/armv8-m.dtsi> 10#include <zephyr/dt-bindings/clock/stm32l4_clock.h> 11#include <zephyr/dt-bindings/gpio/gpio.h> 12#include <zephyr/dt-bindings/i2c/i2c.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/stm32l4_adc.h> 17#include <zephyr/dt-bindings/reset/stm32g4_l4_5_reset.h> 18#include <zephyr/dt-bindings/adc/adc.h> 19#include <zephyr/dt-bindings/flash_controller/ospi.h> 20#include <freq.h> 21 22/ { 23 chosen { 24 zephyr,entropy = &rng; 25 zephyr,flash-controller = &flash; 26 }; 27 28 cpus { 29 #address-cells = <1>; 30 #size-cells = <0>; 31 32 cpu0: cpu@0 { 33 device_type = "cpu"; 34 compatible = "arm,cortex-m33"; 35 reg = <0>; 36 #address-cells = <1>; 37 #size-cells = <1>; 38 cpu-power-states = <&stop0 &stop1 &stop2>; 39 40 mpu: mpu@e000ed90 { 41 compatible = "arm,armv8m-mpu"; 42 reg = <0xe000ed90 0x40>; 43 arm,num-mpu-regions = <8>; 44 }; 45 }; 46 47 power-states { 48 stop0: state0 { 49 compatible = "zephyr,power-state"; 50 power-state-name = "suspend-to-idle"; 51 substate-id = <1>; 52 min-residency-us = <100>; 53 }; 54 stop1: state1 { 55 compatible = "zephyr,power-state"; 56 power-state-name = "suspend-to-idle"; 57 substate-id = <2>; 58 min-residency-us = <500>; 59 }; 60 stop2: state2 { 61 compatible = "zephyr,power-state"; 62 power-state-name = "suspend-to-idle"; 63 substate-id = <3>; 64 min-residency-us = <900>; 65 }; 66 }; 67 }; 68 69 sram0: memory@20000000 { 70 compatible = "mmio-sram"; 71 }; 72 73 clocks { 74 clk_hse: clk-hse { 75 #clock-cells = <0>; 76 compatible = "st,stm32-hse-clock"; 77 status = "disabled"; 78 }; 79 80 clk_hsi: clk-hsi { 81 #clock-cells = <0>; 82 compatible = "fixed-clock"; 83 clock-frequency = <DT_FREQ_M(16)>; 84 status = "disabled"; 85 }; 86 87 clk_hsi48: clk-hsi48 { 88 #clock-cells = <0>; 89 compatible = "fixed-clock"; 90 clock-frequency = <DT_FREQ_M(48)>; 91 status = "disabled"; 92 }; 93 94 clk_msi: clk-msi { 95 #clock-cells = <0>; 96 compatible = "st,stm32-msi-clock"; 97 msi-range = <6>; /* 4MHz (reset value) */ 98 status = "disabled"; 99 }; 100 101 clk_lse: clk-lse { 102 #clock-cells = <0>; 103 compatible = "st,stm32-lse-clock"; 104 clock-frequency = <32768>; 105 driving-capability = <0>; 106 status = "disabled"; 107 }; 108 109 clk_lsi: clk-lsi { 110 #clock-cells = <0>; 111 compatible = "fixed-clock"; 112 clock-frequency = <DT_FREQ_K(32)>; 113 status = "disabled"; 114 }; 115 116 pll: pll { 117 #clock-cells = <0>; 118 compatible = "st,stm32l4-pll-clock"; 119 status = "disabled"; 120 }; 121 }; 122 123 soc { 124 flash: flash-controller@40022000 { 125 compatible = "st,stm32-flash-controller", "st,stm32l5-flash-controller"; 126 reg = <0x40022000 0x400>; 127 interrupts = <6 0>; 128 clocks = <&rcc STM32_CLOCK_BUS_AHB1 0x00000100>; 129 130 #address-cells = <1>; 131 #size-cells = <1>; 132 133 flash0: flash@8000000 { 134 compatible = "st,stm32-nv-flash", "soc-nv-flash"; 135 write-block-size = <8>; 136 erase-block-size = <2048>; 137 138 /* using maximum erase time(ms) for 4K page, since 139 * datasheet does not show the maximum erase 140 * for a 2K(dual-bank) page. 141 */ 142 max-erase-time = <25>; 143 }; 144 }; 145 146 rcc: rcc@40021000 { 147 compatible = "st,stm32-rcc"; 148 clocks-controller; 149 #clock-cells = <2>; 150 reg = <0x40021000 0x400>; 151 undershoot-prevention; 152 153 rctl: reset-controller { 154 compatible = "st,stm32-rcc-rctl"; 155 #reset-cells = <1>; 156 }; 157 }; 158 159 exti: interrupt-controller@4000f400 { 160 compatible = "st,stm32g0-exti", "st,stm32-exti"; 161 interrupt-controller; 162 #interrupt-cells = <1>; 163 reg = <0x4000f400 0x400>; 164 num-lines = <16>; 165 interrupts = <11 0>, <12 0>, <13 0>, <14 0>, 166 <15 0>, <16 0>, <17 0>, <18 0>, 167 <19 0>, <20 0>, <21 0>, <22 0>, 168 <23 0>, <24 0>, <25 0>, <26 0>; 169 interrupt-names = "line0", "line1", "line2", "line3", 170 "line4", "line5", "line6", "line7", 171 "line8", "line9", "line10", "line11", 172 "line12", "line13", "line14", "line15"; 173 line-ranges = <0 1>, <1 1>, <2 1>, <3 1>, 174 <4 1>, <5 1>, <6 1>, <7 1>, 175 <8 1>, <9 1>, <10 1>, <11 1>, 176 <12 1>, <13 1>, <14 1>, <15 1>; 177 }; 178 179 pinctrl: pin-controller@42020000 { 180 compatible = "st,stm32-pinctrl"; 181 #address-cells = <1>; 182 #size-cells = <1>; 183 reg = <0x42020000 0x2000>; 184 185 gpioa: gpio@42020000 { 186 compatible = "st,stm32-gpio"; 187 gpio-controller; 188 #gpio-cells = <2>; 189 reg = <0x42020000 0x400>; 190 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000001>; 191 }; 192 193 gpiob: gpio@42020400 { 194 compatible = "st,stm32-gpio"; 195 gpio-controller; 196 #gpio-cells = <2>; 197 reg = <0x42020400 0x400>; 198 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000002>; 199 }; 200 201 gpioc: gpio@42020800 { 202 compatible = "st,stm32-gpio"; 203 gpio-controller; 204 #gpio-cells = <2>; 205 reg = <0x42020800 0x400>; 206 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000004>; 207 }; 208 209 gpiod: gpio@42020c00 { 210 compatible = "st,stm32-gpio"; 211 gpio-controller; 212 #gpio-cells = <2>; 213 reg = <0x42020c00 0x400>; 214 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000008>; 215 }; 216 217 gpioe: gpio@42021000 { 218 compatible = "st,stm32-gpio"; 219 gpio-controller; 220 #gpio-cells = <2>; 221 reg = <0x42021000 0x400>; 222 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000010>; 223 }; 224 225 gpiof: gpio@42021400 { 226 compatible = "st,stm32-gpio"; 227 gpio-controller; 228 #gpio-cells = <2>; 229 reg = <0x42021400 0x400>; 230 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000020>; 231 }; 232 233 gpiog: gpio@42021800 { 234 compatible = "st,stm32-gpio"; 235 gpio-controller; 236 #gpio-cells = <2>; 237 reg = <0x42021800 0x400>; 238 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000040>; 239 }; 240 241 gpioh: gpio@42021c00 { 242 compatible = "st,stm32-gpio"; 243 gpio-controller; 244 #gpio-cells = <2>; 245 reg = <0x42021c00 0x400>; 246 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000080>; 247 }; 248 }; 249 250 iwdg: watchdog@40003000 { 251 compatible = "st,stm32-watchdog"; 252 reg = <0x40003000 0x400>; 253 status = "disabled"; 254 }; 255 256 wwdg: watchdog@40002c00 { 257 compatible = "st,stm32-window-watchdog"; 258 reg = <0x40002C00 0x400>; 259 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000800>; 260 interrupts = <0 6>; 261 status = "disabled"; 262 }; 263 264 usart1: serial@40013800 { 265 compatible = "st,stm32-usart", "st,stm32-uart"; 266 reg = <0x40013800 0x400>; 267 clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00004000>; 268 resets = <&rctl STM32_RESET(APB2, 14U)>; 269 interrupts = <61 0>; 270 status = "disabled"; 271 }; 272 273 usart2: serial@40004400 { 274 compatible = "st,stm32-usart", "st,stm32-uart"; 275 reg = <0x40004400 0x400>; 276 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00020000>; 277 resets = <&rctl STM32_RESET(APB1L, 17U)>; 278 interrupts = <62 0>; 279 status = "disabled"; 280 }; 281 282 usart3: serial@40004800 { 283 compatible = "st,stm32-usart", "st,stm32-uart"; 284 reg = <0x40004800 0x400>; 285 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00040000>; 286 resets = <&rctl STM32_RESET(APB1L, 18U)>; 287 interrupts = <63 0>; 288 status = "disabled"; 289 }; 290 291 uart4: serial@40004c00 { 292 compatible = "st,stm32-uart"; 293 reg = <0x40004c00 0x400>; 294 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00080000>; 295 resets = <&rctl STM32_RESET(APB1L, 19U)>; 296 interrupts = <64 0>; 297 status = "disabled"; 298 }; 299 300 uart5: serial@40005000 { 301 compatible = "st,stm32-uart"; 302 reg = <0x40005000 0x400>; 303 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00100000>; 304 resets = <&rctl STM32_RESET(APB1L, 20U)>; 305 interrupts = <65 0>; 306 status = "disabled"; 307 }; 308 309 lpuart1: serial@40008000 { 310 compatible = "st,stm32-lpuart", "st,stm32-uart"; 311 reg = <0x40008000 0x400>; 312 clocks = <&rcc STM32_CLOCK_BUS_APB1_2 0x00000001>; 313 resets = <&rctl STM32_RESET(APB1H, 0U)>; 314 interrupts = <66 0>; 315 status = "disabled"; 316 }; 317 318 lptim1: timers@40007c00 { 319 compatible = "st,stm32-lptim"; 320 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x80000000>; 321 #address-cells = <1>; 322 #size-cells = <0>; 323 reg = <0x40007c00 0x400>; 324 interrupts = <67 1>; 325 interrupt-names = "wakeup"; 326 status = "disabled"; 327 }; 328 329 dma1: dma@40020000 { 330 compatible = "st,stm32-dma-v2"; 331 #dma-cells = <3>; 332 reg = <0x40020000 0x400>; 333 interrupts = <29 0 30 0 31 0 32 0 33 0 34 0 35 0 36 0>; 334 clocks = <&rcc STM32_CLOCK_BUS_AHB1 0x1>; 335 dma-requests = <8>; 336 dma-offset = <0>; 337 status = "disabled"; 338 }; 339 340 dma2: dma@40020400 { 341 compatible = "st,stm32-dma-v2"; 342 #dma-cells = <3>; 343 reg = <0x40020400 0x400>; 344 interrupts = <80 0 81 0 82 0 83 0 84 0 85 0 86 0 87 0>; 345 clocks = <&rcc STM32_CLOCK_BUS_AHB1 0x2>; 346 dma-requests = <8>; 347 dma-offset = <8>; 348 status = "disabled"; 349 }; 350 351 dmamux1: dmamux@40020800 { 352 compatible = "st,stm32-dmamux"; 353 #dma-cells = <3>; 354 reg = <0x40020800 0x400>; 355 interrupts = <27 0>; 356 clocks = <&rcc STM32_CLOCK_BUS_AHB1 0x4>; 357 dma-channels = <16>; 358 dma-generators = <4>; 359 dma-requests= <90>; 360 status = "disabled"; 361 }; 362 363 i2c1: i2c@40005400 { 364 compatible = "st,stm32-i2c-v2"; 365 clock-frequency = <I2C_BITRATE_STANDARD>; 366 #address-cells = <1>; 367 #size-cells = <0>; 368 reg = <0x40005400 0x400>; 369 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00200000>; 370 interrupts = <55 0>, <56 0>; 371 interrupt-names = "event", "error"; 372 status = "disabled"; 373 }; 374 375 i2c2: i2c@40005800 { 376 compatible = "st,stm32-i2c-v2"; 377 #address-cells = <1>; 378 #size-cells = <0>; 379 clock-frequency = <I2C_BITRATE_STANDARD>; 380 reg = <0x40005800 0x400>; 381 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00400000>; 382 interrupts = <57 0>, <58 0>; 383 interrupt-names = "event", "error"; 384 status = "disabled"; 385 }; 386 387 spi1: spi@40013000 { 388 compatible = "st,stm32-spi-fifo", "st,stm32-spi"; 389 #address-cells = <1>; 390 #size-cells = <0>; 391 reg = <0x40013000 0x400>; 392 interrupts = <59 5>; 393 clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00001000>; 394 status = "disabled"; 395 }; 396 397 sdmmc1: sdmmc@420c8000 { 398 compatible = "st,stm32-sdmmc"; 399 reg = <0x420c8000 0x400>; 400 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00400000>, 401 <&rcc STM32_SRC_HSI48 SDMMC_SEL(0)>; 402 resets = <&rctl STM32_RESET(AHB2, 22U)>; 403 interrupts = <78 0>; 404 status = "disabled"; 405 }; 406 407 dac1: dac@40007400 { 408 compatible = "st,stm32-dac"; 409 reg = <0x40007400 0x400>; 410 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x20000000>; 411 status = "disabled"; 412 #io-channel-cells = <1>; 413 }; 414 415 spi2: spi@40003800 { 416 compatible = "st,stm32-spi-fifo", "st,stm32-spi"; 417 #address-cells = <1>; 418 #size-cells = <0>; 419 reg = <0x40003800 0x400>; 420 interrupts = <60 5>; 421 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00004000>; 422 status = "disabled"; 423 }; 424 425 spi3: spi@40003c00 { 426 compatible = "st,stm32-spi-fifo", "st,stm32-spi"; 427 #address-cells = <1>; 428 #size-cells = <0>; 429 reg = <0x40003c00 0x400>; 430 interrupts = <99 5>; 431 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00008000>; 432 status = "disabled"; 433 }; 434 435 octospi1: octospi@44021000 { 436 compatible = "st,stm32-ospi"; 437 reg = <0x44021000 0x400>; 438 interrupts = <76 0>; 439 clock-names = "ospix", "ospi-ker"; 440 clocks = <&rcc STM32_CLOCK_BUS_AHB3 0x00000100>, 441 <&rcc STM32_SRC_SYSCLK OSPI_SEL(0)>; 442 #address-cells = <1>; 443 #size-cells = <0>; 444 status = "disabled"; 445 }; 446 447 rng: rng@420c0800 { 448 compatible = "st,stm32-rng"; 449 reg = <0x420c0800 0x400>; 450 interrupts = <94 0>; 451 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00040000>; 452 nist-config = <0xf00d00>; 453 health-test-magic = <0x17590abc>; 454 health-test-config = <0xa2b3>; 455 status = "disabled"; 456 }; 457 458 rtc: rtc@40002800 { 459 compatible = "st,stm32-rtc"; 460 reg = <0x40002800 0x400>; 461 interrupts = <2 0>; 462 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000400>; 463 prescaler = <32768>; 464 status = "disabled"; 465 }; 466 467 timers1: timers@40012c00 { 468 compatible = "st,stm32-timers"; 469 reg = <0x40012c00 0x400>; 470 clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000800>; 471 resets = <&rctl STM32_RESET(APB2, 11U)>; 472 interrupts = <41 0>, <42 0>, <43 0>, <44 0>; 473 interrupt-names = "brk", "up", "trgcom", "cc"; 474 st,prescaler = <0>; 475 status = "disabled"; 476 477 pwm { 478 compatible = "st,stm32-pwm"; 479 status = "disabled"; 480 #pwm-cells = <3>; 481 }; 482 }; 483 484 timers2: timers@40000000 { 485 compatible = "st,stm32-timers"; 486 reg = <0x40000000 0x400>; 487 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000001>; 488 resets = <&rctl STM32_RESET(APB1L, 0U)>; 489 interrupts = <45 0>; 490 interrupt-names = "global"; 491 st,prescaler = <0>; 492 status = "disabled"; 493 494 pwm { 495 compatible = "st,stm32-pwm"; 496 status = "disabled"; 497 #pwm-cells = <3>; 498 }; 499 500 counter { 501 compatible = "st,stm32-counter"; 502 status = "disabled"; 503 }; 504 }; 505 506 timers3: timers@40000400 { 507 compatible = "st,stm32-timers"; 508 reg = <0x40000400 0x400>; 509 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000002>; 510 resets = <&rctl STM32_RESET(APB1L, 1U)>; 511 interrupts = <46 0>; 512 interrupt-names = "global"; 513 st,prescaler = <0>; 514 status = "disabled"; 515 516 pwm { 517 compatible = "st,stm32-pwm"; 518 status = "disabled"; 519 #pwm-cells = <3>; 520 }; 521 522 counter { 523 compatible = "st,stm32-counter"; 524 status = "disabled"; 525 }; 526 }; 527 528 timers4: timers@40000800 { 529 compatible = "st,stm32-timers"; 530 reg = <0x40000800 0x400>; 531 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000004>; 532 resets = <&rctl STM32_RESET(APB1L, 2U)>; 533 interrupts = <47 0>; 534 interrupt-names = "global"; 535 st,prescaler = <0>; 536 status = "disabled"; 537 538 pwm { 539 compatible = "st,stm32-pwm"; 540 status = "disabled"; 541 #pwm-cells = <3>; 542 }; 543 544 counter { 545 compatible = "st,stm32-counter"; 546 status = "disabled"; 547 }; 548 }; 549 550 timers5: timers@40000c00 { 551 compatible = "st,stm32-timers"; 552 reg = <0x40000c00 0x400>; 553 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000008>; 554 resets = <&rctl STM32_RESET(APB1L, 3U)>; 555 interrupts = <48 0>; 556 interrupt-names = "global"; 557 st,prescaler = <0>; 558 status = "disabled"; 559 560 pwm { 561 compatible = "st,stm32-pwm"; 562 status = "disabled"; 563 #pwm-cells = <3>; 564 }; 565 566 counter { 567 compatible = "st,stm32-counter"; 568 status = "disabled"; 569 }; 570 }; 571 572 timers8: timers@40013400 { 573 compatible = "st,stm32-timers"; 574 reg = <0x40013400 0x400>; 575 clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00002000>; 576 resets = <&rctl STM32_RESET(APB2, 13U)>; 577 interrupts = <51 0>, <52 0>, <53 0>, <54 0>; 578 interrupt-names = "brk", "up", "trgcom", "cc"; 579 st,prescaler = <0>; 580 status = "disabled"; 581 582 pwm { 583 compatible = "st,stm32-pwm"; 584 status = "disabled"; 585 #pwm-cells = <3>; 586 }; 587 }; 588 589 timers15: timers@40014000 { 590 compatible = "st,stm32-timers"; 591 reg = <0x40014000 0x400>; 592 clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00010000>; 593 resets = <&rctl STM32_RESET(APB2, 16U)>; 594 interrupts = <69 0>; 595 interrupt-names = "global"; 596 st,prescaler = <0>; 597 status = "disabled"; 598 599 pwm { 600 compatible = "st,stm32-pwm"; 601 status = "disabled"; 602 #pwm-cells = <3>; 603 }; 604 605 counter { 606 compatible = "st,stm32-counter"; 607 status = "disabled"; 608 }; 609 }; 610 611 timers16: timers@40014400 { 612 compatible = "st,stm32-timers"; 613 reg = <0x40014400 0x400>; 614 clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00020000>; 615 resets = <&rctl STM32_RESET(APB2, 17U)>; 616 interrupts = <70 0>; 617 interrupt-names = "global"; 618 st,prescaler = <0>; 619 status = "disabled"; 620 621 pwm { 622 compatible = "st,stm32-pwm"; 623 status = "disabled"; 624 #pwm-cells = <3>; 625 }; 626 627 counter { 628 compatible = "st,stm32-counter"; 629 status = "disabled"; 630 }; 631 }; 632 633 timers17: timers@40014800 { 634 compatible = "st,stm32-timers"; 635 reg = <0x40014800 0x400>; 636 clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00040000>; 637 resets = <&rctl STM32_RESET(APB2, 18U)>; 638 interrupts = <71 0>; 639 interrupt-names = "global"; 640 st,prescaler = <0>; 641 status = "disabled"; 642 643 pwm { 644 compatible = "st,stm32-pwm"; 645 status = "disabled"; 646 #pwm-cells = <3>; 647 }; 648 649 counter { 650 compatible = "st,stm32-counter"; 651 status = "disabled"; 652 }; 653 }; 654 655 adc1: adc@42028000 { 656 compatible = "st,stm32-adc"; 657 reg = <0x42028000 0x100>; 658 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00002000>; 659 interrupts = <37 0>; 660 status = "disabled"; 661 #io-channel-cells = <1>; 662 resolutions = <STM32_ADC_RES(12, 0x00) 663 STM32_ADC_RES(10, 0x01) 664 STM32_ADC_RES(8, 0x02) 665 STM32_ADC_RES(6, 0x03)>; 666 sampling-times = <3 7 13 25 48 93 248 641>; 667 st,adc-sequencer = <FULLY_CONFIGURABLE>; 668 }; 669 670 adc2: adc@42028100 { 671 compatible = "st,stm32-adc"; 672 reg = <0x42028100 0x100>; 673 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00002000>; 674 interrupts = <37 0>; 675 status = "disabled"; 676 #io-channel-cells = <1>; 677 resolutions = <STM32_ADC_RES(12, 0x00) 678 STM32_ADC_RES(10, 0x01) 679 STM32_ADC_RES(8, 0x02) 680 STM32_ADC_RES(6, 0x03)>; 681 sampling-times = <3 7 13 25 48 93 248 641>; 682 st,adc-sequencer = <FULLY_CONFIGURABLE>; 683 }; 684 685 usb: usb@4000d400 { 686 compatible = "st,stm32-usb"; 687 reg = <0x4000d400 0x400>; 688 interrupts = <73 0>; 689 interrupt-names = "usb"; 690 num-bidir-endpoints = <8>; 691 ram-size = <1024>; 692 status = "disabled"; 693 clocks = <&rcc STM32_CLOCK_BUS_APB1_2 0x00200000>, 694 <&rcc STM32_SRC_HSI48 CLK48_SEL(0)>; 695 phys = <&usb_fs_phy>; 696 }; 697 698 ucpd1: ucpd@4000dc00 { 699 compatible = "st,stm32-ucpd"; 700 reg = <0x4000dc00 0x400>; 701 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00800000>; 702 interrupts = <106 0>; 703 status = "disabled"; 704 }; 705 }; 706 707 die_temp: dietemp { 708 compatible = "st,stm32-temp-cal"; 709 ts-cal1-addr = <0x0BFA05A8>; 710 ts-cal2-addr = <0x0BFA05CA>; 711 ts-cal1-temp = <30>; 712 ts-cal2-temp = <130>; 713 ts-cal-vrefanalog = <3000>; 714 io-channels = <&adc1 17>; 715 status = "disabled"; 716 }; 717 718 vref: vref { 719 compatible = "st,stm32-vref"; 720 vrefint-cal-addr = <0x0BFA05AA>; 721 vrefint-cal-mv = <3000>; 722 io-channels = <&adc1 0>; 723 status = "disabled"; 724 }; 725 726 vbat: vbat { 727 compatible = "st,stm32-vbat"; 728 ratio = <3>; 729 io-channels = <&adc1 18>; 730 status = "disabled"; 731 }; 732 733 usb_fs_phy: usbphy { 734 compatible = "usb-nop-xceiv"; 735 #phy-cells = <0>; 736 }; 737 738}; 739 740&nvic { 741 arm,num-irq-priority-bits = <3>; 742}; 743