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";
65 compatible = "st,stm32-timer-trigger";
71 timer3: timer@40000400 {
72 compatible = "st,stm32-timer";
73 reg = <0x40000400 0x400>;
75 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
79 timers3: timers@40000400 {
82 compatible = "st,stm32-timers";
83 reg = <0x40000400 0x400>;
84 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
89 compatible = "st,stm32-pwm";
94 compatible = "st,stm32-timer-trigger";
100 timer4: timer@40000800 {
101 compatible = "st,stm32-timer";
102 reg = <0x40000800 0x400>;
104 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
108 timers4: timers@40000800 {
109 #address-cells = <1>;
111 compatible = "st,stm32-timers";
112 reg = <0x40000800 0x400>;
113 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
118 compatible = "st,stm32-pwm";
123 compatible = "st,stm32-timer-trigger";
129 timer5: timer@40000c00 {
130 compatible = "st,stm32-timer";
131 reg = <0x40000c00 0x400>;
133 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
136 timers5: timers@40000c00 {
137 #address-cells = <1>;
139 compatible = "st,stm32-timers";
140 reg = <0x40000C00 0x400>;
141 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
146 compatible = "st,stm32-pwm";
151 compatible = "st,stm32-timer-trigger";
157 timer6: timer@40001000 {
158 compatible = "st,stm32-timer";
159 reg = <0x40001000 0x400>;
161 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
165 timers6: timers@40001000 {
166 #address-cells = <1>;
168 compatible = "st,stm32-timers";
169 reg = <0x40001000 0x400>;
170 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
175 compatible = "st,stm32-timer-trigger";
181 timer7: timer@40001400 {
182 compatible = "st,stm32-timer";
183 reg = <0x40001400 0x400>;
185 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
189 timers7: timers@40001400 {
190 #address-cells = <1>;
192 compatible = "st,stm32-timers";
193 reg = <0x40001400 0x400>;
194 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
199 compatible = "st,stm32-timer-trigger";
205 timers12: timers@40001800 {
206 #address-cells = <1>;
208 compatible = "st,stm32-timers";
209 reg = <0x40001800 0x400>;
210 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM12)>;
215 compatible = "st,stm32-pwm";
220 compatible = "st,stm32-timer-trigger";
226 timers13: timers@40001c00 {
227 #address-cells = <1>;
229 compatible = "st,stm32-timers";
230 reg = <0x40001C00 0x400>;
231 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
236 compatible = "st,stm32-pwm";
241 timers14: timers@40002000 {
242 #address-cells = <1>;
244 compatible = "st,stm32-timers";
245 reg = <0x40002000 0x400>;
246 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
251 compatible = "st,stm32-pwm";
257 compatible = "st,stm32-rtc";
258 reg = <0x40002800 0x400>;
259 clocks = <&rcc 1 CLK_RTC>;
260 clock-names = "ck_rtc";
261 assigned-clocks = <&rcc 1 CLK_RTC>;
262 assigned-clock-parents = <&rcc 1 CLK_LSE>;
263 interrupt-parent = <&exti>;
265 interrupt-names = "alarm";
266 st,syscfg = <&pwrcfg 0x00 0x100>;
270 usart2: serial@40004400 {
271 compatible = "st,stm32f7-uart";
272 reg = <0x40004400 0x400>;
274 clocks = <&rcc 1 CLK_USART2>;
278 usart3: serial@40004800 {
279 compatible = "st,stm32f7-uart";
280 reg = <0x40004800 0x400>;
282 clocks = <&rcc 1 CLK_USART3>;
286 usart4: serial@40004c00 {
287 compatible = "st,stm32f7-uart";
288 reg = <0x40004c00 0x400>;
290 clocks = <&rcc 1 CLK_UART4>;
294 usart5: serial@40005000 {
295 compatible = "st,stm32f7-uart";
296 reg = <0x40005000 0x400>;
298 clocks = <&rcc 1 CLK_UART5>;
303 compatible = "st,stm32f7-i2c";
304 reg = <0x40005400 0x400>;
307 resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
308 clocks = <&rcc 1 CLK_I2C1>;
309 #address-cells = <1>;
315 compatible = "st,stm32f7-i2c";
316 reg = <0x40005800 0x400>;
319 resets = <&rcc STM32F7_APB1_RESET(I2C2)>;
320 clocks = <&rcc 1 CLK_I2C2>;
321 #address-cells = <1>;
327 compatible = "st,stm32f7-i2c";
328 reg = <0x40005C00 0x400>;
331 resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
332 clocks = <&rcc 1 CLK_I2C3>;
333 #address-cells = <1>;
339 compatible = "st,stm32f7-i2c";
340 reg = <0x40006000 0x400>;
343 resets = <&rcc STM32F7_APB1_RESET(I2C4)>;
344 clocks = <&rcc 1 CLK_I2C4>;
345 #address-cells = <1>;
351 compatible = "st,stm32-cec";
352 reg = <0x40006C00 0x400>;
354 clocks = <&rcc 0 STM32F7_APB1_CLOCK(CEC)>, <&rcc 1 CLK_HDMI_CEC>;
355 clock-names = "cec", "hdmi-cec";
359 usart7: serial@40007800 {
360 compatible = "st,stm32f7-uart";
361 reg = <0x40007800 0x400>;
363 clocks = <&rcc 1 CLK_UART7>;
367 usart8: serial@40007c00 {
368 compatible = "st,stm32f7-uart";
369 reg = <0x40007c00 0x400>;
371 clocks = <&rcc 1 CLK_UART8>;
375 timers1: timers@40010000 {
376 #address-cells = <1>;
378 compatible = "st,stm32-timers";
379 reg = <0x40010000 0x400>;
380 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM1)>;
385 compatible = "st,stm32-pwm";
390 compatible = "st,stm32-timer-trigger";
396 timers8: timers@40010400 {
397 #address-cells = <1>;
399 compatible = "st,stm32-timers";
400 reg = <0x40010400 0x400>;
401 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM8)>;
406 compatible = "st,stm32-pwm";
411 compatible = "st,stm32-timer-trigger";
417 usart1: serial@40011000 {
418 compatible = "st,stm32f7-uart";
419 reg = <0x40011000 0x400>;
421 clocks = <&rcc 1 CLK_USART1>;
425 usart6: serial@40011400 {
426 compatible = "st,stm32f7-uart";
427 reg = <0x40011400 0x400>;
429 clocks = <&rcc 1 CLK_USART6>;
433 sdio2: sdio2@40011c00 {
434 compatible = "arm,pl180", "arm,primecell";
435 arm,primecell-periphid = <0x00880180>;
436 reg = <0x40011c00 0x400>;
437 clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC2)>;
438 clock-names = "apb_pclk";
440 max-frequency = <48000000>;
444 sdio1: sdio1@40012c00 {
445 compatible = "arm,pl180", "arm,primecell";
446 arm,primecell-periphid = <0x00880180>;
447 reg = <0x40012c00 0x400>;
448 clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC1)>;
449 clock-names = "apb_pclk";
451 max-frequency = <48000000>;
455 syscfg: system-config@40013800 {
456 compatible = "syscon";
457 reg = <0x40013800 0x400>;
460 exti: interrupt-controller@40013c00 {
461 compatible = "st,stm32-exti";
462 interrupt-controller;
463 #interrupt-cells = <2>;
464 reg = <0x40013C00 0x400>;
465 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
468 timers9: timers@40014000 {
469 #address-cells = <1>;
471 compatible = "st,stm32-timers";
472 reg = <0x40014000 0x400>;
473 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM9)>;
478 compatible = "st,stm32-pwm";
483 compatible = "st,stm32-timer-trigger";
489 timers10: timers@40014400 {
490 #address-cells = <1>;
492 compatible = "st,stm32-timers";
493 reg = <0x40014400 0x400>;
494 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
499 compatible = "st,stm32-pwm";
504 timers11: timers@40014800 {
505 #address-cells = <1>;
507 compatible = "st,stm32-timers";
508 reg = <0x40014800 0x400>;
509 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
514 compatible = "st,stm32-pwm";
519 pwrcfg: power-config@40007000 {
520 compatible = "syscon";
521 reg = <0x40007000 0x400>;
525 compatible = "st,stm32f7-crc";
526 reg = <0x40023000 0x400>;
527 clocks = <&rcc 0 12>;
534 compatible = "st,stm32f746-rcc", "st,stm32-rcc";
535 reg = <0x40023800 0x400>;
536 clocks = <&clk_hse>, <&clk_i2s_ckin>;
537 st,syscfg = <&pwrcfg>;
538 assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
539 assigned-clock-rates = <1000000>;
543 compatible = "st,stm32-dma";
544 reg = <0x40026000 0x400>;
553 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA1)>;
559 compatible = "st,stm32-dma";
560 reg = <0x40026400 0x400>;
569 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA2)>;
575 usbotg_hs: usb@40040000 {
576 compatible = "st,stm32f7-hsotg";
577 reg = <0x40040000 0x40000>;
579 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHS)>;
581 g-rx-fifo-size = <256>;
582 g-np-tx-fifo-size = <32>;
583 g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
587 usbotg_fs: usb@50000000 {
588 compatible = "st,stm32f4x9-fsotg";
589 reg = <0x50000000 0x40000>;
591 clocks = <&rcc 0 STM32F7_AHB2_CLOCK(OTGFS)>;