1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
3 * Copyright (C) STMicroelectronics 2021 - All Rights Reserved
4 * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
6 #include <dt-bindings/interrupt-controller/arm-gic.h>
17 compatible = "arm,cortex-a7";
24 compatible = "arm,cortex-a7-pmu";
25 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
26 interrupt-affinity = <&cpu0>;
27 interrupt-parent = <&intc>;
33 compatible = "fixed-clock";
34 clock-frequency = <266500000>;
39 compatible = "fixed-clock";
40 clock-frequency = <24000000>;
45 compatible = "fixed-clock";
46 clock-frequency = <64000000>;
51 compatible = "fixed-clock";
52 clock-frequency = <32000>;
55 clk_pclk3: clk-pclk3 {
57 compatible = "fixed-clock";
58 clock-frequency = <104438965>;
61 clk_pclk4: clk-pclk4 {
63 compatible = "fixed-clock";
64 clock-frequency = <133250000>;
67 clk_pll4_p: clk-pll4_p {
69 compatible = "fixed-clock";
70 clock-frequency = <50000000>;
73 clk_pll4_r: clk-pll4_r {
75 compatible = "fixed-clock";
76 clock-frequency = <99000000>;
79 clk_rtc_k: clk-rtc-k {
81 compatible = "fixed-clock";
82 clock-frequency = <32768>;
86 intc: interrupt-controller@a0021000 {
87 compatible = "arm,cortex-a7-gic";
88 #interrupt-cells = <3>;
90 reg = <0xa0021000 0x1000>,
95 compatible = "arm,psci-1.0";
100 compatible = "arm,armv7-timer";
101 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
102 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
103 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
104 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
105 interrupt-parent = <&intc>;
110 compatible = "simple-bus";
111 #address-cells = <1>;
113 interrupt-parent = <&intc>;
116 uart4: serial@40010000 {
117 compatible = "st,stm32h7-uart";
118 reg = <0x40010000 0x400>;
119 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
124 dma1: dma-controller@48000000 {
125 compatible = "st,stm32-dma";
126 reg = <0x48000000 0x400>;
127 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
128 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
129 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
130 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
131 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
132 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
133 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
134 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
135 clocks = <&clk_pclk4>;
141 dma2: dma-controller@48001000 {
142 compatible = "st,stm32-dma";
143 reg = <0x48001000 0x400>;
144 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
145 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
146 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
147 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
148 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
149 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
150 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
151 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
152 clocks = <&clk_pclk4>;
158 dmamux1: dma-router@48002000 {
159 compatible = "st,stm32h7-dmamux";
160 reg = <0x48002000 0x40>;
161 clocks = <&clk_pclk4>;
163 dma-masters = <&dma1 &dma2>;
164 dma-requests = <128>;
168 exti: interrupt-controller@5000d000 {
169 compatible = "st,stm32mp13-exti", "syscon";
170 interrupt-controller;
171 #interrupt-cells = <2>;
172 reg = <0x5000d000 0x400>;
175 syscfg: syscon@50020000 {
176 compatible = "st,stm32mp157-syscfg", "syscon";
177 reg = <0x50020000 0x400>;
178 clocks = <&clk_pclk3>;
181 mdma: dma-controller@58000000 {
182 compatible = "st,stm32h7-mdma";
183 reg = <0x58000000 0x1000>;
184 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
185 clocks = <&clk_pclk4>;
191 sdmmc1: mmc@58005000 {
192 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
193 arm,primecell-periphid = <0x20253180>;
194 reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
195 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
196 interrupt-names = "cmd_irq";
197 clocks = <&clk_pll4_p>;
198 clock-names = "apb_pclk";
201 max-frequency = <130000000>;
205 sdmmc2: mmc@58007000 {
206 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
207 arm,primecell-periphid = <0x20253180>;
208 reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
209 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
210 interrupt-names = "cmd_irq";
211 clocks = <&clk_pll4_p>;
212 clock-names = "apb_pclk";
215 max-frequency = <130000000>;
219 iwdg2: watchdog@5a002000 {
220 compatible = "st,stm32mp1-iwdg";
221 reg = <0x5a002000 0x400>;
222 clocks = <&clk_pclk4>, <&clk_lsi>;
223 clock-names = "pclk", "lsi";
228 compatible = "st,stm32mp1-rtc";
229 reg = <0x5c004000 0x400>;
230 interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
231 clocks = <&clk_pclk4>, <&clk_rtc_k>;
232 clock-names = "pclk", "rtc_ck";
236 bsec: efuse@5c005000 {
237 compatible = "st,stm32mp15-bsec";
238 reg = <0x5c005000 0x400>;
239 #address-cells = <1>;
242 part_number_otp: part_number_otp@4 {
254 * Break node order to solve dependency probe issue between
257 pinctrl: pinctrl@50002000 {
258 #address-cells = <1>;
260 compatible = "st,stm32mp135-pinctrl";
261 ranges = <0 0x50002000 0x8400>;
262 interrupt-parent = <&exti>;
263 st,syscfg = <&exti 0x60 0xff>;
266 gpioa: gpio@50002000 {
269 interrupt-controller;
270 #interrupt-cells = <2>;
272 clocks = <&clk_pclk4>;
273 st,bank-name = "GPIOA";
275 gpio-ranges = <&pinctrl 0 0 16>;
278 gpiob: gpio@50003000 {
281 interrupt-controller;
282 #interrupt-cells = <2>;
283 reg = <0x1000 0x400>;
284 clocks = <&clk_pclk4>;
285 st,bank-name = "GPIOB";
287 gpio-ranges = <&pinctrl 0 16 16>;
290 gpioc: gpio@50004000 {
293 interrupt-controller;
294 #interrupt-cells = <2>;
295 reg = <0x2000 0x400>;
296 clocks = <&clk_pclk4>;
297 st,bank-name = "GPIOC";
299 gpio-ranges = <&pinctrl 0 32 16>;
302 gpiod: gpio@50005000 {
305 interrupt-controller;
306 #interrupt-cells = <2>;
307 reg = <0x3000 0x400>;
308 clocks = <&clk_pclk4>;
309 st,bank-name = "GPIOD";
311 gpio-ranges = <&pinctrl 0 48 16>;
314 gpioe: gpio@50006000 {
317 interrupt-controller;
318 #interrupt-cells = <2>;
319 reg = <0x4000 0x400>;
320 clocks = <&clk_pclk4>;
321 st,bank-name = "GPIOE";
323 gpio-ranges = <&pinctrl 0 64 16>;
326 gpiof: gpio@50007000 {
329 interrupt-controller;
330 #interrupt-cells = <2>;
331 reg = <0x5000 0x400>;
332 clocks = <&clk_pclk4>;
333 st,bank-name = "GPIOF";
335 gpio-ranges = <&pinctrl 0 80 16>;
338 gpiog: gpio@50008000 {
341 interrupt-controller;
342 #interrupt-cells = <2>;
343 reg = <0x6000 0x400>;
344 clocks = <&clk_pclk4>;
345 st,bank-name = "GPIOG";
347 gpio-ranges = <&pinctrl 0 96 16>;
350 gpioh: gpio@50009000 {
353 interrupt-controller;
354 #interrupt-cells = <2>;
355 reg = <0x7000 0x400>;
356 clocks = <&clk_pclk4>;
357 st,bank-name = "GPIOH";
359 gpio-ranges = <&pinctrl 0 112 15>;
362 gpioi: gpio@5000a000 {
365 interrupt-controller;
366 #interrupt-cells = <2>;
367 reg = <0x8000 0x400>;
368 clocks = <&clk_pclk4>;
369 st,bank-name = "GPIOI";
371 gpio-ranges = <&pinctrl 0 128 8>;