1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2/* 3 * Copyright (C) STMicroelectronics 2021-2022 - All Rights Reserved 4 * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics. 5 */ 6 7#include <dt-bindings/clock/stm32mp13-clks.h> 8#include <dt-bindings/clock/stm32mp13-clksrc.h> 9#include <dt-bindings/interrupt-controller/arm-gic.h> 10#include <dt-bindings/reset/stm32mp13-resets.h> 11 12/ { 13 #address-cells = <1>; 14 #size-cells = <1>; 15 16 cpus { 17 #address-cells = <1>; 18 #size-cells = <0>; 19 20 cpu0: cpu@0 { 21 compatible = "arm,cortex-a7"; 22 device_type = "cpu"; 23 reg = <0>; 24 }; 25 }; 26 27 intc: interrupt-controller@a0021000 { 28 compatible = "arm,cortex-a7-gic"; 29 #interrupt-cells = <3>; 30 interrupt-controller; 31 reg = <0xa0021000 0x1000>, 32 <0xa0022000 0x2000>; 33 }; 34 35 psci { 36 compatible = "arm,psci-1.0"; 37 method = "smc"; 38 }; 39 40 clocks { 41 clk_hse: clk-hse { 42 #clock-cells = <0>; 43 compatible = "fixed-clock"; 44 clock-frequency = <24000000>; 45 }; 46 47 clk_hsi: clk-hsi { 48 #clock-cells = <0>; 49 compatible = "fixed-clock"; 50 clock-frequency = <64000000>; 51 }; 52 53 clk_lse: clk-lse { 54 #clock-cells = <0>; 55 compatible = "fixed-clock"; 56 clock-frequency = <32768>; 57 }; 58 59 clk_lsi: clk-lsi { 60 #clock-cells = <0>; 61 compatible = "fixed-clock"; 62 clock-frequency = <32000>; 63 }; 64 65 clk_csi: clk-csi { 66 #clock-cells = <0>; 67 compatible = "fixed-clock"; 68 clock-frequency = <4000000>; 69 }; 70 71 clk_i2sin: clk-i2sin { 72 #clock-cells = <0>; 73 compatible = "fixed-clock"; 74 clock-frequency = <19000000>; 75 }; 76 77 }; 78 79 soc { 80 compatible = "simple-bus"; 81 #address-cells = <1>; 82 #size-cells = <1>; 83 interrupt-parent = <&intc>; 84 ranges; 85 86 usart3: serial@4000f000 { 87 compatible = "st,stm32h7-uart"; 88 reg = <0x4000f000 0x400>; 89 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 90 status = "disabled"; 91 }; 92 93 uart4: serial@40010000 { 94 compatible = "st,stm32h7-uart"; 95 reg = <0x40010000 0x400>; 96 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 97 clocks = <&rcc UART4_K>; 98 status = "disabled"; 99 }; 100 101 uart5: serial@40011000 { 102 compatible = "st,stm32h7-uart"; 103 reg = <0x40011000 0x400>; 104 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 105 status = "disabled"; 106 }; 107 108 uart7: serial@40018000 { 109 compatible = "st,stm32h7-uart"; 110 reg = <0x40018000 0x400>; 111 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 112 status = "disabled"; 113 }; 114 115 uart8: serial@40019000 { 116 compatible = "st,stm32h7-uart"; 117 reg = <0x40019000 0x400>; 118 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 119 status = "disabled"; 120 }; 121 122 usart6: serial@44003000 { 123 compatible = "st,stm32h7-uart"; 124 reg = <0x44003000 0x400>; 125 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 126 status = "disabled"; 127 }; 128 129 usart1: serial@4c000000 { 130 compatible = "st,stm32h7-uart"; 131 reg = <0x4c000000 0x400>; 132 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 133 status = "disabled"; 134 }; 135 136 usart2: serial@4c001000 { 137 compatible = "st,stm32h7-uart"; 138 reg = <0x4c001000 0x400>; 139 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 140 status = "disabled"; 141 }; 142 143 i2c3: i2c@4c004000 { 144 compatible = "st,stm32mp13-i2c"; 145 reg = <0x4c004000 0x400>; 146 #address-cells = <1>; 147 #size-cells = <0>; 148 st,syscfg-fmp = <&syscfg 0x4 0x4>; 149 i2c-analog-filter; 150 status = "disabled"; 151 }; 152 153 i2c4: i2c@4c005000 { 154 compatible = "st,stm32mp13-i2c"; 155 reg = <0x4c005000 0x400>; 156 #address-cells = <1>; 157 #size-cells = <0>; 158 st,syscfg-fmp = <&syscfg 0x4 0x8>; 159 i2c-analog-filter; 160 status = "disabled"; 161 }; 162 163 i2c5: i2c@4c006000 { 164 compatible = "st,stm32mp13-i2c"; 165 reg = <0x4c006000 0x400>; 166 #address-cells = <1>; 167 #size-cells = <0>; 168 st,syscfg-fmp = <&syscfg 0x4 0x10>; 169 i2c-analog-filter; 170 status = "disabled"; 171 }; 172 173 rcc: rcc@50000000 { 174 compatible = "st,stm32mp13-rcc", "syscon"; 175 reg = <0x50000000 0x1000>; 176 #address-cells = <1>; 177 #size-cells = <0>; 178 #clock-cells = <1>; 179 #reset-cells = <1>; 180 clocks = <&clk_hse>, <&clk_hsi>, <&clk_lse>, <&clk_lsi>, <&clk_csi>, <&clk_i2sin>; 181 clock-names = "clk-hse", "clk-hsi", "clk-lse", "clk-lsi", "clk-csi", "clk-i2sin"; 182 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 183 secure-interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 184 secure-interrupt-names = "wakeup"; 185 }; 186 187 syscfg: syscon@50020000 { 188 compatible = "st,stm32mp157-syscfg", "syscon"; 189 reg = <0x50020000 0x400>; 190 }; 191 192 rng: rng@54004000 { 193 compatible = "st,stm32mp13-rng"; 194 reg = <0x54004000 0x400>; 195 clocks = <&rcc RNG1_K>; 196 status = "disabled"; 197 }; 198 199 bsec: efuse@5c005000 { 200 compatible = "st,stm32mp13-bsec"; 201 reg = <0x5c005000 0x400>; 202 #address-cells = <1>; 203 #size-cells = <1>; 204 205 cfg0_otp: cfg0_otp@0 { 206 reg = <0x0 0x2>; 207 }; 208 part_number_otp: part_number_otp@4 { 209 reg = <0x4 0x2>; 210 }; 211 monotonic_otp: monotonic_otp@10 { 212 reg = <0x10 0x4>; 213 }; 214 nand_otp: cfg9_otp@24 { 215 reg = <0x24 0x4>; 216 }; 217 uid_otp: uid_otp@34 { 218 reg = <0x34 0xc>; 219 }; 220 hw2_otp: hw2_otp@48 { 221 reg = <0x48 0x4>; 222 }; 223 ts_cal1: calib@5c { 224 reg = <0x5c 0x2>; 225 }; 226 ts_cal2: calib@5e { 227 reg = <0x5e 0x2>; 228 }; 229 pkh_otp: pkh_otp@60 { 230 reg = <0x60 0x20>; 231 }; 232 ethernet_mac1_address: mac1@e4 { 233 reg = <0xe4 0xc>; 234 st,non-secure-otp; 235 }; 236 oem_enc_key: oem_enc_key@170 { 237 reg = <0x170 0x10>; 238 }; 239 }; 240 241 tzc400: tzc@5c006000 { 242 compatible = "st,stm32mp1-tzc"; 243 reg = <0x5c006000 0x1000>; 244 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 245 st,mem-map = <0xc0000000 0x40000000>; 246 clocks = <&rcc TZC>; 247 }; 248 249 etzpc: etzpc@5c007000 { 250 compatible = "st,stm32-etzpc"; 251 reg = <0x5C007000 0x400>; 252 }; 253 254 stgen: stgen@5c008000 { 255 compatible = "st,stm32-stgen"; 256 reg = <0x5C008000 0x1000>; 257 }; 258 259 pinctrl: pin-controller@50002000 { 260 #address-cells = <1>; 261 #size-cells = <1>; 262 compatible = "st,stm32mp135-pinctrl"; 263 ranges = <0 0x50002000 0x8400>; 264 pins-are-numbered; 265 266 gpioa: gpio@50002000 { 267 gpio-controller; 268 #gpio-cells = <2>; 269 interrupt-controller; 270 #interrupt-cells = <2>; 271 clocks = <&rcc GPIOA>; 272 reg = <0x0 0x400>; 273 st,bank-name = "GPIOA"; 274 ngpios = <16>; 275 gpio-ranges = <&pinctrl 0 0 16>; 276 }; 277 278 gpiob: gpio@50003000 { 279 gpio-controller; 280 #gpio-cells = <2>; 281 interrupt-controller; 282 #interrupt-cells = <2>; 283 clocks = <&rcc GPIOB>; 284 reg = <0x1000 0x400>; 285 st,bank-name = "GPIOB"; 286 ngpios = <16>; 287 gpio-ranges = <&pinctrl 0 16 16>; 288 }; 289 290 gpioc: gpio@50004000 { 291 gpio-controller; 292 #gpio-cells = <2>; 293 interrupt-controller; 294 #interrupt-cells = <2>; 295 clocks = <&rcc GPIOC>; 296 reg = <0x2000 0x400>; 297 st,bank-name = "GPIOC"; 298 ngpios = <16>; 299 gpio-ranges = <&pinctrl 0 32 16>; 300 }; 301 302 gpiod: gpio@50005000 { 303 gpio-controller; 304 #gpio-cells = <2>; 305 interrupt-controller; 306 #interrupt-cells = <2>; 307 clocks = <&rcc GPIOD>; 308 reg = <0x3000 0x400>; 309 st,bank-name = "GPIOD"; 310 ngpios = <16>; 311 gpio-ranges = <&pinctrl 0 48 16>; 312 }; 313 314 gpioe: gpio@50006000 { 315 gpio-controller; 316 #gpio-cells = <2>; 317 interrupt-controller; 318 #interrupt-cells = <2>; 319 clocks = <&rcc GPIOE>; 320 reg = <0x4000 0x400>; 321 st,bank-name = "GPIOE"; 322 ngpios = <16>; 323 gpio-ranges = <&pinctrl 0 64 16>; 324 }; 325 326 gpiof: gpio@50007000 { 327 gpio-controller; 328 #gpio-cells = <2>; 329 interrupt-controller; 330 #interrupt-cells = <2>; 331 clocks = <&rcc GPIOF>; 332 reg = <0x5000 0x400>; 333 st,bank-name = "GPIOF"; 334 ngpios = <16>; 335 gpio-ranges = <&pinctrl 0 80 16>; 336 }; 337 338 gpiog: gpio@50008000 { 339 gpio-controller; 340 #gpio-cells = <2>; 341 interrupt-controller; 342 #interrupt-cells = <2>; 343 clocks = <&rcc GPIOG>; 344 reg = <0x6000 0x400>; 345 st,bank-name = "GPIOG"; 346 ngpios = <16>; 347 gpio-ranges = <&pinctrl 0 96 16>; 348 }; 349 350 gpioh: gpio@50009000 { 351 gpio-controller; 352 #gpio-cells = <2>; 353 interrupt-controller; 354 #interrupt-cells = <2>; 355 clocks = <&rcc GPIOH>; 356 reg = <0x7000 0x400>; 357 st,bank-name = "GPIOH"; 358 ngpios = <15>; 359 gpio-ranges = <&pinctrl 0 112 15>; 360 }; 361 362 gpioi: gpio@5000a000 { 363 gpio-controller; 364 #gpio-cells = <2>; 365 interrupt-controller; 366 #interrupt-cells = <2>; 367 clocks = <&rcc GPIOI>; 368 reg = <0x8000 0x400>; 369 st,bank-name = "GPIOI"; 370 ngpios = <8>; 371 gpio-ranges = <&pinctrl 0 128 8>; 372 }; 373 }; 374 }; 375}; 376