1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2/* 3 * Copyright (C) STMicroelectronics 2017 - All Rights Reserved 4 * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics. 5 */ 6#include <dt-bindings/interrupt-controller/arm-gic.h> 7#include <dt-bindings/clock/stm32mp1-clks.h> 8#include <dt-bindings/reset/stm32mp1-resets.h> 9 10/ { 11 #address-cells = <1>; 12 #size-cells = <1>; 13 14 cpus { 15 #address-cells = <1>; 16 #size-cells = <0>; 17 18 cpu0: cpu@0 { 19 compatible = "arm,cortex-a7"; 20 clock-frequency = <650000000>; 21 device_type = "cpu"; 22 reg = <0>; 23 }; 24 }; 25 26 arm-pmu { 27 compatible = "arm,cortex-a7-pmu"; 28 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>; 29 interrupt-affinity = <&cpu0>; 30 interrupt-parent = <&intc>; 31 }; 32 33 psci { 34 compatible = "arm,psci-1.0"; 35 method = "smc"; 36 }; 37 38 intc: interrupt-controller@a0021000 { 39 compatible = "arm,cortex-a7-gic"; 40 #interrupt-cells = <3>; 41 interrupt-controller; 42 reg = <0xa0021000 0x1000>, 43 <0xa0022000 0x2000>; 44 }; 45 46 timer { 47 compatible = "arm,armv7-timer"; 48 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, 49 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, 50 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, 51 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>; 52 interrupt-parent = <&intc>; 53 }; 54 55 clocks { 56 clk_hse: clk-hse { 57 #clock-cells = <0>; 58 compatible = "fixed-clock"; 59 clock-frequency = <24000000>; 60 }; 61 62 clk_hsi: clk-hsi { 63 #clock-cells = <0>; 64 compatible = "fixed-clock"; 65 clock-frequency = <64000000>; 66 }; 67 68 clk_lse: clk-lse { 69 #clock-cells = <0>; 70 compatible = "fixed-clock"; 71 clock-frequency = <32768>; 72 }; 73 74 clk_lsi: clk-lsi { 75 #clock-cells = <0>; 76 compatible = "fixed-clock"; 77 clock-frequency = <32000>; 78 }; 79 80 clk_csi: clk-csi { 81 #clock-cells = <0>; 82 compatible = "fixed-clock"; 83 clock-frequency = <4000000>; 84 }; 85 }; 86 87 thermal-zones { 88 cpu_thermal: cpu-thermal { 89 polling-delay-passive = <0>; 90 polling-delay = <0>; 91 thermal-sensors = <&dts>; 92 93 trips { 94 cpu_alert1: cpu-alert1 { 95 temperature = <85000>; 96 hysteresis = <0>; 97 type = "passive"; 98 }; 99 100 cpu-crit { 101 temperature = <120000>; 102 hysteresis = <0>; 103 type = "critical"; 104 }; 105 }; 106 107 cooling-maps { 108 }; 109 }; 110 }; 111 112 booster: regulator-booster { 113 compatible = "st,stm32mp1-booster"; 114 st,syscfg = <&syscfg>; 115 status = "disabled"; 116 }; 117 118 soc { 119 compatible = "simple-bus"; 120 #address-cells = <1>; 121 #size-cells = <1>; 122 interrupt-parent = <&intc>; 123 ranges; 124 125 timers2: timer@40000000 { 126 #address-cells = <1>; 127 #size-cells = <0>; 128 compatible = "st,stm32-timers"; 129 reg = <0x40000000 0x400>; 130 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 131 interrupt-names = "global"; 132 clocks = <&rcc TIM2_K>; 133 clock-names = "int"; 134 dmas = <&dmamux1 18 0x400 0x1>, 135 <&dmamux1 19 0x400 0x1>, 136 <&dmamux1 20 0x400 0x1>, 137 <&dmamux1 21 0x400 0x1>, 138 <&dmamux1 22 0x400 0x1>; 139 dma-names = "ch1", "ch2", "ch3", "ch4", "up"; 140 status = "disabled"; 141 142 pwm { 143 compatible = "st,stm32-pwm"; 144 #pwm-cells = <3>; 145 status = "disabled"; 146 }; 147 148 timer@1 { 149 compatible = "st,stm32h7-timer-trigger"; 150 reg = <1>; 151 status = "disabled"; 152 }; 153 154 counter { 155 compatible = "st,stm32-timer-counter"; 156 status = "disabled"; 157 }; 158 }; 159 160 timers3: timer@40001000 { 161 #address-cells = <1>; 162 #size-cells = <0>; 163 compatible = "st,stm32-timers"; 164 reg = <0x40001000 0x400>; 165 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 166 interrupt-names = "global"; 167 clocks = <&rcc TIM3_K>; 168 clock-names = "int"; 169 dmas = <&dmamux1 23 0x400 0x1>, 170 <&dmamux1 24 0x400 0x1>, 171 <&dmamux1 25 0x400 0x1>, 172 <&dmamux1 26 0x400 0x1>, 173 <&dmamux1 27 0x400 0x1>, 174 <&dmamux1 28 0x400 0x1>; 175 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig"; 176 status = "disabled"; 177 178 pwm { 179 compatible = "st,stm32-pwm"; 180 #pwm-cells = <3>; 181 status = "disabled"; 182 }; 183 184 timer@2 { 185 compatible = "st,stm32h7-timer-trigger"; 186 reg = <2>; 187 status = "disabled"; 188 }; 189 190 counter { 191 compatible = "st,stm32-timer-counter"; 192 status = "disabled"; 193 }; 194 }; 195 196 timers4: timer@40002000 { 197 #address-cells = <1>; 198 #size-cells = <0>; 199 compatible = "st,stm32-timers"; 200 reg = <0x40002000 0x400>; 201 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 202 interrupt-names = "global"; 203 clocks = <&rcc TIM4_K>; 204 clock-names = "int"; 205 dmas = <&dmamux1 29 0x400 0x1>, 206 <&dmamux1 30 0x400 0x1>, 207 <&dmamux1 31 0x400 0x1>, 208 <&dmamux1 32 0x400 0x1>; 209 dma-names = "ch1", "ch2", "ch3", "ch4"; 210 status = "disabled"; 211 212 pwm { 213 compatible = "st,stm32-pwm"; 214 #pwm-cells = <3>; 215 status = "disabled"; 216 }; 217 218 timer@3 { 219 compatible = "st,stm32h7-timer-trigger"; 220 reg = <3>; 221 status = "disabled"; 222 }; 223 224 counter { 225 compatible = "st,stm32-timer-counter"; 226 status = "disabled"; 227 }; 228 }; 229 230 timers5: timer@40003000 { 231 #address-cells = <1>; 232 #size-cells = <0>; 233 compatible = "st,stm32-timers"; 234 reg = <0x40003000 0x400>; 235 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 236 interrupt-names = "global"; 237 clocks = <&rcc TIM5_K>; 238 clock-names = "int"; 239 dmas = <&dmamux1 55 0x400 0x1>, 240 <&dmamux1 56 0x400 0x1>, 241 <&dmamux1 57 0x400 0x1>, 242 <&dmamux1 58 0x400 0x1>, 243 <&dmamux1 59 0x400 0x1>, 244 <&dmamux1 60 0x400 0x1>; 245 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig"; 246 status = "disabled"; 247 248 pwm { 249 compatible = "st,stm32-pwm"; 250 #pwm-cells = <3>; 251 status = "disabled"; 252 }; 253 254 timer@4 { 255 compatible = "st,stm32h7-timer-trigger"; 256 reg = <4>; 257 status = "disabled"; 258 }; 259 260 counter { 261 compatible = "st,stm32-timer-counter"; 262 status = "disabled"; 263 }; 264 }; 265 266 timers6: timer@40004000 { 267 #address-cells = <1>; 268 #size-cells = <0>; 269 compatible = "st,stm32-timers"; 270 reg = <0x40004000 0x400>; 271 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 272 interrupt-names = "global"; 273 clocks = <&rcc TIM6_K>; 274 clock-names = "int"; 275 dmas = <&dmamux1 69 0x400 0x1>; 276 dma-names = "up"; 277 status = "disabled"; 278 279 timer@5 { 280 compatible = "st,stm32h7-timer-trigger"; 281 reg = <5>; 282 status = "disabled"; 283 }; 284 }; 285 286 timers7: timer@40005000 { 287 #address-cells = <1>; 288 #size-cells = <0>; 289 compatible = "st,stm32-timers"; 290 reg = <0x40005000 0x400>; 291 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 292 interrupt-names = "global"; 293 clocks = <&rcc TIM7_K>; 294 clock-names = "int"; 295 dmas = <&dmamux1 70 0x400 0x1>; 296 dma-names = "up"; 297 status = "disabled"; 298 299 timer@6 { 300 compatible = "st,stm32h7-timer-trigger"; 301 reg = <6>; 302 status = "disabled"; 303 }; 304 }; 305 306 timers12: timer@40006000 { 307 #address-cells = <1>; 308 #size-cells = <0>; 309 compatible = "st,stm32-timers"; 310 reg = <0x40006000 0x400>; 311 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 312 interrupt-names = "global"; 313 clocks = <&rcc TIM12_K>; 314 clock-names = "int"; 315 status = "disabled"; 316 317 pwm { 318 compatible = "st,stm32-pwm"; 319 #pwm-cells = <3>; 320 status = "disabled"; 321 }; 322 323 timer@11 { 324 compatible = "st,stm32h7-timer-trigger"; 325 reg = <11>; 326 status = "disabled"; 327 }; 328 }; 329 330 timers13: timer@40007000 { 331 #address-cells = <1>; 332 #size-cells = <0>; 333 compatible = "st,stm32-timers"; 334 reg = <0x40007000 0x400>; 335 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>; 336 interrupt-names = "global"; 337 clocks = <&rcc TIM13_K>; 338 clock-names = "int"; 339 status = "disabled"; 340 341 pwm { 342 compatible = "st,stm32-pwm"; 343 #pwm-cells = <3>; 344 status = "disabled"; 345 }; 346 347 timer@12 { 348 compatible = "st,stm32h7-timer-trigger"; 349 reg = <12>; 350 status = "disabled"; 351 }; 352 }; 353 354 timers14: timer@40008000 { 355 #address-cells = <1>; 356 #size-cells = <0>; 357 compatible = "st,stm32-timers"; 358 reg = <0x40008000 0x400>; 359 interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>; 360 interrupt-names = "global"; 361 clocks = <&rcc TIM14_K>; 362 clock-names = "int"; 363 status = "disabled"; 364 365 pwm { 366 compatible = "st,stm32-pwm"; 367 #pwm-cells = <3>; 368 status = "disabled"; 369 }; 370 371 timer@13 { 372 compatible = "st,stm32h7-timer-trigger"; 373 reg = <13>; 374 status = "disabled"; 375 }; 376 }; 377 378 lptimer1: timer@40009000 { 379 #address-cells = <1>; 380 #size-cells = <0>; 381 compatible = "st,stm32-lptimer"; 382 reg = <0x40009000 0x400>; 383 interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>; 384 clocks = <&rcc LPTIM1_K>; 385 clock-names = "mux"; 386 wakeup-source; 387 status = "disabled"; 388 389 pwm { 390 compatible = "st,stm32-pwm-lp"; 391 #pwm-cells = <3>; 392 status = "disabled"; 393 }; 394 395 trigger@0 { 396 compatible = "st,stm32-lptimer-trigger"; 397 reg = <0>; 398 status = "disabled"; 399 }; 400 401 counter { 402 compatible = "st,stm32-lptimer-counter"; 403 status = "disabled"; 404 }; 405 }; 406 407 spi2: spi@4000b000 { 408 #address-cells = <1>; 409 #size-cells = <0>; 410 compatible = "st,stm32h7-spi"; 411 reg = <0x4000b000 0x400>; 412 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 413 clocks = <&rcc SPI2_K>; 414 resets = <&rcc SPI2_R>; 415 dmas = <&dmamux1 39 0x400 0x05>, 416 <&dmamux1 40 0x400 0x05>; 417 dma-names = "rx", "tx"; 418 status = "disabled"; 419 }; 420 421 i2s2: audio-controller@4000b000 { 422 compatible = "st,stm32h7-i2s"; 423 #sound-dai-cells = <0>; 424 reg = <0x4000b000 0x400>; 425 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 426 dmas = <&dmamux1 39 0x400 0x01>, 427 <&dmamux1 40 0x400 0x01>; 428 dma-names = "rx", "tx"; 429 status = "disabled"; 430 }; 431 432 spi3: spi@4000c000 { 433 #address-cells = <1>; 434 #size-cells = <0>; 435 compatible = "st,stm32h7-spi"; 436 reg = <0x4000c000 0x400>; 437 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 438 clocks = <&rcc SPI3_K>; 439 resets = <&rcc SPI3_R>; 440 dmas = <&dmamux1 61 0x400 0x05>, 441 <&dmamux1 62 0x400 0x05>; 442 dma-names = "rx", "tx"; 443 status = "disabled"; 444 }; 445 446 i2s3: audio-controller@4000c000 { 447 compatible = "st,stm32h7-i2s"; 448 #sound-dai-cells = <0>; 449 reg = <0x4000c000 0x400>; 450 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 451 dmas = <&dmamux1 61 0x400 0x01>, 452 <&dmamux1 62 0x400 0x01>; 453 dma-names = "rx", "tx"; 454 status = "disabled"; 455 }; 456 457 spdifrx: audio-controller@4000d000 { 458 compatible = "st,stm32h7-spdifrx"; 459 #sound-dai-cells = <0>; 460 reg = <0x4000d000 0x400>; 461 clocks = <&rcc SPDIF_K>; 462 clock-names = "kclk"; 463 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 464 dmas = <&dmamux1 93 0x400 0x01>, 465 <&dmamux1 94 0x400 0x01>; 466 dma-names = "rx", "rx-ctrl"; 467 status = "disabled"; 468 }; 469 470 usart2: serial@4000e000 { 471 compatible = "st,stm32h7-uart"; 472 reg = <0x4000e000 0x400>; 473 interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>; 474 clocks = <&rcc USART2_K>; 475 wakeup-source; 476 dmas = <&dmamux1 43 0x400 0x15>, 477 <&dmamux1 44 0x400 0x11>; 478 dma-names = "rx", "tx"; 479 status = "disabled"; 480 }; 481 482 usart3: serial@4000f000 { 483 compatible = "st,stm32h7-uart"; 484 reg = <0x4000f000 0x400>; 485 interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>; 486 clocks = <&rcc USART3_K>; 487 wakeup-source; 488 dmas = <&dmamux1 45 0x400 0x15>, 489 <&dmamux1 46 0x400 0x11>; 490 dma-names = "rx", "tx"; 491 status = "disabled"; 492 }; 493 494 uart4: serial@40010000 { 495 compatible = "st,stm32h7-uart"; 496 reg = <0x40010000 0x400>; 497 interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>; 498 clocks = <&rcc UART4_K>; 499 wakeup-source; 500 dmas = <&dmamux1 63 0x400 0x15>, 501 <&dmamux1 64 0x400 0x11>; 502 dma-names = "rx", "tx"; 503 status = "disabled"; 504 }; 505 506 uart5: serial@40011000 { 507 compatible = "st,stm32h7-uart"; 508 reg = <0x40011000 0x400>; 509 interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>; 510 clocks = <&rcc UART5_K>; 511 wakeup-source; 512 dmas = <&dmamux1 65 0x400 0x15>, 513 <&dmamux1 66 0x400 0x11>; 514 dma-names = "rx", "tx"; 515 status = "disabled"; 516 }; 517 518 i2c1: i2c@40012000 { 519 compatible = "st,stm32mp15-i2c"; 520 reg = <0x40012000 0x400>; 521 interrupt-names = "event", "error"; 522 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>, 523 <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 524 clocks = <&rcc I2C1_K>; 525 resets = <&rcc I2C1_R>; 526 #address-cells = <1>; 527 #size-cells = <0>; 528 st,syscfg-fmp = <&syscfg 0x4 0x1>; 529 wakeup-source; 530 i2c-analog-filter; 531 status = "disabled"; 532 }; 533 534 i2c2: i2c@40013000 { 535 compatible = "st,stm32mp15-i2c"; 536 reg = <0x40013000 0x400>; 537 interrupt-names = "event", "error"; 538 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, 539 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 540 clocks = <&rcc I2C2_K>; 541 resets = <&rcc I2C2_R>; 542 #address-cells = <1>; 543 #size-cells = <0>; 544 st,syscfg-fmp = <&syscfg 0x4 0x2>; 545 wakeup-source; 546 i2c-analog-filter; 547 status = "disabled"; 548 }; 549 550 i2c3: i2c@40014000 { 551 compatible = "st,stm32mp15-i2c"; 552 reg = <0x40014000 0x400>; 553 interrupt-names = "event", "error"; 554 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 555 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 556 clocks = <&rcc I2C3_K>; 557 resets = <&rcc I2C3_R>; 558 #address-cells = <1>; 559 #size-cells = <0>; 560 st,syscfg-fmp = <&syscfg 0x4 0x4>; 561 wakeup-source; 562 i2c-analog-filter; 563 status = "disabled"; 564 }; 565 566 i2c5: i2c@40015000 { 567 compatible = "st,stm32mp15-i2c"; 568 reg = <0x40015000 0x400>; 569 interrupt-names = "event", "error"; 570 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, 571 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 572 clocks = <&rcc I2C5_K>; 573 resets = <&rcc I2C5_R>; 574 #address-cells = <1>; 575 #size-cells = <0>; 576 st,syscfg-fmp = <&syscfg 0x4 0x10>; 577 wakeup-source; 578 i2c-analog-filter; 579 status = "disabled"; 580 }; 581 582 cec: cec@40016000 { 583 compatible = "st,stm32-cec"; 584 reg = <0x40016000 0x400>; 585 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 586 clocks = <&rcc CEC_K>, <&rcc CEC>; 587 clock-names = "cec", "hdmi-cec"; 588 status = "disabled"; 589 }; 590 591 dac: dac@40017000 { 592 compatible = "st,stm32h7-dac-core"; 593 reg = <0x40017000 0x400>; 594 clocks = <&rcc DAC12>; 595 clock-names = "pclk"; 596 #address-cells = <1>; 597 #size-cells = <0>; 598 status = "disabled"; 599 600 dac1: dac@1 { 601 compatible = "st,stm32-dac"; 602 #io-channel-cells = <1>; 603 reg = <1>; 604 status = "disabled"; 605 }; 606 607 dac2: dac@2 { 608 compatible = "st,stm32-dac"; 609 #io-channel-cells = <1>; 610 reg = <2>; 611 status = "disabled"; 612 }; 613 }; 614 615 uart7: serial@40018000 { 616 compatible = "st,stm32h7-uart"; 617 reg = <0x40018000 0x400>; 618 interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>; 619 clocks = <&rcc UART7_K>; 620 wakeup-source; 621 dmas = <&dmamux1 79 0x400 0x15>, 622 <&dmamux1 80 0x400 0x11>; 623 dma-names = "rx", "tx"; 624 status = "disabled"; 625 }; 626 627 uart8: serial@40019000 { 628 compatible = "st,stm32h7-uart"; 629 reg = <0x40019000 0x400>; 630 interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>; 631 clocks = <&rcc UART8_K>; 632 wakeup-source; 633 dmas = <&dmamux1 81 0x400 0x15>, 634 <&dmamux1 82 0x400 0x11>; 635 dma-names = "rx", "tx"; 636 status = "disabled"; 637 }; 638 639 timers1: timer@44000000 { 640 #address-cells = <1>; 641 #size-cells = <0>; 642 compatible = "st,stm32-timers"; 643 reg = <0x44000000 0x400>; 644 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>, 645 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>, 646 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, 647 <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 648 interrupt-names = "brk", "up", "trg-com", "cc"; 649 clocks = <&rcc TIM1_K>; 650 clock-names = "int"; 651 dmas = <&dmamux1 11 0x400 0x1>, 652 <&dmamux1 12 0x400 0x1>, 653 <&dmamux1 13 0x400 0x1>, 654 <&dmamux1 14 0x400 0x1>, 655 <&dmamux1 15 0x400 0x1>, 656 <&dmamux1 16 0x400 0x1>, 657 <&dmamux1 17 0x400 0x1>; 658 dma-names = "ch1", "ch2", "ch3", "ch4", 659 "up", "trig", "com"; 660 status = "disabled"; 661 662 pwm { 663 compatible = "st,stm32-pwm"; 664 #pwm-cells = <3>; 665 status = "disabled"; 666 }; 667 668 timer@0 { 669 compatible = "st,stm32h7-timer-trigger"; 670 reg = <0>; 671 status = "disabled"; 672 }; 673 674 counter { 675 compatible = "st,stm32-timer-counter"; 676 status = "disabled"; 677 }; 678 }; 679 680 timers8: timer@44001000 { 681 #address-cells = <1>; 682 #size-cells = <0>; 683 compatible = "st,stm32-timers"; 684 reg = <0x44001000 0x400>; 685 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 686 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 687 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 688 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 689 interrupt-names = "brk", "up", "trg-com", "cc"; 690 clocks = <&rcc TIM8_K>; 691 clock-names = "int"; 692 dmas = <&dmamux1 47 0x400 0x1>, 693 <&dmamux1 48 0x400 0x1>, 694 <&dmamux1 49 0x400 0x1>, 695 <&dmamux1 50 0x400 0x1>, 696 <&dmamux1 51 0x400 0x1>, 697 <&dmamux1 52 0x400 0x1>, 698 <&dmamux1 53 0x400 0x1>; 699 dma-names = "ch1", "ch2", "ch3", "ch4", 700 "up", "trig", "com"; 701 status = "disabled"; 702 703 pwm { 704 compatible = "st,stm32-pwm"; 705 #pwm-cells = <3>; 706 status = "disabled"; 707 }; 708 709 timer@7 { 710 compatible = "st,stm32h7-timer-trigger"; 711 reg = <7>; 712 status = "disabled"; 713 }; 714 715 counter { 716 compatible = "st,stm32-timer-counter"; 717 status = "disabled"; 718 }; 719 }; 720 721 usart6: serial@44003000 { 722 compatible = "st,stm32h7-uart"; 723 reg = <0x44003000 0x400>; 724 interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>; 725 clocks = <&rcc USART6_K>; 726 wakeup-source; 727 dmas = <&dmamux1 71 0x400 0x15>, 728 <&dmamux1 72 0x400 0x11>; 729 dma-names = "rx", "tx"; 730 status = "disabled"; 731 }; 732 733 spi1: spi@44004000 { 734 #address-cells = <1>; 735 #size-cells = <0>; 736 compatible = "st,stm32h7-spi"; 737 reg = <0x44004000 0x400>; 738 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 739 clocks = <&rcc SPI1_K>; 740 resets = <&rcc SPI1_R>; 741 dmas = <&dmamux1 37 0x400 0x05>, 742 <&dmamux1 38 0x400 0x05>; 743 dma-names = "rx", "tx"; 744 status = "disabled"; 745 }; 746 747 i2s1: audio-controller@44004000 { 748 compatible = "st,stm32h7-i2s"; 749 #sound-dai-cells = <0>; 750 reg = <0x44004000 0x400>; 751 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 752 dmas = <&dmamux1 37 0x400 0x01>, 753 <&dmamux1 38 0x400 0x01>; 754 dma-names = "rx", "tx"; 755 status = "disabled"; 756 }; 757 758 spi4: spi@44005000 { 759 #address-cells = <1>; 760 #size-cells = <0>; 761 compatible = "st,stm32h7-spi"; 762 reg = <0x44005000 0x400>; 763 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 764 clocks = <&rcc SPI4_K>; 765 resets = <&rcc SPI4_R>; 766 dmas = <&dmamux1 83 0x400 0x05>, 767 <&dmamux1 84 0x400 0x05>; 768 dma-names = "rx", "tx"; 769 status = "disabled"; 770 }; 771 772 timers15: timer@44006000 { 773 #address-cells = <1>; 774 #size-cells = <0>; 775 compatible = "st,stm32-timers"; 776 reg = <0x44006000 0x400>; 777 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 778 interrupt-names = "global"; 779 clocks = <&rcc TIM15_K>; 780 clock-names = "int"; 781 dmas = <&dmamux1 105 0x400 0x1>, 782 <&dmamux1 106 0x400 0x1>, 783 <&dmamux1 107 0x400 0x1>, 784 <&dmamux1 108 0x400 0x1>; 785 dma-names = "ch1", "up", "trig", "com"; 786 status = "disabled"; 787 788 pwm { 789 compatible = "st,stm32-pwm"; 790 #pwm-cells = <3>; 791 status = "disabled"; 792 }; 793 794 timer@14 { 795 compatible = "st,stm32h7-timer-trigger"; 796 reg = <14>; 797 status = "disabled"; 798 }; 799 }; 800 801 timers16: timer@44007000 { 802 #address-cells = <1>; 803 #size-cells = <0>; 804 compatible = "st,stm32-timers"; 805 reg = <0x44007000 0x400>; 806 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; 807 interrupt-names = "global"; 808 clocks = <&rcc TIM16_K>; 809 clock-names = "int"; 810 dmas = <&dmamux1 109 0x400 0x1>, 811 <&dmamux1 110 0x400 0x1>; 812 dma-names = "ch1", "up"; 813 status = "disabled"; 814 815 pwm { 816 compatible = "st,stm32-pwm"; 817 #pwm-cells = <3>; 818 status = "disabled"; 819 }; 820 timer@15 { 821 compatible = "st,stm32h7-timer-trigger"; 822 reg = <15>; 823 status = "disabled"; 824 }; 825 }; 826 827 timers17: timer@44008000 { 828 #address-cells = <1>; 829 #size-cells = <0>; 830 compatible = "st,stm32-timers"; 831 reg = <0x44008000 0x400>; 832 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; 833 interrupt-names = "global"; 834 clocks = <&rcc TIM17_K>; 835 clock-names = "int"; 836 dmas = <&dmamux1 111 0x400 0x1>, 837 <&dmamux1 112 0x400 0x1>; 838 dma-names = "ch1", "up"; 839 status = "disabled"; 840 841 pwm { 842 compatible = "st,stm32-pwm"; 843 #pwm-cells = <3>; 844 status = "disabled"; 845 }; 846 847 timer@16 { 848 compatible = "st,stm32h7-timer-trigger"; 849 reg = <16>; 850 status = "disabled"; 851 }; 852 }; 853 854 spi5: spi@44009000 { 855 #address-cells = <1>; 856 #size-cells = <0>; 857 compatible = "st,stm32h7-spi"; 858 reg = <0x44009000 0x400>; 859 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 860 clocks = <&rcc SPI5_K>; 861 resets = <&rcc SPI5_R>; 862 dmas = <&dmamux1 85 0x400 0x05>, 863 <&dmamux1 86 0x400 0x05>; 864 dma-names = "rx", "tx"; 865 status = "disabled"; 866 }; 867 868 sai1: sai@4400a000 { 869 compatible = "st,stm32h7-sai"; 870 #address-cells = <1>; 871 #size-cells = <1>; 872 ranges = <0 0x4400a000 0x400>; 873 reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>; 874 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 875 resets = <&rcc SAI1_R>; 876 status = "disabled"; 877 878 sai1a: audio-controller@4400a004 { 879 #sound-dai-cells = <0>; 880 881 compatible = "st,stm32-sai-sub-a"; 882 reg = <0x4 0x20>; 883 clocks = <&rcc SAI1_K>; 884 clock-names = "sai_ck"; 885 dmas = <&dmamux1 87 0x400 0x01>; 886 status = "disabled"; 887 }; 888 889 sai1b: audio-controller@4400a024 { 890 #sound-dai-cells = <0>; 891 compatible = "st,stm32-sai-sub-b"; 892 reg = <0x24 0x20>; 893 clocks = <&rcc SAI1_K>; 894 clock-names = "sai_ck"; 895 dmas = <&dmamux1 88 0x400 0x01>; 896 status = "disabled"; 897 }; 898 }; 899 900 sai2: sai@4400b000 { 901 compatible = "st,stm32h7-sai"; 902 #address-cells = <1>; 903 #size-cells = <1>; 904 ranges = <0 0x4400b000 0x400>; 905 reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>; 906 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 907 resets = <&rcc SAI2_R>; 908 status = "disabled"; 909 910 sai2a: audio-controller@4400b004 { 911 #sound-dai-cells = <0>; 912 compatible = "st,stm32-sai-sub-a"; 913 reg = <0x4 0x20>; 914 clocks = <&rcc SAI2_K>; 915 clock-names = "sai_ck"; 916 dmas = <&dmamux1 89 0x400 0x01>; 917 status = "disabled"; 918 }; 919 920 sai2b: audio-controller@4400b024 { 921 #sound-dai-cells = <0>; 922 compatible = "st,stm32-sai-sub-b"; 923 reg = <0x24 0x20>; 924 clocks = <&rcc SAI2_K>; 925 clock-names = "sai_ck"; 926 dmas = <&dmamux1 90 0x400 0x01>; 927 status = "disabled"; 928 }; 929 }; 930 931 sai3: sai@4400c000 { 932 compatible = "st,stm32h7-sai"; 933 #address-cells = <1>; 934 #size-cells = <1>; 935 ranges = <0 0x4400c000 0x400>; 936 reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>; 937 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 938 resets = <&rcc SAI3_R>; 939 status = "disabled"; 940 941 sai3a: audio-controller@4400c004 { 942 #sound-dai-cells = <0>; 943 compatible = "st,stm32-sai-sub-a"; 944 reg = <0x04 0x20>; 945 clocks = <&rcc SAI3_K>; 946 clock-names = "sai_ck"; 947 dmas = <&dmamux1 113 0x400 0x01>; 948 status = "disabled"; 949 }; 950 951 sai3b: audio-controller@4400c024 { 952 #sound-dai-cells = <0>; 953 compatible = "st,stm32-sai-sub-b"; 954 reg = <0x24 0x20>; 955 clocks = <&rcc SAI3_K>; 956 clock-names = "sai_ck"; 957 dmas = <&dmamux1 114 0x400 0x01>; 958 status = "disabled"; 959 }; 960 }; 961 962 dfsdm: dfsdm@4400d000 { 963 compatible = "st,stm32mp1-dfsdm"; 964 reg = <0x4400d000 0x800>; 965 clocks = <&rcc DFSDM_K>; 966 clock-names = "dfsdm"; 967 #address-cells = <1>; 968 #size-cells = <0>; 969 status = "disabled"; 970 971 dfsdm0: filter@0 { 972 compatible = "st,stm32-dfsdm-adc"; 973 #io-channel-cells = <1>; 974 reg = <0>; 975 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 976 dmas = <&dmamux1 101 0x400 0x01>; 977 dma-names = "rx"; 978 status = "disabled"; 979 }; 980 981 dfsdm1: filter@1 { 982 compatible = "st,stm32-dfsdm-adc"; 983 #io-channel-cells = <1>; 984 reg = <1>; 985 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 986 dmas = <&dmamux1 102 0x400 0x01>; 987 dma-names = "rx"; 988 status = "disabled"; 989 }; 990 991 dfsdm2: filter@2 { 992 compatible = "st,stm32-dfsdm-adc"; 993 #io-channel-cells = <1>; 994 reg = <2>; 995 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 996 dmas = <&dmamux1 103 0x400 0x01>; 997 dma-names = "rx"; 998 status = "disabled"; 999 }; 1000 1001 dfsdm3: filter@3 { 1002 compatible = "st,stm32-dfsdm-adc"; 1003 #io-channel-cells = <1>; 1004 reg = <3>; 1005 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 1006 dmas = <&dmamux1 104 0x400 0x01>; 1007 dma-names = "rx"; 1008 status = "disabled"; 1009 }; 1010 1011 dfsdm4: filter@4 { 1012 compatible = "st,stm32-dfsdm-adc"; 1013 #io-channel-cells = <1>; 1014 reg = <4>; 1015 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; 1016 dmas = <&dmamux1 91 0x400 0x01>; 1017 dma-names = "rx"; 1018 status = "disabled"; 1019 }; 1020 1021 dfsdm5: filter@5 { 1022 compatible = "st,stm32-dfsdm-adc"; 1023 #io-channel-cells = <1>; 1024 reg = <5>; 1025 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; 1026 dmas = <&dmamux1 92 0x400 0x01>; 1027 dma-names = "rx"; 1028 status = "disabled"; 1029 }; 1030 }; 1031 1032 dma1: dma-controller@48000000 { 1033 compatible = "st,stm32-dma"; 1034 reg = <0x48000000 0x400>; 1035 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 1036 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 1037 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 1038 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, 1039 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 1040 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 1041 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, 1042 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 1043 clocks = <&rcc DMA1>; 1044 resets = <&rcc DMA1_R>; 1045 #dma-cells = <4>; 1046 st,mem2mem; 1047 dma-requests = <8>; 1048 }; 1049 1050 dma2: dma-controller@48001000 { 1051 compatible = "st,stm32-dma"; 1052 reg = <0x48001000 0x400>; 1053 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 1054 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 1055 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 1056 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 1057 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 1058 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 1059 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, 1060 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 1061 clocks = <&rcc DMA2>; 1062 resets = <&rcc DMA2_R>; 1063 #dma-cells = <4>; 1064 st,mem2mem; 1065 dma-requests = <8>; 1066 }; 1067 1068 dmamux1: dma-router@48002000 { 1069 compatible = "st,stm32h7-dmamux"; 1070 reg = <0x48002000 0x40>; 1071 #dma-cells = <3>; 1072 dma-requests = <128>; 1073 dma-masters = <&dma1 &dma2>; 1074 dma-channels = <16>; 1075 clocks = <&rcc DMAMUX>; 1076 resets = <&rcc DMAMUX_R>; 1077 }; 1078 1079 adc: adc@48003000 { 1080 compatible = "st,stm32mp1-adc-core"; 1081 reg = <0x48003000 0x400>; 1082 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 1083 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 1084 clocks = <&rcc ADC12>, <&rcc ADC12_K>; 1085 clock-names = "bus", "adc"; 1086 interrupt-controller; 1087 st,syscfg = <&syscfg>; 1088 #interrupt-cells = <1>; 1089 #address-cells = <1>; 1090 #size-cells = <0>; 1091 status = "disabled"; 1092 1093 adc1: adc@0 { 1094 compatible = "st,stm32mp1-adc"; 1095 #io-channel-cells = <1>; 1096 #address-cells = <1>; 1097 #size-cells = <0>; 1098 reg = <0x0>; 1099 interrupt-parent = <&adc>; 1100 interrupts = <0>; 1101 dmas = <&dmamux1 9 0x400 0x01>; 1102 dma-names = "rx"; 1103 status = "disabled"; 1104 }; 1105 1106 adc2: adc@100 { 1107 compatible = "st,stm32mp1-adc"; 1108 #io-channel-cells = <1>; 1109 #address-cells = <1>; 1110 #size-cells = <0>; 1111 reg = <0x100>; 1112 interrupt-parent = <&adc>; 1113 interrupts = <1>; 1114 dmas = <&dmamux1 10 0x400 0x01>; 1115 dma-names = "rx"; 1116 nvmem-cells = <&vrefint>; 1117 nvmem-cell-names = "vrefint"; 1118 status = "disabled"; 1119 channel@13 { 1120 reg = <13>; 1121 label = "vrefint"; 1122 }; 1123 channel@14 { 1124 reg = <14>; 1125 label = "vddcore"; 1126 }; 1127 }; 1128 }; 1129 1130 sdmmc3: mmc@48004000 { 1131 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell"; 1132 arm,primecell-periphid = <0x00253180>; 1133 reg = <0x48004000 0x400>; 1134 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>; 1135 clocks = <&rcc SDMMC3_K>; 1136 clock-names = "apb_pclk"; 1137 resets = <&rcc SDMMC3_R>; 1138 cap-sd-highspeed; 1139 cap-mmc-highspeed; 1140 max-frequency = <120000000>; 1141 status = "disabled"; 1142 }; 1143 1144 usbotg_hs: usb-otg@49000000 { 1145 compatible = "st,stm32mp15-hsotg", "snps,dwc2"; 1146 reg = <0x49000000 0x10000>; 1147 clocks = <&rcc USBO_K>, <&usbphyc>; 1148 clock-names = "otg", "utmi"; 1149 resets = <&rcc USBO_R>; 1150 reset-names = "dwc2"; 1151 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 1152 g-rx-fifo-size = <512>; 1153 g-np-tx-fifo-size = <32>; 1154 g-tx-fifo-size = <256 16 16 16 16 16 16 16>; 1155 dr_mode = "otg"; 1156 otg-rev = <0x200>; 1157 usb33d-supply = <&usb33>; 1158 status = "disabled"; 1159 }; 1160 1161 ipcc: mailbox@4c001000 { 1162 compatible = "st,stm32mp1-ipcc"; 1163 #mbox-cells = <1>; 1164 reg = <0x4c001000 0x400>; 1165 st,proc-id = <0>; 1166 interrupts-extended = 1167 <&exti 61 1>, 1168 <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 1169 interrupt-names = "rx", "tx"; 1170 clocks = <&rcc IPCC>; 1171 wakeup-source; 1172 status = "disabled"; 1173 }; 1174 1175 dcmi: dcmi@4c006000 { 1176 compatible = "st,stm32-dcmi"; 1177 reg = <0x4c006000 0x400>; 1178 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 1179 resets = <&rcc CAMITF_R>; 1180 clocks = <&rcc DCMI>; 1181 clock-names = "mclk"; 1182 dmas = <&dmamux1 75 0x400 0x01>; 1183 dma-names = "tx"; 1184 status = "disabled"; 1185 }; 1186 1187 rcc: rcc@50000000 { 1188 compatible = "st,stm32mp1-rcc", "syscon"; 1189 reg = <0x50000000 0x1000>; 1190 #clock-cells = <1>; 1191 #reset-cells = <1>; 1192 }; 1193 1194 pwr_regulators: pwr@50001000 { 1195 compatible = "st,stm32mp1,pwr-reg"; 1196 reg = <0x50001000 0x10>; 1197 1198 reg11: reg11 { 1199 regulator-name = "reg11"; 1200 regulator-min-microvolt = <1100000>; 1201 regulator-max-microvolt = <1100000>; 1202 }; 1203 1204 reg18: reg18 { 1205 regulator-name = "reg18"; 1206 regulator-min-microvolt = <1800000>; 1207 regulator-max-microvolt = <1800000>; 1208 }; 1209 1210 usb33: usb33 { 1211 regulator-name = "usb33"; 1212 regulator-min-microvolt = <3300000>; 1213 regulator-max-microvolt = <3300000>; 1214 }; 1215 }; 1216 1217 pwr_mcu: pwr_mcu@50001014 { 1218 compatible = "st,stm32mp151-pwr-mcu", "syscon"; 1219 reg = <0x50001014 0x4>; 1220 }; 1221 1222 exti: interrupt-controller@5000d000 { 1223 compatible = "st,stm32mp1-exti", "syscon"; 1224 interrupt-controller; 1225 #interrupt-cells = <2>; 1226 reg = <0x5000d000 0x400>; 1227 }; 1228 1229 syscfg: syscon@50020000 { 1230 compatible = "st,stm32mp157-syscfg", "syscon"; 1231 reg = <0x50020000 0x400>; 1232 clocks = <&rcc SYSCFG>; 1233 }; 1234 1235 lptimer2: timer@50021000 { 1236 #address-cells = <1>; 1237 #size-cells = <0>; 1238 compatible = "st,stm32-lptimer"; 1239 reg = <0x50021000 0x400>; 1240 interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>; 1241 clocks = <&rcc LPTIM2_K>; 1242 clock-names = "mux"; 1243 wakeup-source; 1244 status = "disabled"; 1245 1246 pwm { 1247 compatible = "st,stm32-pwm-lp"; 1248 #pwm-cells = <3>; 1249 status = "disabled"; 1250 }; 1251 1252 trigger@1 { 1253 compatible = "st,stm32-lptimer-trigger"; 1254 reg = <1>; 1255 status = "disabled"; 1256 }; 1257 1258 counter { 1259 compatible = "st,stm32-lptimer-counter"; 1260 status = "disabled"; 1261 }; 1262 }; 1263 1264 lptimer3: timer@50022000 { 1265 #address-cells = <1>; 1266 #size-cells = <0>; 1267 compatible = "st,stm32-lptimer"; 1268 reg = <0x50022000 0x400>; 1269 interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>; 1270 clocks = <&rcc LPTIM3_K>; 1271 clock-names = "mux"; 1272 wakeup-source; 1273 status = "disabled"; 1274 1275 pwm { 1276 compatible = "st,stm32-pwm-lp"; 1277 #pwm-cells = <3>; 1278 status = "disabled"; 1279 }; 1280 1281 trigger@2 { 1282 compatible = "st,stm32-lptimer-trigger"; 1283 reg = <2>; 1284 status = "disabled"; 1285 }; 1286 }; 1287 1288 lptimer4: timer@50023000 { 1289 compatible = "st,stm32-lptimer"; 1290 reg = <0x50023000 0x400>; 1291 interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>; 1292 clocks = <&rcc LPTIM4_K>; 1293 clock-names = "mux"; 1294 wakeup-source; 1295 status = "disabled"; 1296 1297 pwm { 1298 compatible = "st,stm32-pwm-lp"; 1299 #pwm-cells = <3>; 1300 status = "disabled"; 1301 }; 1302 }; 1303 1304 lptimer5: timer@50024000 { 1305 compatible = "st,stm32-lptimer"; 1306 reg = <0x50024000 0x400>; 1307 interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>; 1308 clocks = <&rcc LPTIM5_K>; 1309 clock-names = "mux"; 1310 wakeup-source; 1311 status = "disabled"; 1312 1313 pwm { 1314 compatible = "st,stm32-pwm-lp"; 1315 #pwm-cells = <3>; 1316 status = "disabled"; 1317 }; 1318 }; 1319 1320 vrefbuf: vrefbuf@50025000 { 1321 compatible = "st,stm32-vrefbuf"; 1322 reg = <0x50025000 0x8>; 1323 regulator-min-microvolt = <1500000>; 1324 regulator-max-microvolt = <2500000>; 1325 clocks = <&rcc VREF>; 1326 status = "disabled"; 1327 }; 1328 1329 sai4: sai@50027000 { 1330 compatible = "st,stm32h7-sai"; 1331 #address-cells = <1>; 1332 #size-cells = <1>; 1333 ranges = <0 0x50027000 0x400>; 1334 reg = <0x50027000 0x4>, <0x500273f0 0x10>; 1335 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; 1336 resets = <&rcc SAI4_R>; 1337 status = "disabled"; 1338 1339 sai4a: audio-controller@50027004 { 1340 #sound-dai-cells = <0>; 1341 compatible = "st,stm32-sai-sub-a"; 1342 reg = <0x04 0x20>; 1343 clocks = <&rcc SAI4_K>; 1344 clock-names = "sai_ck"; 1345 dmas = <&dmamux1 99 0x400 0x01>; 1346 status = "disabled"; 1347 }; 1348 1349 sai4b: audio-controller@50027024 { 1350 #sound-dai-cells = <0>; 1351 compatible = "st,stm32-sai-sub-b"; 1352 reg = <0x24 0x20>; 1353 clocks = <&rcc SAI4_K>; 1354 clock-names = "sai_ck"; 1355 dmas = <&dmamux1 100 0x400 0x01>; 1356 status = "disabled"; 1357 }; 1358 }; 1359 1360 dts: thermal@50028000 { 1361 compatible = "st,stm32-thermal"; 1362 reg = <0x50028000 0x100>; 1363 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; 1364 clocks = <&rcc TMPSENS>; 1365 clock-names = "pclk"; 1366 #thermal-sensor-cells = <0>; 1367 status = "disabled"; 1368 }; 1369 1370 hash1: hash@54002000 { 1371 compatible = "st,stm32f756-hash"; 1372 reg = <0x54002000 0x400>; 1373 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 1374 clocks = <&rcc HASH1>; 1375 resets = <&rcc HASH1_R>; 1376 dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>; 1377 dma-names = "in"; 1378 dma-maxburst = <2>; 1379 status = "disabled"; 1380 }; 1381 1382 rng1: rng@54003000 { 1383 compatible = "st,stm32-rng"; 1384 reg = <0x54003000 0x400>; 1385 clocks = <&rcc RNG1_K>; 1386 resets = <&rcc RNG1_R>; 1387 status = "disabled"; 1388 }; 1389 1390 mdma1: dma-controller@58000000 { 1391 compatible = "st,stm32h7-mdma"; 1392 reg = <0x58000000 0x1000>; 1393 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 1394 clocks = <&rcc MDMA>; 1395 resets = <&rcc MDMA_R>; 1396 #dma-cells = <5>; 1397 dma-channels = <32>; 1398 dma-requests = <48>; 1399 }; 1400 1401 fmc: memory-controller@58002000 { 1402 #address-cells = <2>; 1403 #size-cells = <1>; 1404 compatible = "st,stm32mp1-fmc2-ebi"; 1405 reg = <0x58002000 0x1000>; 1406 clocks = <&rcc FMC_K>; 1407 resets = <&rcc FMC_R>; 1408 status = "disabled"; 1409 1410 ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */ 1411 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */ 1412 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */ 1413 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */ 1414 <4 0 0x80000000 0x10000000>; /* NAND */ 1415 1416 nand-controller@4,0 { 1417 #address-cells = <1>; 1418 #size-cells = <0>; 1419 compatible = "st,stm32mp1-fmc2-nfc"; 1420 reg = <4 0x00000000 0x1000>, 1421 <4 0x08010000 0x1000>, 1422 <4 0x08020000 0x1000>, 1423 <4 0x01000000 0x1000>, 1424 <4 0x09010000 0x1000>, 1425 <4 0x09020000 0x1000>; 1426 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 1427 dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>, 1428 <&mdma1 20 0x2 0x12000a08 0x0 0x0>, 1429 <&mdma1 21 0x2 0x12000a0a 0x0 0x0>; 1430 dma-names = "tx", "rx", "ecc"; 1431 status = "disabled"; 1432 }; 1433 }; 1434 1435 qspi: spi@58003000 { 1436 compatible = "st,stm32f469-qspi"; 1437 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>; 1438 reg-names = "qspi", "qspi_mm"; 1439 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 1440 dmas = <&mdma1 22 0x2 0x10100002 0x0 0x0>, 1441 <&mdma1 22 0x2 0x10100008 0x0 0x0>; 1442 dma-names = "tx", "rx"; 1443 clocks = <&rcc QSPI_K>; 1444 resets = <&rcc QSPI_R>; 1445 #address-cells = <1>; 1446 #size-cells = <0>; 1447 status = "disabled"; 1448 }; 1449 1450 sdmmc1: mmc@58005000 { 1451 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell"; 1452 arm,primecell-periphid = <0x00253180>; 1453 reg = <0x58005000 0x1000>; 1454 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 1455 clocks = <&rcc SDMMC1_K>; 1456 clock-names = "apb_pclk"; 1457 resets = <&rcc SDMMC1_R>; 1458 cap-sd-highspeed; 1459 cap-mmc-highspeed; 1460 max-frequency = <120000000>; 1461 status = "disabled"; 1462 }; 1463 1464 sdmmc2: mmc@58007000 { 1465 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell"; 1466 arm,primecell-periphid = <0x00253180>; 1467 reg = <0x58007000 0x1000>; 1468 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>; 1469 clocks = <&rcc SDMMC2_K>; 1470 clock-names = "apb_pclk"; 1471 resets = <&rcc SDMMC2_R>; 1472 cap-sd-highspeed; 1473 cap-mmc-highspeed; 1474 max-frequency = <120000000>; 1475 status = "disabled"; 1476 }; 1477 1478 crc1: crc@58009000 { 1479 compatible = "st,stm32f7-crc"; 1480 reg = <0x58009000 0x400>; 1481 clocks = <&rcc CRC1>; 1482 status = "disabled"; 1483 }; 1484 1485 ethernet0: ethernet@5800a000 { 1486 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a"; 1487 reg = <0x5800a000 0x2000>; 1488 reg-names = "stmmaceth"; 1489 interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 1490 interrupt-names = "macirq"; 1491 clock-names = "stmmaceth", 1492 "mac-clk-tx", 1493 "mac-clk-rx", 1494 "eth-ck", 1495 "ptp_ref", 1496 "ethstp"; 1497 clocks = <&rcc ETHMAC>, 1498 <&rcc ETHTX>, 1499 <&rcc ETHRX>, 1500 <&rcc ETHCK_K>, 1501 <&rcc ETHPTP_K>, 1502 <&rcc ETHSTP>; 1503 st,syscon = <&syscfg 0x4>; 1504 snps,mixed-burst; 1505 snps,pbl = <2>; 1506 snps,en-tx-lpi-clockgating; 1507 snps,axi-config = <&stmmac_axi_config_0>; 1508 snps,tso; 1509 status = "disabled"; 1510 1511 stmmac_axi_config_0: stmmac-axi-config { 1512 snps,wr_osr_lmt = <0x7>; 1513 snps,rd_osr_lmt = <0x7>; 1514 snps,blen = <0 0 0 0 16 8 4>; 1515 }; 1516 }; 1517 1518 usbh_ohci: usb@5800c000 { 1519 compatible = "generic-ohci"; 1520 reg = <0x5800c000 0x1000>; 1521 clocks = <&usbphyc>, <&rcc USBH>; 1522 resets = <&rcc USBH_R>; 1523 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 1524 status = "disabled"; 1525 }; 1526 1527 usbh_ehci: usb@5800d000 { 1528 compatible = "generic-ehci"; 1529 reg = <0x5800d000 0x1000>; 1530 clocks = <&usbphyc>, <&rcc USBH>; 1531 resets = <&rcc USBH_R>; 1532 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 1533 companion = <&usbh_ohci>; 1534 status = "disabled"; 1535 }; 1536 1537 ltdc: display-controller@5a001000 { 1538 compatible = "st,stm32-ltdc"; 1539 reg = <0x5a001000 0x400>; 1540 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, 1541 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 1542 clocks = <&rcc LTDC_PX>; 1543 clock-names = "lcd"; 1544 resets = <&rcc LTDC_R>; 1545 status = "disabled"; 1546 }; 1547 1548 iwdg2: watchdog@5a002000 { 1549 compatible = "st,stm32mp1-iwdg"; 1550 reg = <0x5a002000 0x400>; 1551 clocks = <&rcc IWDG2>, <&rcc CK_LSI>; 1552 clock-names = "pclk", "lsi"; 1553 status = "disabled"; 1554 }; 1555 1556 usbphyc: usbphyc@5a006000 { 1557 #address-cells = <1>; 1558 #size-cells = <0>; 1559 #clock-cells = <0>; 1560 compatible = "st,stm32mp1-usbphyc"; 1561 reg = <0x5a006000 0x1000>; 1562 clocks = <&rcc USBPHY_K>; 1563 resets = <&rcc USBPHY_R>; 1564 vdda1v1-supply = <®11>; 1565 vdda1v8-supply = <®18>; 1566 status = "disabled"; 1567 1568 usbphyc_port0: usb-phy@0 { 1569 #phy-cells = <0>; 1570 reg = <0>; 1571 }; 1572 1573 usbphyc_port1: usb-phy@1 { 1574 #phy-cells = <1>; 1575 reg = <1>; 1576 }; 1577 }; 1578 1579 usart1: serial@5c000000 { 1580 compatible = "st,stm32h7-uart"; 1581 reg = <0x5c000000 0x400>; 1582 interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>; 1583 clocks = <&rcc USART1_K>; 1584 wakeup-source; 1585 status = "disabled"; 1586 }; 1587 1588 spi6: spi@5c001000 { 1589 #address-cells = <1>; 1590 #size-cells = <0>; 1591 compatible = "st,stm32h7-spi"; 1592 reg = <0x5c001000 0x400>; 1593 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 1594 clocks = <&rcc SPI6_K>; 1595 resets = <&rcc SPI6_R>; 1596 dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>, 1597 <&mdma1 35 0x0 0x40002 0x0 0x0>; 1598 dma-names = "rx", "tx"; 1599 status = "disabled"; 1600 }; 1601 1602 i2c4: i2c@5c002000 { 1603 compatible = "st,stm32mp15-i2c"; 1604 reg = <0x5c002000 0x400>; 1605 interrupt-names = "event", "error"; 1606 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, 1607 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 1608 clocks = <&rcc I2C4_K>; 1609 resets = <&rcc I2C4_R>; 1610 #address-cells = <1>; 1611 #size-cells = <0>; 1612 st,syscfg-fmp = <&syscfg 0x4 0x8>; 1613 wakeup-source; 1614 i2c-analog-filter; 1615 status = "disabled"; 1616 }; 1617 1618 rtc: rtc@5c004000 { 1619 compatible = "st,stm32mp1-rtc"; 1620 reg = <0x5c004000 0x400>; 1621 clocks = <&rcc RTCAPB>, <&rcc RTC>; 1622 clock-names = "pclk", "rtc_ck"; 1623 interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>; 1624 status = "disabled"; 1625 }; 1626 1627 bsec: efuse@5c005000 { 1628 compatible = "st,stm32mp15-bsec"; 1629 reg = <0x5c005000 0x400>; 1630 #address-cells = <1>; 1631 #size-cells = <1>; 1632 part_number_otp: part-number-otp@4 { 1633 reg = <0x4 0x1>; 1634 }; 1635 vrefint: vrefin-cal@52 { 1636 reg = <0x52 0x2>; 1637 }; 1638 ts_cal1: calib@5c { 1639 reg = <0x5c 0x2>; 1640 }; 1641 ts_cal2: calib@5e { 1642 reg = <0x5e 0x2>; 1643 }; 1644 }; 1645 1646 i2c6: i2c@5c009000 { 1647 compatible = "st,stm32mp15-i2c"; 1648 reg = <0x5c009000 0x400>; 1649 interrupt-names = "event", "error"; 1650 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>, 1651 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>; 1652 clocks = <&rcc I2C6_K>; 1653 resets = <&rcc I2C6_R>; 1654 #address-cells = <1>; 1655 #size-cells = <0>; 1656 st,syscfg-fmp = <&syscfg 0x4 0x20>; 1657 wakeup-source; 1658 i2c-analog-filter; 1659 status = "disabled"; 1660 }; 1661 1662 tamp: tamp@5c00a000 { 1663 compatible = "st,stm32-tamp", "syscon", "simple-mfd"; 1664 reg = <0x5c00a000 0x400>; 1665 }; 1666 1667 /* 1668 * Break node order to solve dependency probe issue between 1669 * pinctrl and exti. 1670 */ 1671 pinctrl: pinctrl@50002000 { 1672 #address-cells = <1>; 1673 #size-cells = <1>; 1674 compatible = "st,stm32mp157-pinctrl"; 1675 ranges = <0 0x50002000 0xa400>; 1676 interrupt-parent = <&exti>; 1677 st,syscfg = <&exti 0x60 0xff>; 1678 1679 gpioa: gpio@50002000 { 1680 gpio-controller; 1681 #gpio-cells = <2>; 1682 interrupt-controller; 1683 #interrupt-cells = <2>; 1684 reg = <0x0 0x400>; 1685 clocks = <&rcc GPIOA>; 1686 st,bank-name = "GPIOA"; 1687 status = "disabled"; 1688 }; 1689 1690 gpiob: gpio@50003000 { 1691 gpio-controller; 1692 #gpio-cells = <2>; 1693 interrupt-controller; 1694 #interrupt-cells = <2>; 1695 reg = <0x1000 0x400>; 1696 clocks = <&rcc GPIOB>; 1697 st,bank-name = "GPIOB"; 1698 status = "disabled"; 1699 }; 1700 1701 gpioc: gpio@50004000 { 1702 gpio-controller; 1703 #gpio-cells = <2>; 1704 interrupt-controller; 1705 #interrupt-cells = <2>; 1706 reg = <0x2000 0x400>; 1707 clocks = <&rcc GPIOC>; 1708 st,bank-name = "GPIOC"; 1709 status = "disabled"; 1710 }; 1711 1712 gpiod: gpio@50005000 { 1713 gpio-controller; 1714 #gpio-cells = <2>; 1715 interrupt-controller; 1716 #interrupt-cells = <2>; 1717 reg = <0x3000 0x400>; 1718 clocks = <&rcc GPIOD>; 1719 st,bank-name = "GPIOD"; 1720 status = "disabled"; 1721 }; 1722 1723 gpioe: gpio@50006000 { 1724 gpio-controller; 1725 #gpio-cells = <2>; 1726 interrupt-controller; 1727 #interrupt-cells = <2>; 1728 reg = <0x4000 0x400>; 1729 clocks = <&rcc GPIOE>; 1730 st,bank-name = "GPIOE"; 1731 status = "disabled"; 1732 }; 1733 1734 gpiof: gpio@50007000 { 1735 gpio-controller; 1736 #gpio-cells = <2>; 1737 interrupt-controller; 1738 #interrupt-cells = <2>; 1739 reg = <0x5000 0x400>; 1740 clocks = <&rcc GPIOF>; 1741 st,bank-name = "GPIOF"; 1742 status = "disabled"; 1743 }; 1744 1745 gpiog: gpio@50008000 { 1746 gpio-controller; 1747 #gpio-cells = <2>; 1748 interrupt-controller; 1749 #interrupt-cells = <2>; 1750 reg = <0x6000 0x400>; 1751 clocks = <&rcc GPIOG>; 1752 st,bank-name = "GPIOG"; 1753 status = "disabled"; 1754 }; 1755 1756 gpioh: gpio@50009000 { 1757 gpio-controller; 1758 #gpio-cells = <2>; 1759 interrupt-controller; 1760 #interrupt-cells = <2>; 1761 reg = <0x7000 0x400>; 1762 clocks = <&rcc GPIOH>; 1763 st,bank-name = "GPIOH"; 1764 status = "disabled"; 1765 }; 1766 1767 gpioi: gpio@5000a000 { 1768 gpio-controller; 1769 #gpio-cells = <2>; 1770 interrupt-controller; 1771 #interrupt-cells = <2>; 1772 reg = <0x8000 0x400>; 1773 clocks = <&rcc GPIOI>; 1774 st,bank-name = "GPIOI"; 1775 status = "disabled"; 1776 }; 1777 1778 gpioj: gpio@5000b000 { 1779 gpio-controller; 1780 #gpio-cells = <2>; 1781 interrupt-controller; 1782 #interrupt-cells = <2>; 1783 reg = <0x9000 0x400>; 1784 clocks = <&rcc GPIOJ>; 1785 st,bank-name = "GPIOJ"; 1786 status = "disabled"; 1787 }; 1788 1789 gpiok: gpio@5000c000 { 1790 gpio-controller; 1791 #gpio-cells = <2>; 1792 interrupt-controller; 1793 #interrupt-cells = <2>; 1794 reg = <0xa000 0x400>; 1795 clocks = <&rcc GPIOK>; 1796 st,bank-name = "GPIOK"; 1797 status = "disabled"; 1798 }; 1799 }; 1800 1801 pinctrl_z: pinctrl@54004000 { 1802 #address-cells = <1>; 1803 #size-cells = <1>; 1804 compatible = "st,stm32mp157-z-pinctrl"; 1805 ranges = <0 0x54004000 0x400>; 1806 interrupt-parent = <&exti>; 1807 st,syscfg = <&exti 0x60 0xff>; 1808 1809 gpioz: gpio@54004000 { 1810 gpio-controller; 1811 #gpio-cells = <2>; 1812 interrupt-controller; 1813 #interrupt-cells = <2>; 1814 reg = <0 0x400>; 1815 clocks = <&rcc GPIOZ>; 1816 st,bank-name = "GPIOZ"; 1817 st,bank-ioport = <11>; 1818 status = "disabled"; 1819 }; 1820 }; 1821 }; 1822 1823 mlahb: ahb { 1824 compatible = "st,mlahb", "simple-bus"; 1825 #address-cells = <1>; 1826 #size-cells = <1>; 1827 ranges; 1828 dma-ranges = <0x00000000 0x38000000 0x10000>, 1829 <0x10000000 0x10000000 0x60000>, 1830 <0x30000000 0x30000000 0x60000>; 1831 1832 m4_rproc: m4@10000000 { 1833 compatible = "st,stm32mp1-m4"; 1834 reg = <0x10000000 0x40000>, 1835 <0x30000000 0x40000>, 1836 <0x38000000 0x10000>; 1837 resets = <&rcc MCU_R>; 1838 reset-names = "mcu_rst"; 1839 st,syscfg-holdboot = <&rcc 0x10C 0x1>; 1840 st,syscfg-pdds = <&pwr_mcu 0x0 0x1>; 1841 st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>; 1842 st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>; 1843 status = "disabled"; 1844 }; 1845 }; 1846}; 1847