1/* 2 * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com> 3 * 4 * This file is dual-licensed: you can use it either under the terms 5 * of the GPL or the X11 license, at your option. Note that this dual 6 * licensing only applies to this file, and not this project as a 7 * whole. 8 * 9 * a) This file is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU General Public License as 11 * published by the Free Software Foundation; either version 2 of the 12 * License, or (at your option) any later version. 13 * 14 * This file is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public 20 * License along with this file; if not, write to the Free 21 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, 22 * MA 02110-1301 USA 23 * 24 * Or, alternatively, 25 * 26 * b) Permission is hereby granted, free of charge, to any person 27 * obtaining a copy of this software and associated documentation 28 * files (the "Software"), to deal in the Software without 29 * restriction, including without limitation the rights to use, 30 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * sell copies of the Software, and to permit persons to whom the 32 * Software is furnished to do so, subject to the following 33 * conditions: 34 * 35 * The above copyright notice and this permission notice shall be 36 * included in all copies or substantial portions of the Software. 37 * 38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * OTHER DEALINGS IN THE SOFTWARE. 46 */ 47 48#include "armv7-m.dtsi" 49#include <dt-bindings/clock/stm32fx-clock.h> 50#include <dt-bindings/mfd/stm32f4-rcc.h> 51 52/ { 53 #address-cells = <1>; 54 #size-cells = <1>; 55 56 clocks { 57 clk_hse: clk-hse { 58 #clock-cells = <0>; 59 compatible = "fixed-clock"; 60 clock-frequency = <0>; 61 }; 62 63 clk_lse: clk-lse { 64 #clock-cells = <0>; 65 compatible = "fixed-clock"; 66 clock-frequency = <32768>; 67 }; 68 69 clk_lsi: clk-lsi { 70 #clock-cells = <0>; 71 compatible = "fixed-clock"; 72 clock-frequency = <32000>; 73 }; 74 75 clk_i2s_ckin: i2s-ckin { 76 #clock-cells = <0>; 77 compatible = "fixed-clock"; 78 clock-frequency = <0>; 79 }; 80 }; 81 82 soc { 83 romem: efuse@1fff7800 { 84 compatible = "st,stm32f4-otp"; 85 reg = <0x1fff7800 0x400>; 86 #address-cells = <1>; 87 #size-cells = <1>; 88 ts_cal1: calib@22c { 89 reg = <0x22c 0x2>; 90 }; 91 ts_cal2: calib@22e { 92 reg = <0x22e 0x2>; 93 }; 94 }; 95 96 timers2: timers@40000000 { 97 #address-cells = <1>; 98 #size-cells = <0>; 99 compatible = "st,stm32-timers"; 100 reg = <0x40000000 0x400>; 101 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM2)>; 102 clock-names = "int"; 103 status = "disabled"; 104 105 pwm { 106 compatible = "st,stm32-pwm"; 107 #pwm-cells = <3>; 108 status = "disabled"; 109 }; 110 111 timer@1 { 112 compatible = "st,stm32-timer-trigger"; 113 reg = <1>; 114 status = "disabled"; 115 }; 116 }; 117 118 timers3: timers@40000400 { 119 #address-cells = <1>; 120 #size-cells = <0>; 121 compatible = "st,stm32-timers"; 122 reg = <0x40000400 0x400>; 123 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM3)>; 124 clock-names = "int"; 125 status = "disabled"; 126 127 pwm { 128 compatible = "st,stm32-pwm"; 129 #pwm-cells = <3>; 130 status = "disabled"; 131 }; 132 133 timer@2 { 134 compatible = "st,stm32-timer-trigger"; 135 reg = <2>; 136 status = "disabled"; 137 }; 138 }; 139 140 timers4: timers@40000800 { 141 #address-cells = <1>; 142 #size-cells = <0>; 143 compatible = "st,stm32-timers"; 144 reg = <0x40000800 0x400>; 145 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM4)>; 146 clock-names = "int"; 147 status = "disabled"; 148 149 pwm { 150 compatible = "st,stm32-pwm"; 151 #pwm-cells = <3>; 152 status = "disabled"; 153 }; 154 155 timer@3 { 156 compatible = "st,stm32-timer-trigger"; 157 reg = <3>; 158 status = "disabled"; 159 }; 160 }; 161 162 timers5: timers@40000c00 { 163 #address-cells = <1>; 164 #size-cells = <0>; 165 compatible = "st,stm32-timers"; 166 reg = <0x40000C00 0x400>; 167 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM5)>; 168 clock-names = "int"; 169 status = "disabled"; 170 171 pwm { 172 compatible = "st,stm32-pwm"; 173 #pwm-cells = <3>; 174 status = "disabled"; 175 }; 176 177 timer@4 { 178 compatible = "st,stm32-timer-trigger"; 179 reg = <4>; 180 status = "disabled"; 181 }; 182 }; 183 184 timers6: timers@40001000 { 185 #address-cells = <1>; 186 #size-cells = <0>; 187 compatible = "st,stm32-timers"; 188 reg = <0x40001000 0x400>; 189 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM6)>; 190 clock-names = "int"; 191 status = "disabled"; 192 193 timer@5 { 194 compatible = "st,stm32-timer-trigger"; 195 reg = <5>; 196 status = "disabled"; 197 }; 198 }; 199 200 timers7: timers@40001400 { 201 #address-cells = <1>; 202 #size-cells = <0>; 203 compatible = "st,stm32-timers"; 204 reg = <0x40001400 0x400>; 205 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM7)>; 206 clock-names = "int"; 207 status = "disabled"; 208 209 timer@6 { 210 compatible = "st,stm32-timer-trigger"; 211 reg = <6>; 212 status = "disabled"; 213 }; 214 }; 215 216 timers12: timers@40001800 { 217 #address-cells = <1>; 218 #size-cells = <0>; 219 compatible = "st,stm32-timers"; 220 reg = <0x40001800 0x400>; 221 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM12)>; 222 clock-names = "int"; 223 status = "disabled"; 224 225 pwm { 226 compatible = "st,stm32-pwm"; 227 #pwm-cells = <3>; 228 status = "disabled"; 229 }; 230 231 timer@11 { 232 compatible = "st,stm32-timer-trigger"; 233 reg = <11>; 234 status = "disabled"; 235 }; 236 }; 237 238 timers13: timers@40001c00 { 239 compatible = "st,stm32-timers"; 240 reg = <0x40001C00 0x400>; 241 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM13)>; 242 clock-names = "int"; 243 status = "disabled"; 244 245 pwm { 246 compatible = "st,stm32-pwm"; 247 #pwm-cells = <3>; 248 status = "disabled"; 249 }; 250 }; 251 252 timers14: timers@40002000 { 253 compatible = "st,stm32-timers"; 254 reg = <0x40002000 0x400>; 255 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM14)>; 256 clock-names = "int"; 257 status = "disabled"; 258 259 pwm { 260 compatible = "st,stm32-pwm"; 261 #pwm-cells = <3>; 262 status = "disabled"; 263 }; 264 }; 265 266 rtc: rtc@40002800 { 267 compatible = "st,stm32-rtc"; 268 reg = <0x40002800 0x400>; 269 clocks = <&rcc 1 CLK_RTC>; 270 assigned-clocks = <&rcc 1 CLK_RTC>; 271 assigned-clock-parents = <&rcc 1 CLK_LSE>; 272 interrupt-parent = <&exti>; 273 interrupts = <17 1>; 274 st,syscfg = <&pwrcfg 0x00 0x100>; 275 status = "disabled"; 276 }; 277 278 iwdg: watchdog@40003000 { 279 compatible = "st,stm32-iwdg"; 280 reg = <0x40003000 0x400>; 281 clocks = <&clk_lsi>; 282 clock-names = "lsi"; 283 status = "disabled"; 284 }; 285 286 spi2: spi@40003800 { 287 #address-cells = <1>; 288 #size-cells = <0>; 289 compatible = "st,stm32f4-spi"; 290 reg = <0x40003800 0x400>; 291 interrupts = <36>; 292 clocks = <&rcc 0 STM32F4_APB1_CLOCK(SPI2)>; 293 status = "disabled"; 294 }; 295 296 spi3: spi@40003c00 { 297 #address-cells = <1>; 298 #size-cells = <0>; 299 compatible = "st,stm32f4-spi"; 300 reg = <0x40003c00 0x400>; 301 interrupts = <51>; 302 clocks = <&rcc 0 STM32F4_APB1_CLOCK(SPI3)>; 303 status = "disabled"; 304 }; 305 306 usart2: serial@40004400 { 307 compatible = "st,stm32-uart"; 308 reg = <0x40004400 0x400>; 309 interrupts = <38>; 310 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART2)>; 311 status = "disabled"; 312 }; 313 314 usart3: serial@40004800 { 315 compatible = "st,stm32-uart"; 316 reg = <0x40004800 0x400>; 317 interrupts = <39>; 318 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART3)>; 319 status = "disabled"; 320 dmas = <&dma1 1 4 0x400 0x0>, 321 <&dma1 3 4 0x400 0x0>; 322 dma-names = "rx", "tx"; 323 }; 324 325 usart4: serial@40004c00 { 326 compatible = "st,stm32-uart"; 327 reg = <0x40004c00 0x400>; 328 interrupts = <52>; 329 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART4)>; 330 status = "disabled"; 331 }; 332 333 usart5: serial@40005000 { 334 compatible = "st,stm32-uart"; 335 reg = <0x40005000 0x400>; 336 interrupts = <53>; 337 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART5)>; 338 status = "disabled"; 339 }; 340 341 i2c1: i2c@40005400 { 342 compatible = "st,stm32f4-i2c"; 343 reg = <0x40005400 0x400>; 344 interrupts = <31>, 345 <32>; 346 resets = <&rcc STM32F4_APB1_RESET(I2C1)>; 347 clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C1)>; 348 #address-cells = <1>; 349 #size-cells = <0>; 350 status = "disabled"; 351 }; 352 353 i2c3: i2c@40005c00 { 354 compatible = "st,stm32f4-i2c"; 355 reg = <0x40005c00 0x400>; 356 interrupts = <72>, 357 <73>; 358 resets = <&rcc STM32F4_APB1_RESET(I2C3)>; 359 clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C3)>; 360 #address-cells = <1>; 361 #size-cells = <0>; 362 status = "disabled"; 363 }; 364 365 dac: dac@40007400 { 366 compatible = "st,stm32f4-dac-core"; 367 reg = <0x40007400 0x400>; 368 resets = <&rcc STM32F4_APB1_RESET(DAC)>; 369 clocks = <&rcc 0 STM32F4_APB1_CLOCK(DAC)>; 370 clock-names = "pclk"; 371 #address-cells = <1>; 372 #size-cells = <0>; 373 status = "disabled"; 374 375 dac1: dac@1 { 376 compatible = "st,stm32-dac"; 377 #io-channel-cells = <1>; 378 reg = <1>; 379 status = "disabled"; 380 }; 381 382 dac2: dac@2 { 383 compatible = "st,stm32-dac"; 384 #io-channel-cells = <1>; 385 reg = <2>; 386 status = "disabled"; 387 }; 388 }; 389 390 usart7: serial@40007800 { 391 compatible = "st,stm32-uart"; 392 reg = <0x40007800 0x400>; 393 interrupts = <82>; 394 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART7)>; 395 status = "disabled"; 396 }; 397 398 usart8: serial@40007c00 { 399 compatible = "st,stm32-uart"; 400 reg = <0x40007c00 0x400>; 401 interrupts = <83>; 402 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART8)>; 403 status = "disabled"; 404 }; 405 406 timers1: timers@40010000 { 407 #address-cells = <1>; 408 #size-cells = <0>; 409 compatible = "st,stm32-timers"; 410 reg = <0x40010000 0x400>; 411 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM1)>; 412 clock-names = "int"; 413 status = "disabled"; 414 415 pwm { 416 compatible = "st,stm32-pwm"; 417 #pwm-cells = <3>; 418 status = "disabled"; 419 }; 420 421 timer@0 { 422 compatible = "st,stm32-timer-trigger"; 423 reg = <0>; 424 status = "disabled"; 425 }; 426 }; 427 428 timers8: timers@40010400 { 429 #address-cells = <1>; 430 #size-cells = <0>; 431 compatible = "st,stm32-timers"; 432 reg = <0x40010400 0x400>; 433 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM8)>; 434 clock-names = "int"; 435 status = "disabled"; 436 437 pwm { 438 compatible = "st,stm32-pwm"; 439 #pwm-cells = <3>; 440 status = "disabled"; 441 }; 442 443 timer@7 { 444 compatible = "st,stm32-timer-trigger"; 445 reg = <7>; 446 status = "disabled"; 447 }; 448 }; 449 450 usart1: serial@40011000 { 451 compatible = "st,stm32-uart"; 452 reg = <0x40011000 0x400>; 453 interrupts = <37>; 454 clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART1)>; 455 status = "disabled"; 456 dmas = <&dma2 2 4 0x400 0x0>, 457 <&dma2 7 4 0x400 0x0>; 458 dma-names = "rx", "tx"; 459 }; 460 461 usart6: serial@40011400 { 462 compatible = "st,stm32-uart"; 463 reg = <0x40011400 0x400>; 464 interrupts = <71>; 465 clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART6)>; 466 status = "disabled"; 467 }; 468 469 adc: adc@40012000 { 470 compatible = "st,stm32f4-adc-core"; 471 reg = <0x40012000 0x400>; 472 interrupts = <18>; 473 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>; 474 clock-names = "adc"; 475 interrupt-controller; 476 #interrupt-cells = <1>; 477 #address-cells = <1>; 478 #size-cells = <0>; 479 status = "disabled"; 480 481 adc1: adc@0 { 482 compatible = "st,stm32f4-adc"; 483 #io-channel-cells = <1>; 484 reg = <0x0>; 485 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>; 486 interrupt-parent = <&adc>; 487 interrupts = <0>; 488 dmas = <&dma2 0 0 0x400 0x0>; 489 dma-names = "rx"; 490 status = "disabled"; 491 }; 492 493 adc2: adc@100 { 494 compatible = "st,stm32f4-adc"; 495 #io-channel-cells = <1>; 496 reg = <0x100>; 497 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC2)>; 498 interrupt-parent = <&adc>; 499 interrupts = <1>; 500 dmas = <&dma2 3 1 0x400 0x0>; 501 dma-names = "rx"; 502 status = "disabled"; 503 }; 504 505 adc3: adc@200 { 506 compatible = "st,stm32f4-adc"; 507 #io-channel-cells = <1>; 508 reg = <0x200>; 509 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC3)>; 510 interrupt-parent = <&adc>; 511 interrupts = <2>; 512 dmas = <&dma2 1 2 0x400 0x0>; 513 dma-names = "rx"; 514 status = "disabled"; 515 }; 516 }; 517 518 sdio: mmc@40012c00 { 519 compatible = "arm,pl180", "arm,primecell"; 520 arm,primecell-periphid = <0x00880180>; 521 reg = <0x40012c00 0x400>; 522 clocks = <&rcc 0 STM32F4_APB2_CLOCK(SDIO)>; 523 clock-names = "apb_pclk"; 524 interrupts = <49>; 525 max-frequency = <48000000>; 526 status = "disabled"; 527 }; 528 529 spi1: spi@40013000 { 530 #address-cells = <1>; 531 #size-cells = <0>; 532 compatible = "st,stm32f4-spi"; 533 reg = <0x40013000 0x400>; 534 interrupts = <35>; 535 clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI1)>; 536 status = "disabled"; 537 }; 538 539 spi4: spi@40013400 { 540 #address-cells = <1>; 541 #size-cells = <0>; 542 compatible = "st,stm32f4-spi"; 543 reg = <0x40013400 0x400>; 544 interrupts = <84>; 545 clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI4)>; 546 status = "disabled"; 547 }; 548 549 syscfg: syscon@40013800 { 550 compatible = "st,stm32-syscfg", "syscon"; 551 reg = <0x40013800 0x400>; 552 }; 553 554 exti: interrupt-controller@40013c00 { 555 compatible = "st,stm32-exti"; 556 interrupt-controller; 557 #interrupt-cells = <2>; 558 reg = <0x40013C00 0x400>; 559 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>; 560 }; 561 562 timers9: timers@40014000 { 563 #address-cells = <1>; 564 #size-cells = <0>; 565 compatible = "st,stm32-timers"; 566 reg = <0x40014000 0x400>; 567 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM9)>; 568 clock-names = "int"; 569 status = "disabled"; 570 571 pwm { 572 compatible = "st,stm32-pwm"; 573 #pwm-cells = <3>; 574 status = "disabled"; 575 }; 576 577 timer@8 { 578 compatible = "st,stm32-timer-trigger"; 579 reg = <8>; 580 status = "disabled"; 581 }; 582 }; 583 584 timers10: timers@40014400 { 585 compatible = "st,stm32-timers"; 586 reg = <0x40014400 0x400>; 587 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM10)>; 588 clock-names = "int"; 589 status = "disabled"; 590 591 pwm { 592 compatible = "st,stm32-pwm"; 593 #pwm-cells = <3>; 594 status = "disabled"; 595 }; 596 }; 597 598 timers11: timers@40014800 { 599 compatible = "st,stm32-timers"; 600 reg = <0x40014800 0x400>; 601 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM11)>; 602 clock-names = "int"; 603 status = "disabled"; 604 605 pwm { 606 compatible = "st,stm32-pwm"; 607 #pwm-cells = <3>; 608 status = "disabled"; 609 }; 610 }; 611 612 spi5: spi@40015000 { 613 #address-cells = <1>; 614 #size-cells = <0>; 615 compatible = "st,stm32f4-spi"; 616 reg = <0x40015000 0x400>; 617 interrupts = <85>; 618 clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI5)>; 619 dmas = <&dma2 3 2 0x400 0x0>, 620 <&dma2 4 2 0x400 0x0>; 621 dma-names = "rx", "tx"; 622 status = "disabled"; 623 }; 624 625 spi6: spi@40015400 { 626 #address-cells = <1>; 627 #size-cells = <0>; 628 compatible = "st,stm32f4-spi"; 629 reg = <0x40015400 0x400>; 630 interrupts = <86>; 631 clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI6)>; 632 status = "disabled"; 633 }; 634 635 pwrcfg: power-config@40007000 { 636 compatible = "st,stm32-power-config", "syscon"; 637 reg = <0x40007000 0x400>; 638 }; 639 640 ltdc: display-controller@40016800 { 641 compatible = "st,stm32-ltdc"; 642 reg = <0x40016800 0x200>; 643 interrupts = <88>, <89>; 644 resets = <&rcc STM32F4_APB2_RESET(LTDC)>; 645 clocks = <&rcc 1 CLK_LCD>; 646 clock-names = "lcd"; 647 status = "disabled"; 648 }; 649 650 crc: crc@40023000 { 651 compatible = "st,stm32f4-crc"; 652 reg = <0x40023000 0x400>; 653 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(CRC)>; 654 status = "disabled"; 655 }; 656 657 rcc: rcc@40023800 { 658 #reset-cells = <1>; 659 #clock-cells = <2>; 660 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc"; 661 reg = <0x40023800 0x400>; 662 clocks = <&clk_hse>, <&clk_i2s_ckin>; 663 st,syscfg = <&pwrcfg>; 664 assigned-clocks = <&rcc 1 CLK_HSE_RTC>; 665 assigned-clock-rates = <1000000>; 666 }; 667 668 dma1: dma-controller@40026000 { 669 compatible = "st,stm32-dma"; 670 reg = <0x40026000 0x400>; 671 interrupts = <11>, 672 <12>, 673 <13>, 674 <14>, 675 <15>, 676 <16>, 677 <17>, 678 <47>; 679 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA1)>; 680 #dma-cells = <4>; 681 }; 682 683 dma2: dma-controller@40026400 { 684 compatible = "st,stm32-dma"; 685 reg = <0x40026400 0x400>; 686 interrupts = <56>, 687 <57>, 688 <58>, 689 <59>, 690 <60>, 691 <68>, 692 <69>, 693 <70>; 694 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA2)>; 695 #dma-cells = <4>; 696 st,mem2mem; 697 }; 698 699 mac: ethernet@40028000 { 700 compatible = "st,stm32-dwmac", "snps,dwmac-3.50a"; 701 reg = <0x40028000 0x8000>; 702 reg-names = "stmmaceth"; 703 interrupts = <61>; 704 interrupt-names = "macirq"; 705 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx"; 706 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(ETHMAC)>, 707 <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACTX)>, 708 <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACRX)>; 709 st,syscon = <&syscfg 0x4>; 710 snps,pbl = <8>; 711 snps,mixed-burst; 712 status = "disabled"; 713 }; 714 715 dma2d: dma2d@4002b000 { 716 compatible = "st,stm32-dma2d"; 717 reg = <0x4002b000 0xc00>; 718 interrupts = <90>; 719 resets = <&rcc STM32F4_AHB1_RESET(DMA2D)>; 720 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA2D)>; 721 clock-names = "dma2d"; 722 status = "disabled"; 723 }; 724 725 usbotg_hs: usb@40040000 { 726 compatible = "snps,dwc2"; 727 reg = <0x40040000 0x40000>; 728 interrupts = <77>; 729 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHS)>; 730 clock-names = "otg"; 731 status = "disabled"; 732 }; 733 734 usbotg_fs: usb@50000000 { 735 compatible = "st,stm32f4x9-fsotg"; 736 reg = <0x50000000 0x40000>; 737 interrupts = <67>; 738 clocks = <&rcc 0 39>; 739 clock-names = "otg"; 740 status = "disabled"; 741 }; 742 743 dcmi: dcmi@50050000 { 744 compatible = "st,stm32-dcmi"; 745 reg = <0x50050000 0x400>; 746 interrupts = <78>; 747 resets = <&rcc STM32F4_AHB2_RESET(DCMI)>; 748 clocks = <&rcc 0 STM32F4_AHB2_CLOCK(DCMI)>; 749 clock-names = "mclk"; 750 pinctrl-names = "default"; 751 pinctrl-0 = <&dcmi_pins>; 752 dmas = <&dma2 1 1 0x414 0x3>; 753 dma-names = "tx"; 754 status = "disabled"; 755 }; 756 757 rng: rng@50060800 { 758 compatible = "st,stm32-rng"; 759 reg = <0x50060800 0x400>; 760 clocks = <&rcc 0 STM32F4_AHB2_CLOCK(RNG)>; 761 762 }; 763 }; 764}; 765 766&systick { 767 clocks = <&rcc 1 SYSTICK>; 768 status = "okay"; 769}; 770