blob: ba9b3cd03cef73712af55958dc4b4a0fcf45333c [file] [log] [blame]
Patrick Delaunaye07a86b2019-11-06 16:16:32 +01001// SPDX-License-Identifier: GPL-2.0+ OR X11
Michael Kurzb1a8de72017-01-22 16:04:23 +01002/*
Michael Kurzb1a8de72017-01-22 16:04:23 +01003 * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
4 *
Michael Kurzb1a8de72017-01-22 16:04:23 +01005 */
6
7#include "armv7-m.dtsi"
Patrice Chotardfa87abb2017-07-18 09:29:02 +02008#include <dt-bindings/clock/stm32fx-clock.h>
9#include <dt-bindings/mfd/stm32f7-rcc.h>
Michael Kurzb1a8de72017-01-22 16:04:23 +010010
11/ {
Patrick Delaunaye07a86b2019-11-06 16:16:32 +010012 #address-cells = <1>;
13 #size-cells = <1>;
14
Vikas Manocha84bfdc12017-02-12 10:25:47 -080015 clocks {
16 clk_hse: clk-hse {
17 #clock-cells = <0>;
18 compatible = "fixed-clock";
19 clock-frequency = <0>;
20 };
Patrice Chotardfe63d3c2019-02-19 16:49:05 +010021
22 clk-lse {
23 #clock-cells = <0>;
24 compatible = "fixed-clock";
25 clock-frequency = <32768>;
26 };
27
28 clk-lsi {
29 #clock-cells = <0>;
30 compatible = "fixed-clock";
31 clock-frequency = <32000>;
32 };
33
34 clk_i2s_ckin: clk-i2s-ckin {
35 #clock-cells = <0>;
36 compatible = "fixed-clock";
37 clock-frequency = <48000000>;
38 };
Patrice Chotard01aabf92019-02-19 00:37:20 +010039 };
Vikas Manocha84bfdc12017-02-12 10:25:47 -080040
Michael Kurzb1a8de72017-01-22 16:04:23 +010041 soc {
Patrice Chotardfe63d3c2019-02-19 16:49:05 +010042 timer2: timer@40000000 {
43 compatible = "st,stm32-timer";
44 reg = <0x40000000 0x400>;
45 interrupts = <28>;
46 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM2)>;
Vikas Manocha84bfdc12017-02-12 10:25:47 -080047 status = "disabled";
Vikas Manocha84bfdc12017-02-12 10:25:47 -080048 };
Patrice Chotardd3651aa2017-11-15 13:14:43 +010049
Patrice Chotardfe63d3c2019-02-19 16:49:05 +010050 timers2: timers@40000000 {
Vikas Manochada4e17f2017-02-12 10:25:50 -080051 #address-cells = <1>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +010052 #size-cells = <0>;
53 compatible = "st,stm32-timers";
54 reg = <0x40000000 0x400>;
55 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM2)>;
56 clock-names = "int";
Patrice Chotard77729bd2017-12-12 10:14:59 +010057 status = "disabled";
Patrice Chotardfe63d3c2019-02-19 16:49:05 +010058
59 pwm {
60 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +010061 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +010062 status = "disabled";
63 };
64
65 timer@1 {
66 compatible = "st,stm32-timer-trigger";
67 reg = <1>;
68 status = "disabled";
69 };
Patrice Chotard77729bd2017-12-12 10:14:59 +010070 };
71
Patrice Chotardfe63d3c2019-02-19 16:49:05 +010072 timer3: timer@40000400 {
73 compatible = "st,stm32-timer";
74 reg = <0x40000400 0x400>;
75 interrupts = <29>;
76 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
Patrice Chotard77729bd2017-12-12 10:14:59 +010077 status = "disabled";
Patrice Chotardfe63d3c2019-02-19 16:49:05 +010078 };
79
80 timers3: timers@40000400 {
81 #address-cells = <1>;
82 #size-cells = <0>;
83 compatible = "st,stm32-timers";
84 reg = <0x40000400 0x400>;
85 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
86 clock-names = "int";
87 status = "disabled";
88
89 pwm {
90 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +010091 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +010092 status = "disabled";
93 };
94
95 timer@2 {
96 compatible = "st,stm32-timer-trigger";
97 reg = <2>;
98 status = "disabled";
99 };
100 };
101
102 timer4: timer@40000800 {
103 compatible = "st,stm32-timer";
104 reg = <0x40000800 0x400>;
105 interrupts = <30>;
106 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
107 status = "disabled";
108 };
109
110 timers4: timers@40000800 {
111 #address-cells = <1>;
112 #size-cells = <0>;
113 compatible = "st,stm32-timers";
114 reg = <0x40000800 0x400>;
115 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
116 clock-names = "int";
117 status = "disabled";
118
119 pwm {
120 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100121 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100122 status = "disabled";
123 };
124
125 timer@3 {
126 compatible = "st,stm32-timer-trigger";
127 reg = <3>;
128 status = "disabled";
129 };
Vikas Manochada4e17f2017-02-12 10:25:50 -0800130 };
Patrice Chotardcd389c02018-02-07 10:44:49 +0100131
132 timer5: timer@40000c00 {
133 compatible = "st,stm32-timer";
134 reg = <0x40000c00 0x400>;
135 interrupts = <50>;
136 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
137 };
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100138
139 timers5: timers@40000c00 {
140 #address-cells = <1>;
141 #size-cells = <0>;
142 compatible = "st,stm32-timers";
143 reg = <0x40000C00 0x400>;
144 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
145 clock-names = "int";
146 status = "disabled";
147
148 pwm {
149 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100150 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100151 status = "disabled";
152 };
153
154 timer@4 {
155 compatible = "st,stm32-timer-trigger";
156 reg = <4>;
157 status = "disabled";
158 };
159 };
160
161 timer6: timer@40001000 {
162 compatible = "st,stm32-timer";
163 reg = <0x40001000 0x400>;
164 interrupts = <54>;
165 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
166 status = "disabled";
167 };
168
169 timers6: timers@40001000 {
170 #address-cells = <1>;
171 #size-cells = <0>;
172 compatible = "st,stm32-timers";
173 reg = <0x40001000 0x400>;
174 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
175 clock-names = "int";
176 status = "disabled";
177
178 timer@5 {
179 compatible = "st,stm32-timer-trigger";
180 reg = <5>;
181 status = "disabled";
182 };
183 };
184
185 timer7: timer@40001400 {
186 compatible = "st,stm32-timer";
187 reg = <0x40001400 0x400>;
188 interrupts = <55>;
189 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
190 status = "disabled";
191 };
192
193 timers7: timers@40001400 {
194 #address-cells = <1>;
195 #size-cells = <0>;
196 compatible = "st,stm32-timers";
197 reg = <0x40001400 0x400>;
198 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
199 clock-names = "int";
200 status = "disabled";
201
202 timer@6 {
203 compatible = "st,stm32-timer-trigger";
204 reg = <6>;
205 status = "disabled";
206 };
207 };
208
209 timers12: timers@40001800 {
210 #address-cells = <1>;
211 #size-cells = <0>;
212 compatible = "st,stm32-timers";
213 reg = <0x40001800 0x400>;
214 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM12)>;
215 clock-names = "int";
216 status = "disabled";
217
218 pwm {
219 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100220 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100221 status = "disabled";
222 };
223
224 timer@11 {
225 compatible = "st,stm32-timer-trigger";
226 reg = <11>;
227 status = "disabled";
228 };
229 };
230
231 timers13: timers@40001c00 {
232 #address-cells = <1>;
233 #size-cells = <0>;
234 compatible = "st,stm32-timers";
235 reg = <0x40001C00 0x400>;
236 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
237 clock-names = "int";
238 status = "disabled";
239
240 pwm {
241 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100242 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100243 status = "disabled";
244 };
245 };
246
247 timers14: timers@40002000 {
248 #address-cells = <1>;
249 #size-cells = <0>;
250 compatible = "st,stm32-timers";
251 reg = <0x40002000 0x400>;
252 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
253 clock-names = "int";
254 status = "disabled";
255
256 pwm {
257 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100258 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100259 status = "disabled";
260 };
261 };
262
263 rtc: rtc@40002800 {
264 compatible = "st,stm32-rtc";
265 reg = <0x40002800 0x400>;
266 clocks = <&rcc 1 CLK_RTC>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100267 assigned-clocks = <&rcc 1 CLK_RTC>;
268 assigned-clock-parents = <&rcc 1 CLK_LSE>;
269 interrupt-parent = <&exti>;
270 interrupts = <17 1>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100271 st,syscfg = <&pwrcfg 0x00 0x100>;
272 status = "disabled";
273 };
274
275 usart2: serial@40004400 {
276 compatible = "st,stm32f7-uart";
277 reg = <0x40004400 0x400>;
278 interrupts = <38>;
279 clocks = <&rcc 1 CLK_USART2>;
280 status = "disabled";
281 };
282
283 usart3: serial@40004800 {
284 compatible = "st,stm32f7-uart";
285 reg = <0x40004800 0x400>;
286 interrupts = <39>;
287 clocks = <&rcc 1 CLK_USART3>;
288 status = "disabled";
289 };
290
291 usart4: serial@40004c00 {
292 compatible = "st,stm32f7-uart";
293 reg = <0x40004c00 0x400>;
294 interrupts = <52>;
295 clocks = <&rcc 1 CLK_UART4>;
296 status = "disabled";
297 };
298
299 usart5: serial@40005000 {
300 compatible = "st,stm32f7-uart";
301 reg = <0x40005000 0x400>;
302 interrupts = <53>;
303 clocks = <&rcc 1 CLK_UART5>;
304 status = "disabled";
305 };
306
307 i2c1: i2c@40005400 {
308 compatible = "st,stm32f7-i2c";
309 reg = <0x40005400 0x400>;
310 interrupts = <31>,
311 <32>;
312 resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
313 clocks = <&rcc 1 CLK_I2C1>;
314 #address-cells = <1>;
315 #size-cells = <0>;
316 status = "disabled";
317 };
318
319 i2c2: i2c@40005800 {
320 compatible = "st,stm32f7-i2c";
321 reg = <0x40005800 0x400>;
322 interrupts = <33>,
323 <34>;
324 resets = <&rcc STM32F7_APB1_RESET(I2C2)>;
325 clocks = <&rcc 1 CLK_I2C2>;
326 #address-cells = <1>;
327 #size-cells = <0>;
328 status = "disabled";
329 };
330
331 i2c3: i2c@40005C00 {
332 compatible = "st,stm32f7-i2c";
333 reg = <0x40005C00 0x400>;
334 interrupts = <72>,
335 <73>;
336 resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
337 clocks = <&rcc 1 CLK_I2C3>;
338 #address-cells = <1>;
339 #size-cells = <0>;
340 status = "disabled";
341 };
342
343 i2c4: i2c@40006000 {
344 compatible = "st,stm32f7-i2c";
345 reg = <0x40006000 0x400>;
346 interrupts = <95>,
347 <96>;
348 resets = <&rcc STM32F7_APB1_RESET(I2C4)>;
349 clocks = <&rcc 1 CLK_I2C4>;
350 #address-cells = <1>;
351 #size-cells = <0>;
352 status = "disabled";
353 };
354
355 cec: cec@40006c00 {
356 compatible = "st,stm32-cec";
357 reg = <0x40006C00 0x400>;
358 interrupts = <94>;
359 clocks = <&rcc 0 STM32F7_APB1_CLOCK(CEC)>, <&rcc 1 CLK_HDMI_CEC>;
360 clock-names = "cec", "hdmi-cec";
361 status = "disabled";
362 };
363
364 usart7: serial@40007800 {
365 compatible = "st,stm32f7-uart";
366 reg = <0x40007800 0x400>;
367 interrupts = <82>;
368 clocks = <&rcc 1 CLK_UART7>;
369 status = "disabled";
370 };
371
372 usart8: serial@40007c00 {
373 compatible = "st,stm32f7-uart";
374 reg = <0x40007c00 0x400>;
375 interrupts = <83>;
376 clocks = <&rcc 1 CLK_UART8>;
377 status = "disabled";
378 };
379
380 timers1: timers@40010000 {
381 #address-cells = <1>;
382 #size-cells = <0>;
383 compatible = "st,stm32-timers";
384 reg = <0x40010000 0x400>;
385 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM1)>;
386 clock-names = "int";
387 status = "disabled";
388
389 pwm {
390 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100391 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100392 status = "disabled";
393 };
394
395 timer@0 {
396 compatible = "st,stm32-timer-trigger";
397 reg = <0>;
398 status = "disabled";
399 };
400 };
401
402 timers8: timers@40010400 {
403 #address-cells = <1>;
404 #size-cells = <0>;
405 compatible = "st,stm32-timers";
406 reg = <0x40010400 0x400>;
407 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM8)>;
408 clock-names = "int";
409 status = "disabled";
410
411 pwm {
412 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100413 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100414 status = "disabled";
415 };
416
417 timer@7 {
418 compatible = "st,stm32-timer-trigger";
419 reg = <7>;
420 status = "disabled";
421 };
422 };
423
424 usart1: serial@40011000 {
425 compatible = "st,stm32f7-uart";
426 reg = <0x40011000 0x400>;
427 interrupts = <37>;
428 clocks = <&rcc 1 CLK_USART1>;
429 status = "disabled";
430 };
431
432 usart6: serial@40011400 {
433 compatible = "st,stm32f7-uart";
434 reg = <0x40011400 0x400>;
435 interrupts = <71>;
436 clocks = <&rcc 1 CLK_USART6>;
437 status = "disabled";
438 };
439
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";
446 interrupts = <103>;
447 max-frequency = <48000000>;
448 status = "disabled";
449 };
450
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";
457 interrupts = <49>;
458 max-frequency = <48000000>;
459 status = "disabled";
460 };
461
Patrice Chotard61c88ac2020-11-06 08:11:58 +0100462 syscfg: syscon@40013800 {
463 compatible = "st,stm32-syscfg", "syscon";
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100464 reg = <0x40013800 0x400>;
465 };
466
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>;
473 };
474
475 timers9: timers@40014000 {
476 #address-cells = <1>;
477 #size-cells = <0>;
478 compatible = "st,stm32-timers";
479 reg = <0x40014000 0x400>;
480 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM9)>;
481 clock-names = "int";
482 status = "disabled";
483
484 pwm {
485 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100486 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100487 status = "disabled";
488 };
489
490 timer@8 {
491 compatible = "st,stm32-timer-trigger";
492 reg = <8>;
493 status = "disabled";
494 };
495 };
496
497 timers10: timers@40014400 {
498 #address-cells = <1>;
499 #size-cells = <0>;
500 compatible = "st,stm32-timers";
501 reg = <0x40014400 0x400>;
502 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
503 clock-names = "int";
504 status = "disabled";
505
506 pwm {
507 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100508 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100509 status = "disabled";
510 };
511 };
512
513 timers11: timers@40014800 {
514 #address-cells = <1>;
515 #size-cells = <0>;
516 compatible = "st,stm32-timers";
517 reg = <0x40014800 0x400>;
518 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
519 clock-names = "int";
520 status = "disabled";
521
522 pwm {
523 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100524 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100525 status = "disabled";
526 };
527 };
528
529 pwrcfg: power-config@40007000 {
Patrice Chotard61c88ac2020-11-06 08:11:58 +0100530 compatible = "st,stm32-power-config", "syscon";
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100531 reg = <0x40007000 0x400>;
532 };
533
534 crc: crc@40023000 {
535 compatible = "st,stm32f7-crc";
536 reg = <0x40023000 0x400>;
537 clocks = <&rcc 0 12>;
538 status = "disabled";
539 };
540
541 rcc: rcc@40023800 {
542 #reset-cells = <1>;
543 #clock-cells = <2>;
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>;
550 };
551
Patrice Chotard61c88ac2020-11-06 08:11:58 +0100552 dma1: dma-controller@40026000 {
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100553 compatible = "st,stm32-dma";
554 reg = <0x40026000 0x400>;
555 interrupts = <11>,
556 <12>,
557 <13>,
558 <14>,
559 <15>,
560 <16>,
561 <17>,
562 <47>;
563 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA1)>;
564 #dma-cells = <4>;
565 status = "disabled";
566 };
567
Patrice Chotard61c88ac2020-11-06 08:11:58 +0100568 dma2: dma-controller@40026400 {
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100569 compatible = "st,stm32-dma";
570 reg = <0x40026400 0x400>;
571 interrupts = <56>,
572 <57>,
573 <58>,
574 <59>,
575 <60>,
576 <68>,
577 <69>,
578 <70>;
579 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA2)>;
580 #dma-cells = <4>;
581 st,mem2mem;
582 status = "disabled";
583 };
584
585 usbotg_hs: usb@40040000 {
586 compatible = "st,stm32f7-hsotg";
587 reg = <0x40040000 0x40000>;
588 interrupts = <77>;
589 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHS)>;
590 clock-names = "otg";
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>;
594 status = "disabled";
595 };
596
597 usbotg_fs: usb@50000000 {
598 compatible = "st,stm32f4x9-fsotg";
599 reg = <0x50000000 0x40000>;
600 interrupts = <67>;
601 clocks = <&rcc 0 STM32F7_AHB2_CLOCK(OTGFS)>;
602 clock-names = "otg";
603 status = "disabled";
604 };
Michael Kurzb1a8de72017-01-22 16:04:23 +0100605 };
606};
607
608&systick {
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100609 clocks = <&rcc 1 0>;
Michael Kurzb1a8de72017-01-22 16:04:23 +0100610 status = "okay";
611};