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 #dma-cells = <4>; 102 status = "disabled"; 103 }; 104 105 hpdma2: dma-controller@40410000 { 106 compatible = "st,stm32-dma3"; 107 reg = <0x40410000 0x1000>; 108 #dma-cells = <4>; 109 status = "disabled"; 110 }; 111 112 hpdma3: dma-controller@40420000 { 113 compatible = "st,stm32-dma3"; 114 reg = <0x40420000 0x1000>; 115 #dma-cells = <4>; 116 status = "disabled"; 117 }; 118 119 ipcc1: mailbox@40490000 { 120 compatible = "st,stm32mp25-ipcc"; 121 reg = <0x40490000 0x400>; 122 status = "disabled"; 123 }; 124 125 rifsc: rifsc@42080000 { 126 compatible = "st,stm32mp25-rifsc", "simple-bus"; 127 reg = <0x42080000 0x1000>; 128 #address-cells = <1>; 129 #size-cells = <1>; 130 #access-controller-cells = <1>; 131 132 usart2: serial@400e0000 { 133 compatible = "st,stm32h7-uart"; 134 reg = <0x400e0000 0x400>; 135 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; 136 clocks = <&rcc CK_KER_USART2>; 137 access-controllers = <&rifsc STM32MP25_RIFSC_USART2_ID>; 138 status = "disabled"; 139 }; 140 141 rng: rng@42020000 { 142 compatible = "st,stm32mp25-rng"; 143 reg = <0x42020000 0x400>; 144 clocks = <&clk_rcbsec>, <&rcc CK_BUS_RNG>; 145 clock-names = "rng_clk", "rng_hclk"; 146 resets = <&rcc RNG_R>; 147 access-controllers = <&rifsc STM32MP25_RIFSC_RNG_ID>; 148 }; 149 }; 150 151 iac: iac@42090000 { 152 compatible = "st,stm32mp25-iac"; 153 reg = <0x42090000 0x400>; 154 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 155 }; 156 157 risaf1: risaf@420a0000 { 158 compatible = "st,stm32mp25-risaf"; 159 reg = <0x420a0000 0x1000>; 160 clocks = <&rcc CK_BUS_BKPSRAM>; 161 st,mem-map = <0x0 0x42000000 0x0 0x2000>; 162 }; 163 164 risaf2: risaf@420b0000 { 165 compatible = "st,stm32mp25-risaf"; 166 reg = <0x420b0000 0x1000>; 167 clocks = <&rcc CK_KER_OSPI1>; 168 st,mem-map = <0x0 0x60000000 0x0 0x10000000>; 169 status = "disabled"; 170 }; 171 172 risaf4: risaf@420d0000 { 173 compatible = "st,stm32mp25-risaf-enc"; 174 reg = <0x420d0000 0x1000>; 175 clocks = <&rcc CK_BUS_RISAF4>; 176 st,mem-map = <0x0 0x80000000 0x1 0x00000000>; 177 }; 178 179 risaf5: risaf@420e0000 { 180 compatible = "st,stm32mp25-risaf"; 181 reg = <0x420e0000 0x1000>; 182 clocks = <&rcc CK_BUS_PCIE>; 183 st,mem-map = <0x0 0x10000000 0x0 0x10000000>; 184 status = "disabled"; 185 }; 186 187 risab1: risab@420f0000 { 188 compatible = "st,stm32mp25-risab"; 189 reg = <0x420f0000 0x1000>; 190 clocks = <&rcc CK_ICN_LS_MCU>; 191 st,mem-map = <0xa000000 0x20000>; 192 #access-controller-cells = <1>; 193 }; 194 195 risab2: risab@42100000 { 196 compatible = "st,stm32mp25-risab"; 197 reg = <0x42100000 0x1000>; 198 clocks = <&rcc CK_ICN_LS_MCU>; 199 st,mem-map = <0xa020000 0x20000>; 200 #access-controller-cells = <1>; 201 }; 202 203 risab3: risab@42110000 { 204 compatible = "st,stm32mp25-risab"; 205 reg = <0x42110000 0x1000>; 206 clocks = <&rcc CK_ICN_LS_MCU>; 207 st,mem-map = <0xa040000 0x20000>; 208 #access-controller-cells = <1>; 209 }; 210 211 risab4: risab@42120000 { 212 compatible = "st,stm32mp25-risab"; 213 reg = <0x42120000 0x1000>; 214 clocks = <&rcc CK_ICN_LS_MCU>; 215 st,mem-map = <0xa060000 0x20000>; 216 #access-controller-cells = <1>; 217 }; 218 219 risab5: risab@42130000 { 220 compatible = "st,stm32mp25-risab"; 221 reg = <0x42130000 0x1000>; 222 clocks = <&rcc CK_ICN_LS_MCU>; 223 st,mem-map = <0xa080000 0x20000>; 224 #access-controller-cells = <1>; 225 }; 226 227 risab6: risab@42140000 { 228 compatible = "st,stm32mp25-risab"; 229 reg = <0x42140000 0x1000>; 230 clocks = <&rcc CK_ICN_LS_MCU>; 231 st,mem-map = <0xa0a0000 0x20000>; 232 #access-controller-cells = <1>; 233 status = "disabled"; 234 }; 235 236 serc: serc@44080000 { 237 compatible = "st,stm32mp25-serc"; 238 reg = <0x44080000 0x1000>; 239 interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>; 240 clocks = <&rcc CK_BUS_SERC>; 241 }; 242 243 rcc: rcc@44200000 { 244 compatible = "st,stm32mp25-rcc", "syscon"; 245 reg = <0x44200000 0x10000>; 246 interrupts = <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>; 247 248 #clock-cells = <1>; 249 #reset-cells = <1>; 250 clocks = <&clk_hse>, <&clk_hsi>, <&clk_lse>, 251 <&clk_lsi>, <&clk_msi>, <&clk_i2sin>; 252 clock-names = "clk-hse", "clk-hsi", "clk-lse", 253 "clk-lsi", "clk-msi", "clk-i2sin"; 254 255 hsi_calibration: hsi-calibration { 256 compatible = "st,hsi-cal"; 257 st,cal_hsi_dev = <31>; 258 st,cal_hsi_ref = <1953>; 259 status = "disabled"; 260 }; 261 262 msi_calibration: msi-calibration { 263 compatible = "st,msi-cal"; 264 status = "disabled"; 265 }; 266 }; 267 268 pinctrl: pinctrl@44240000 { 269 #address-cells = <1>; 270 #size-cells = <1>; 271 compatible = "st,stm32mp257-pinctrl"; 272 ranges = <0 0x44240000 0xa0400>; 273 pins-are-numbered; 274 275 gpioa: gpio@44240000 { 276 gpio-controller; 277 #gpio-cells = <2>; 278 interrupt-controller; 279 #interrupt-cells = <2>; 280 reg = <0x0 0x400>; 281 clocks = <&rcc CK_BUS_GPIOA>; 282 st,bank-name = "GPIOA"; 283 status = "disabled"; 284 }; 285 286 gpiob: gpio@44250000 { 287 gpio-controller; 288 #gpio-cells = <2>; 289 interrupt-controller; 290 #interrupt-cells = <2>; 291 reg = <0x10000 0x400>; 292 clocks = <&rcc CK_BUS_GPIOB>; 293 st,bank-name = "GPIOB"; 294 status = "disabled"; 295 }; 296 297 gpioc: gpio@44260000 { 298 gpio-controller; 299 #gpio-cells = <2>; 300 interrupt-controller; 301 #interrupt-cells = <2>; 302 reg = <0x20000 0x400>; 303 clocks = <&rcc CK_BUS_GPIOC>; 304 st,bank-name = "GPIOC"; 305 status = "disabled"; 306 }; 307 308 gpiod: gpio@44270000 { 309 gpio-controller; 310 #gpio-cells = <2>; 311 interrupt-controller; 312 #interrupt-cells = <2>; 313 reg = <0x30000 0x400>; 314 clocks = <&rcc CK_BUS_GPIOD>; 315 st,bank-name = "GPIOD"; 316 status = "disabled"; 317 }; 318 319 gpioe: gpio@44280000 { 320 gpio-controller; 321 #gpio-cells = <2>; 322 interrupt-controller; 323 #interrupt-cells = <2>; 324 reg = <0x40000 0x400>; 325 clocks = <&rcc CK_BUS_GPIOE>; 326 st,bank-name = "GPIOE"; 327 status = "disabled"; 328 }; 329 330 gpiof: gpio@44290000 { 331 gpio-controller; 332 #gpio-cells = <2>; 333 interrupt-controller; 334 #interrupt-cells = <2>; 335 reg = <0x50000 0x400>; 336 clocks = <&rcc CK_BUS_GPIOF>; 337 st,bank-name = "GPIOF"; 338 status = "disabled"; 339 }; 340 341 gpiog: gpio@442a0000 { 342 gpio-controller; 343 #gpio-cells = <2>; 344 interrupt-controller; 345 #interrupt-cells = <2>; 346 reg = <0x60000 0x400>; 347 clocks = <&rcc CK_BUS_GPIOG>; 348 st,bank-name = "GPIOG"; 349 status = "disabled"; 350 }; 351 352 gpioh: gpio@442b0000 { 353 gpio-controller; 354 #gpio-cells = <2>; 355 interrupt-controller; 356 #interrupt-cells = <2>; 357 reg = <0x70000 0x400>; 358 clocks = <&rcc CK_BUS_GPIOH>; 359 st,bank-name = "GPIOH"; 360 status = "disabled"; 361 }; 362 363 gpioi: gpio@442c0000 { 364 gpio-controller; 365 #gpio-cells = <2>; 366 interrupt-controller; 367 #interrupt-cells = <2>; 368 reg = <0x80000 0x400>; 369 clocks = <&rcc CK_BUS_GPIOI>; 370 st,bank-name = "GPIOI"; 371 status = "disabled"; 372 }; 373 374 gpioj: gpio@442d0000 { 375 gpio-controller; 376 #gpio-cells = <2>; 377 interrupt-controller; 378 #interrupt-cells = <2>; 379 reg = <0x90000 0x400>; 380 clocks = <&rcc CK_BUS_GPIOJ>; 381 st,bank-name = "GPIOJ"; 382 status = "disabled"; 383 }; 384 385 gpiok: gpio@442e0000 { 386 gpio-controller; 387 #gpio-cells = <2>; 388 interrupt-controller; 389 #interrupt-cells = <2>; 390 reg = <0xa0000 0x400>; 391 clocks = <&rcc CK_BUS_GPIOK>; 392 st,bank-name = "GPIOK"; 393 status = "disabled"; 394 }; 395 }; 396 397 pinctrl_z: pinctrl-z@46200000 { 398 #address-cells = <1>; 399 #size-cells = <1>; 400 compatible = "st,stm32mp257-z-pinctrl"; 401 ranges = <0 0x46200000 0x400>; 402 pins-are-numbered; 403 404 gpioz: gpio@46200000 { 405 gpio-controller; 406 #gpio-cells = <2>; 407 interrupt-controller; 408 #interrupt-cells = <2>; 409 reg = <0 0x400>; 410 clocks = <&rcc CK_BUS_GPIOZ>; 411 st,bank-name = "GPIOZ"; 412 st,bank-ioport = <11>; 413 status = "disabled"; 414 }; 415 }; 416 417 hsem: hwspinlock@46240000 { 418 compatible = "st,stm32mp25-hsem"; 419 reg = <0x46240000 0x400>; 420 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>; 421 status = "disabled"; 422 }; 423 424 ipcc2: mailbox@46250000 { 425 compatible = "st,stm32mp25-ipcc"; 426 reg = <0x46250000 0x400>; 427 status = "disabled"; 428 }; 429 430 fmc: memory-controller@48200000 { 431 #address-cells = <2>; 432 #size-cells = <1>; 433 compatible = "st,stm32mp25-fmc2-ebi"; 434 reg = <0x48200000 0x400>; 435 status = "disabled"; 436 437 ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */ 438 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */ 439 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */ 440 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */ 441 <4 0 0x80000000 0x10000000>; /* NAND */ 442 }; 443 }; 444}; 445