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 assigned-clocks = <&rcc 1 CLK_RTC>;
268 assigned-clock-parents = <&rcc 1 CLK_LSE>;
269 interrupt-parent = <&exti>;
271 st,syscfg = <&pwrcfg 0x00 0x100>;
275 usart2: serial@40004400 {
276 compatible = "st,stm32f7-uart";
277 reg = <0x40004400 0x400>;
279 clocks = <&rcc 1 CLK_USART2>;
283 usart3: serial@40004800 {
284 compatible = "st,stm32f7-uart";
285 reg = <0x40004800 0x400>;
287 clocks = <&rcc 1 CLK_USART3>;
291 usart4: serial@40004c00 {
292 compatible = "st,stm32f7-uart";
293 reg = <0x40004c00 0x400>;
295 clocks = <&rcc 1 CLK_UART4>;
299 usart5: serial@40005000 {
300 compatible = "st,stm32f7-uart";
301 reg = <0x40005000 0x400>;
303 clocks = <&rcc 1 CLK_UART5>;
308 compatible = "st,stm32f7-i2c";
309 reg = <0x40005400 0x400>;
312 resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
313 clocks = <&rcc 1 CLK_I2C1>;
314 #address-cells = <1>;
320 compatible = "st,stm32f7-i2c";
321 reg = <0x40005800 0x400>;
324 resets = <&rcc STM32F7_APB1_RESET(I2C2)>;
325 clocks = <&rcc 1 CLK_I2C2>;
326 #address-cells = <1>;
332 compatible = "st,stm32f7-i2c";
333 reg = <0x40005C00 0x400>;
336 resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
337 clocks = <&rcc 1 CLK_I2C3>;
338 #address-cells = <1>;
344 compatible = "st,stm32f7-i2c";
345 reg = <0x40006000 0x400>;
348 resets = <&rcc STM32F7_APB1_RESET(I2C4)>;
349 clocks = <&rcc 1 CLK_I2C4>;
350 #address-cells = <1>;
356 compatible = "st,stm32-cec";
357 reg = <0x40006C00 0x400>;
359 clocks = <&rcc 0 STM32F7_APB1_CLOCK(CEC)>, <&rcc 1 CLK_HDMI_CEC>;
360 clock-names = "cec", "hdmi-cec";
364 usart7: serial@40007800 {
365 compatible = "st,stm32f7-uart";
366 reg = <0x40007800 0x400>;
368 clocks = <&rcc 1 CLK_UART7>;
372 usart8: serial@40007c00 {
373 compatible = "st,stm32f7-uart";
374 reg = <0x40007c00 0x400>;
376 clocks = <&rcc 1 CLK_UART8>;
380 timers1: timers@40010000 {
381 #address-cells = <1>;
383 compatible = "st,stm32-timers";
384 reg = <0x40010000 0x400>;
385 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM1)>;
390 compatible = "st,stm32-pwm";
396 compatible = "st,stm32-timer-trigger";
402 timers8: timers@40010400 {
403 #address-cells = <1>;
405 compatible = "st,stm32-timers";
406 reg = <0x40010400 0x400>;
407 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM8)>;
412 compatible = "st,stm32-pwm";
418 compatible = "st,stm32-timer-trigger";
424 usart1: serial@40011000 {
425 compatible = "st,stm32f7-uart";
426 reg = <0x40011000 0x400>;
428 clocks = <&rcc 1 CLK_USART1>;
432 usart6: serial@40011400 {
433 compatible = "st,stm32f7-uart";
434 reg = <0x40011400 0x400>;
436 clocks = <&rcc 1 CLK_USART6>;
440 sdio2: sdio2@40011c00 {
441 compatible = "arm,pl180", "arm,primecell";
442 arm,primecell-periphid = <0x00880180>;
443 reg = <0x40011c00 0x400>;
444 clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC2)>;
445 clock-names = "apb_pclk";
447 max-frequency = <48000000>;
451 sdio1: sdio1@40012c00 {
452 compatible = "arm,pl180", "arm,primecell";
453 arm,primecell-periphid = <0x00880180>;
454 reg = <0x40012c00 0x400>;
455 clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC1)>;
456 clock-names = "apb_pclk";
458 max-frequency = <48000000>;
462 syscfg: syscon@40013800 {
463 compatible = "st,stm32-syscfg", "syscon";
464 reg = <0x40013800 0x400>;
467 exti: interrupt-controller@40013c00 {
468 compatible = "st,stm32-exti";
469 interrupt-controller;
470 #interrupt-cells = <2>;
471 reg = <0x40013C00 0x400>;
472 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
475 timers9: timers@40014000 {
476 #address-cells = <1>;
478 compatible = "st,stm32-timers";
479 reg = <0x40014000 0x400>;
480 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM9)>;
485 compatible = "st,stm32-pwm";
491 compatible = "st,stm32-timer-trigger";
497 timers10: timers@40014400 {
498 #address-cells = <1>;
500 compatible = "st,stm32-timers";
501 reg = <0x40014400 0x400>;
502 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
507 compatible = "st,stm32-pwm";
513 timers11: timers@40014800 {
514 #address-cells = <1>;
516 compatible = "st,stm32-timers";
517 reg = <0x40014800 0x400>;
518 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
523 compatible = "st,stm32-pwm";
529 pwrcfg: power-config@40007000 {
530 compatible = "st,stm32-power-config", "syscon";
531 reg = <0x40007000 0x400>;
535 compatible = "st,stm32f7-crc";
536 reg = <0x40023000 0x400>;
537 clocks = <&rcc 0 12>;
544 compatible = "st,stm32f746-rcc", "st,stm32-rcc";
545 reg = <0x40023800 0x400>;
546 clocks = <&clk_hse>, <&clk_i2s_ckin>;
547 st,syscfg = <&pwrcfg>;
548 assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
549 assigned-clock-rates = <1000000>;
552 dma1: dma-controller@40026000 {
553 compatible = "st,stm32-dma";
554 reg = <0x40026000 0x400>;
563 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA1)>;
568 dma2: dma-controller@40026400 {
569 compatible = "st,stm32-dma";
570 reg = <0x40026400 0x400>;
579 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA2)>;
585 usbotg_hs: usb@40040000 {
586 compatible = "st,stm32f7-hsotg";
587 reg = <0x40040000 0x40000>;
589 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHS)>;
591 g-rx-fifo-size = <256>;
592 g-np-tx-fifo-size = <32>;
593 g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
597 usbotg_fs: usb@50000000 {
598 compatible = "st,stm32f4x9-fsotg";
599 reg = <0x50000000 0x40000>;
601 clocks = <&rcc 0 STM32F7_AHB2_CLOCK(OTGFS)>;