1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2/* 3 * Copyright (C) STMicroelectronics 2021 - All Rights Reserved 4 * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics. 5 */ 6#include <dt-bindings/interrupt-controller/arm-gic.h> 7#include <dt-bindings/clock/stm32mp13-clks.h> 8#include <dt-bindings/reset/stm32mp13-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 device_type = "cpu"; 21 reg = <0>; 22 }; 23 }; 24 25 arm-pmu { 26 compatible = "arm,cortex-a7-pmu"; 27 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; 28 interrupt-affinity = <&cpu0>; 29 interrupt-parent = <&intc>; 30 }; 31 32 firmware { 33 optee { 34 method = "smc"; 35 compatible = "linaro,optee-tz"; 36 interrupt-parent = <&intc>; 37 interrupts = <GIC_PPI 15 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>; 38 }; 39 40 scmi: scmi { 41 compatible = "linaro,scmi-optee"; 42 #address-cells = <1>; 43 #size-cells = <0>; 44 linaro,optee-channel-id = <0>; 45 46 scmi_clk: protocol@14 { 47 reg = <0x14>; 48 #clock-cells = <1>; 49 }; 50 51 scmi_reset: protocol@16 { 52 reg = <0x16>; 53 #reset-cells = <1>; 54 }; 55 56 scmi_voltd: protocol@17 { 57 reg = <0x17>; 58 59 scmi_regu: regulators { 60 #address-cells = <1>; 61 #size-cells = <0>; 62 63 scmi_reg11: regulator@0 { 64 reg = <VOLTD_SCMI_REG11>; 65 regulator-name = "reg11"; 66 }; 67 scmi_reg18: regulator@1 { 68 reg = <VOLTD_SCMI_REG18>; 69 regulator-name = "reg18"; 70 }; 71 scmi_usb33: regulator@2 { 72 reg = <VOLTD_SCMI_USB33>; 73 regulator-name = "usb33"; 74 }; 75 }; 76 }; 77 }; 78 }; 79 80 intc: interrupt-controller@a0021000 { 81 compatible = "arm,cortex-a7-gic"; 82 #interrupt-cells = <3>; 83 interrupt-controller; 84 reg = <0xa0021000 0x1000>, 85 <0xa0022000 0x2000>; 86 }; 87 88 psci { 89 compatible = "arm,psci-1.0"; 90 method = "smc"; 91 }; 92 93 timer { 94 compatible = "arm,armv7-timer"; 95 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, 96 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, 97 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, 98 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>; 99 interrupt-parent = <&intc>; 100 always-on; 101 }; 102 103 soc { 104 compatible = "simple-bus"; 105 #address-cells = <1>; 106 #size-cells = <1>; 107 interrupt-parent = <&intc>; 108 ranges; 109 110 timers2: timer@40000000 { 111 #address-cells = <1>; 112 #size-cells = <0>; 113 compatible = "st,stm32-timers"; 114 reg = <0x40000000 0x400>; 115 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 116 interrupt-names = "global"; 117 clocks = <&rcc TIM2_K>; 118 clock-names = "int"; 119 dmas = <&dmamux1 18 0x400 0x1>, 120 <&dmamux1 19 0x400 0x1>, 121 <&dmamux1 20 0x400 0x1>, 122 <&dmamux1 21 0x400 0x1>, 123 <&dmamux1 22 0x400 0x1>; 124 dma-names = "ch1", "ch2", "ch3", "ch4", "up"; 125 status = "disabled"; 126 127 pwm { 128 compatible = "st,stm32-pwm"; 129 #pwm-cells = <3>; 130 status = "disabled"; 131 }; 132 133 timer@1 { 134 compatible = "st,stm32h7-timer-trigger"; 135 reg = <1>; 136 status = "disabled"; 137 }; 138 139 counter { 140 compatible = "st,stm32-timer-counter"; 141 status = "disabled"; 142 }; 143 }; 144 145 timers3: timer@40001000 { 146 #address-cells = <1>; 147 #size-cells = <0>; 148 compatible = "st,stm32-timers"; 149 reg = <0x40001000 0x400>; 150 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 151 interrupt-names = "global"; 152 clocks = <&rcc TIM3_K>; 153 clock-names = "int"; 154 dmas = <&dmamux1 23 0x400 0x1>, 155 <&dmamux1 24 0x400 0x1>, 156 <&dmamux1 25 0x400 0x1>, 157 <&dmamux1 26 0x400 0x1>, 158 <&dmamux1 27 0x400 0x1>, 159 <&dmamux1 28 0x400 0x1>; 160 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig"; 161 status = "disabled"; 162 163 pwm { 164 compatible = "st,stm32-pwm"; 165 #pwm-cells = <3>; 166 status = "disabled"; 167 }; 168 169 timer@2 { 170 compatible = "st,stm32h7-timer-trigger"; 171 reg = <2>; 172 status = "disabled"; 173 }; 174 175 counter { 176 compatible = "st,stm32-timer-counter"; 177 status = "disabled"; 178 }; 179 }; 180 181 timers4: timer@40002000 { 182 #address-cells = <1>; 183 #size-cells = <0>; 184 compatible = "st,stm32-timers"; 185 reg = <0x40002000 0x400>; 186 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 187 interrupt-names = "global"; 188 clocks = <&rcc TIM4_K>; 189 clock-names = "int"; 190 dmas = <&dmamux1 29 0x400 0x1>, 191 <&dmamux1 30 0x400 0x1>, 192 <&dmamux1 31 0x400 0x1>, 193 <&dmamux1 32 0x400 0x1>; 194 dma-names = "ch1", "ch2", "ch3", "up"; 195 status = "disabled"; 196 197 pwm { 198 compatible = "st,stm32-pwm"; 199 #pwm-cells = <3>; 200 status = "disabled"; 201 }; 202 203 timer@3 { 204 compatible = "st,stm32h7-timer-trigger"; 205 reg = <3>; 206 status = "disabled"; 207 }; 208 209 counter { 210 compatible = "st,stm32-timer-counter"; 211 status = "disabled"; 212 }; 213 }; 214 215 timers5: timer@40003000 { 216 #address-cells = <1>; 217 #size-cells = <0>; 218 compatible = "st,stm32-timers"; 219 reg = <0x40003000 0x400>; 220 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 221 interrupt-names = "global"; 222 clocks = <&rcc TIM5_K>; 223 clock-names = "int"; 224 dmas = <&dmamux1 55 0x400 0x1>, 225 <&dmamux1 56 0x400 0x1>, 226 <&dmamux1 57 0x400 0x1>, 227 <&dmamux1 58 0x400 0x1>, 228 <&dmamux1 59 0x400 0x1>, 229 <&dmamux1 60 0x400 0x1>; 230 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig"; 231 status = "disabled"; 232 233 pwm { 234 compatible = "st,stm32-pwm"; 235 #pwm-cells = <3>; 236 status = "disabled"; 237 }; 238 239 timer@4 { 240 compatible = "st,stm32h7-timer-trigger"; 241 reg = <4>; 242 status = "disabled"; 243 }; 244 245 counter { 246 compatible = "st,stm32-timer-counter"; 247 status = "disabled"; 248 }; 249 }; 250 251 timers6: timer@40004000 { 252 #address-cells = <1>; 253 #size-cells = <0>; 254 compatible = "st,stm32-timers"; 255 reg = <0x40004000 0x400>; 256 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 257 interrupt-names = "global"; 258 clocks = <&rcc TIM6_K>; 259 clock-names = "int"; 260 dmas = <&dmamux1 69 0x400 0x1>; 261 dma-names = "up"; 262 status = "disabled"; 263 264 timer@5 { 265 compatible = "st,stm32h7-timer-trigger"; 266 reg = <5>; 267 status = "disabled"; 268 }; 269 }; 270 271 timers7: timer@40005000 { 272 #address-cells = <1>; 273 #size-cells = <0>; 274 compatible = "st,stm32-timers"; 275 reg = <0x40005000 0x400>; 276 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 277 interrupt-names = "global"; 278 clocks = <&rcc TIM7_K>; 279 clock-names = "int"; 280 dmas = <&dmamux1 70 0x400 0x1>; 281 dma-names = "up"; 282 status = "disabled"; 283 284 timer@6 { 285 compatible = "st,stm32h7-timer-trigger"; 286 reg = <6>; 287 status = "disabled"; 288 }; 289 }; 290 291 lptimer1: timer@40009000 { 292 #address-cells = <1>; 293 #size-cells = <0>; 294 compatible = "st,stm32-lptimer"; 295 reg = <0x40009000 0x400>; 296 interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>; 297 clocks = <&rcc LPTIM1_K>; 298 clock-names = "mux"; 299 wakeup-source; 300 status = "disabled"; 301 302 pwm { 303 compatible = "st,stm32-pwm-lp"; 304 #pwm-cells = <3>; 305 status = "disabled"; 306 }; 307 308 trigger@0 { 309 compatible = "st,stm32-lptimer-trigger"; 310 reg = <0>; 311 status = "disabled"; 312 }; 313 314 counter { 315 compatible = "st,stm32-lptimer-counter"; 316 status = "disabled"; 317 }; 318 319 timer { 320 compatible = "st,stm32-lptimer-timer"; 321 status = "disabled"; 322 }; 323 }; 324 325 i2s2: audio-controller@4000b000 { 326 compatible = "st,stm32h7-i2s"; 327 reg = <0x4000b000 0x400>; 328 #sound-dai-cells = <0>; 329 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 330 dmas = <&dmamux1 39 0x400 0x01>, 331 <&dmamux1 40 0x400 0x01>; 332 dma-names = "rx", "tx"; 333 status = "disabled"; 334 }; 335 336 spi2: spi@4000b000 { 337 compatible = "st,stm32h7-spi"; 338 reg = <0x4000b000 0x400>; 339 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 340 clocks = <&rcc SPI2_K>; 341 resets = <&rcc SPI2_R>; 342 #address-cells = <1>; 343 #size-cells = <0>; 344 dmas = <&dmamux1 39 0x400 0x01>, 345 <&dmamux1 40 0x400 0x01>; 346 dma-names = "rx", "tx"; 347 status = "disabled"; 348 }; 349 350 i2s3: audio-controller@4000c000 { 351 compatible = "st,stm32h7-i2s"; 352 reg = <0x4000c000 0x400>; 353 #sound-dai-cells = <0>; 354 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 355 dmas = <&dmamux1 61 0x400 0x01>, 356 <&dmamux1 62 0x400 0x01>; 357 dma-names = "rx", "tx"; 358 status = "disabled"; 359 }; 360 361 spi3: spi@4000c000 { 362 compatible = "st,stm32h7-spi"; 363 reg = <0x4000c000 0x400>; 364 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 365 clocks = <&rcc SPI3_K>; 366 resets = <&rcc SPI3_R>; 367 #address-cells = <1>; 368 #size-cells = <0>; 369 dmas = <&dmamux1 61 0x400 0x01>, 370 <&dmamux1 62 0x400 0x01>; 371 dma-names = "rx", "tx"; 372 status = "disabled"; 373 }; 374 375 spdifrx: audio-controller@4000d000 { 376 compatible = "st,stm32h7-spdifrx"; 377 reg = <0x4000d000 0x400>; 378 #sound-dai-cells = <0>; 379 clocks = <&rcc SPDIF_K>; 380 clock-names = "kclk"; 381 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 382 dmas = <&dmamux1 93 0x400 0x01>, 383 <&dmamux1 94 0x400 0x01>; 384 dma-names = "rx", "rx-ctrl"; 385 status = "disabled"; 386 }; 387 388 usart3: serial@4000f000 { 389 compatible = "st,stm32h7-uart"; 390 reg = <0x4000f000 0x400>; 391 interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>; 392 clocks = <&rcc USART3_K>; 393 resets = <&rcc USART3_R>; 394 wakeup-source; 395 dmas = <&dmamux1 45 0x400 0x5>, 396 <&dmamux1 46 0x400 0x1>; 397 dma-names = "rx", "tx"; 398 status = "disabled"; 399 }; 400 401 uart4: serial@40010000 { 402 compatible = "st,stm32h7-uart"; 403 reg = <0x40010000 0x400>; 404 interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>; 405 clocks = <&rcc UART4_K>; 406 resets = <&rcc UART4_R>; 407 wakeup-source; 408 dmas = <&dmamux1 63 0x400 0x5>, 409 <&dmamux1 64 0x400 0x1>; 410 dma-names = "rx", "tx"; 411 status = "disabled"; 412 }; 413 414 uart5: serial@40011000 { 415 compatible = "st,stm32h7-uart"; 416 reg = <0x40011000 0x400>; 417 interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>; 418 clocks = <&rcc UART5_K>; 419 resets = <&rcc UART5_R>; 420 wakeup-source; 421 dmas = <&dmamux1 65 0x400 0x5>, 422 <&dmamux1 66 0x400 0x1>; 423 dma-names = "rx", "tx"; 424 status = "disabled"; 425 }; 426 427 i2c1: i2c@40012000 { 428 compatible = "st,stm32mp13-i2c"; 429 reg = <0x40012000 0x400>; 430 interrupt-names = "event", "error"; 431 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 432 <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 433 clocks = <&rcc I2C1_K>; 434 resets = <&rcc I2C1_R>; 435 #address-cells = <1>; 436 #size-cells = <0>; 437 dmas = <&dmamux1 33 0x400 0x1>, 438 <&dmamux1 34 0x400 0x1>; 439 dma-names = "rx", "tx"; 440 st,syscfg-fmp = <&syscfg 0x4 0x1>; 441 i2c-analog-filter; 442 status = "disabled"; 443 }; 444 445 i2c2: i2c@40013000 { 446 compatible = "st,stm32mp13-i2c"; 447 reg = <0x40013000 0x400>; 448 interrupt-names = "event", "error"; 449 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, 450 <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 451 clocks = <&rcc I2C2_K>; 452 resets = <&rcc I2C2_R>; 453 #address-cells = <1>; 454 #size-cells = <0>; 455 dmas = <&dmamux1 35 0x400 0x1>, 456 <&dmamux1 36 0x400 0x1>; 457 dma-names = "rx", "tx"; 458 st,syscfg-fmp = <&syscfg 0x4 0x2>; 459 i2c-analog-filter; 460 status = "disabled"; 461 }; 462 463 uart7: serial@40018000 { 464 compatible = "st,stm32h7-uart"; 465 reg = <0x40018000 0x400>; 466 interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>; 467 clocks = <&rcc UART7_K>; 468 resets = <&rcc UART7_R>; 469 wakeup-source; 470 dmas = <&dmamux1 79 0x400 0x5>, 471 <&dmamux1 80 0x400 0x1>; 472 dma-names = "rx", "tx"; 473 status = "disabled"; 474 }; 475 476 uart8: serial@40019000 { 477 compatible = "st,stm32h7-uart"; 478 reg = <0x40019000 0x400>; 479 interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>; 480 clocks = <&rcc UART8_K>; 481 resets = <&rcc UART8_R>; 482 wakeup-source; 483 dmas = <&dmamux1 81 0x400 0x5>, 484 <&dmamux1 82 0x400 0x1>; 485 dma-names = "rx", "tx"; 486 status = "disabled"; 487 }; 488 489 timers1: timer@44000000 { 490 #address-cells = <1>; 491 #size-cells = <0>; 492 compatible = "st,stm32-timers"; 493 reg = <0x44000000 0x400>; 494 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>, 495 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, 496 <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>, 497 <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 498 interrupt-names = "brk", "up", "trg-com", "cc"; 499 clocks = <&rcc TIM1_K>; 500 clock-names = "int"; 501 dmas = <&dmamux1 11 0x400 0x1>, 502 <&dmamux1 12 0x400 0x1>, 503 <&dmamux1 13 0x400 0x1>, 504 <&dmamux1 14 0x400 0x1>, 505 <&dmamux1 15 0x400 0x1>, 506 <&dmamux1 16 0x400 0x1>, 507 <&dmamux1 17 0x400 0x1>; 508 dma-names = "ch1", "ch2", "ch3", "ch4", 509 "up", "trig", "com"; 510 status = "disabled"; 511 512 pwm { 513 compatible = "st,stm32-pwm"; 514 #pwm-cells = <3>; 515 status = "disabled"; 516 }; 517 518 timer@0 { 519 compatible = "st,stm32h7-timer-trigger"; 520 reg = <0>; 521 status = "disabled"; 522 }; 523 524 counter { 525 compatible = "st,stm32-timer-counter"; 526 status = "disabled"; 527 }; 528 }; 529 530 timers8: timer@44001000 { 531 #address-cells = <1>; 532 #size-cells = <0>; 533 compatible = "st,stm32-timers"; 534 reg = <0x44001000 0x400>; 535 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 536 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 537 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, 538 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 539 interrupt-names = "brk", "up", "trg-com", "cc"; 540 clocks = <&rcc TIM8_K>; 541 clock-names = "int"; 542 dmas = <&dmamux1 47 0x400 0x1>, 543 <&dmamux1 48 0x400 0x1>, 544 <&dmamux1 49 0x400 0x1>, 545 <&dmamux1 50 0x400 0x1>, 546 <&dmamux1 51 0x400 0x1>, 547 <&dmamux1 52 0x400 0x1>, 548 <&dmamux1 53 0x400 0x1>; 549 dma-names = "ch1", "ch2", "ch3", "ch4", 550 "up", "trig", "com"; 551 status = "disabled"; 552 553 pwm { 554 compatible = "st,stm32-pwm"; 555 #pwm-cells = <3>; 556 status = "disabled"; 557 }; 558 559 timer@7 { 560 compatible = "st,stm32h7-timer-trigger"; 561 reg = <7>; 562 status = "disabled"; 563 }; 564 565 counter { 566 compatible = "st,stm32-timer-counter"; 567 status = "disabled"; 568 }; 569 }; 570 571 usart6: serial@44003000 { 572 compatible = "st,stm32h7-uart"; 573 reg = <0x44003000 0x400>; 574 interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>; 575 clocks = <&rcc USART6_K>; 576 resets = <&rcc USART6_R>; 577 wakeup-source; 578 dmas = <&dmamux1 71 0x400 0x5>, 579 <&dmamux1 72 0x400 0x1>; 580 dma-names = "rx", "tx"; 581 status = "disabled"; 582 }; 583 584 i2s1: audio-controller@44004000 { 585 compatible = "st,stm32h7-i2s"; 586 reg = <0x44004000 0x400>; 587 #sound-dai-cells = <0>; 588 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 589 dmas = <&dmamux1 37 0x400 0x01>, 590 <&dmamux1 38 0x400 0x01>; 591 dma-names = "rx", "tx"; 592 status = "disabled"; 593 }; 594 595 spi1: spi@44004000 { 596 compatible = "st,stm32h7-spi"; 597 reg = <0x44004000 0x400>; 598 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 599 clocks = <&rcc SPI1_K>; 600 resets = <&rcc SPI1_R>; 601 #address-cells = <1>; 602 #size-cells = <0>; 603 dmas = <&dmamux1 37 0x400 0x01>, 604 <&dmamux1 38 0x400 0x01>; 605 dma-names = "rx", "tx"; 606 status = "disabled"; 607 }; 608 609 sai1: sai@4400a000 { 610 compatible = "st,stm32h7-sai"; 611 reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>; 612 ranges = <0 0x4400a000 0x400>; 613 #address-cells = <1>; 614 #size-cells = <1>; 615 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 616 resets = <&rcc SAI1_R>; 617 status = "disabled"; 618 619 sai1a: audio-controller@4400a004 { 620 compatible = "st,stm32-sai-sub-a"; 621 reg = <0x4 0x20>; 622 #sound-dai-cells = <0>; 623 clocks = <&rcc SAI1_K>; 624 clock-names = "sai_ck"; 625 dmas = <&dmamux1 87 0x400 0x01>; 626 status = "disabled"; 627 }; 628 629 sai1b: audio-controller@4400a024 { 630 compatible = "st,stm32-sai-sub-b"; 631 reg = <0x24 0x20>; 632 #sound-dai-cells = <0>; 633 clocks = <&rcc SAI1_K>; 634 clock-names = "sai_ck"; 635 dmas = <&dmamux1 88 0x400 0x01>; 636 status = "disabled"; 637 }; 638 }; 639 640 sai2: sai@4400b000 { 641 compatible = "st,stm32h7-sai"; 642 reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>; 643 ranges = <0 0x4400b000 0x400>; 644 #address-cells = <1>; 645 #size-cells = <1>; 646 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 647 resets = <&rcc SAI2_R>; 648 status = "disabled"; 649 650 sai2a: audio-controller@4400b004 { 651 compatible = "st,stm32-sai-sub-a"; 652 reg = <0x4 0x20>; 653 #sound-dai-cells = <0>; 654 clocks = <&rcc SAI2_K>; 655 clock-names = "sai_ck"; 656 dmas = <&dmamux1 89 0x400 0x01>; 657 status = "disabled"; 658 }; 659 660 sai2b: audio-controller@4400b024 { 661 compatible = "st,stm32-sai-sub-b"; 662 reg = <0x24 0x20>; 663 #sound-dai-cells = <0>; 664 clocks = <&rcc SAI2_K>; 665 clock-names = "sai_ck"; 666 dmas = <&dmamux1 90 0x400 0x01>; 667 status = "disabled"; 668 }; 669 }; 670 671 dfsdm: dfsdm@4400d000 { 672 compatible = "st,stm32mp1-dfsdm"; 673 reg = <0x4400d000 0x800>; 674 clocks = <&rcc DFSDM_K>; 675 clock-names = "dfsdm"; 676 #address-cells = <1>; 677 #size-cells = <0>; 678 status = "disabled"; 679 680 dfsdm0: filter@0 { 681 compatible = "st,stm32-dfsdm-adc"; 682 reg = <0>; 683 #io-channel-cells = <1>; 684 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 685 dmas = <&dmamux1 101 0x400 0x01>; 686 dma-names = "rx"; 687 status = "disabled"; 688 }; 689 690 dfsdm1: filter@1 { 691 compatible = "st,stm32-dfsdm-adc"; 692 reg = <1>; 693 #io-channel-cells = <1>; 694 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>; 695 dmas = <&dmamux1 102 0x400 0x01>; 696 dma-names = "rx"; 697 status = "disabled"; 698 }; 699 }; 700 701 dma1: dma-controller@48000000 { 702 compatible = "st,stm32-dma"; 703 reg = <0x48000000 0x400>; 704 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 705 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 706 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 707 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, 708 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 709 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 710 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, 711 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 712 clocks = <&rcc DMA1>; 713 resets = <&rcc DMA1_R>; 714 #dma-cells = <4>; 715 st,mem2mem; 716 dma-requests = <8>; 717 }; 718 719 dma2: dma-controller@48001000 { 720 compatible = "st,stm32-dma"; 721 reg = <0x48001000 0x400>; 722 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 723 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 724 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 725 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 726 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 727 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, 728 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 729 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 730 clocks = <&rcc DMA2>; 731 resets = <&rcc DMA2_R>; 732 #dma-cells = <4>; 733 st,mem2mem; 734 dma-requests = <8>; 735 }; 736 737 dmamux1: dma-router@48002000 { 738 compatible = "st,stm32h7-dmamux"; 739 reg = <0x48002000 0x40>; 740 clocks = <&rcc DMAMUX1>; 741 resets = <&rcc DMAMUX1_R>; 742 #dma-cells = <3>; 743 dma-masters = <&dma1 &dma2>; 744 dma-requests = <128>; 745 dma-channels = <16>; 746 }; 747 748 rcc: rcc@50000000 { 749 compatible = "st,stm32mp13-rcc", "syscon"; 750 reg = <0x50000000 0x1000>; 751 #clock-cells = <1>; 752 #reset-cells = <1>; 753 clock-names = "hse", "hsi", "csi", "lse", "lsi"; 754 clocks = <&scmi_clk CK_SCMI_HSE>, 755 <&scmi_clk CK_SCMI_HSI>, 756 <&scmi_clk CK_SCMI_CSI>, 757 <&scmi_clk CK_SCMI_LSE>, 758 <&scmi_clk CK_SCMI_LSI>; 759 }; 760 761 pwr_regulators: pwr@50001000 { 762 compatible = "st,stm32mp1,pwr-reg"; 763 reg = <0x50001000 0x10>; 764 status = "disabled"; 765 766 reg11: reg11 { 767 regulator-name = "reg11"; 768 regulator-min-microvolt = <1100000>; 769 regulator-max-microvolt = <1100000>; 770 }; 771 772 reg18: reg18 { 773 regulator-name = "reg18"; 774 regulator-min-microvolt = <1800000>; 775 regulator-max-microvolt = <1800000>; 776 }; 777 778 usb33: usb33 { 779 regulator-name = "usb33"; 780 regulator-min-microvolt = <3300000>; 781 regulator-max-microvolt = <3300000>; 782 }; 783 }; 784 785 exti: interrupt-controller@5000d000 { 786 compatible = "st,stm32mp13-exti", "syscon"; 787 interrupt-controller; 788 #interrupt-cells = <2>; 789 reg = <0x5000d000 0x400>; 790 }; 791 792 syscfg: syscon@50020000 { 793 compatible = "st,stm32mp157-syscfg", "syscon"; 794 reg = <0x50020000 0x400>; 795 clocks = <&rcc SYSCFG>; 796 }; 797 798 lptimer4: timer@50023000 { 799 compatible = "st,stm32-lptimer"; 800 reg = <0x50023000 0x400>; 801 interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>; 802 clocks = <&rcc LPTIM4_K>; 803 clock-names = "mux"; 804 wakeup-source; 805 status = "disabled"; 806 807 pwm { 808 compatible = "st,stm32-pwm-lp"; 809 #pwm-cells = <3>; 810 status = "disabled"; 811 }; 812 813 timer { 814 compatible = "st,stm32-lptimer-timer"; 815 status = "disabled"; 816 }; 817 }; 818 819 lptimer5: timer@50024000 { 820 compatible = "st,stm32-lptimer"; 821 reg = <0x50024000 0x400>; 822 interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>; 823 clocks = <&rcc LPTIM5_K>; 824 clock-names = "mux"; 825 wakeup-source; 826 status = "disabled"; 827 828 pwm { 829 compatible = "st,stm32-pwm-lp"; 830 #pwm-cells = <3>; 831 status = "disabled"; 832 }; 833 834 timer { 835 compatible = "st,stm32-lptimer-timer"; 836 status = "disabled"; 837 }; 838 }; 839 840 mdma: dma-controller@58000000 { 841 compatible = "st,stm32h7-mdma"; 842 reg = <0x58000000 0x1000>; 843 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 844 clocks = <&rcc MDMA>; 845 #dma-cells = <5>; 846 dma-channels = <32>; 847 dma-requests = <48>; 848 }; 849 850 crc1: crc@58009000 { 851 compatible = "st,stm32f7-crc"; 852 reg = <0x58009000 0x400>; 853 clocks = <&rcc CRC1>; 854 status = "disabled"; 855 }; 856 857 usbh_ohci: usb@5800c000 { 858 compatible = "generic-ohci"; 859 reg = <0x5800c000 0x1000>; 860 clocks = <&usbphyc>, <&rcc USBH>; 861 resets = <&rcc USBH_R>; 862 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 863 status = "disabled"; 864 }; 865 866 usbh_ehci: usb@5800d000 { 867 compatible = "generic-ehci"; 868 reg = <0x5800d000 0x1000>; 869 clocks = <&usbphyc>, <&rcc USBH>; 870 resets = <&rcc USBH_R>; 871 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 872 companion = <&usbh_ohci>; 873 status = "disabled"; 874 }; 875 876 iwdg2: watchdog@5a002000 { 877 compatible = "st,stm32mp1-iwdg"; 878 reg = <0x5a002000 0x400>; 879 clocks = <&rcc IWDG2>, <&scmi_clk CK_SCMI_LSI>; 880 clock-names = "pclk", "lsi"; 881 status = "disabled"; 882 }; 883 884 rtc: rtc@5c004000 { 885 compatible = "st,stm32mp1-rtc"; 886 reg = <0x5c004000 0x400>; 887 interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>; 888 clocks = <&scmi_clk CK_SCMI_RTCAPB>, 889 <&scmi_clk CK_SCMI_RTC>; 890 clock-names = "pclk", "rtc_ck"; 891 status = "disabled"; 892 }; 893 894 bsec: efuse@5c005000 { 895 compatible = "st,stm32mp13-bsec"; 896 reg = <0x5c005000 0x400>; 897 #address-cells = <1>; 898 #size-cells = <1>; 899 900 part_number_otp: part_number_otp@4 { 901 reg = <0x4 0x2>; 902 bits = <0 12>; 903 }; 904 ts_cal1: calib@5c { 905 reg = <0x5c 0x2>; 906 }; 907 ts_cal2: calib@5e { 908 reg = <0x5e 0x2>; 909 }; 910 }; 911 912 etzpc: bus@5c007000 { 913 compatible = "st,stm32-etzpc", "simple-bus"; 914 reg = <0x5c007000 0x400>; 915 #address-cells = <1>; 916 #size-cells = <1>; 917 #access-controller-cells = <1>; 918 ranges; 919 920 adc_2: adc@48004000 { 921 compatible = "st,stm32mp13-adc-core"; 922 reg = <0x48004000 0x400>; 923 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 924 clocks = <&rcc ADC2>, <&rcc ADC2_K>; 925 clock-names = "bus", "adc"; 926 interrupt-controller; 927 #interrupt-cells = <1>; 928 #address-cells = <1>; 929 #size-cells = <0>; 930 access-controllers = <&etzpc 33>; 931 status = "disabled"; 932 933 adc2: adc@0 { 934 compatible = "st,stm32mp13-adc"; 935 #io-channel-cells = <1>; 936 #address-cells = <1>; 937 #size-cells = <0>; 938 reg = <0x0>; 939 interrupt-parent = <&adc_2>; 940 interrupts = <0>; 941 dmas = <&dmamux1 10 0x400 0x80000001>; 942 dma-names = "rx"; 943 status = "disabled"; 944 945 channel@13 { 946 reg = <13>; 947 label = "vrefint"; 948 }; 949 channel@14 { 950 reg = <14>; 951 label = "vddcore"; 952 }; 953 channel@16 { 954 reg = <16>; 955 label = "vddcpu"; 956 }; 957 channel@17 { 958 reg = <17>; 959 label = "vddq_ddr"; 960 }; 961 }; 962 }; 963 964 usbotg_hs: usb@49000000 { 965 compatible = "st,stm32mp15-hsotg", "snps,dwc2"; 966 reg = <0x49000000 0x40000>; 967 clocks = <&rcc USBO_K>; 968 clock-names = "otg"; 969 resets = <&rcc USBO_R>; 970 reset-names = "dwc2"; 971 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 972 g-rx-fifo-size = <512>; 973 g-np-tx-fifo-size = <32>; 974 g-tx-fifo-size = <256 16 16 16 16 16 16 16>; 975 dr_mode = "otg"; 976 otg-rev = <0x200>; 977 usb33d-supply = <&scmi_usb33>; 978 access-controllers = <&etzpc 34>; 979 status = "disabled"; 980 }; 981 982 usart1: serial@4c000000 { 983 compatible = "st,stm32h7-uart"; 984 reg = <0x4c000000 0x400>; 985 interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>; 986 clocks = <&rcc USART1_K>; 987 resets = <&rcc USART1_R>; 988 wakeup-source; 989 dmas = <&dmamux1 41 0x400 0x5>, 990 <&dmamux1 42 0x400 0x1>; 991 dma-names = "rx", "tx"; 992 access-controllers = <&etzpc 16>; 993 status = "disabled"; 994 }; 995 996 usart2: serial@4c001000 { 997 compatible = "st,stm32h7-uart"; 998 reg = <0x4c001000 0x400>; 999 interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>; 1000 clocks = <&rcc USART2_K>; 1001 resets = <&rcc USART2_R>; 1002 wakeup-source; 1003 dmas = <&dmamux1 43 0x400 0x5>, 1004 <&dmamux1 44 0x400 0x1>; 1005 dma-names = "rx", "tx"; 1006 access-controllers = <&etzpc 17>; 1007 status = "disabled"; 1008 }; 1009 1010 i2s4: audio-controller@4c002000 { 1011 compatible = "st,stm32h7-i2s"; 1012 reg = <0x4c002000 0x400>; 1013 #sound-dai-cells = <0>; 1014 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 1015 dmas = <&dmamux1 83 0x400 0x01>, 1016 <&dmamux1 84 0x400 0x01>; 1017 dma-names = "rx", "tx"; 1018 access-controllers = <&etzpc 13>; 1019 status = "disabled"; 1020 }; 1021 1022 spi4: spi@4c002000 { 1023 compatible = "st,stm32h7-spi"; 1024 reg = <0x4c002000 0x400>; 1025 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 1026 clocks = <&rcc SPI4_K>; 1027 resets = <&rcc SPI4_R>; 1028 #address-cells = <1>; 1029 #size-cells = <0>; 1030 dmas = <&dmamux1 83 0x400 0x01>, 1031 <&dmamux1 84 0x400 0x01>; 1032 dma-names = "rx", "tx"; 1033 access-controllers = <&etzpc 18>; 1034 status = "disabled"; 1035 }; 1036 1037 spi5: spi@4c003000 { 1038 compatible = "st,stm32h7-spi"; 1039 reg = <0x4c003000 0x400>; 1040 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 1041 clocks = <&rcc SPI5_K>; 1042 resets = <&rcc SPI5_R>; 1043 #address-cells = <1>; 1044 #size-cells = <0>; 1045 dmas = <&dmamux1 85 0x400 0x01>, 1046 <&dmamux1 86 0x400 0x01>; 1047 dma-names = "rx", "tx"; 1048 access-controllers = <&etzpc 19>; 1049 status = "disabled"; 1050 }; 1051 1052 i2c3: i2c@4c004000 { 1053 compatible = "st,stm32mp13-i2c"; 1054 reg = <0x4c004000 0x400>; 1055 interrupt-names = "event", "error"; 1056 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, 1057 <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 1058 clocks = <&rcc I2C3_K>; 1059 resets = <&rcc I2C3_R>; 1060 #address-cells = <1>; 1061 #size-cells = <0>; 1062 dmas = <&dmamux1 73 0x400 0x1>, 1063 <&dmamux1 74 0x400 0x1>; 1064 dma-names = "rx", "tx"; 1065 st,syscfg-fmp = <&syscfg 0x4 0x4>; 1066 i2c-analog-filter; 1067 access-controllers = <&etzpc 20>; 1068 status = "disabled"; 1069 }; 1070 1071 i2c4: i2c@4c005000 { 1072 compatible = "st,stm32mp13-i2c"; 1073 reg = <0x4c005000 0x400>; 1074 interrupt-names = "event", "error"; 1075 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>, 1076 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 1077 clocks = <&rcc I2C4_K>; 1078 resets = <&rcc I2C4_R>; 1079 #address-cells = <1>; 1080 #size-cells = <0>; 1081 dmas = <&dmamux1 75 0x400 0x1>, 1082 <&dmamux1 76 0x400 0x1>; 1083 dma-names = "rx", "tx"; 1084 st,syscfg-fmp = <&syscfg 0x4 0x8>; 1085 i2c-analog-filter; 1086 access-controllers = <&etzpc 21>; 1087 status = "disabled"; 1088 }; 1089 1090 i2c5: i2c@4c006000 { 1091 compatible = "st,stm32mp13-i2c"; 1092 reg = <0x4c006000 0x400>; 1093 interrupt-names = "event", "error"; 1094 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, 1095 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; 1096 clocks = <&rcc I2C5_K>; 1097 resets = <&rcc I2C5_R>; 1098 #address-cells = <1>; 1099 #size-cells = <0>; 1100 dmas = <&dmamux1 115 0x400 0x1>, 1101 <&dmamux1 116 0x400 0x1>; 1102 dma-names = "rx", "tx"; 1103 st,syscfg-fmp = <&syscfg 0x4 0x10>; 1104 i2c-analog-filter; 1105 access-controllers = <&etzpc 22>; 1106 status = "disabled"; 1107 }; 1108 1109 timers12: timer@4c007000 { 1110 #address-cells = <1>; 1111 #size-cells = <0>; 1112 compatible = "st,stm32-timers"; 1113 reg = <0x4c007000 0x400>; 1114 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 1115 interrupt-names = "global"; 1116 clocks = <&rcc TIM12_K>; 1117 clock-names = "int"; 1118 access-controllers = <&etzpc 23>; 1119 status = "disabled"; 1120 1121 pwm { 1122 compatible = "st,stm32-pwm"; 1123 #pwm-cells = <3>; 1124 status = "disabled"; 1125 }; 1126 1127 timer@11 { 1128 compatible = "st,stm32h7-timer-trigger"; 1129 reg = <11>; 1130 status = "disabled"; 1131 }; 1132 }; 1133 1134 timers13: timer@4c008000 { 1135 #address-cells = <1>; 1136 #size-cells = <0>; 1137 compatible = "st,stm32-timers"; 1138 reg = <0x4c008000 0x400>; 1139 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 1140 interrupt-names = "global"; 1141 clocks = <&rcc TIM13_K>; 1142 clock-names = "int"; 1143 access-controllers = <&etzpc 24>; 1144 status = "disabled"; 1145 1146 pwm { 1147 compatible = "st,stm32-pwm"; 1148 #pwm-cells = <3>; 1149 status = "disabled"; 1150 }; 1151 1152 timer@12 { 1153 compatible = "st,stm32h7-timer-trigger"; 1154 reg = <12>; 1155 status = "disabled"; 1156 }; 1157 }; 1158 1159 timers14: timer@4c009000 { 1160 #address-cells = <1>; 1161 #size-cells = <0>; 1162 compatible = "st,stm32-timers"; 1163 reg = <0x4c009000 0x400>; 1164 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 1165 interrupt-names = "global"; 1166 clocks = <&rcc TIM14_K>; 1167 clock-names = "int"; 1168 access-controllers = <&etzpc 25>; 1169 status = "disabled"; 1170 1171 pwm { 1172 compatible = "st,stm32-pwm"; 1173 #pwm-cells = <3>; 1174 status = "disabled"; 1175 }; 1176 1177 timer@13 { 1178 compatible = "st,stm32h7-timer-trigger"; 1179 reg = <13>; 1180 status = "disabled"; 1181 }; 1182 }; 1183 1184 timers15: timer@4c00a000 { 1185 #address-cells = <1>; 1186 #size-cells = <0>; 1187 compatible = "st,stm32-timers"; 1188 reg = <0x4c00a000 0x400>; 1189 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 1190 interrupt-names = "global"; 1191 clocks = <&rcc TIM15_K>; 1192 clock-names = "int"; 1193 dmas = <&dmamux1 105 0x400 0x1>, 1194 <&dmamux1 106 0x400 0x1>, 1195 <&dmamux1 107 0x400 0x1>, 1196 <&dmamux1 108 0x400 0x1>; 1197 dma-names = "ch1", "up", "trig", "com"; 1198 access-controllers = <&etzpc 26>; 1199 status = "disabled"; 1200 1201 pwm { 1202 compatible = "st,stm32-pwm"; 1203 #pwm-cells = <3>; 1204 status = "disabled"; 1205 }; 1206 1207 timer@14 { 1208 compatible = "st,stm32h7-timer-trigger"; 1209 reg = <14>; 1210 status = "disabled"; 1211 }; 1212 }; 1213 1214 timers16: timer@4c00b000 { 1215 #address-cells = <1>; 1216 #size-cells = <0>; 1217 compatible = "st,stm32-timers"; 1218 reg = <0x4c00b000 0x400>; 1219 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 1220 interrupt-names = "global"; 1221 clocks = <&rcc TIM16_K>; 1222 clock-names = "int"; 1223 dmas = <&dmamux1 109 0x400 0x1>, 1224 <&dmamux1 110 0x400 0x1>; 1225 dma-names = "ch1", "up"; 1226 access-controllers = <&etzpc 27>; 1227 status = "disabled"; 1228 1229 pwm { 1230 compatible = "st,stm32-pwm"; 1231 #pwm-cells = <3>; 1232 status = "disabled"; 1233 }; 1234 1235 timer@15 { 1236 compatible = "st,stm32h7-timer-trigger"; 1237 reg = <15>; 1238 status = "disabled"; 1239 }; 1240 }; 1241 1242 timers17: timer@4c00c000 { 1243 #address-cells = <1>; 1244 #size-cells = <0>; 1245 compatible = "st,stm32-timers"; 1246 reg = <0x4c00c000 0x400>; 1247 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 1248 interrupt-names = "global"; 1249 clocks = <&rcc TIM17_K>; 1250 clock-names = "int"; 1251 dmas = <&dmamux1 111 0x400 0x1>, 1252 <&dmamux1 112 0x400 0x1>; 1253 dma-names = "ch1", "up"; 1254 access-controllers = <&etzpc 28>; 1255 status = "disabled"; 1256 1257 pwm { 1258 compatible = "st,stm32-pwm"; 1259 #pwm-cells = <3>; 1260 status = "disabled"; 1261 }; 1262 1263 timer@16 { 1264 compatible = "st,stm32h7-timer-trigger"; 1265 reg = <16>; 1266 status = "disabled"; 1267 }; 1268 }; 1269 1270 lptimer2: timer@50021000 { 1271 #address-cells = <1>; 1272 #size-cells = <0>; 1273 compatible = "st,stm32-lptimer"; 1274 reg = <0x50021000 0x400>; 1275 interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>; 1276 clocks = <&rcc LPTIM2_K>; 1277 clock-names = "mux"; 1278 wakeup-source; 1279 access-controllers = <&etzpc 1>; 1280 status = "disabled"; 1281 1282 pwm { 1283 compatible = "st,stm32-pwm-lp"; 1284 #pwm-cells = <3>; 1285 status = "disabled"; 1286 }; 1287 1288 trigger@1 { 1289 compatible = "st,stm32-lptimer-trigger"; 1290 reg = <1>; 1291 status = "disabled"; 1292 }; 1293 1294 counter { 1295 compatible = "st,stm32-lptimer-counter"; 1296 status = "disabled"; 1297 }; 1298 1299 timer { 1300 compatible = "st,stm32-lptimer-timer"; 1301 status = "disabled"; 1302 }; 1303 }; 1304 1305 lptimer3: timer@50022000 { 1306 #address-cells = <1>; 1307 #size-cells = <0>; 1308 compatible = "st,stm32-lptimer"; 1309 reg = <0x50022000 0x400>; 1310 interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>; 1311 clocks = <&rcc LPTIM3_K>; 1312 clock-names = "mux"; 1313 wakeup-source; 1314 access-controllers = <&etzpc 2>; 1315 status = "disabled"; 1316 1317 pwm { 1318 compatible = "st,stm32-pwm-lp"; 1319 #pwm-cells = <3>; 1320 status = "disabled"; 1321 }; 1322 1323 trigger@2 { 1324 compatible = "st,stm32-lptimer-trigger"; 1325 reg = <2>; 1326 status = "disabled"; 1327 }; 1328 1329 timer { 1330 compatible = "st,stm32-lptimer-timer"; 1331 status = "disabled"; 1332 }; 1333 }; 1334 1335 hash: hash@54003000 { 1336 compatible = "st,stm32mp13-hash"; 1337 reg = <0x54003000 0x400>; 1338 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 1339 clocks = <&rcc HASH1>; 1340 resets = <&rcc HASH1_R>; 1341 dmas = <&mdma 30 0x2 0x1000a02 0x0 0x0>; 1342 dma-names = "in"; 1343 access-controllers = <&etzpc 41>; 1344 status = "disabled"; 1345 }; 1346 1347 rng: rng@54004000 { 1348 compatible = "st,stm32mp13-rng"; 1349 reg = <0x54004000 0x400>; 1350 clocks = <&rcc RNG1_K>; 1351 resets = <&rcc RNG1_R>; 1352 access-controllers = <&etzpc 40>; 1353 status = "disabled"; 1354 }; 1355 1356 fmc: memory-controller@58002000 { 1357 compatible = "st,stm32mp1-fmc2-ebi"; 1358 reg = <0x58002000 0x1000>; 1359 ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */ 1360 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */ 1361 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */ 1362 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */ 1363 <4 0 0x80000000 0x10000000>; /* NAND */ 1364 #address-cells = <2>; 1365 #size-cells = <1>; 1366 clocks = <&rcc FMC_K>; 1367 resets = <&rcc FMC_R>; 1368 access-controllers = <&etzpc 54>; 1369 status = "disabled"; 1370 1371 nand-controller@4,0 { 1372 compatible = "st,stm32mp1-fmc2-nfc"; 1373 reg = <4 0x00000000 0x1000>, 1374 <4 0x08010000 0x1000>, 1375 <4 0x08020000 0x1000>, 1376 <4 0x01000000 0x1000>, 1377 <4 0x09010000 0x1000>, 1378 <4 0x09020000 0x1000>; 1379 #address-cells = <1>; 1380 #size-cells = <0>; 1381 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 1382 dmas = <&mdma 24 0x2 0x12000a02 0x0 0x0>, 1383 <&mdma 24 0x2 0x12000a08 0x0 0x0>, 1384 <&mdma 25 0x2 0x12000a0a 0x0 0x0>; 1385 dma-names = "tx", "rx", "ecc"; 1386 status = "disabled"; 1387 }; 1388 }; 1389 1390 qspi: spi@58003000 { 1391 compatible = "st,stm32f469-qspi"; 1392 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>; 1393 reg-names = "qspi", "qspi_mm"; 1394 #address-cells = <1>; 1395 #size-cells = <0>; 1396 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 1397 dmas = <&mdma 26 0x2 0x10100002 0x0 0x0>, 1398 <&mdma 26 0x2 0x10100008 0x0 0x0>; 1399 dma-names = "tx", "rx"; 1400 clocks = <&rcc QSPI_K>; 1401 resets = <&rcc QSPI_R>; 1402 access-controllers = <&etzpc 55>; 1403 status = "disabled"; 1404 }; 1405 1406 sdmmc1: mmc@58005000 { 1407 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell"; 1408 arm,primecell-periphid = <0x20253180>; 1409 reg = <0x58005000 0x1000>, <0x58006000 0x1000>; 1410 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 1411 clocks = <&rcc SDMMC1_K>; 1412 clock-names = "apb_pclk"; 1413 resets = <&rcc SDMMC1_R>; 1414 cap-sd-highspeed; 1415 cap-mmc-highspeed; 1416 max-frequency = <130000000>; 1417 access-controllers = <&etzpc 50>; 1418 status = "disabled"; 1419 }; 1420 1421 sdmmc2: mmc@58007000 { 1422 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell"; 1423 arm,primecell-periphid = <0x20253180>; 1424 reg = <0x58007000 0x1000>, <0x58008000 0x1000>; 1425 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1426 clocks = <&rcc SDMMC2_K>; 1427 clock-names = "apb_pclk"; 1428 resets = <&rcc SDMMC2_R>; 1429 cap-sd-highspeed; 1430 cap-mmc-highspeed; 1431 max-frequency = <130000000>; 1432 access-controllers = <&etzpc 51>; 1433 status = "disabled"; 1434 }; 1435 1436 usbphyc: usbphyc@5a006000 { 1437 #address-cells = <1>; 1438 #size-cells = <0>; 1439 #clock-cells = <0>; 1440 compatible = "st,stm32mp1-usbphyc"; 1441 reg = <0x5a006000 0x1000>; 1442 clocks = <&rcc USBPHY_K>; 1443 resets = <&rcc USBPHY_R>; 1444 vdda1v1-supply = <&scmi_reg11>; 1445 vdda1v8-supply = <&scmi_reg18>; 1446 access-controllers = <&etzpc 5>; 1447 status = "disabled"; 1448 1449 usbphyc_port0: usb-phy@0 { 1450 #phy-cells = <0>; 1451 reg = <0>; 1452 }; 1453 1454 usbphyc_port1: usb-phy@1 { 1455 #phy-cells = <1>; 1456 reg = <1>; 1457 }; 1458 }; 1459 }; 1460 1461 /* 1462 * Break node order to solve dependency probe issue between 1463 * pinctrl and exti. 1464 */ 1465 pinctrl: pinctrl@50002000 { 1466 #address-cells = <1>; 1467 #size-cells = <1>; 1468 compatible = "st,stm32mp135-pinctrl"; 1469 ranges = <0 0x50002000 0x8400>; 1470 interrupt-parent = <&exti>; 1471 st,syscfg = <&exti 0x60 0xff>; 1472 1473 gpioa: gpio@50002000 { 1474 gpio-controller; 1475 #gpio-cells = <2>; 1476 interrupt-controller; 1477 #interrupt-cells = <2>; 1478 reg = <0x0 0x400>; 1479 clocks = <&rcc GPIOA>; 1480 st,bank-name = "GPIOA"; 1481 ngpios = <16>; 1482 gpio-ranges = <&pinctrl 0 0 16>; 1483 }; 1484 1485 gpiob: gpio@50003000 { 1486 gpio-controller; 1487 #gpio-cells = <2>; 1488 interrupt-controller; 1489 #interrupt-cells = <2>; 1490 reg = <0x1000 0x400>; 1491 clocks = <&rcc GPIOB>; 1492 st,bank-name = "GPIOB"; 1493 ngpios = <16>; 1494 gpio-ranges = <&pinctrl 0 16 16>; 1495 }; 1496 1497 gpioc: gpio@50004000 { 1498 gpio-controller; 1499 #gpio-cells = <2>; 1500 interrupt-controller; 1501 #interrupt-cells = <2>; 1502 reg = <0x2000 0x400>; 1503 clocks = <&rcc GPIOC>; 1504 st,bank-name = "GPIOC"; 1505 ngpios = <16>; 1506 gpio-ranges = <&pinctrl 0 32 16>; 1507 }; 1508 1509 gpiod: gpio@50005000 { 1510 gpio-controller; 1511 #gpio-cells = <2>; 1512 interrupt-controller; 1513 #interrupt-cells = <2>; 1514 reg = <0x3000 0x400>; 1515 clocks = <&rcc GPIOD>; 1516 st,bank-name = "GPIOD"; 1517 ngpios = <16>; 1518 gpio-ranges = <&pinctrl 0 48 16>; 1519 }; 1520 1521 gpioe: gpio@50006000 { 1522 gpio-controller; 1523 #gpio-cells = <2>; 1524 interrupt-controller; 1525 #interrupt-cells = <2>; 1526 reg = <0x4000 0x400>; 1527 clocks = <&rcc GPIOE>; 1528 st,bank-name = "GPIOE"; 1529 ngpios = <16>; 1530 gpio-ranges = <&pinctrl 0 64 16>; 1531 }; 1532 1533 gpiof: gpio@50007000 { 1534 gpio-controller; 1535 #gpio-cells = <2>; 1536 interrupt-controller; 1537 #interrupt-cells = <2>; 1538 reg = <0x5000 0x400>; 1539 clocks = <&rcc GPIOF>; 1540 st,bank-name = "GPIOF"; 1541 ngpios = <16>; 1542 gpio-ranges = <&pinctrl 0 80 16>; 1543 }; 1544 1545 gpiog: gpio@50008000 { 1546 gpio-controller; 1547 #gpio-cells = <2>; 1548 interrupt-controller; 1549 #interrupt-cells = <2>; 1550 reg = <0x6000 0x400>; 1551 clocks = <&rcc GPIOG>; 1552 st,bank-name = "GPIOG"; 1553 ngpios = <16>; 1554 gpio-ranges = <&pinctrl 0 96 16>; 1555 }; 1556 1557 gpioh: gpio@50009000 { 1558 gpio-controller; 1559 #gpio-cells = <2>; 1560 interrupt-controller; 1561 #interrupt-cells = <2>; 1562 reg = <0x7000 0x400>; 1563 clocks = <&rcc GPIOH>; 1564 st,bank-name = "GPIOH"; 1565 ngpios = <15>; 1566 gpio-ranges = <&pinctrl 0 112 15>; 1567 }; 1568 1569 gpioi: gpio@5000a000 { 1570 gpio-controller; 1571 #gpio-cells = <2>; 1572 interrupt-controller; 1573 #interrupt-cells = <2>; 1574 reg = <0x8000 0x400>; 1575 clocks = <&rcc GPIOI>; 1576 st,bank-name = "GPIOI"; 1577 ngpios = <8>; 1578 gpio-ranges = <&pinctrl 0 128 8>; 1579 }; 1580 }; 1581 }; 1582}; 1583