1*bf4f90bfSNicolas Le Bayon// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) 2*bf4f90bfSNicolas Le Bayon/* 3*bf4f90bfSNicolas Le Bayon * Copyright (C) 2026, STMicroelectronics - All Rights Reserved 4*bf4f90bfSNicolas Le Bayon * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics. 5*bf4f90bfSNicolas Le Bayon */ 6*bf4f90bfSNicolas Le Bayon 7*bf4f90bfSNicolas Le Bayon#include <dt-bindings/clock/stm32mp25-clks.h> 8*bf4f90bfSNicolas Le Bayon#include <dt-bindings/interrupt-controller/arm-gic.h> 9*bf4f90bfSNicolas Le Bayon#include <dt-bindings/reset/stm32mp25-resets.h> 10*bf4f90bfSNicolas Le Bayon 11*bf4f90bfSNicolas Le Bayon/ { 12*bf4f90bfSNicolas Le Bayon #address-cells = <2>; 13*bf4f90bfSNicolas Le Bayon #size-cells = <2>; 14*bf4f90bfSNicolas Le Bayon 15*bf4f90bfSNicolas Le Bayon cpus { 16*bf4f90bfSNicolas Le Bayon #address-cells = <1>; 17*bf4f90bfSNicolas Le Bayon #size-cells = <0>; 18*bf4f90bfSNicolas Le Bayon 19*bf4f90bfSNicolas Le Bayon cpu0: cpu@0 { 20*bf4f90bfSNicolas Le Bayon compatible = "arm,cortex-a35"; 21*bf4f90bfSNicolas Le Bayon device_type = "cpu"; 22*bf4f90bfSNicolas Le Bayon reg = <0>; 23*bf4f90bfSNicolas Le Bayon enable-method = "psci"; 24*bf4f90bfSNicolas Le Bayon }; 25*bf4f90bfSNicolas Le Bayon 26*bf4f90bfSNicolas Le Bayon domain-idle-states { 27*bf4f90bfSNicolas Le Bayon domain-stop1 { 28*bf4f90bfSNicolas Le Bayon compatible = "domain-idle-state"; 29*bf4f90bfSNicolas Le Bayon arm,psci-suspend-param = <0x00000011>; 30*bf4f90bfSNicolas Le Bayon }; 31*bf4f90bfSNicolas Le Bayon 32*bf4f90bfSNicolas Le Bayon domain-lp-stop1 { 33*bf4f90bfSNicolas Le Bayon compatible = "domain-idle-state"; 34*bf4f90bfSNicolas Le Bayon arm,psci-suspend-param = <0x00000021>; 35*bf4f90bfSNicolas Le Bayon }; 36*bf4f90bfSNicolas Le Bayon 37*bf4f90bfSNicolas Le Bayon domain-lplv-stop1 { 38*bf4f90bfSNicolas Le Bayon compatible = "domain-idle-state"; 39*bf4f90bfSNicolas Le Bayon arm,psci-suspend-param = <0x00000211>; 40*bf4f90bfSNicolas Le Bayon }; 41*bf4f90bfSNicolas Le Bayon 42*bf4f90bfSNicolas Le Bayon domain-stop2 { 43*bf4f90bfSNicolas Le Bayon compatible = "domain-idle-state"; 44*bf4f90bfSNicolas Le Bayon arm,psci-suspend-param = <0x40001333>; 45*bf4f90bfSNicolas Le Bayon }; 46*bf4f90bfSNicolas Le Bayon 47*bf4f90bfSNicolas Le Bayon domain-lp-stop2 { 48*bf4f90bfSNicolas Le Bayon compatible = "domain-idle-state"; 49*bf4f90bfSNicolas Le Bayon arm,psci-suspend-param = <0x40002333>; 50*bf4f90bfSNicolas Le Bayon }; 51*bf4f90bfSNicolas Le Bayon 52*bf4f90bfSNicolas Le Bayon domain-lplv-stop2 { 53*bf4f90bfSNicolas Le Bayon compatible = "domain-idle-state"; 54*bf4f90bfSNicolas Le Bayon arm,psci-suspend-param = <0x40023333>; 55*bf4f90bfSNicolas Le Bayon }; 56*bf4f90bfSNicolas Le Bayon 57*bf4f90bfSNicolas Le Bayon domain-standby { 58*bf4f90bfSNicolas Le Bayon compatible = "domain-idle-state"; 59*bf4f90bfSNicolas Le Bayon arm,psci-suspend-param = <0x40033333>; 60*bf4f90bfSNicolas Le Bayon }; 61*bf4f90bfSNicolas Le Bayon }; 62*bf4f90bfSNicolas Le Bayon }; 63*bf4f90bfSNicolas Le Bayon 64*bf4f90bfSNicolas Le Bayon clocks { 65*bf4f90bfSNicolas Le Bayon clk_hse: clk-hse { 66*bf4f90bfSNicolas Le Bayon #clock-cells = <0>; 67*bf4f90bfSNicolas Le Bayon compatible = "fixed-clock"; 68*bf4f90bfSNicolas Le Bayon clock-frequency = <48000000>; 69*bf4f90bfSNicolas Le Bayon }; 70*bf4f90bfSNicolas Le Bayon 71*bf4f90bfSNicolas Le Bayon clk_hsi: clk-hsi { 72*bf4f90bfSNicolas Le Bayon #clock-cells = <0>; 73*bf4f90bfSNicolas Le Bayon compatible = "fixed-clock"; 74*bf4f90bfSNicolas Le Bayon clock-frequency = <64000000>; 75*bf4f90bfSNicolas Le Bayon }; 76*bf4f90bfSNicolas Le Bayon 77*bf4f90bfSNicolas Le Bayon clk_lse: clk-lse { 78*bf4f90bfSNicolas Le Bayon #clock-cells = <0>; 79*bf4f90bfSNicolas Le Bayon compatible = "fixed-clock"; 80*bf4f90bfSNicolas Le Bayon clock-frequency = <32768>; 81*bf4f90bfSNicolas Le Bayon }; 82*bf4f90bfSNicolas Le Bayon 83*bf4f90bfSNicolas Le Bayon clk_lsi: clk-lsi { 84*bf4f90bfSNicolas Le Bayon #clock-cells = <0>; 85*bf4f90bfSNicolas Le Bayon compatible = "fixed-clock"; 86*bf4f90bfSNicolas Le Bayon clock-frequency = <32000>; 87*bf4f90bfSNicolas Le Bayon }; 88*bf4f90bfSNicolas Le Bayon 89*bf4f90bfSNicolas Le Bayon clk_msi: clk-msi { 90*bf4f90bfSNicolas Le Bayon #clock-cells = <0>; 91*bf4f90bfSNicolas Le Bayon compatible = "fixed-clock"; 92*bf4f90bfSNicolas Le Bayon clock-frequency = <16000000>; 93*bf4f90bfSNicolas Le Bayon }; 94*bf4f90bfSNicolas Le Bayon }; 95*bf4f90bfSNicolas Le Bayon 96*bf4f90bfSNicolas Le Bayon intc: interrupt-controller@4ac00000 { 97*bf4f90bfSNicolas Le Bayon compatible = "arm,cortex-a7-gic"; 98*bf4f90bfSNicolas Le Bayon #interrupt-cells = <3>; 99*bf4f90bfSNicolas Le Bayon #address-cells = <1>; 100*bf4f90bfSNicolas Le Bayon interrupt-controller; 101*bf4f90bfSNicolas Le Bayon reg = <0x0 0x4ac10000 0x0 0x1000>, 102*bf4f90bfSNicolas Le Bayon <0x0 0x4ac20000 0x0 0x2000>, 103*bf4f90bfSNicolas Le Bayon <0x0 0x4ac40000 0x0 0x2000>, 104*bf4f90bfSNicolas Le Bayon <0x0 0x4ac60000 0x0 0x2000>; 105*bf4f90bfSNicolas Le Bayon }; 106*bf4f90bfSNicolas Le Bayon 107*bf4f90bfSNicolas Le Bayon timer { 108*bf4f90bfSNicolas Le Bayon compatible = "arm,armv8-timer"; 109*bf4f90bfSNicolas Le Bayon interrupt-parent = <&intc>; 110*bf4f90bfSNicolas Le Bayon interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 111*bf4f90bfSNicolas Le Bayon <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 112*bf4f90bfSNicolas Le Bayon <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 113*bf4f90bfSNicolas Le Bayon <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 114*bf4f90bfSNicolas Le Bayon always-on; 115*bf4f90bfSNicolas Le Bayon }; 116*bf4f90bfSNicolas Le Bayon 117*bf4f90bfSNicolas Le Bayon soc@0 { 118*bf4f90bfSNicolas Le Bayon compatible = "simple-bus"; 119*bf4f90bfSNicolas Le Bayon #address-cells = <1>; 120*bf4f90bfSNicolas Le Bayon #size-cells = <1>; 121*bf4f90bfSNicolas Le Bayon interrupt-parent = <&intc>; 122*bf4f90bfSNicolas Le Bayon ranges = <0x0 0x0 0x0 0x80000000>; 123*bf4f90bfSNicolas Le Bayon 124*bf4f90bfSNicolas Le Bayon ommanager: ommanager@40500000 { 125*bf4f90bfSNicolas Le Bayon #address-cells = <2>; 126*bf4f90bfSNicolas Le Bayon #size-cells = <1>; 127*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-omm"; 128*bf4f90bfSNicolas Le Bayon reg = <0x40500000 0x400>, <0x60000000 0x10000000>; 129*bf4f90bfSNicolas Le Bayon reg-names = "omm", "omm_mm"; 130*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_OSPIIOM>; 131*bf4f90bfSNicolas Le Bayon resets = <&rcc OSPIIOM_R>; 132*bf4f90bfSNicolas Le Bayon status = "disabled"; 133*bf4f90bfSNicolas Le Bayon 134*bf4f90bfSNicolas Le Bayon ranges = <0 0 0x40430000 0x400>, 135*bf4f90bfSNicolas Le Bayon <1 0 0x40440000 0x400>; 136*bf4f90bfSNicolas Le Bayon 137*bf4f90bfSNicolas Le Bayon ospi1: spi@40430000 { 138*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-omi"; 139*bf4f90bfSNicolas Le Bayon reg = <0 0 0x400>; 140*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_OSPI1>; 141*bf4f90bfSNicolas Le Bayon resets = <&rcc OSPI1_R>, <&rcc OSPI1DLL_R>; 142*bf4f90bfSNicolas Le Bayon status = "disabled"; 143*bf4f90bfSNicolas Le Bayon }; 144*bf4f90bfSNicolas Le Bayon 145*bf4f90bfSNicolas Le Bayon ospi2: spi@40440000 { 146*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-omi"; 147*bf4f90bfSNicolas Le Bayon reg = <1 0 0x400>; 148*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_OSPI2>; 149*bf4f90bfSNicolas Le Bayon resets = <&rcc OSPI2_R>, <&rcc OSPI2DLL_R>; 150*bf4f90bfSNicolas Le Bayon status = "disabled"; 151*bf4f90bfSNicolas Le Bayon }; 152*bf4f90bfSNicolas Le Bayon }; 153*bf4f90bfSNicolas Le Bayon 154*bf4f90bfSNicolas Le Bayon rifsc: rifsc@42080000 { 155*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-rifsc", "syscon"; 156*bf4f90bfSNicolas Le Bayon reg = <0x42080000 0x1000>; 157*bf4f90bfSNicolas Le Bayon #address-cells = <1>; 158*bf4f90bfSNicolas Le Bayon #size-cells = <1>; 159*bf4f90bfSNicolas Le Bayon 160*bf4f90bfSNicolas Le Bayon usart2: serial@400e0000 { 161*bf4f90bfSNicolas Le Bayon compatible = "st,stm32h7-uart"; 162*bf4f90bfSNicolas Le Bayon reg = <0x400e0000 0x400>; 163*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_USART2>; 164*bf4f90bfSNicolas Le Bayon resets = <&rcc USART2_R>; 165*bf4f90bfSNicolas Le Bayon status = "disabled"; 166*bf4f90bfSNicolas Le Bayon }; 167*bf4f90bfSNicolas Le Bayon 168*bf4f90bfSNicolas Le Bayon usart3: serial@400f0000 { 169*bf4f90bfSNicolas Le Bayon compatible = "st,stm32h7-uart"; 170*bf4f90bfSNicolas Le Bayon reg = <0x400f0000 0x400>; 171*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_USART3>; 172*bf4f90bfSNicolas Le Bayon resets = <&rcc USART3_R>; 173*bf4f90bfSNicolas Le Bayon status = "disabled"; 174*bf4f90bfSNicolas Le Bayon }; 175*bf4f90bfSNicolas Le Bayon 176*bf4f90bfSNicolas Le Bayon uart4: serial@40100000 { 177*bf4f90bfSNicolas Le Bayon compatible = "st,stm32h7-uart"; 178*bf4f90bfSNicolas Le Bayon reg = <0x40100000 0x400>; 179*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_UART4>; 180*bf4f90bfSNicolas Le Bayon resets = <&rcc UART4_R>; 181*bf4f90bfSNicolas Le Bayon status = "disabled"; 182*bf4f90bfSNicolas Le Bayon }; 183*bf4f90bfSNicolas Le Bayon 184*bf4f90bfSNicolas Le Bayon uart5: serial@40110000 { 185*bf4f90bfSNicolas Le Bayon compatible = "st,stm32h7-uart"; 186*bf4f90bfSNicolas Le Bayon reg = <0x40110000 0x400>; 187*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_UART5>; 188*bf4f90bfSNicolas Le Bayon resets = <&rcc UART5_R>; 189*bf4f90bfSNicolas Le Bayon status = "disabled"; 190*bf4f90bfSNicolas Le Bayon }; 191*bf4f90bfSNicolas Le Bayon 192*bf4f90bfSNicolas Le Bayon i2c1: i2c@40120000 { 193*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-i2c"; 194*bf4f90bfSNicolas Le Bayon reg = <0x40120000 0x400>; 195*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_I2C1>; 196*bf4f90bfSNicolas Le Bayon resets = <&rcc I2C1_R>; 197*bf4f90bfSNicolas Le Bayon status = "disabled"; 198*bf4f90bfSNicolas Le Bayon }; 199*bf4f90bfSNicolas Le Bayon 200*bf4f90bfSNicolas Le Bayon i2c2: i2c@40130000 { 201*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-i2c"; 202*bf4f90bfSNicolas Le Bayon reg = <0x40130000 0x400>; 203*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_I2C2>; 204*bf4f90bfSNicolas Le Bayon resets = <&rcc I2C2_R>; 205*bf4f90bfSNicolas Le Bayon status = "disabled"; 206*bf4f90bfSNicolas Le Bayon }; 207*bf4f90bfSNicolas Le Bayon 208*bf4f90bfSNicolas Le Bayon i2c7: i2c@40180000 { 209*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-i2c"; 210*bf4f90bfSNicolas Le Bayon reg = <0x40180000 0x400>; 211*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_I2C7>; 212*bf4f90bfSNicolas Le Bayon resets = <&rcc I2C7_R>; 213*bf4f90bfSNicolas Le Bayon status = "disabled"; 214*bf4f90bfSNicolas Le Bayon }; 215*bf4f90bfSNicolas Le Bayon 216*bf4f90bfSNicolas Le Bayon usart6: serial@40220000 { 217*bf4f90bfSNicolas Le Bayon compatible = "st,stm32h7-uart"; 218*bf4f90bfSNicolas Le Bayon reg = <0x40220000 0x400>; 219*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_USART6>; 220*bf4f90bfSNicolas Le Bayon resets = <&rcc USART6_R>; 221*bf4f90bfSNicolas Le Bayon status = "disabled"; 222*bf4f90bfSNicolas Le Bayon }; 223*bf4f90bfSNicolas Le Bayon 224*bf4f90bfSNicolas Le Bayon usart1: serial@40330000 { 225*bf4f90bfSNicolas Le Bayon compatible = "st,stm32h7-uart"; 226*bf4f90bfSNicolas Le Bayon reg = <0x40330000 0x400>; 227*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_USART1>; 228*bf4f90bfSNicolas Le Bayon resets = <&rcc USART1_R>; 229*bf4f90bfSNicolas Le Bayon status = "disabled"; 230*bf4f90bfSNicolas Le Bayon }; 231*bf4f90bfSNicolas Le Bayon 232*bf4f90bfSNicolas Le Bayon uart7: serial@40370000 { 233*bf4f90bfSNicolas Le Bayon compatible = "st,stm32h7-uart"; 234*bf4f90bfSNicolas Le Bayon reg = <0x40370000 0x400>; 235*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_UART7>; 236*bf4f90bfSNicolas Le Bayon resets = <&rcc UART7_R>; 237*bf4f90bfSNicolas Le Bayon status = "disabled"; 238*bf4f90bfSNicolas Le Bayon }; 239*bf4f90bfSNicolas Le Bayon 240*bf4f90bfSNicolas Le Bayon hash: hash@42010000 { 241*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp13-hash"; 242*bf4f90bfSNicolas Le Bayon reg = <0x42010000 0x400>; 243*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_HASH>; 244*bf4f90bfSNicolas Le Bayon resets = <&rcc HASH_R>; 245*bf4f90bfSNicolas Le Bayon status = "disabled"; 246*bf4f90bfSNicolas Le Bayon }; 247*bf4f90bfSNicolas Le Bayon 248*bf4f90bfSNicolas Le Bayon rng: rng@42020000 { 249*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp13-rng"; 250*bf4f90bfSNicolas Le Bayon reg = <0x42020000 0x400>; 251*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_RNG>; 252*bf4f90bfSNicolas Le Bayon resets = <&rcc RNG_R>; 253*bf4f90bfSNicolas Le Bayon status = "disabled"; 254*bf4f90bfSNicolas Le Bayon }; 255*bf4f90bfSNicolas Le Bayon 256*bf4f90bfSNicolas Le Bayon iwdg1: watchdog@44010000 { 257*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp1-iwdg"; 258*bf4f90bfSNicolas Le Bayon reg = <0x44010000 0x400>; 259*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_IWDG1>, <&rcc LSI_CK>; 260*bf4f90bfSNicolas Le Bayon clock-names = "pclk", "lsi"; 261*bf4f90bfSNicolas Le Bayon status = "disabled"; 262*bf4f90bfSNicolas Le Bayon }; 263*bf4f90bfSNicolas Le Bayon 264*bf4f90bfSNicolas Le Bayon i2c8: i2c@46040000 { 265*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-i2c"; 266*bf4f90bfSNicolas Le Bayon reg = <0x46040000 0x400>; 267*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_I2C8>; 268*bf4f90bfSNicolas Le Bayon resets = <&rcc I2C8_R>; 269*bf4f90bfSNicolas Le Bayon status = "disabled"; 270*bf4f90bfSNicolas Le Bayon }; 271*bf4f90bfSNicolas Le Bayon 272*bf4f90bfSNicolas Le Bayon sdmmc1: mmc@48220000 { 273*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-sdmmc2", "arm,pl18x", "arm,primecell"; 274*bf4f90bfSNicolas Le Bayon arm,primecell-periphid = <0x00353180>; 275*bf4f90bfSNicolas Le Bayon reg = <0x48220000 0x400>, <0x44230400 0x8>; 276*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_SDMMC1>; 277*bf4f90bfSNicolas Le Bayon clock-names = "apb_pclk"; 278*bf4f90bfSNicolas Le Bayon resets = <&rcc SDMMC1_R>; 279*bf4f90bfSNicolas Le Bayon cap-sd-highspeed; 280*bf4f90bfSNicolas Le Bayon cap-mmc-highspeed; 281*bf4f90bfSNicolas Le Bayon max-frequency = <166000000>; 282*bf4f90bfSNicolas Le Bayon status = "disabled"; 283*bf4f90bfSNicolas Le Bayon }; 284*bf4f90bfSNicolas Le Bayon 285*bf4f90bfSNicolas Le Bayon sdmmc2: mmc@48230000 { 286*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-sdmmc2", "arm,pl18x", "arm,primecell"; 287*bf4f90bfSNicolas Le Bayon arm,primecell-periphid = <0x00353180>; 288*bf4f90bfSNicolas Le Bayon reg = <0x48230000 0x400>, <0x44230800 0x8>; 289*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_SDMMC2>; 290*bf4f90bfSNicolas Le Bayon clock-names = "apb_pclk"; 291*bf4f90bfSNicolas Le Bayon resets = <&rcc SDMMC2_R>; 292*bf4f90bfSNicolas Le Bayon cap-sd-highspeed; 293*bf4f90bfSNicolas Le Bayon cap-mmc-highspeed; 294*bf4f90bfSNicolas Le Bayon max-frequency = <166000000>; 295*bf4f90bfSNicolas Le Bayon status = "disabled"; 296*bf4f90bfSNicolas Le Bayon }; 297*bf4f90bfSNicolas Le Bayon }; 298*bf4f90bfSNicolas Le Bayon 299*bf4f90bfSNicolas Le Bayon risaf2: risaf@420b0000 { 300*bf4f90bfSNicolas Le Bayon compatible = "st,stm32-risaf"; 301*bf4f90bfSNicolas Le Bayon reg = <0x420b0000 0x1000>; 302*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_OSPI1>; 303*bf4f90bfSNicolas Le Bayon status = "disabled"; 304*bf4f90bfSNicolas Le Bayon }; 305*bf4f90bfSNicolas Le Bayon 306*bf4f90bfSNicolas Le Bayon risaf4: risaf@420d0000 { 307*bf4f90bfSNicolas Le Bayon compatible = "st,stm32-risaf"; 308*bf4f90bfSNicolas Le Bayon reg = <0x420d0000 0x1000>; 309*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_RISAF4>; 310*bf4f90bfSNicolas Le Bayon status = "disabled"; 311*bf4f90bfSNicolas Le Bayon }; 312*bf4f90bfSNicolas Le Bayon 313*bf4f90bfSNicolas Le Bayon bsec: efuse@44000000 { 314*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-bsec"; 315*bf4f90bfSNicolas Le Bayon reg = <0x44000000 0x400>; 316*bf4f90bfSNicolas Le Bayon #address-cells = <1>; 317*bf4f90bfSNicolas Le Bayon #size-cells = <1>; 318*bf4f90bfSNicolas Le Bayon 319*bf4f90bfSNicolas Le Bayon uid_otp: uid-otp@14 { 320*bf4f90bfSNicolas Le Bayon reg = <0x14 0xc>; 321*bf4f90bfSNicolas Le Bayon }; 322*bf4f90bfSNicolas Le Bayon part_number_otp: part-number-otp@24 { 323*bf4f90bfSNicolas Le Bayon reg = <0x24 0x4>; 324*bf4f90bfSNicolas Le Bayon }; 325*bf4f90bfSNicolas Le Bayon nand_otp: otp16@40 { 326*bf4f90bfSNicolas Le Bayon reg = <0x40 0x4>; 327*bf4f90bfSNicolas Le Bayon }; 328*bf4f90bfSNicolas Le Bayon lifecycle2_otp: otp18@48 { 329*bf4f90bfSNicolas Le Bayon reg = <0x48 0x4>; 330*bf4f90bfSNicolas Le Bayon }; 331*bf4f90bfSNicolas Le Bayon nand2_otp: otp20@50 { 332*bf4f90bfSNicolas Le Bayon reg = <0x50 0x4>; 333*bf4f90bfSNicolas Le Bayon }; 334*bf4f90bfSNicolas Le Bayon rev_otp@198 { 335*bf4f90bfSNicolas Le Bayon reg = <0x198 0x4>; 336*bf4f90bfSNicolas Le Bayon }; 337*bf4f90bfSNicolas Le Bayon package_otp: package-otp@1e8 { 338*bf4f90bfSNicolas Le Bayon reg = <0x1e8 0x1>; 339*bf4f90bfSNicolas Le Bayon }; 340*bf4f90bfSNicolas Le Bayon hconf1_otp: otp124@1f0 { 341*bf4f90bfSNicolas Le Bayon reg = <0x1f0 0x4>; 342*bf4f90bfSNicolas Le Bayon }; 343*bf4f90bfSNicolas Le Bayon pkh_otp: otp144@240 { 344*bf4f90bfSNicolas Le Bayon reg = <0x240 0x20>; 345*bf4f90bfSNicolas Le Bayon }; 346*bf4f90bfSNicolas Le Bayon oem_fip_enc_key: otp260@410 { 347*bf4f90bfSNicolas Le Bayon reg = <0x410 0x20>; 348*bf4f90bfSNicolas Le Bayon }; 349*bf4f90bfSNicolas Le Bayon }; 350*bf4f90bfSNicolas Le Bayon 351*bf4f90bfSNicolas Le Bayon rcc: clock-controller@44200000 { 352*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-rcc"; 353*bf4f90bfSNicolas Le Bayon reg = <0x44200000 0x10000>; 354*bf4f90bfSNicolas Le Bayon #clock-cells = <1>; 355*bf4f90bfSNicolas Le Bayon #reset-cells = <1>; 356*bf4f90bfSNicolas Le Bayon }; 357*bf4f90bfSNicolas Le Bayon 358*bf4f90bfSNicolas Le Bayon pwr: pwr@44210000 { 359*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-pwr"; 360*bf4f90bfSNicolas Le Bayon reg = <0x44210000 0x400>; 361*bf4f90bfSNicolas Le Bayon 362*bf4f90bfSNicolas Le Bayon vddio1: vddio1 { 363*bf4f90bfSNicolas Le Bayon regulator-name = "vddio1"; 364*bf4f90bfSNicolas Le Bayon }; 365*bf4f90bfSNicolas Le Bayon 366*bf4f90bfSNicolas Le Bayon vddio2: vddio2 { 367*bf4f90bfSNicolas Le Bayon regulator-name = "vddio2"; 368*bf4f90bfSNicolas Le Bayon }; 369*bf4f90bfSNicolas Le Bayon 370*bf4f90bfSNicolas Le Bayon vddio3: vddio3 { 371*bf4f90bfSNicolas Le Bayon regulator-name = "vddio3"; 372*bf4f90bfSNicolas Le Bayon }; 373*bf4f90bfSNicolas Le Bayon 374*bf4f90bfSNicolas Le Bayon vddio4: vddio4 { 375*bf4f90bfSNicolas Le Bayon regulator-name = "vddio4"; 376*bf4f90bfSNicolas Le Bayon }; 377*bf4f90bfSNicolas Le Bayon 378*bf4f90bfSNicolas Le Bayon vddio: vddio { 379*bf4f90bfSNicolas Le Bayon regulator-name = "vddio"; 380*bf4f90bfSNicolas Le Bayon }; 381*bf4f90bfSNicolas Le Bayon }; 382*bf4f90bfSNicolas Le Bayon 383*bf4f90bfSNicolas Le Bayon syscfg: syscon@44230000 { 384*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-syscfg", "syscon"; 385*bf4f90bfSNicolas Le Bayon reg = <0x44230000 0x10000>; 386*bf4f90bfSNicolas Le Bayon }; 387*bf4f90bfSNicolas Le Bayon 388*bf4f90bfSNicolas Le Bayon tamp: tamp@46010000 { 389*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-tamp"; 390*bf4f90bfSNicolas Le Bayon reg = <0x46010000 0x400>; 391*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_RTC>; 392*bf4f90bfSNicolas Le Bayon interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 393*bf4f90bfSNicolas Le Bayon #address-cells = <1>; 394*bf4f90bfSNicolas Le Bayon #size-cells = <1>; 395*bf4f90bfSNicolas Le Bayon ranges; 396*bf4f90bfSNicolas Le Bayon 397*bf4f90bfSNicolas Le Bayon nvram: nvram@46010100 { 398*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-tamp-nvram"; 399*bf4f90bfSNicolas Le Bayon #address-cells = <1>; 400*bf4f90bfSNicolas Le Bayon #size-cells = <1>; 401*bf4f90bfSNicolas Le Bayon reg = <0x46010100 0x200>; 402*bf4f90bfSNicolas Le Bayon 403*bf4f90bfSNicolas Le Bayon stop2_entrypoint: tamp-bkp@2c { 404*bf4f90bfSNicolas Le Bayon reg = <0x2c 0x4>; 405*bf4f90bfSNicolas Le Bayon }; 406*bf4f90bfSNicolas Le Bayon fwu_info: tamp-bkp@c0 { 407*bf4f90bfSNicolas Le Bayon /* see firmware update info feature */ 408*bf4f90bfSNicolas Le Bayon reg = <0xc0 0x4>; 409*bf4f90bfSNicolas Le Bayon }; 410*bf4f90bfSNicolas Le Bayon boot_mode: tamp-bkp@180 { 411*bf4f90bfSNicolas Le Bayon reg = <0x180 0x4>; 412*bf4f90bfSNicolas Le Bayon }; 413*bf4f90bfSNicolas Le Bayon 414*bf4f90bfSNicolas Le Bayon }; 415*bf4f90bfSNicolas Le Bayon 416*bf4f90bfSNicolas Le Bayon boot_info: boot-info { 417*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp-bootinfo"; 418*bf4f90bfSNicolas Le Bayon nvmem-cells = <&boot_mode>, <&fwu_info>, <&stop2_entrypoint>; 419*bf4f90bfSNicolas Le Bayon nvmem-cell-names = "boot-mode", "fwu-info", "stop2-entrypoint"; 420*bf4f90bfSNicolas Le Bayon }; 421*bf4f90bfSNicolas Le Bayon }; 422*bf4f90bfSNicolas Le Bayon 423*bf4f90bfSNicolas Le Bayon ddr: ddr@48040000 { 424*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp2-ddr"; 425*bf4f90bfSNicolas Le Bayon reg = <0x48040000 0x10000>, 426*bf4f90bfSNicolas Le Bayon <0x48c00000 0x400000>; 427*bf4f90bfSNicolas Le Bayon status = "okay"; 428*bf4f90bfSNicolas Le Bayon }; 429*bf4f90bfSNicolas Le Bayon 430*bf4f90bfSNicolas Le Bayon fmc: memory-controller@48200000 { 431*bf4f90bfSNicolas Le Bayon #address-cells = <2>; 432*bf4f90bfSNicolas Le Bayon #size-cells = <1>; 433*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-fmc2-ebi"; 434*bf4f90bfSNicolas Le Bayon reg = <0x48200000 0x400>; 435*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_KER_FMC>; 436*bf4f90bfSNicolas Le Bayon resets = <&rcc FMC_R>; 437*bf4f90bfSNicolas Le Bayon status = "disabled"; 438*bf4f90bfSNicolas Le Bayon 439*bf4f90bfSNicolas Le Bayon ranges = <0 0 0x70000000 0x04000000>, /* EBI CS 1 */ 440*bf4f90bfSNicolas Le Bayon <1 0 0x74000000 0x04000000>, /* EBI CS 2 */ 441*bf4f90bfSNicolas Le Bayon <2 0 0x78000000 0x04000000>, /* EBI CS 3 */ 442*bf4f90bfSNicolas Le Bayon <3 0 0x7c000000 0x04000000>, /* EBI CS 4 */ 443*bf4f90bfSNicolas Le Bayon <4 0 0x48810000 0x00001000>; /* NAND */ 444*bf4f90bfSNicolas Le Bayon 445*bf4f90bfSNicolas Le Bayon nand-controller@4,0 { 446*bf4f90bfSNicolas Le Bayon #address-cells = <1>; 447*bf4f90bfSNicolas Le Bayon #size-cells = <0>; 448*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp25-fmc2-nfc"; 449*bf4f90bfSNicolas Le Bayon reg = <4 0x0000 0x10>, 450*bf4f90bfSNicolas Le Bayon <4 0x0090 0x10>, 451*bf4f90bfSNicolas Le Bayon <4 0x00a0 0x10>, 452*bf4f90bfSNicolas Le Bayon <4 0x0400 0x10>, 453*bf4f90bfSNicolas Le Bayon <4 0x0490 0x10>, 454*bf4f90bfSNicolas Le Bayon <4 0x04a0 0x10>, 455*bf4f90bfSNicolas Le Bayon <4 0x0800 0x10>, 456*bf4f90bfSNicolas Le Bayon <4 0x0890 0x10>, 457*bf4f90bfSNicolas Le Bayon <4 0x08a0 0x10>, 458*bf4f90bfSNicolas Le Bayon <4 0x0c00 0x10>, 459*bf4f90bfSNicolas Le Bayon <4 0x0c90 0x10>, 460*bf4f90bfSNicolas Le Bayon <4 0x0ca0 0x10>; 461*bf4f90bfSNicolas Le Bayon interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 462*bf4f90bfSNicolas Le Bayon status = "disabled"; 463*bf4f90bfSNicolas Le Bayon }; 464*bf4f90bfSNicolas Le Bayon }; 465*bf4f90bfSNicolas Le Bayon 466*bf4f90bfSNicolas Le Bayon /* 467*bf4f90bfSNicolas Le Bayon * Break node order to solve dependency probe issue between 468*bf4f90bfSNicolas Le Bayon * pinctrl and exti. 469*bf4f90bfSNicolas Le Bayon */ 470*bf4f90bfSNicolas Le Bayon pinctrl: pinctrl@44240000 { 471*bf4f90bfSNicolas Le Bayon #address-cells = <1>; 472*bf4f90bfSNicolas Le Bayon #size-cells = <1>; 473*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp257-pinctrl"; 474*bf4f90bfSNicolas Le Bayon ranges = <0 0x44240000 0xa0400>; 475*bf4f90bfSNicolas Le Bayon 476*bf4f90bfSNicolas Le Bayon gpioa: gpio@44240000 { 477*bf4f90bfSNicolas Le Bayon gpio-controller; 478*bf4f90bfSNicolas Le Bayon #gpio-cells = <2>; 479*bf4f90bfSNicolas Le Bayon interrupt-controller; 480*bf4f90bfSNicolas Le Bayon #interrupt-cells = <2>; 481*bf4f90bfSNicolas Le Bayon reg = <0x0 0x400>; 482*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_GPIOA>; 483*bf4f90bfSNicolas Le Bayon st,bank-name = "GPIOA"; 484*bf4f90bfSNicolas Le Bayon status = "disabled"; 485*bf4f90bfSNicolas Le Bayon }; 486*bf4f90bfSNicolas Le Bayon 487*bf4f90bfSNicolas Le Bayon gpiob: gpio@44250000 { 488*bf4f90bfSNicolas Le Bayon gpio-controller; 489*bf4f90bfSNicolas Le Bayon #gpio-cells = <2>; 490*bf4f90bfSNicolas Le Bayon interrupt-controller; 491*bf4f90bfSNicolas Le Bayon #interrupt-cells = <2>; 492*bf4f90bfSNicolas Le Bayon reg = <0x10000 0x400>; 493*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_GPIOB>; 494*bf4f90bfSNicolas Le Bayon st,bank-name = "GPIOB"; 495*bf4f90bfSNicolas Le Bayon status = "disabled"; 496*bf4f90bfSNicolas Le Bayon }; 497*bf4f90bfSNicolas Le Bayon 498*bf4f90bfSNicolas Le Bayon gpioc: gpio@44260000 { 499*bf4f90bfSNicolas Le Bayon gpio-controller; 500*bf4f90bfSNicolas Le Bayon #gpio-cells = <2>; 501*bf4f90bfSNicolas Le Bayon interrupt-controller; 502*bf4f90bfSNicolas Le Bayon #interrupt-cells = <2>; 503*bf4f90bfSNicolas Le Bayon reg = <0x20000 0x400>; 504*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_GPIOC>; 505*bf4f90bfSNicolas Le Bayon st,bank-name = "GPIOC"; 506*bf4f90bfSNicolas Le Bayon status = "disabled"; 507*bf4f90bfSNicolas Le Bayon }; 508*bf4f90bfSNicolas Le Bayon 509*bf4f90bfSNicolas Le Bayon gpiod: gpio@44270000 { 510*bf4f90bfSNicolas Le Bayon gpio-controller; 511*bf4f90bfSNicolas Le Bayon #gpio-cells = <2>; 512*bf4f90bfSNicolas Le Bayon interrupt-controller; 513*bf4f90bfSNicolas Le Bayon #interrupt-cells = <2>; 514*bf4f90bfSNicolas Le Bayon reg = <0x30000 0x400>; 515*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_GPIOD>; 516*bf4f90bfSNicolas Le Bayon st,bank-name = "GPIOD"; 517*bf4f90bfSNicolas Le Bayon status = "disabled"; 518*bf4f90bfSNicolas Le Bayon }; 519*bf4f90bfSNicolas Le Bayon 520*bf4f90bfSNicolas Le Bayon gpioe: gpio@44280000 { 521*bf4f90bfSNicolas Le Bayon gpio-controller; 522*bf4f90bfSNicolas Le Bayon #gpio-cells = <2>; 523*bf4f90bfSNicolas Le Bayon interrupt-controller; 524*bf4f90bfSNicolas Le Bayon #interrupt-cells = <2>; 525*bf4f90bfSNicolas Le Bayon reg = <0x40000 0x400>; 526*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_GPIOE>; 527*bf4f90bfSNicolas Le Bayon st,bank-name = "GPIOE"; 528*bf4f90bfSNicolas Le Bayon status = "disabled"; 529*bf4f90bfSNicolas Le Bayon }; 530*bf4f90bfSNicolas Le Bayon 531*bf4f90bfSNicolas Le Bayon gpiof: gpio@44290000 { 532*bf4f90bfSNicolas Le Bayon gpio-controller; 533*bf4f90bfSNicolas Le Bayon #gpio-cells = <2>; 534*bf4f90bfSNicolas Le Bayon interrupt-controller; 535*bf4f90bfSNicolas Le Bayon #interrupt-cells = <2>; 536*bf4f90bfSNicolas Le Bayon reg = <0x50000 0x400>; 537*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_GPIOF>; 538*bf4f90bfSNicolas Le Bayon st,bank-name = "GPIOF"; 539*bf4f90bfSNicolas Le Bayon status = "disabled"; 540*bf4f90bfSNicolas Le Bayon }; 541*bf4f90bfSNicolas Le Bayon 542*bf4f90bfSNicolas Le Bayon gpiog: gpio@442a0000 { 543*bf4f90bfSNicolas Le Bayon gpio-controller; 544*bf4f90bfSNicolas Le Bayon #gpio-cells = <2>; 545*bf4f90bfSNicolas Le Bayon interrupt-controller; 546*bf4f90bfSNicolas Le Bayon #interrupt-cells = <2>; 547*bf4f90bfSNicolas Le Bayon reg = <0x60000 0x400>; 548*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_GPIOG>; 549*bf4f90bfSNicolas Le Bayon st,bank-name = "GPIOG"; 550*bf4f90bfSNicolas Le Bayon status = "disabled"; 551*bf4f90bfSNicolas Le Bayon }; 552*bf4f90bfSNicolas Le Bayon 553*bf4f90bfSNicolas Le Bayon gpioh: gpio@442b0000 { 554*bf4f90bfSNicolas Le Bayon gpio-controller; 555*bf4f90bfSNicolas Le Bayon #gpio-cells = <2>; 556*bf4f90bfSNicolas Le Bayon interrupt-controller; 557*bf4f90bfSNicolas Le Bayon #interrupt-cells = <2>; 558*bf4f90bfSNicolas Le Bayon reg = <0x70000 0x400>; 559*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_GPIOH>; 560*bf4f90bfSNicolas Le Bayon st,bank-name = "GPIOH"; 561*bf4f90bfSNicolas Le Bayon status = "disabled"; 562*bf4f90bfSNicolas Le Bayon }; 563*bf4f90bfSNicolas Le Bayon 564*bf4f90bfSNicolas Le Bayon gpioi: gpio@442c0000 { 565*bf4f90bfSNicolas Le Bayon gpio-controller; 566*bf4f90bfSNicolas Le Bayon #gpio-cells = <2>; 567*bf4f90bfSNicolas Le Bayon interrupt-controller; 568*bf4f90bfSNicolas Le Bayon #interrupt-cells = <2>; 569*bf4f90bfSNicolas Le Bayon reg = <0x80000 0x400>; 570*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_GPIOI>; 571*bf4f90bfSNicolas Le Bayon st,bank-name = "GPIOI"; 572*bf4f90bfSNicolas Le Bayon status = "disabled"; 573*bf4f90bfSNicolas Le Bayon }; 574*bf4f90bfSNicolas Le Bayon 575*bf4f90bfSNicolas Le Bayon gpioj: gpio@442d0000 { 576*bf4f90bfSNicolas Le Bayon gpio-controller; 577*bf4f90bfSNicolas Le Bayon #gpio-cells = <2>; 578*bf4f90bfSNicolas Le Bayon interrupt-controller; 579*bf4f90bfSNicolas Le Bayon #interrupt-cells = <2>; 580*bf4f90bfSNicolas Le Bayon reg = <0x90000 0x400>; 581*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_GPIOJ>; 582*bf4f90bfSNicolas Le Bayon st,bank-name = "GPIOJ"; 583*bf4f90bfSNicolas Le Bayon status = "disabled"; 584*bf4f90bfSNicolas Le Bayon }; 585*bf4f90bfSNicolas Le Bayon 586*bf4f90bfSNicolas Le Bayon gpiok: gpio@442e0000 { 587*bf4f90bfSNicolas Le Bayon gpio-controller; 588*bf4f90bfSNicolas Le Bayon #gpio-cells = <2>; 589*bf4f90bfSNicolas Le Bayon interrupt-controller; 590*bf4f90bfSNicolas Le Bayon #interrupt-cells = <2>; 591*bf4f90bfSNicolas Le Bayon reg = <0xa0000 0x400>; 592*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_GPIOK>; 593*bf4f90bfSNicolas Le Bayon st,bank-name = "GPIOK"; 594*bf4f90bfSNicolas Le Bayon status = "disabled"; 595*bf4f90bfSNicolas Le Bayon }; 596*bf4f90bfSNicolas Le Bayon }; 597*bf4f90bfSNicolas Le Bayon 598*bf4f90bfSNicolas Le Bayon pinctrl_z: pinctrl@46200000 { 599*bf4f90bfSNicolas Le Bayon #address-cells = <1>; 600*bf4f90bfSNicolas Le Bayon #size-cells = <1>; 601*bf4f90bfSNicolas Le Bayon compatible = "st,stm32mp257-z-pinctrl"; 602*bf4f90bfSNicolas Le Bayon ranges = <0 0x46200000 0x400>; 603*bf4f90bfSNicolas Le Bayon 604*bf4f90bfSNicolas Le Bayon gpioz: gpio@46200000 { 605*bf4f90bfSNicolas Le Bayon gpio-controller; 606*bf4f90bfSNicolas Le Bayon #gpio-cells = <2>; 607*bf4f90bfSNicolas Le Bayon interrupt-controller; 608*bf4f90bfSNicolas Le Bayon #interrupt-cells = <2>; 609*bf4f90bfSNicolas Le Bayon reg = <0 0x400>; 610*bf4f90bfSNicolas Le Bayon clocks = <&rcc CK_BUS_GPIOZ>; 611*bf4f90bfSNicolas Le Bayon st,bank-name = "GPIOZ"; 612*bf4f90bfSNicolas Le Bayon st,bank-ioport = <11>; 613*bf4f90bfSNicolas Le Bayon status = "disabled"; 614*bf4f90bfSNicolas Le Bayon }; 615*bf4f90bfSNicolas Le Bayon 616*bf4f90bfSNicolas Le Bayon }; 617*bf4f90bfSNicolas Le Bayon }; 618*bf4f90bfSNicolas Le Bayon}; 619