1*0dc283d2SAlexandre Torgue// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) 2*0dc283d2SAlexandre Torgue/* 3*0dc283d2SAlexandre Torgue * Copyright (C) 2023, STMicroelectronics - All Rights Reserved 4*0dc283d2SAlexandre Torgue * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics. 5*0dc283d2SAlexandre Torgue */ 6*0dc283d2SAlexandre Torgue 7*0dc283d2SAlexandre Torgue#include <dt-bindings/clock/stm32mp25-clks.h> 8*0dc283d2SAlexandre Torgue#include <dt-bindings/interrupt-controller/arm-gic.h> 9*0dc283d2SAlexandre Torgue#include <dt-bindings/reset/stm32mp25-resets.h> 10*0dc283d2SAlexandre Torgue 11*0dc283d2SAlexandre Torgue/ { 12*0dc283d2SAlexandre Torgue #address-cells = <2>; 13*0dc283d2SAlexandre Torgue #size-cells = <2>; 14*0dc283d2SAlexandre Torgue 15*0dc283d2SAlexandre Torgue cpus { 16*0dc283d2SAlexandre Torgue #address-cells = <1>; 17*0dc283d2SAlexandre Torgue #size-cells = <0>; 18*0dc283d2SAlexandre Torgue 19*0dc283d2SAlexandre Torgue cpu0: cpu@0 { 20*0dc283d2SAlexandre Torgue compatible = "arm,cortex-a35"; 21*0dc283d2SAlexandre Torgue device_type = "cpu"; 22*0dc283d2SAlexandre Torgue reg = <0>; 23*0dc283d2SAlexandre Torgue enable-method = "psci"; 24*0dc283d2SAlexandre Torgue }; 25*0dc283d2SAlexandre Torgue }; 26*0dc283d2SAlexandre Torgue 27*0dc283d2SAlexandre Torgue clocks { 28*0dc283d2SAlexandre Torgue clk_hse: clk-hse { 29*0dc283d2SAlexandre Torgue #clock-cells = <0>; 30*0dc283d2SAlexandre Torgue compatible = "fixed-clock"; 31*0dc283d2SAlexandre Torgue clock-frequency = <48000000>; 32*0dc283d2SAlexandre Torgue }; 33*0dc283d2SAlexandre Torgue 34*0dc283d2SAlexandre Torgue clk_hsi: clk-hsi { 35*0dc283d2SAlexandre Torgue #clock-cells = <0>; 36*0dc283d2SAlexandre Torgue compatible = "fixed-clock"; 37*0dc283d2SAlexandre Torgue clock-frequency = <64000000>; 38*0dc283d2SAlexandre Torgue }; 39*0dc283d2SAlexandre Torgue 40*0dc283d2SAlexandre Torgue clk_lse: clk-lse { 41*0dc283d2SAlexandre Torgue #clock-cells = <0>; 42*0dc283d2SAlexandre Torgue compatible = "fixed-clock"; 43*0dc283d2SAlexandre Torgue clock-frequency = <32768>; 44*0dc283d2SAlexandre Torgue }; 45*0dc283d2SAlexandre Torgue 46*0dc283d2SAlexandre Torgue clk_lsi: clk-lsi { 47*0dc283d2SAlexandre Torgue #clock-cells = <0>; 48*0dc283d2SAlexandre Torgue compatible = "fixed-clock"; 49*0dc283d2SAlexandre Torgue clock-frequency = <32000>; 50*0dc283d2SAlexandre Torgue }; 51*0dc283d2SAlexandre Torgue 52*0dc283d2SAlexandre Torgue clk_msi: clk-msi { 53*0dc283d2SAlexandre Torgue #clock-cells = <0>; 54*0dc283d2SAlexandre Torgue compatible = "fixed-clock"; 55*0dc283d2SAlexandre Torgue clock-frequency = <16000000>; 56*0dc283d2SAlexandre Torgue }; 57*0dc283d2SAlexandre Torgue }; 58*0dc283d2SAlexandre Torgue 59*0dc283d2SAlexandre Torgue intc: interrupt-controller@4ac00000 { 60*0dc283d2SAlexandre Torgue compatible = "arm,cortex-a7-gic"; 61*0dc283d2SAlexandre Torgue #interrupt-cells = <3>; 62*0dc283d2SAlexandre Torgue #address-cells = <1>; 63*0dc283d2SAlexandre Torgue interrupt-controller; 64*0dc283d2SAlexandre Torgue reg = <0x0 0x4ac10000 0x0 0x1000>, 65*0dc283d2SAlexandre Torgue <0x0 0x4ac20000 0x0 0x2000>, 66*0dc283d2SAlexandre Torgue <0x0 0x4ac40000 0x0 0x2000>, 67*0dc283d2SAlexandre Torgue <0x0 0x4ac60000 0x0 0x2000>; 68*0dc283d2SAlexandre Torgue }; 69*0dc283d2SAlexandre Torgue 70*0dc283d2SAlexandre Torgue timer: timer { 71*0dc283d2SAlexandre Torgue compatible = "arm,armv8-timer"; 72*0dc283d2SAlexandre Torgue interrupt-parent = <&intc>; 73*0dc283d2SAlexandre Torgue interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 74*0dc283d2SAlexandre Torgue <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 75*0dc283d2SAlexandre Torgue <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 76*0dc283d2SAlexandre Torgue <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 77*0dc283d2SAlexandre Torgue always-on; 78*0dc283d2SAlexandre Torgue }; 79*0dc283d2SAlexandre Torgue 80*0dc283d2SAlexandre Torgue soc@0 { 81*0dc283d2SAlexandre Torgue compatible = "simple-bus"; 82*0dc283d2SAlexandre Torgue #address-cells = <1>; 83*0dc283d2SAlexandre Torgue #size-cells = <1>; 84*0dc283d2SAlexandre Torgue interrupt-parent = <&intc>; 85*0dc283d2SAlexandre Torgue ranges = <0x0 0x0 0x0 0x80000000>; 86*0dc283d2SAlexandre Torgue 87*0dc283d2SAlexandre Torgue rifsc: rifsc@42080000 { 88*0dc283d2SAlexandre Torgue compatible = "st,stm32mp25-rifsc"; 89*0dc283d2SAlexandre Torgue reg = <0x42080000 0x1000>; 90*0dc283d2SAlexandre Torgue #address-cells = <1>; 91*0dc283d2SAlexandre Torgue #size-cells = <1>; 92*0dc283d2SAlexandre Torgue 93*0dc283d2SAlexandre Torgue usart2: serial@400e0000 { 94*0dc283d2SAlexandre Torgue compatible = "st,stm32h7-uart"; 95*0dc283d2SAlexandre Torgue reg = <0x400e0000 0x400>; 96*0dc283d2SAlexandre Torgue clocks = <&rcc CK_KER_USART2>; 97*0dc283d2SAlexandre Torgue resets = <&rcc USART2_R>; 98*0dc283d2SAlexandre Torgue status = "disabled"; 99*0dc283d2SAlexandre Torgue }; 100*0dc283d2SAlexandre Torgue }; 101*0dc283d2SAlexandre Torgue 102*0dc283d2SAlexandre Torgue rcc: rcc@44200000 { 103*0dc283d2SAlexandre Torgue compatible = "st,stm32mp25-rcc"; 104*0dc283d2SAlexandre Torgue reg = <0x44200000 0x10000>; 105*0dc283d2SAlexandre Torgue #clock-cells = <1>; 106*0dc283d2SAlexandre Torgue #reset-cells = <1>; 107*0dc283d2SAlexandre Torgue }; 108*0dc283d2SAlexandre Torgue 109*0dc283d2SAlexandre Torgue pwr: pwr@44210000 { 110*0dc283d2SAlexandre Torgue compatible = "st,stm32mp25-pwr"; 111*0dc283d2SAlexandre Torgue reg = <0x44210000 0x400>; 112*0dc283d2SAlexandre Torgue 113*0dc283d2SAlexandre Torgue vddio1: vddio1 { 114*0dc283d2SAlexandre Torgue regulator-name = "vddio1"; 115*0dc283d2SAlexandre Torgue }; 116*0dc283d2SAlexandre Torgue 117*0dc283d2SAlexandre Torgue vddio2: vddio2 { 118*0dc283d2SAlexandre Torgue regulator-name = "vddio2"; 119*0dc283d2SAlexandre Torgue }; 120*0dc283d2SAlexandre Torgue 121*0dc283d2SAlexandre Torgue vddio3: vddio3 { 122*0dc283d2SAlexandre Torgue regulator-name = "vddio3"; 123*0dc283d2SAlexandre Torgue }; 124*0dc283d2SAlexandre Torgue 125*0dc283d2SAlexandre Torgue vddio4: vddio4 { 126*0dc283d2SAlexandre Torgue regulator-name = "vddio4"; 127*0dc283d2SAlexandre Torgue }; 128*0dc283d2SAlexandre Torgue 129*0dc283d2SAlexandre Torgue vddio: vddio { 130*0dc283d2SAlexandre Torgue regulator-name = "vddio"; 131*0dc283d2SAlexandre Torgue }; 132*0dc283d2SAlexandre Torgue }; 133*0dc283d2SAlexandre Torgue 134*0dc283d2SAlexandre Torgue syscfg: syscon@44230000 { 135*0dc283d2SAlexandre Torgue compatible = "st,stm32mp25-syscfg", "syscon"; 136*0dc283d2SAlexandre Torgue reg = <0x44230000 0x10000>; 137*0dc283d2SAlexandre Torgue }; 138*0dc283d2SAlexandre Torgue 139*0dc283d2SAlexandre Torgue pinctrl: pinctrl@44240000 { 140*0dc283d2SAlexandre Torgue #address-cells = <1>; 141*0dc283d2SAlexandre Torgue #size-cells = <1>; 142*0dc283d2SAlexandre Torgue compatible = "st,stm32mp257-pinctrl"; 143*0dc283d2SAlexandre Torgue ranges = <0 0x44240000 0xa0400>; 144*0dc283d2SAlexandre Torgue pins-are-numbered; 145*0dc283d2SAlexandre Torgue 146*0dc283d2SAlexandre Torgue gpioa: gpio@44240000 { 147*0dc283d2SAlexandre Torgue gpio-controller; 148*0dc283d2SAlexandre Torgue #gpio-cells = <2>; 149*0dc283d2SAlexandre Torgue interrupt-controller; 150*0dc283d2SAlexandre Torgue #interrupt-cells = <2>; 151*0dc283d2SAlexandre Torgue reg = <0x0 0x400>; 152*0dc283d2SAlexandre Torgue clocks = <&rcc CK_BUS_GPIOA>; 153*0dc283d2SAlexandre Torgue st,bank-name = "GPIOA"; 154*0dc283d2SAlexandre Torgue status = "disabled"; 155*0dc283d2SAlexandre Torgue }; 156*0dc283d2SAlexandre Torgue 157*0dc283d2SAlexandre Torgue gpiob: gpio@44250000 { 158*0dc283d2SAlexandre Torgue gpio-controller; 159*0dc283d2SAlexandre Torgue #gpio-cells = <2>; 160*0dc283d2SAlexandre Torgue interrupt-controller; 161*0dc283d2SAlexandre Torgue #interrupt-cells = <2>; 162*0dc283d2SAlexandre Torgue reg = <0x10000 0x400>; 163*0dc283d2SAlexandre Torgue clocks = <&rcc CK_BUS_GPIOB>; 164*0dc283d2SAlexandre Torgue st,bank-name = "GPIOB"; 165*0dc283d2SAlexandre Torgue status = "disabled"; 166*0dc283d2SAlexandre Torgue }; 167*0dc283d2SAlexandre Torgue 168*0dc283d2SAlexandre Torgue gpioc: gpio@44260000 { 169*0dc283d2SAlexandre Torgue gpio-controller; 170*0dc283d2SAlexandre Torgue #gpio-cells = <2>; 171*0dc283d2SAlexandre Torgue interrupt-controller; 172*0dc283d2SAlexandre Torgue #interrupt-cells = <2>; 173*0dc283d2SAlexandre Torgue reg = <0x20000 0x400>; 174*0dc283d2SAlexandre Torgue clocks = <&rcc CK_BUS_GPIOC>; 175*0dc283d2SAlexandre Torgue st,bank-name = "GPIOC"; 176*0dc283d2SAlexandre Torgue status = "disabled"; 177*0dc283d2SAlexandre Torgue }; 178*0dc283d2SAlexandre Torgue 179*0dc283d2SAlexandre Torgue gpiod: gpio@44270000 { 180*0dc283d2SAlexandre Torgue gpio-controller; 181*0dc283d2SAlexandre Torgue #gpio-cells = <2>; 182*0dc283d2SAlexandre Torgue interrupt-controller; 183*0dc283d2SAlexandre Torgue #interrupt-cells = <2>; 184*0dc283d2SAlexandre Torgue reg = <0x30000 0x400>; 185*0dc283d2SAlexandre Torgue clocks = <&rcc CK_BUS_GPIOD>; 186*0dc283d2SAlexandre Torgue st,bank-name = "GPIOD"; 187*0dc283d2SAlexandre Torgue status = "disabled"; 188*0dc283d2SAlexandre Torgue }; 189*0dc283d2SAlexandre Torgue 190*0dc283d2SAlexandre Torgue gpioe: gpio@44280000 { 191*0dc283d2SAlexandre Torgue gpio-controller; 192*0dc283d2SAlexandre Torgue #gpio-cells = <2>; 193*0dc283d2SAlexandre Torgue interrupt-controller; 194*0dc283d2SAlexandre Torgue #interrupt-cells = <2>; 195*0dc283d2SAlexandre Torgue reg = <0x40000 0x400>; 196*0dc283d2SAlexandre Torgue clocks = <&rcc CK_BUS_GPIOE>; 197*0dc283d2SAlexandre Torgue st,bank-name = "GPIOE"; 198*0dc283d2SAlexandre Torgue status = "disabled"; 199*0dc283d2SAlexandre Torgue }; 200*0dc283d2SAlexandre Torgue 201*0dc283d2SAlexandre Torgue gpiof: gpio@44290000 { 202*0dc283d2SAlexandre Torgue gpio-controller; 203*0dc283d2SAlexandre Torgue #gpio-cells = <2>; 204*0dc283d2SAlexandre Torgue interrupt-controller; 205*0dc283d2SAlexandre Torgue #interrupt-cells = <2>; 206*0dc283d2SAlexandre Torgue reg = <0x50000 0x400>; 207*0dc283d2SAlexandre Torgue clocks = <&rcc CK_BUS_GPIOF>; 208*0dc283d2SAlexandre Torgue st,bank-name = "GPIOF"; 209*0dc283d2SAlexandre Torgue status = "disabled"; 210*0dc283d2SAlexandre Torgue }; 211*0dc283d2SAlexandre Torgue 212*0dc283d2SAlexandre Torgue gpiog: gpio@442a0000 { 213*0dc283d2SAlexandre Torgue gpio-controller; 214*0dc283d2SAlexandre Torgue #gpio-cells = <2>; 215*0dc283d2SAlexandre Torgue interrupt-controller; 216*0dc283d2SAlexandre Torgue #interrupt-cells = <2>; 217*0dc283d2SAlexandre Torgue reg = <0x60000 0x400>; 218*0dc283d2SAlexandre Torgue clocks = <&rcc CK_BUS_GPIOG>; 219*0dc283d2SAlexandre Torgue st,bank-name = "GPIOG"; 220*0dc283d2SAlexandre Torgue status = "disabled"; 221*0dc283d2SAlexandre Torgue }; 222*0dc283d2SAlexandre Torgue 223*0dc283d2SAlexandre Torgue gpioh: gpio@442b0000 { 224*0dc283d2SAlexandre Torgue gpio-controller; 225*0dc283d2SAlexandre Torgue #gpio-cells = <2>; 226*0dc283d2SAlexandre Torgue interrupt-controller; 227*0dc283d2SAlexandre Torgue #interrupt-cells = <2>; 228*0dc283d2SAlexandre Torgue reg = <0x70000 0x400>; 229*0dc283d2SAlexandre Torgue clocks = <&rcc CK_BUS_GPIOH>; 230*0dc283d2SAlexandre Torgue st,bank-name = "GPIOH"; 231*0dc283d2SAlexandre Torgue status = "disabled"; 232*0dc283d2SAlexandre Torgue }; 233*0dc283d2SAlexandre Torgue 234*0dc283d2SAlexandre Torgue gpioi: gpio@442c0000 { 235*0dc283d2SAlexandre Torgue gpio-controller; 236*0dc283d2SAlexandre Torgue #gpio-cells = <2>; 237*0dc283d2SAlexandre Torgue interrupt-controller; 238*0dc283d2SAlexandre Torgue #interrupt-cells = <2>; 239*0dc283d2SAlexandre Torgue reg = <0x80000 0x400>; 240*0dc283d2SAlexandre Torgue clocks = <&rcc CK_BUS_GPIOI>; 241*0dc283d2SAlexandre Torgue st,bank-name = "GPIOI"; 242*0dc283d2SAlexandre Torgue status = "disabled"; 243*0dc283d2SAlexandre Torgue }; 244*0dc283d2SAlexandre Torgue 245*0dc283d2SAlexandre Torgue gpioj: gpio@442d0000 { 246*0dc283d2SAlexandre Torgue gpio-controller; 247*0dc283d2SAlexandre Torgue #gpio-cells = <2>; 248*0dc283d2SAlexandre Torgue interrupt-controller; 249*0dc283d2SAlexandre Torgue #interrupt-cells = <2>; 250*0dc283d2SAlexandre Torgue reg = <0x90000 0x400>; 251*0dc283d2SAlexandre Torgue clocks = <&rcc CK_BUS_GPIOJ>; 252*0dc283d2SAlexandre Torgue st,bank-name = "GPIOJ"; 253*0dc283d2SAlexandre Torgue status = "disabled"; 254*0dc283d2SAlexandre Torgue }; 255*0dc283d2SAlexandre Torgue 256*0dc283d2SAlexandre Torgue gpiok: gpio@442e0000 { 257*0dc283d2SAlexandre Torgue gpio-controller; 258*0dc283d2SAlexandre Torgue #gpio-cells = <2>; 259*0dc283d2SAlexandre Torgue interrupt-controller; 260*0dc283d2SAlexandre Torgue #interrupt-cells = <2>; 261*0dc283d2SAlexandre Torgue reg = <0xa0000 0x400>; 262*0dc283d2SAlexandre Torgue clocks = <&rcc CK_BUS_GPIOK>; 263*0dc283d2SAlexandre Torgue st,bank-name = "GPIOK"; 264*0dc283d2SAlexandre Torgue status = "disabled"; 265*0dc283d2SAlexandre Torgue }; 266*0dc283d2SAlexandre Torgue }; 267*0dc283d2SAlexandre Torgue 268*0dc283d2SAlexandre Torgue pinctrl_z: pinctrl@46200000 { 269*0dc283d2SAlexandre Torgue #address-cells = <1>; 270*0dc283d2SAlexandre Torgue #size-cells = <1>; 271*0dc283d2SAlexandre Torgue compatible = "st,stm32mp257-z-pinctrl"; 272*0dc283d2SAlexandre Torgue ranges = <0 0x46200000 0x400>; 273*0dc283d2SAlexandre Torgue pins-are-numbered; 274*0dc283d2SAlexandre Torgue 275*0dc283d2SAlexandre Torgue gpioz: gpio@46200000 { 276*0dc283d2SAlexandre Torgue gpio-controller; 277*0dc283d2SAlexandre Torgue #gpio-cells = <2>; 278*0dc283d2SAlexandre Torgue interrupt-controller; 279*0dc283d2SAlexandre Torgue #interrupt-cells = <2>; 280*0dc283d2SAlexandre Torgue reg = <0 0x400>; 281*0dc283d2SAlexandre Torgue clocks = <&rcc CK_BUS_GPIOZ>; 282*0dc283d2SAlexandre Torgue st,bank-name = "GPIOZ"; 283*0dc283d2SAlexandre Torgue st,bank-ioport = <11>; 284*0dc283d2SAlexandre Torgue status = "disabled"; 285*0dc283d2SAlexandre Torgue }; 286*0dc283d2SAlexandre Torgue 287*0dc283d2SAlexandre Torgue }; 288*0dc283d2SAlexandre Torgue }; 289*0dc283d2SAlexandre Torgue}; 290