1 // SPDX-License-Identifier: GPL-2.0+ OR X11
3 * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
7 #include "armv7-m.dtsi"
8 #include <dt-bindings/clock/stm32fx-clock.h>
9 #include <dt-bindings/mfd/stm32f7-rcc.h>
18 compatible = "fixed-clock";
19 clock-frequency = <0>;
24 compatible = "fixed-clock";
25 clock-frequency = <32768>;
30 compatible = "fixed-clock";
31 clock-frequency = <32000>;
34 clk_i2s_ckin: clk-i2s-ckin {
36 compatible = "fixed-clock";
37 clock-frequency = <48000000>;
42 timer2: timer@40000000 {
43 compatible = "st,stm32-timer";
44 reg = <0x40000000 0x400>;
46 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM2)>;
50 timers2: timers@40000000 {
53 compatible = "st,stm32-timers";
54 reg = <0x40000000 0x400>;
55 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM2)>;
60 compatible = "st,stm32-pwm";
66 compatible = "st,stm32-timer-trigger";
72 timer3: timer@40000400 {
73 compatible = "st,stm32-timer";
74 reg = <0x40000400 0x400>;
76 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
80 timers3: timers@40000400 {
83 compatible = "st,stm32-timers";
84 reg = <0x40000400 0x400>;
85 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
90 compatible = "st,stm32-pwm";
96 compatible = "st,stm32-timer-trigger";
102 timer4: timer@40000800 {
103 compatible = "st,stm32-timer";
104 reg = <0x40000800 0x400>;
106 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
110 timers4: timers@40000800 {
111 #address-cells = <1>;
113 compatible = "st,stm32-timers";
114 reg = <0x40000800 0x400>;
115 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
120 compatible = "st,stm32-pwm";
126 compatible = "st,stm32-timer-trigger";
132 timer5: timer@40000c00 {
133 compatible = "st,stm32-timer";
134 reg = <0x40000c00 0x400>;
136 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
139 timers5: timers@40000c00 {
140 #address-cells = <1>;
142 compatible = "st,stm32-timers";
143 reg = <0x40000C00 0x400>;
144 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
149 compatible = "st,stm32-pwm";
155 compatible = "st,stm32-timer-trigger";
161 timer6: timer@40001000 {
162 compatible = "st,stm32-timer";
163 reg = <0x40001000 0x400>;
165 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
169 timers6: timers@40001000 {
170 #address-cells = <1>;
172 compatible = "st,stm32-timers";
173 reg = <0x40001000 0x400>;
174 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
179 compatible = "st,stm32-timer-trigger";
185 timer7: timer@40001400 {
186 compatible = "st,stm32-timer";
187 reg = <0x40001400 0x400>;
189 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
193 timers7: timers@40001400 {
194 #address-cells = <1>;
196 compatible = "st,stm32-timers";
197 reg = <0x40001400 0x400>;
198 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
203 compatible = "st,stm32-timer-trigger";
209 timers12: timers@40001800 {
210 #address-cells = <1>;
212 compatible = "st,stm32-timers";
213 reg = <0x40001800 0x400>;
214 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM12)>;
219 compatible = "st,stm32-pwm";
225 compatible = "st,stm32-timer-trigger";
231 timers13: timers@40001c00 {
232 #address-cells = <1>;
234 compatible = "st,stm32-timers";
235 reg = <0x40001C00 0x400>;
236 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
241 compatible = "st,stm32-pwm";
247 timers14: timers@40002000 {
248 #address-cells = <1>;
250 compatible = "st,stm32-timers";
251 reg = <0x40002000 0x400>;
252 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
257 compatible = "st,stm32-pwm";
264 compatible = "st,stm32-rtc";
265 reg = <0x40002800 0x400>;
266 clocks = <&rcc 1 CLK_RTC>;
267 clock-names = "ck_rtc";
268 assigned-clocks = <&rcc 1 CLK_RTC>;
269 assigned-clock-parents = <&rcc 1 CLK_LSE>;
270 interrupt-parent = <&exti>;
272 interrupt-names = "alarm";
273 st,syscfg = <&pwrcfg 0x00 0x100>;
277 usart2: serial@40004400 {
278 compatible = "st,stm32f7-uart";
279 reg = <0x40004400 0x400>;
281 clocks = <&rcc 1 CLK_USART2>;
285 usart3: serial@40004800 {
286 compatible = "st,stm32f7-uart";
287 reg = <0x40004800 0x400>;
289 clocks = <&rcc 1 CLK_USART3>;
293 usart4: serial@40004c00 {
294 compatible = "st,stm32f7-uart";
295 reg = <0x40004c00 0x400>;
297 clocks = <&rcc 1 CLK_UART4>;
301 usart5: serial@40005000 {
302 compatible = "st,stm32f7-uart";
303 reg = <0x40005000 0x400>;
305 clocks = <&rcc 1 CLK_UART5>;
310 compatible = "st,stm32f7-i2c";
311 reg = <0x40005400 0x400>;
314 resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
315 clocks = <&rcc 1 CLK_I2C1>;
316 #address-cells = <1>;
322 compatible = "st,stm32f7-i2c";
323 reg = <0x40005800 0x400>;
326 resets = <&rcc STM32F7_APB1_RESET(I2C2)>;
327 clocks = <&rcc 1 CLK_I2C2>;
328 #address-cells = <1>;
334 compatible = "st,stm32f7-i2c";
335 reg = <0x40005C00 0x400>;
338 resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
339 clocks = <&rcc 1 CLK_I2C3>;
340 #address-cells = <1>;
346 compatible = "st,stm32f7-i2c";
347 reg = <0x40006000 0x400>;
350 resets = <&rcc STM32F7_APB1_RESET(I2C4)>;
351 clocks = <&rcc 1 CLK_I2C4>;
352 #address-cells = <1>;
358 compatible = "st,stm32-cec";
359 reg = <0x40006C00 0x400>;
361 clocks = <&rcc 0 STM32F7_APB1_CLOCK(CEC)>, <&rcc 1 CLK_HDMI_CEC>;
362 clock-names = "cec", "hdmi-cec";
366 usart7: serial@40007800 {
367 compatible = "st,stm32f7-uart";
368 reg = <0x40007800 0x400>;
370 clocks = <&rcc 1 CLK_UART7>;
374 usart8: serial@40007c00 {
375 compatible = "st,stm32f7-uart";
376 reg = <0x40007c00 0x400>;
378 clocks = <&rcc 1 CLK_UART8>;
382 timers1: timers@40010000 {
383 #address-cells = <1>;
385 compatible = "st,stm32-timers";
386 reg = <0x40010000 0x400>;
387 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM1)>;
392 compatible = "st,stm32-pwm";
398 compatible = "st,stm32-timer-trigger";
404 timers8: timers@40010400 {
405 #address-cells = <1>;
407 compatible = "st,stm32-timers";
408 reg = <0x40010400 0x400>;
409 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM8)>;
414 compatible = "st,stm32-pwm";
420 compatible = "st,stm32-timer-trigger";
426 usart1: serial@40011000 {
427 compatible = "st,stm32f7-uart";
428 reg = <0x40011000 0x400>;
430 clocks = <&rcc 1 CLK_USART1>;
434 usart6: serial@40011400 {
435 compatible = "st,stm32f7-uart";
436 reg = <0x40011400 0x400>;
438 clocks = <&rcc 1 CLK_USART6>;
442 sdio2: sdio2@40011c00 {
443 compatible = "arm,pl180", "arm,primecell";
444 arm,primecell-periphid = <0x00880180>;
445 reg = <0x40011c00 0x400>;
446 clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC2)>;
447 clock-names = "apb_pclk";
449 max-frequency = <48000000>;
453 sdio1: sdio1@40012c00 {
454 compatible = "arm,pl180", "arm,primecell";
455 arm,primecell-periphid = <0x00880180>;
456 reg = <0x40012c00 0x400>;
457 clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC1)>;
458 clock-names = "apb_pclk";
460 max-frequency = <48000000>;
464 syscfg: system-config@40013800 {
465 compatible = "syscon";
466 reg = <0x40013800 0x400>;
469 exti: interrupt-controller@40013c00 {
470 compatible = "st,stm32-exti";
471 interrupt-controller;
472 #interrupt-cells = <2>;
473 reg = <0x40013C00 0x400>;
474 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
477 timers9: timers@40014000 {
478 #address-cells = <1>;
480 compatible = "st,stm32-timers";
481 reg = <0x40014000 0x400>;
482 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM9)>;
487 compatible = "st,stm32-pwm";
493 compatible = "st,stm32-timer-trigger";
499 timers10: timers@40014400 {
500 #address-cells = <1>;
502 compatible = "st,stm32-timers";
503 reg = <0x40014400 0x400>;
504 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
509 compatible = "st,stm32-pwm";
515 timers11: timers@40014800 {
516 #address-cells = <1>;
518 compatible = "st,stm32-timers";
519 reg = <0x40014800 0x400>;
520 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
525 compatible = "st,stm32-pwm";
531 pwrcfg: power-config@40007000 {
532 compatible = "syscon";
533 reg = <0x40007000 0x400>;
537 compatible = "st,stm32f7-crc";
538 reg = <0x40023000 0x400>;
539 clocks = <&rcc 0 12>;
546 compatible = "st,stm32f746-rcc", "st,stm32-rcc";
547 reg = <0x40023800 0x400>;
548 clocks = <&clk_hse>, <&clk_i2s_ckin>;
549 st,syscfg = <&pwrcfg>;
550 assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
551 assigned-clock-rates = <1000000>;
555 compatible = "st,stm32-dma";
556 reg = <0x40026000 0x400>;
565 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA1)>;
571 compatible = "st,stm32-dma";
572 reg = <0x40026400 0x400>;
581 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA2)>;
587 usbotg_hs: usb@40040000 {
588 compatible = "st,stm32f7-hsotg";
589 reg = <0x40040000 0x40000>;
591 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHS)>;
593 g-rx-fifo-size = <256>;
594 g-np-tx-fifo-size = <32>;
595 g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
599 usbotg_fs: usb@50000000 {
600 compatible = "st,stm32f4x9-fsotg";
601 reg = <0x50000000 0x40000>;
603 clocks = <&rcc 0 STM32F7_AHB2_CLOCK(OTGFS)>;