1// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) 2/* 3 * Copyright (C) STMicroelectronics 2023 - All Rights Reserved 4 * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics. 5 */ 6 7#include <dt-bindings/clock/st,stm32mp25-rcc.h> 8#include <dt-bindings/firewall/stm32mp25-rif.h> 9#include <dt-bindings/firewall/stm32mp25-rifsc.h> 10#include <dt-bindings/firewall/stm32mp25-risaf.h> 11#include <dt-bindings/firewall/stm32mp25-risab.h> 12#include <dt-bindings/interrupt-controller/arm-gic.h> 13#include <dt-bindings/reset/st,stm32mp25-rcc.h> 14 15/ { 16 #address-cells = <2>; 17 #size-cells = <2>; 18 19 cpus { 20 #address-cells = <1>; 21 #size-cells = <0>; 22 23 cpu0: cpu@0 { 24 compatible = "arm,cortex-a35"; 25 device_type = "cpu"; 26 reg = <0>; 27 enable-method = "psci"; 28 }; 29 }; 30 31 psci { 32 compatible = "arm,psci-1.0"; 33 method = "smc"; 34 }; 35 36 intc: interrupt-controller@4ac00000 { 37 compatible = "arm,cortex-a7-gic"; 38 #interrupt-cells = <3>; 39 interrupt-controller; 40 reg = <0x0 0x4ac10000 0x0 0x1000>, 41 <0x0 0x4ac20000 0x0 0x2000>, 42 <0x0 0x4ac40000 0x0 0x2000>, 43 <0x0 0x4ac60000 0x0 0x2000>; 44 #address-cells = <1>; 45 }; 46 47 clocks { 48 clk_hse: clk-hse { 49 #clock-cells = <0>; 50 compatible = "fixed-clock"; 51 clock-frequency = <24000000>; 52 }; 53 54 clk_hsi: clk-hsi { 55 #clock-cells = <0>; 56 compatible = "fixed-clock"; 57 clock-frequency = <64000000>; 58 }; 59 60 clk_lse: clk-lse { 61 #clock-cells = <0>; 62 compatible = "fixed-clock"; 63 clock-frequency = <32768>; 64 }; 65 66 clk_lsi: clk-lsi { 67 #clock-cells = <0>; 68 compatible = "fixed-clock"; 69 clock-frequency = <32000>; 70 }; 71 72 clk_msi: clk-msi { 73 #clock-cells = <0>; 74 compatible = "fixed-clock"; 75 clock-frequency = <4000000>; 76 }; 77 78 clk_i2sin: clk-i2sin { 79 #clock-cells = <0>; 80 compatible = "fixed-clock"; 81 clock-frequency = <0>; 82 }; 83 84 clk_rcbsec: clk-rcbsec { 85 #clock-cells = <0>; 86 compatible = "fixed-clock"; 87 clock-frequency = <64000000>; 88 }; 89 }; 90 91 soc@0 { 92 compatible = "simple-bus"; 93 #address-cells = <1>; 94 #size-cells = <1>; 95 interrupt-parent = <&intc>; 96 ranges = <0x0 0x0 0x0 0x80000000>; 97 98 hpdma1: dma-controller@40400000 { 99 compatible = "st,stm32-dma3"; 100 reg = <0x40400000 0x1000>; 101 clocks = <&rcc CK_BUS_HPDMA1>; 102 resets = <&rcc HPDMA1_R>; 103 #dma-cells = <4>; 104 status = "disabled"; 105 }; 106 107 hpdma2: dma-controller@40410000 { 108 compatible = "st,stm32-dma3"; 109 reg = <0x40410000 0x1000>; 110 clocks = <&rcc CK_BUS_HPDMA2>; 111 resets = <&rcc HPDMA2_R>; 112 #dma-cells = <4>; 113 status = "disabled"; 114 }; 115 116 hpdma3: dma-controller@40420000 { 117 compatible = "st,stm32-dma3"; 118 reg = <0x40420000 0x1000>; 119 clocks = <&rcc CK_BUS_HPDMA3>; 120 resets = <&rcc HPDMA3_R>; 121 #dma-cells = <4>; 122 status = "disabled"; 123 }; 124 125 ipcc1: mailbox@40490000 { 126 compatible = "st,stm32mp25-ipcc"; 127 reg = <0x40490000 0x400>; 128 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 129 interrupt-names = "rx"; 130 clocks = <&rcc CK_BUS_IPCC1>; 131 status = "disabled"; 132 }; 133 134 rifsc: rifsc@42080000 { 135 compatible = "st,stm32mp25-rifsc", "simple-bus"; 136 reg = <0x42080000 0x1000>; 137 #address-cells = <1>; 138 #size-cells = <1>; 139 #access-controller-cells = <1>; 140 141 usart2: serial@400e0000 { 142 compatible = "st,stm32h7-uart"; 143 reg = <0x400e0000 0x400>; 144 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; 145 clocks = <&rcc CK_KER_USART2>; 146 access-controllers = <&rifsc STM32MP25_RIFSC_USART2_ID>; 147 status = "disabled"; 148 }; 149 150 rng: rng@42020000 { 151 compatible = "st,stm32mp25-rng"; 152 reg = <0x42020000 0x400>; 153 clocks = <&clk_rcbsec>, <&rcc CK_BUS_RNG>; 154 clock-names = "rng_clk", "rng_hclk"; 155 resets = <&rcc RNG_R>; 156 access-controllers = <&rifsc STM32MP25_RIFSC_RNG_ID>; 157 }; 158 }; 159 160 iac: iac@42090000 { 161 compatible = "st,stm32mp25-iac"; 162 reg = <0x42090000 0x400>; 163 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 164 }; 165 166 risaf1: risaf@420a0000 { 167 compatible = "st,stm32mp25-risaf"; 168 reg = <0x420a0000 0x1000>; 169 clocks = <&rcc CK_BUS_BKPSRAM>; 170 st,mem-map = <0x0 0x42000000 0x0 0x2000>; 171 #access-controller-cells = <1>; 172 }; 173 174 risaf2: risaf@420b0000 { 175 compatible = "st,stm32mp25-risaf"; 176 reg = <0x420b0000 0x1000>; 177 clocks = <&rcc CK_KER_OSPI1>; 178 st,mem-map = <0x0 0x60000000 0x0 0x10000000>; 179 #access-controller-cells = <1>; 180 status = "disabled"; 181 }; 182 183 risaf4: risaf@420d0000 { 184 compatible = "st,stm32mp25-risaf-enc"; 185 reg = <0x420d0000 0x1000>; 186 clocks = <&rcc CK_BUS_RISAF4>; 187 st,mem-map = <0x0 0x80000000 0x1 0x00000000>; 188 #access-controller-cells = <1>; 189 }; 190 191 risaf5: risaf@420e0000 { 192 compatible = "st,stm32mp25-risaf"; 193 reg = <0x420e0000 0x1000>; 194 clocks = <&rcc CK_BUS_PCIE>; 195 st,mem-map = <0x0 0x10000000 0x0 0x10000000>; 196 #access-controller-cells = <1>; 197 status = "disabled"; 198 }; 199 200 risab1: risab@420f0000 { 201 compatible = "st,stm32mp25-risab"; 202 reg = <0x420f0000 0x1000>; 203 clocks = <&rcc CK_ICN_LS_MCU>; 204 st,mem-map = <0xa000000 0x20000>; 205 #access-controller-cells = <1>; 206 }; 207 208 risab2: risab@42100000 { 209 compatible = "st,stm32mp25-risab"; 210 reg = <0x42100000 0x1000>; 211 clocks = <&rcc CK_ICN_LS_MCU>; 212 st,mem-map = <0xa020000 0x20000>; 213 #access-controller-cells = <1>; 214 }; 215 216 risab3: risab@42110000 { 217 compatible = "st,stm32mp25-risab"; 218 reg = <0x42110000 0x1000>; 219 clocks = <&rcc CK_ICN_LS_MCU>; 220 st,mem-map = <0xa040000 0x20000>; 221 #access-controller-cells = <1>; 222 }; 223 224 risab4: risab@42120000 { 225 compatible = "st,stm32mp25-risab"; 226 reg = <0x42120000 0x1000>; 227 clocks = <&rcc CK_ICN_LS_MCU>; 228 st,mem-map = <0xa060000 0x20000>; 229 #access-controller-cells = <1>; 230 }; 231 232 risab5: risab@42130000 { 233 compatible = "st,stm32mp25-risab"; 234 reg = <0x42130000 0x1000>; 235 clocks = <&rcc CK_ICN_LS_MCU>; 236 st,mem-map = <0xa080000 0x20000>; 237 #access-controller-cells = <1>; 238 }; 239 240 risab6: risab@42140000 { 241 compatible = "st,stm32mp25-risab"; 242 reg = <0x42140000 0x1000>; 243 clocks = <&rcc CK_ICN_LS_MCU>; 244 st,mem-map = <0xa0a0000 0x20000>; 245 #access-controller-cells = <1>; 246 status = "disabled"; 247 }; 248 249 serc: serc@44080000 { 250 compatible = "st,stm32mp25-serc"; 251 reg = <0x44080000 0x1000>; 252 interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>; 253 clocks = <&rcc CK_BUS_SERC>; 254 }; 255 256 rcc: rcc@44200000 { 257 compatible = "st,stm32mp25-rcc", "syscon"; 258 reg = <0x44200000 0x10000>; 259 interrupts = <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>; 260 261 #clock-cells = <1>; 262 #reset-cells = <1>; 263 clocks = <&clk_hse>, <&clk_hsi>, <&clk_lse>, 264 <&clk_lsi>, <&clk_msi>, <&clk_i2sin>; 265 clock-names = "clk-hse", "clk-hsi", "clk-lse", 266 "clk-lsi", "clk-msi", "clk-i2sin"; 267 268 hsi_calibration: hsi-calibration { 269 compatible = "st,hsi-cal"; 270 st,cal_hsi_dev = <31>; 271 st,cal_hsi_ref = <1953>; 272 status = "disabled"; 273 }; 274 275 msi_calibration: msi-calibration { 276 compatible = "st,msi-cal"; 277 status = "disabled"; 278 }; 279 }; 280 281 syscfg: syscon@44230000 { 282 reg = <0x44230000 0x10000>; 283 status = "disabled"; 284 }; 285 286 pinctrl: pinctrl@44240000 { 287 #address-cells = <1>; 288 #size-cells = <1>; 289 compatible = "st,stm32mp257-pinctrl"; 290 ranges = <0 0x44240000 0xa0400>; 291 pins-are-numbered; 292 293 gpioa: gpio@44240000 { 294 gpio-controller; 295 #gpio-cells = <2>; 296 interrupt-controller; 297 #interrupt-cells = <2>; 298 #access-controller-cells = <1>; 299 reg = <0x0 0x400>; 300 clocks = <&rcc CK_BUS_GPIOA>; 301 st,bank-name = "GPIOA"; 302 status = "disabled"; 303 }; 304 305 gpiob: gpio@44250000 { 306 gpio-controller; 307 #gpio-cells = <2>; 308 interrupt-controller; 309 #interrupt-cells = <2>; 310 #access-controller-cells = <1>; 311 reg = <0x10000 0x400>; 312 clocks = <&rcc CK_BUS_GPIOB>; 313 st,bank-name = "GPIOB"; 314 status = "disabled"; 315 }; 316 317 gpioc: gpio@44260000 { 318 gpio-controller; 319 #gpio-cells = <2>; 320 interrupt-controller; 321 #interrupt-cells = <2>; 322 #access-controller-cells = <1>; 323 reg = <0x20000 0x400>; 324 clocks = <&rcc CK_BUS_GPIOC>; 325 st,bank-name = "GPIOC"; 326 status = "disabled"; 327 }; 328 329 gpiod: gpio@44270000 { 330 gpio-controller; 331 #gpio-cells = <2>; 332 interrupt-controller; 333 #interrupt-cells = <2>; 334 #access-controller-cells = <1>; 335 reg = <0x30000 0x400>; 336 clocks = <&rcc CK_BUS_GPIOD>; 337 st,bank-name = "GPIOD"; 338 status = "disabled"; 339 }; 340 341 gpioe: gpio@44280000 { 342 gpio-controller; 343 #gpio-cells = <2>; 344 interrupt-controller; 345 #interrupt-cells = <2>; 346 #access-controller-cells = <1>; 347 reg = <0x40000 0x400>; 348 clocks = <&rcc CK_BUS_GPIOE>; 349 st,bank-name = "GPIOE"; 350 status = "disabled"; 351 }; 352 353 gpiof: gpio@44290000 { 354 gpio-controller; 355 #gpio-cells = <2>; 356 interrupt-controller; 357 #interrupt-cells = <2>; 358 #access-controller-cells = <1>; 359 reg = <0x50000 0x400>; 360 clocks = <&rcc CK_BUS_GPIOF>; 361 st,bank-name = "GPIOF"; 362 status = "disabled"; 363 }; 364 365 gpiog: gpio@442a0000 { 366 gpio-controller; 367 #gpio-cells = <2>; 368 interrupt-controller; 369 #interrupt-cells = <2>; 370 #access-controller-cells = <1>; 371 reg = <0x60000 0x400>; 372 clocks = <&rcc CK_BUS_GPIOG>; 373 st,bank-name = "GPIOG"; 374 status = "disabled"; 375 }; 376 377 gpioh: gpio@442b0000 { 378 gpio-controller; 379 #gpio-cells = <2>; 380 interrupt-controller; 381 #interrupt-cells = <2>; 382 #access-controller-cells = <1>; 383 reg = <0x70000 0x400>; 384 clocks = <&rcc CK_BUS_GPIOH>; 385 st,bank-name = "GPIOH"; 386 status = "disabled"; 387 }; 388 389 gpioi: gpio@442c0000 { 390 gpio-controller; 391 #gpio-cells = <2>; 392 interrupt-controller; 393 #interrupt-cells = <2>; 394 #access-controller-cells = <1>; 395 reg = <0x80000 0x400>; 396 clocks = <&rcc CK_BUS_GPIOI>; 397 st,bank-name = "GPIOI"; 398 status = "disabled"; 399 }; 400 401 gpioj: gpio@442d0000 { 402 gpio-controller; 403 #gpio-cells = <2>; 404 interrupt-controller; 405 #interrupt-cells = <2>; 406 #access-controller-cells = <1>; 407 reg = <0x90000 0x400>; 408 clocks = <&rcc CK_BUS_GPIOJ>; 409 st,bank-name = "GPIOJ"; 410 status = "disabled"; 411 }; 412 413 gpiok: gpio@442e0000 { 414 gpio-controller; 415 #gpio-cells = <2>; 416 interrupt-controller; 417 #interrupt-cells = <2>; 418 #access-controller-cells = <1>; 419 reg = <0xa0000 0x400>; 420 clocks = <&rcc CK_BUS_GPIOK>; 421 st,bank-name = "GPIOK"; 422 status = "disabled"; 423 }; 424 }; 425 426 rtc: rtc@46000000 { 427 compatible = "st,stm32mp25-rtc"; 428 reg = <0x46000000 0x400>; 429 clocks = <&rcc CK_BUS_RTC>, <&rcc RTC_CK>; 430 clock-names = "pclk", "rtc_ck"; 431 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 432 }; 433 434 tamp: tamp@46010000 { 435 compatible = "st,stm32mp25-tamp"; 436 reg = <0x46010000 0x400>; 437 clocks = <&rcc CK_BUS_RTC>; 438 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 439 #address-cells = <1>; 440 #size-cells = <1>; 441 ranges; 442 st,backup-zones = <24 24 24 24 12 12 8>; 443 }; 444 445 pinctrl_z: pinctrl-z@46200000 { 446 #address-cells = <1>; 447 #size-cells = <1>; 448 compatible = "st,stm32mp257-z-pinctrl"; 449 ranges = <0 0x46200000 0x400>; 450 pins-are-numbered; 451 452 gpioz: gpio@46200000 { 453 gpio-controller; 454 #gpio-cells = <2>; 455 interrupt-controller; 456 #interrupt-cells = <2>; 457 #access-controller-cells = <1>; 458 reg = <0 0x400>; 459 clocks = <&rcc CK_BUS_GPIOZ>; 460 st,bank-name = "GPIOZ"; 461 st,bank-ioport = <11>; 462 status = "disabled"; 463 }; 464 }; 465 466 hsem: hwspinlock@46240000 { 467 compatible = "st,stm32mp25-hsem"; 468 reg = <0x46240000 0x400>; 469 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>; 470 clocks = <&rcc CK_BUS_HSEM>; 471 status = "disabled"; 472 }; 473 474 ipcc2: mailbox@46250000 { 475 compatible = "st,stm32mp25-ipcc"; 476 reg = <0x46250000 0x400>; 477 clocks = <&rcc CK_BUS_IPCC2>; 478 status = "disabled"; 479 }; 480 481 stgenc: stgen@48080000 { 482 compatible = "st,stm32mp25-stgen"; 483 reg = <0x48080000 0x1000>; 484 clocks = <&rcc CK_BUS_STGEN>, <&rcc CK_KER_STGEN>; 485 clock-names = "bus", "stgen_clk"; 486 }; 487 488 fmc: memory-controller@48200000 { 489 #address-cells = <2>; 490 #size-cells = <1>; 491 compatible = "st,stm32mp25-fmc2-ebi"; 492 reg = <0x48200000 0x400>; 493 clocks = <&rcc CK_KER_FMC>; 494 resets = <&rcc FMC_R>; 495 status = "disabled"; 496 497 ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */ 498 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */ 499 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */ 500 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */ 501 <4 0 0x80000000 0x10000000>; /* NAND */ 502 }; 503 }; 504}; 505