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