blob: 3f312ab3a775245f1ccb7e785ec3aaf0c89e387f [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>;
267 clock-names = "ck_rtc";
268 assigned-clocks = <&rcc 1 CLK_RTC>;
269 assigned-clock-parents = <&rcc 1 CLK_LSE>;
270 interrupt-parent = <&exti>;
271 interrupts = <17 1>;
272 interrupt-names = "alarm";
273 st,syscfg = <&pwrcfg 0x00 0x100>;
274 status = "disabled";
275 };
276
277 usart2: serial@40004400 {
278 compatible = "st,stm32f7-uart";
279 reg = <0x40004400 0x400>;
280 interrupts = <38>;
281 clocks = <&rcc 1 CLK_USART2>;
282 status = "disabled";
283 };
284
285 usart3: serial@40004800 {
286 compatible = "st,stm32f7-uart";
287 reg = <0x40004800 0x400>;
288 interrupts = <39>;
289 clocks = <&rcc 1 CLK_USART3>;
290 status = "disabled";
291 };
292
293 usart4: serial@40004c00 {
294 compatible = "st,stm32f7-uart";
295 reg = <0x40004c00 0x400>;
296 interrupts = <52>;
297 clocks = <&rcc 1 CLK_UART4>;
298 status = "disabled";
299 };
300
301 usart5: serial@40005000 {
302 compatible = "st,stm32f7-uart";
303 reg = <0x40005000 0x400>;
304 interrupts = <53>;
305 clocks = <&rcc 1 CLK_UART5>;
306 status = "disabled";
307 };
308
309 i2c1: i2c@40005400 {
310 compatible = "st,stm32f7-i2c";
311 reg = <0x40005400 0x400>;
312 interrupts = <31>,
313 <32>;
314 resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
315 clocks = <&rcc 1 CLK_I2C1>;
316 #address-cells = <1>;
317 #size-cells = <0>;
318 status = "disabled";
319 };
320
321 i2c2: i2c@40005800 {
322 compatible = "st,stm32f7-i2c";
323 reg = <0x40005800 0x400>;
324 interrupts = <33>,
325 <34>;
326 resets = <&rcc STM32F7_APB1_RESET(I2C2)>;
327 clocks = <&rcc 1 CLK_I2C2>;
328 #address-cells = <1>;
329 #size-cells = <0>;
330 status = "disabled";
331 };
332
333 i2c3: i2c@40005C00 {
334 compatible = "st,stm32f7-i2c";
335 reg = <0x40005C00 0x400>;
336 interrupts = <72>,
337 <73>;
338 resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
339 clocks = <&rcc 1 CLK_I2C3>;
340 #address-cells = <1>;
341 #size-cells = <0>;
342 status = "disabled";
343 };
344
345 i2c4: i2c@40006000 {
346 compatible = "st,stm32f7-i2c";
347 reg = <0x40006000 0x400>;
348 interrupts = <95>,
349 <96>;
350 resets = <&rcc STM32F7_APB1_RESET(I2C4)>;
351 clocks = <&rcc 1 CLK_I2C4>;
352 #address-cells = <1>;
353 #size-cells = <0>;
354 status = "disabled";
355 };
356
357 cec: cec@40006c00 {
358 compatible = "st,stm32-cec";
359 reg = <0x40006C00 0x400>;
360 interrupts = <94>;
361 clocks = <&rcc 0 STM32F7_APB1_CLOCK(CEC)>, <&rcc 1 CLK_HDMI_CEC>;
362 clock-names = "cec", "hdmi-cec";
363 status = "disabled";
364 };
365
366 usart7: serial@40007800 {
367 compatible = "st,stm32f7-uart";
368 reg = <0x40007800 0x400>;
369 interrupts = <82>;
370 clocks = <&rcc 1 CLK_UART7>;
371 status = "disabled";
372 };
373
374 usart8: serial@40007c00 {
375 compatible = "st,stm32f7-uart";
376 reg = <0x40007c00 0x400>;
377 interrupts = <83>;
378 clocks = <&rcc 1 CLK_UART8>;
379 status = "disabled";
380 };
381
382 timers1: timers@40010000 {
383 #address-cells = <1>;
384 #size-cells = <0>;
385 compatible = "st,stm32-timers";
386 reg = <0x40010000 0x400>;
387 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM1)>;
388 clock-names = "int";
389 status = "disabled";
390
391 pwm {
392 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100393 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100394 status = "disabled";
395 };
396
397 timer@0 {
398 compatible = "st,stm32-timer-trigger";
399 reg = <0>;
400 status = "disabled";
401 };
402 };
403
404 timers8: timers@40010400 {
405 #address-cells = <1>;
406 #size-cells = <0>;
407 compatible = "st,stm32-timers";
408 reg = <0x40010400 0x400>;
409 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM8)>;
410 clock-names = "int";
411 status = "disabled";
412
413 pwm {
414 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100415 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100416 status = "disabled";
417 };
418
419 timer@7 {
420 compatible = "st,stm32-timer-trigger";
421 reg = <7>;
422 status = "disabled";
423 };
424 };
425
426 usart1: serial@40011000 {
427 compatible = "st,stm32f7-uart";
428 reg = <0x40011000 0x400>;
429 interrupts = <37>;
430 clocks = <&rcc 1 CLK_USART1>;
431 status = "disabled";
432 };
433
434 usart6: serial@40011400 {
435 compatible = "st,stm32f7-uart";
436 reg = <0x40011400 0x400>;
437 interrupts = <71>;
438 clocks = <&rcc 1 CLK_USART6>;
439 status = "disabled";
440 };
441
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";
448 interrupts = <103>;
449 max-frequency = <48000000>;
450 status = "disabled";
451 };
452
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";
459 interrupts = <49>;
460 max-frequency = <48000000>;
461 status = "disabled";
462 };
463
464 syscfg: system-config@40013800 {
465 compatible = "syscon";
466 reg = <0x40013800 0x400>;
467 };
468
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>;
475 };
476
477 timers9: timers@40014000 {
478 #address-cells = <1>;
479 #size-cells = <0>;
480 compatible = "st,stm32-timers";
481 reg = <0x40014000 0x400>;
482 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM9)>;
483 clock-names = "int";
484 status = "disabled";
485
486 pwm {
487 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100488 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100489 status = "disabled";
490 };
491
492 timer@8 {
493 compatible = "st,stm32-timer-trigger";
494 reg = <8>;
495 status = "disabled";
496 };
497 };
498
499 timers10: timers@40014400 {
500 #address-cells = <1>;
501 #size-cells = <0>;
502 compatible = "st,stm32-timers";
503 reg = <0x40014400 0x400>;
504 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
505 clock-names = "int";
506 status = "disabled";
507
508 pwm {
509 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100510 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100511 status = "disabled";
512 };
513 };
514
515 timers11: timers@40014800 {
516 #address-cells = <1>;
517 #size-cells = <0>;
518 compatible = "st,stm32-timers";
519 reg = <0x40014800 0x400>;
520 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
521 clock-names = "int";
522 status = "disabled";
523
524 pwm {
525 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100526 #pwm-cells = <3>;
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100527 status = "disabled";
528 };
529 };
530
531 pwrcfg: power-config@40007000 {
532 compatible = "syscon";
533 reg = <0x40007000 0x400>;
534 };
535
536 crc: crc@40023000 {
537 compatible = "st,stm32f7-crc";
538 reg = <0x40023000 0x400>;
539 clocks = <&rcc 0 12>;
540 status = "disabled";
541 };
542
543 rcc: rcc@40023800 {
544 #reset-cells = <1>;
545 #clock-cells = <2>;
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>;
552 };
553
554 dma1: dma@40026000 {
555 compatible = "st,stm32-dma";
556 reg = <0x40026000 0x400>;
557 interrupts = <11>,
558 <12>,
559 <13>,
560 <14>,
561 <15>,
562 <16>,
563 <17>,
564 <47>;
565 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA1)>;
566 #dma-cells = <4>;
567 status = "disabled";
568 };
569
570 dma2: dma@40026400 {
571 compatible = "st,stm32-dma";
572 reg = <0x40026400 0x400>;
573 interrupts = <56>,
574 <57>,
575 <58>,
576 <59>,
577 <60>,
578 <68>,
579 <69>,
580 <70>;
581 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA2)>;
582 #dma-cells = <4>;
583 st,mem2mem;
584 status = "disabled";
585 };
586
587 usbotg_hs: usb@40040000 {
588 compatible = "st,stm32f7-hsotg";
589 reg = <0x40040000 0x40000>;
590 interrupts = <77>;
591 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHS)>;
592 clock-names = "otg";
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>;
596 status = "disabled";
597 };
598
599 usbotg_fs: usb@50000000 {
600 compatible = "st,stm32f4x9-fsotg";
601 reg = <0x50000000 0x40000>;
602 interrupts = <67>;
603 clocks = <&rcc 0 STM32F7_AHB2_CLOCK(OTGFS)>;
604 clock-names = "otg";
605 status = "disabled";
606 };
Michael Kurzb1a8de72017-01-22 16:04:23 +0100607 };
608};
609
610&systick {
Patrice Chotardfe63d3c2019-02-19 16:49:05 +0100611 clocks = <&rcc 1 0>;
Michael Kurzb1a8de72017-01-22 16:04:23 +0100612 status = "okay";
613};