Linux Audio

Check our new training course

Loading...
v4.17
  1/*
  2 * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
  3 *
  4 * This file is dual-licensed: you can use it either under the terms
  5 * of the GPL or the X11 license, at your option. Note that this dual
  6 * licensing only applies to this file, and not this project as a
  7 * whole.
  8 *
  9 *  a) This file is free software; you can redistribute it and/or
 10 *     modify it under the terms of the GNU General Public License as
 11 *     published by the Free Software Foundation; either version 2 of the
 12 *     License, or (at your option) any later version.
 13 *
 14 *     This file is distributed in the hope that it will be useful,
 15 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 16 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 17 *     GNU General Public License for more details.
 18 *
 19 * Or, alternatively,
 20 *
 21 *  b) Permission is hereby granted, free of charge, to any person
 22 *     obtaining a copy of this software and associated documentation
 23 *     files (the "Software"), to deal in the Software without
 24 *     restriction, including without limitation the rights to use,
 25 *     copy, modify, merge, publish, distribute, sublicense, and/or
 26 *     sell copies of the Software, and to permit persons to whom the
 27 *     Software is furnished to do so, subject to the following
 28 *     conditions:
 29 *
 30 *     The above copyright notice and this permission notice shall be
 31 *     included in all copies or substantial portions of the Software.
 32 *
 33 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 34 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 35 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 36 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 37 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 38 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 39 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 40 *     OTHER DEALINGS IN THE SOFTWARE.
 41 */
 42
 43#include "skeleton.dtsi"
 44#include "armv7-m.dtsi"
 45#include <dt-bindings/clock/stm32fx-clock.h>
 46#include <dt-bindings/mfd/stm32f7-rcc.h>
 47
 48/ {
 
 
 
 49	clocks {
 50		clk_hse: clk-hse {
 51			#clock-cells = <0>;
 52			compatible = "fixed-clock";
 53			clock-frequency = <0>;
 54		};
 55
 56		clk-lse {
 57			#clock-cells = <0>;
 58			compatible = "fixed-clock";
 59			clock-frequency = <32768>;
 60		};
 61
 62		clk-lsi {
 63			#clock-cells = <0>;
 64			compatible = "fixed-clock";
 65			clock-frequency = <32000>;
 66		};
 67
 68		clk_i2s_ckin: clk-i2s-ckin {
 69			#clock-cells = <0>;
 70			compatible = "fixed-clock";
 71			clock-frequency = <48000000>;
 72		};
 73	};
 74
 75	soc {
 76		timer2: timer@40000000 {
 77			compatible = "st,stm32-timer";
 78			reg = <0x40000000 0x400>;
 79			interrupts = <28>;
 80			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM2)>;
 81			status = "disabled";
 82		};
 83
 84		timers2: timers@40000000 {
 85			#address-cells = <1>;
 86			#size-cells = <0>;
 87			compatible = "st,stm32-timers";
 88			reg = <0x40000000 0x400>;
 89			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM2)>;
 90			clock-names = "int";
 91			status = "disabled";
 92
 93			pwm {
 94				compatible = "st,stm32-pwm";
 
 95				status = "disabled";
 96			};
 97
 98			timer@1 {
 99				compatible = "st,stm32-timer-trigger";
100				reg = <1>;
101				status = "disabled";
102			};
103		};
104
105		timer3: timer@40000400 {
106			compatible = "st,stm32-timer";
107			reg = <0x40000400 0x400>;
108			interrupts = <29>;
109			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
110			status = "disabled";
111		};
112
113		timers3: timers@40000400 {
114			#address-cells = <1>;
115			#size-cells = <0>;
116			compatible = "st,stm32-timers";
117			reg = <0x40000400 0x400>;
118			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
119			clock-names = "int";
120			status = "disabled";
121
122			pwm {
123				compatible = "st,stm32-pwm";
 
124				status = "disabled";
125			};
126
127			timer@2 {
128				compatible = "st,stm32-timer-trigger";
129				reg = <2>;
130				status = "disabled";
131			};
132		};
133
134		timer4: timer@40000800 {
135			compatible = "st,stm32-timer";
136			reg = <0x40000800 0x400>;
137			interrupts = <30>;
138			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
139			status = "disabled";
140		};
141
142		timers4: timers@40000800 {
143			#address-cells = <1>;
144			#size-cells = <0>;
145			compatible = "st,stm32-timers";
146			reg = <0x40000800 0x400>;
147			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
148			clock-names = "int";
149			status = "disabled";
150
151			pwm {
152				compatible = "st,stm32-pwm";
 
153				status = "disabled";
154			};
155
156			timer@3 {
157				compatible = "st,stm32-timer-trigger";
158				reg = <3>;
159				status = "disabled";
160			};
161		};
162
163		timer5: timer@40000c00 {
164			compatible = "st,stm32-timer";
165			reg = <0x40000c00 0x400>;
166			interrupts = <50>;
167			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
168		};
169
170		timers5: timers@40000c00 {
171			#address-cells = <1>;
172			#size-cells = <0>;
173			compatible = "st,stm32-timers";
174			reg = <0x40000C00 0x400>;
175			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
176			clock-names = "int";
177			status = "disabled";
178
179			pwm {
180				compatible = "st,stm32-pwm";
 
181				status = "disabled";
182			};
183
184			timer@4 {
185				compatible = "st,stm32-timer-trigger";
186				reg = <4>;
187				status = "disabled";
188			};
189		};
190
191		timer6: timer@40001000 {
192			compatible = "st,stm32-timer";
193			reg = <0x40001000 0x400>;
194			interrupts = <54>;
195			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
196			status = "disabled";
197		};
198
199		timers6: timers@40001000 {
200			#address-cells = <1>;
201			#size-cells = <0>;
202			compatible = "st,stm32-timers";
203			reg = <0x40001000 0x400>;
204			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
205			clock-names = "int";
206			status = "disabled";
207
208			timer@5 {
209				compatible = "st,stm32-timer-trigger";
210				reg = <5>;
211				status = "disabled";
212			};
213		};
214
215		timer7: timer@40001400 {
216			compatible = "st,stm32-timer";
217			reg = <0x40001400 0x400>;
218			interrupts = <55>;
219			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
220			status = "disabled";
221		};
222
223		timers7: timers@40001400 {
224			#address-cells = <1>;
225			#size-cells = <0>;
226			compatible = "st,stm32-timers";
227			reg = <0x40001400 0x400>;
228			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
229			clock-names = "int";
230			status = "disabled";
231
232			timer@6 {
233				compatible = "st,stm32-timer-trigger";
234				reg = <6>;
235				status = "disabled";
236			};
237		};
238
239		timers12: timers@40001800 {
240			#address-cells = <1>;
241			#size-cells = <0>;
242			compatible = "st,stm32-timers";
243			reg = <0x40001800 0x400>;
244			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM12)>;
245			clock-names = "int";
246			status = "disabled";
247
248			pwm {
249				compatible = "st,stm32-pwm";
 
250				status = "disabled";
251			};
252
253			timer@11 {
254				compatible = "st,stm32-timer-trigger";
255				reg = <11>;
256				status = "disabled";
257			};
258		};
259
260		timers13: timers@40001c00 {
261			#address-cells = <1>;
262			#size-cells = <0>;
263			compatible = "st,stm32-timers";
264			reg = <0x40001C00 0x400>;
265			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
266			clock-names = "int";
267			status = "disabled";
268
269			pwm {
270				compatible = "st,stm32-pwm";
 
271				status = "disabled";
272			};
273		};
274
275		timers14: timers@40002000 {
276			#address-cells = <1>;
277			#size-cells = <0>;
278			compatible = "st,stm32-timers";
279			reg = <0x40002000 0x400>;
280			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
281			clock-names = "int";
282			status = "disabled";
283
284			pwm {
285				compatible = "st,stm32-pwm";
 
286				status = "disabled";
287			};
288		};
289
290		rtc: rtc@40002800 {
291			compatible = "st,stm32-rtc";
292			reg = <0x40002800 0x400>;
293			clocks = <&rcc 1 CLK_RTC>;
294			clock-names = "ck_rtc";
295			assigned-clocks = <&rcc 1 CLK_RTC>;
296			assigned-clock-parents = <&rcc 1 CLK_LSE>;
297			interrupt-parent = <&exti>;
298			interrupts = <17 1>;
299			interrupt-names = "alarm";
300			st,syscfg = <&pwrcfg>;
301			status = "disabled";
302		};
303
304		usart2: serial@40004400 {
305			compatible = "st,stm32f7-uart";
306			reg = <0x40004400 0x400>;
307			interrupts = <38>;
308			clocks = <&rcc 1 CLK_USART2>;
309			status = "disabled";
310		};
311
312		usart3: serial@40004800 {
313			compatible = "st,stm32f7-uart";
314			reg = <0x40004800 0x400>;
315			interrupts = <39>;
316			clocks = <&rcc 1 CLK_USART3>;
317			status = "disabled";
318		};
319
320		usart4: serial@40004c00 {
321			compatible = "st,stm32f7-uart";
322			reg = <0x40004c00 0x400>;
323			interrupts = <52>;
324			clocks = <&rcc 1 CLK_UART4>;
325			status = "disabled";
326		};
327
328		usart5: serial@40005000 {
329			compatible = "st,stm32f7-uart";
330			reg = <0x40005000 0x400>;
331			interrupts = <53>;
332			clocks = <&rcc 1 CLK_UART5>;
333			status = "disabled";
334		};
335
336		i2c1: i2c@40005400 {
337			compatible = "st,stm32f7-i2c";
338			reg = <0x40005400 0x400>;
339			interrupts = <31>,
340				     <32>;
341			resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
342			clocks = <&rcc 1 CLK_I2C1>;
343			#address-cells = <1>;
344			#size-cells = <0>;
345			status = "disabled";
346		};
347
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
348		cec: cec@40006c00 {
349			compatible = "st,stm32-cec";
350			reg = <0x40006C00 0x400>;
351			interrupts = <94>;
352			clocks = <&rcc 0 STM32F7_APB1_CLOCK(CEC)>, <&rcc 1 CLK_HDMI_CEC>;
353			clock-names = "cec", "hdmi-cec";
354			status = "disabled";
355		};
356
357		usart7: serial@40007800 {
358			compatible = "st,stm32f7-uart";
359			reg = <0x40007800 0x400>;
360			interrupts = <82>;
361			clocks = <&rcc 1 CLK_UART7>;
362			status = "disabled";
363		};
364
365		usart8: serial@40007c00 {
366			compatible = "st,stm32f7-uart";
367			reg = <0x40007c00 0x400>;
368			interrupts = <83>;
369			clocks = <&rcc 1 CLK_UART8>;
370			status = "disabled";
371		};
372
373		timers1: timers@40010000 {
374			#address-cells = <1>;
375			#size-cells = <0>;
376			compatible = "st,stm32-timers";
377			reg = <0x40010000 0x400>;
378			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM1)>;
379			clock-names = "int";
380			status = "disabled";
381
382			pwm {
383				compatible = "st,stm32-pwm";
 
384				status = "disabled";
385			};
386
387			timer@0 {
388				compatible = "st,stm32-timer-trigger";
389				reg = <0>;
390				status = "disabled";
391			};
392		};
393
394		timers8: timers@40010400 {
395			#address-cells = <1>;
396			#size-cells = <0>;
397			compatible = "st,stm32-timers";
398			reg = <0x40010400 0x400>;
399			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM8)>;
400			clock-names = "int";
401			status = "disabled";
402
403			pwm {
404				compatible = "st,stm32-pwm";
 
405				status = "disabled";
406			};
407
408			timer@7 {
409				compatible = "st,stm32-timer-trigger";
410				reg = <7>;
411				status = "disabled";
412			};
413		};
414
415		usart1: serial@40011000 {
416			compatible = "st,stm32f7-uart";
417			reg = <0x40011000 0x400>;
418			interrupts = <37>;
419			clocks = <&rcc 1 CLK_USART1>;
420			status = "disabled";
421		};
422
423		usart6: serial@40011400 {
424			compatible = "st,stm32f7-uart";
425			reg = <0x40011400 0x400>;
426			interrupts = <71>;
427			clocks = <&rcc 1 CLK_USART6>;
428			status = "disabled";
429		};
430
431		sdio2: sdio2@40011c00 {
432			compatible = "arm,pl180", "arm,primecell";
433			arm,primecell-periphid = <0x00880180>;
434			reg = <0x40011c00 0x400>;
435			clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC2)>;
436			clock-names = "apb_pclk";
437			interrupts = <103>;
438			max-frequency = <48000000>;
439			status = "disabled";
440		};
441
442		sdio1: sdio1@40012c00 {
443			compatible = "arm,pl180", "arm,primecell";
444			arm,primecell-periphid = <0x00880180>;
445			reg = <0x40012c00 0x400>;
446			clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC1)>;
447			clock-names = "apb_pclk";
448			interrupts = <49>;
449			max-frequency = <48000000>;
450			status = "disabled";
451		};
452
453		syscfg: system-config@40013800 {
454			compatible = "syscon";
455			reg = <0x40013800 0x400>;
456		};
457
458		exti: interrupt-controller@40013c00 {
459			compatible = "st,stm32-exti";
460			interrupt-controller;
461			#interrupt-cells = <2>;
462			reg = <0x40013C00 0x400>;
463			interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
464		};
465
466		timers9: timers@40014000 {
467			#address-cells = <1>;
468			#size-cells = <0>;
469			compatible = "st,stm32-timers";
470			reg = <0x40014000 0x400>;
471			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM9)>;
472			clock-names = "int";
473			status = "disabled";
474
475			pwm {
476				compatible = "st,stm32-pwm";
 
477				status = "disabled";
478			};
479
480			timer@8 {
481				compatible = "st,stm32-timer-trigger";
482				reg = <8>;
483				status = "disabled";
484			};
485		};
486
487		timers10: timers@40014400 {
488			#address-cells = <1>;
489			#size-cells = <0>;
490			compatible = "st,stm32-timers";
491			reg = <0x40014400 0x400>;
492			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
493			clock-names = "int";
494			status = "disabled";
495
496			pwm {
497				compatible = "st,stm32-pwm";
 
498				status = "disabled";
499			};
500		};
501
502		timers11: timers@40014800 {
503			#address-cells = <1>;
504			#size-cells = <0>;
505			compatible = "st,stm32-timers";
506			reg = <0x40014800 0x400>;
507			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
508			clock-names = "int";
509			status = "disabled";
510
511			pwm {
512				compatible = "st,stm32-pwm";
 
513				status = "disabled";
514			};
515		};
516
517		pwrcfg: power-config@40007000 {
518			compatible = "syscon";
519			reg = <0x40007000 0x400>;
520		};
521
522		crc: crc@40023000 {
523			compatible = "st,stm32f7-crc";
524			reg = <0x40023000 0x400>;
525			clocks = <&rcc 0 12>;
526			status = "disabled";
527		};
528
529		rcc: rcc@40023800 {
530			#reset-cells = <1>;
531			#clock-cells = <2>;
532			compatible = "st,stm32f746-rcc", "st,stm32-rcc";
533			reg = <0x40023800 0x400>;
534			clocks = <&clk_hse>, <&clk_i2s_ckin>;
535			st,syscfg = <&pwrcfg>;
536			assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
537			assigned-clock-rates = <1000000>;
538		};
539
540		dma1: dma@40026000 {
541			compatible = "st,stm32-dma";
542			reg = <0x40026000 0x400>;
543			interrupts = <11>,
544				     <12>,
545				     <13>,
546				     <14>,
547				     <15>,
548				     <16>,
549				     <17>,
550				     <47>;
551			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA1)>;
552			#dma-cells = <4>;
553			status = "disabled";
554		};
555
556		dma2: dma@40026400 {
557			compatible = "st,stm32-dma";
558			reg = <0x40026400 0x400>;
559			interrupts = <56>,
560				     <57>,
561				     <58>,
562				     <59>,
563				     <60>,
564				     <68>,
565				     <69>,
566				     <70>;
567			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA2)>;
568			#dma-cells = <4>;
569			st,mem2mem;
570			status = "disabled";
571		};
572
573		usbotg_hs: usb@40040000 {
574			compatible = "st,stm32f7-hsotg";
575			reg = <0x40040000 0x40000>;
576			interrupts = <77>;
577			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHS)>;
578			clock-names = "otg";
579			g-rx-fifo-size = <256>;
580			g-np-tx-fifo-size = <32>;
581			g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
582			status = "disabled";
583		};
584
585		usbotg_fs: usb@50000000 {
586			compatible = "st,stm32f4x9-fsotg";
587			reg = <0x50000000 0x40000>;
588			interrupts = <67>;
589			clocks = <&rcc 0 STM32F7_AHB2_CLOCK(OTGFS)>;
590			clock-names = "otg";
591			status = "disabled";
592		};
593	};
594};
595
596&systick {
597	clocks = <&rcc 1 0>;
598	status = "okay";
599};
v5.4
  1/*
  2 * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
  3 *
  4 * This file is dual-licensed: you can use it either under the terms
  5 * of the GPL or the X11 license, at your option. Note that this dual
  6 * licensing only applies to this file, and not this project as a
  7 * whole.
  8 *
  9 *  a) This file is free software; you can redistribute it and/or
 10 *     modify it under the terms of the GNU General Public License as
 11 *     published by the Free Software Foundation; either version 2 of the
 12 *     License, or (at your option) any later version.
 13 *
 14 *     This file is distributed in the hope that it will be useful,
 15 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 16 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 17 *     GNU General Public License for more details.
 18 *
 19 * Or, alternatively,
 20 *
 21 *  b) Permission is hereby granted, free of charge, to any person
 22 *     obtaining a copy of this software and associated documentation
 23 *     files (the "Software"), to deal in the Software without
 24 *     restriction, including without limitation the rights to use,
 25 *     copy, modify, merge, publish, distribute, sublicense, and/or
 26 *     sell copies of the Software, and to permit persons to whom the
 27 *     Software is furnished to do so, subject to the following
 28 *     conditions:
 29 *
 30 *     The above copyright notice and this permission notice shall be
 31 *     included in all copies or substantial portions of the Software.
 32 *
 33 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 34 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 35 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 36 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 37 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 38 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 39 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 40 *     OTHER DEALINGS IN THE SOFTWARE.
 41 */
 42
 
 43#include "armv7-m.dtsi"
 44#include <dt-bindings/clock/stm32fx-clock.h>
 45#include <dt-bindings/mfd/stm32f7-rcc.h>
 46
 47/ {
 48	#address-cells = <1>;
 49	#size-cells = <1>;
 50
 51	clocks {
 52		clk_hse: clk-hse {
 53			#clock-cells = <0>;
 54			compatible = "fixed-clock";
 55			clock-frequency = <0>;
 56		};
 57
 58		clk-lse {
 59			#clock-cells = <0>;
 60			compatible = "fixed-clock";
 61			clock-frequency = <32768>;
 62		};
 63
 64		clk-lsi {
 65			#clock-cells = <0>;
 66			compatible = "fixed-clock";
 67			clock-frequency = <32000>;
 68		};
 69
 70		clk_i2s_ckin: clk-i2s-ckin {
 71			#clock-cells = <0>;
 72			compatible = "fixed-clock";
 73			clock-frequency = <48000000>;
 74		};
 75	};
 76
 77	soc {
 78		timer2: timer@40000000 {
 79			compatible = "st,stm32-timer";
 80			reg = <0x40000000 0x400>;
 81			interrupts = <28>;
 82			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM2)>;
 83			status = "disabled";
 84		};
 85
 86		timers2: timers@40000000 {
 87			#address-cells = <1>;
 88			#size-cells = <0>;
 89			compatible = "st,stm32-timers";
 90			reg = <0x40000000 0x400>;
 91			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM2)>;
 92			clock-names = "int";
 93			status = "disabled";
 94
 95			pwm {
 96				compatible = "st,stm32-pwm";
 97				#pwm-cells = <3>;
 98				status = "disabled";
 99			};
100
101			timer@1 {
102				compatible = "st,stm32-timer-trigger";
103				reg = <1>;
104				status = "disabled";
105			};
106		};
107
108		timer3: timer@40000400 {
109			compatible = "st,stm32-timer";
110			reg = <0x40000400 0x400>;
111			interrupts = <29>;
112			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
113			status = "disabled";
114		};
115
116		timers3: timers@40000400 {
117			#address-cells = <1>;
118			#size-cells = <0>;
119			compatible = "st,stm32-timers";
120			reg = <0x40000400 0x400>;
121			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
122			clock-names = "int";
123			status = "disabled";
124
125			pwm {
126				compatible = "st,stm32-pwm";
127				#pwm-cells = <3>;
128				status = "disabled";
129			};
130
131			timer@2 {
132				compatible = "st,stm32-timer-trigger";
133				reg = <2>;
134				status = "disabled";
135			};
136		};
137
138		timer4: timer@40000800 {
139			compatible = "st,stm32-timer";
140			reg = <0x40000800 0x400>;
141			interrupts = <30>;
142			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
143			status = "disabled";
144		};
145
146		timers4: timers@40000800 {
147			#address-cells = <1>;
148			#size-cells = <0>;
149			compatible = "st,stm32-timers";
150			reg = <0x40000800 0x400>;
151			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
152			clock-names = "int";
153			status = "disabled";
154
155			pwm {
156				compatible = "st,stm32-pwm";
157				#pwm-cells = <3>;
158				status = "disabled";
159			};
160
161			timer@3 {
162				compatible = "st,stm32-timer-trigger";
163				reg = <3>;
164				status = "disabled";
165			};
166		};
167
168		timer5: timer@40000c00 {
169			compatible = "st,stm32-timer";
170			reg = <0x40000c00 0x400>;
171			interrupts = <50>;
172			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
173		};
174
175		timers5: timers@40000c00 {
176			#address-cells = <1>;
177			#size-cells = <0>;
178			compatible = "st,stm32-timers";
179			reg = <0x40000C00 0x400>;
180			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
181			clock-names = "int";
182			status = "disabled";
183
184			pwm {
185				compatible = "st,stm32-pwm";
186				#pwm-cells = <3>;
187				status = "disabled";
188			};
189
190			timer@4 {
191				compatible = "st,stm32-timer-trigger";
192				reg = <4>;
193				status = "disabled";
194			};
195		};
196
197		timer6: timer@40001000 {
198			compatible = "st,stm32-timer";
199			reg = <0x40001000 0x400>;
200			interrupts = <54>;
201			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
202			status = "disabled";
203		};
204
205		timers6: timers@40001000 {
206			#address-cells = <1>;
207			#size-cells = <0>;
208			compatible = "st,stm32-timers";
209			reg = <0x40001000 0x400>;
210			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
211			clock-names = "int";
212			status = "disabled";
213
214			timer@5 {
215				compatible = "st,stm32-timer-trigger";
216				reg = <5>;
217				status = "disabled";
218			};
219		};
220
221		timer7: timer@40001400 {
222			compatible = "st,stm32-timer";
223			reg = <0x40001400 0x400>;
224			interrupts = <55>;
225			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
226			status = "disabled";
227		};
228
229		timers7: timers@40001400 {
230			#address-cells = <1>;
231			#size-cells = <0>;
232			compatible = "st,stm32-timers";
233			reg = <0x40001400 0x400>;
234			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
235			clock-names = "int";
236			status = "disabled";
237
238			timer@6 {
239				compatible = "st,stm32-timer-trigger";
240				reg = <6>;
241				status = "disabled";
242			};
243		};
244
245		timers12: timers@40001800 {
246			#address-cells = <1>;
247			#size-cells = <0>;
248			compatible = "st,stm32-timers";
249			reg = <0x40001800 0x400>;
250			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM12)>;
251			clock-names = "int";
252			status = "disabled";
253
254			pwm {
255				compatible = "st,stm32-pwm";
256				#pwm-cells = <3>;
257				status = "disabled";
258			};
259
260			timer@11 {
261				compatible = "st,stm32-timer-trigger";
262				reg = <11>;
263				status = "disabled";
264			};
265		};
266
267		timers13: timers@40001c00 {
268			#address-cells = <1>;
269			#size-cells = <0>;
270			compatible = "st,stm32-timers";
271			reg = <0x40001C00 0x400>;
272			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
273			clock-names = "int";
274			status = "disabled";
275
276			pwm {
277				compatible = "st,stm32-pwm";
278				#pwm-cells = <3>;
279				status = "disabled";
280			};
281		};
282
283		timers14: timers@40002000 {
284			#address-cells = <1>;
285			#size-cells = <0>;
286			compatible = "st,stm32-timers";
287			reg = <0x40002000 0x400>;
288			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
289			clock-names = "int";
290			status = "disabled";
291
292			pwm {
293				compatible = "st,stm32-pwm";
294				#pwm-cells = <3>;
295				status = "disabled";
296			};
297		};
298
299		rtc: rtc@40002800 {
300			compatible = "st,stm32-rtc";
301			reg = <0x40002800 0x400>;
302			clocks = <&rcc 1 CLK_RTC>;
303			clock-names = "ck_rtc";
304			assigned-clocks = <&rcc 1 CLK_RTC>;
305			assigned-clock-parents = <&rcc 1 CLK_LSE>;
306			interrupt-parent = <&exti>;
307			interrupts = <17 1>;
308			interrupt-names = "alarm";
309			st,syscfg = <&pwrcfg 0x00 0x100>;
310			status = "disabled";
311		};
312
313		usart2: serial@40004400 {
314			compatible = "st,stm32f7-uart";
315			reg = <0x40004400 0x400>;
316			interrupts = <38>;
317			clocks = <&rcc 1 CLK_USART2>;
318			status = "disabled";
319		};
320
321		usart3: serial@40004800 {
322			compatible = "st,stm32f7-uart";
323			reg = <0x40004800 0x400>;
324			interrupts = <39>;
325			clocks = <&rcc 1 CLK_USART3>;
326			status = "disabled";
327		};
328
329		usart4: serial@40004c00 {
330			compatible = "st,stm32f7-uart";
331			reg = <0x40004c00 0x400>;
332			interrupts = <52>;
333			clocks = <&rcc 1 CLK_UART4>;
334			status = "disabled";
335		};
336
337		usart5: serial@40005000 {
338			compatible = "st,stm32f7-uart";
339			reg = <0x40005000 0x400>;
340			interrupts = <53>;
341			clocks = <&rcc 1 CLK_UART5>;
342			status = "disabled";
343		};
344
345		i2c1: i2c@40005400 {
346			compatible = "st,stm32f7-i2c";
347			reg = <0x40005400 0x400>;
348			interrupts = <31>,
349				     <32>;
350			resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
351			clocks = <&rcc 1 CLK_I2C1>;
352			#address-cells = <1>;
353			#size-cells = <0>;
354			status = "disabled";
355		};
356
357		i2c2: i2c@40005800 {
358			compatible = "st,stm32f7-i2c";
359			reg = <0x40005800 0x400>;
360			interrupts = <33>,
361				     <34>;
362			resets = <&rcc STM32F7_APB1_RESET(I2C2)>;
363			clocks = <&rcc 1 CLK_I2C2>;
364			#address-cells = <1>;
365			#size-cells = <0>;
366			status = "disabled";
367		};
368
369		i2c3: i2c@40005C00 {
370			compatible = "st,stm32f7-i2c";
371			reg = <0x40005C00 0x400>;
372			interrupts = <72>,
373				     <73>;
374			resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
375			clocks = <&rcc 1 CLK_I2C3>;
376			#address-cells = <1>;
377			#size-cells = <0>;
378			status = "disabled";
379		};
380
381		i2c4: i2c@40006000 {
382			compatible = "st,stm32f7-i2c";
383			reg = <0x40006000 0x400>;
384			interrupts = <95>,
385				     <96>;
386			resets = <&rcc STM32F7_APB1_RESET(I2C4)>;
387			clocks = <&rcc 1 CLK_I2C4>;
388			#address-cells = <1>;
389			#size-cells = <0>;
390			status = "disabled";
391		};
392
393		cec: cec@40006c00 {
394			compatible = "st,stm32-cec";
395			reg = <0x40006C00 0x400>;
396			interrupts = <94>;
397			clocks = <&rcc 0 STM32F7_APB1_CLOCK(CEC)>, <&rcc 1 CLK_HDMI_CEC>;
398			clock-names = "cec", "hdmi-cec";
399			status = "disabled";
400		};
401
402		usart7: serial@40007800 {
403			compatible = "st,stm32f7-uart";
404			reg = <0x40007800 0x400>;
405			interrupts = <82>;
406			clocks = <&rcc 1 CLK_UART7>;
407			status = "disabled";
408		};
409
410		usart8: serial@40007c00 {
411			compatible = "st,stm32f7-uart";
412			reg = <0x40007c00 0x400>;
413			interrupts = <83>;
414			clocks = <&rcc 1 CLK_UART8>;
415			status = "disabled";
416		};
417
418		timers1: timers@40010000 {
419			#address-cells = <1>;
420			#size-cells = <0>;
421			compatible = "st,stm32-timers";
422			reg = <0x40010000 0x400>;
423			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM1)>;
424			clock-names = "int";
425			status = "disabled";
426
427			pwm {
428				compatible = "st,stm32-pwm";
429				#pwm-cells = <3>;
430				status = "disabled";
431			};
432
433			timer@0 {
434				compatible = "st,stm32-timer-trigger";
435				reg = <0>;
436				status = "disabled";
437			};
438		};
439
440		timers8: timers@40010400 {
441			#address-cells = <1>;
442			#size-cells = <0>;
443			compatible = "st,stm32-timers";
444			reg = <0x40010400 0x400>;
445			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM8)>;
446			clock-names = "int";
447			status = "disabled";
448
449			pwm {
450				compatible = "st,stm32-pwm";
451				#pwm-cells = <3>;
452				status = "disabled";
453			};
454
455			timer@7 {
456				compatible = "st,stm32-timer-trigger";
457				reg = <7>;
458				status = "disabled";
459			};
460		};
461
462		usart1: serial@40011000 {
463			compatible = "st,stm32f7-uart";
464			reg = <0x40011000 0x400>;
465			interrupts = <37>;
466			clocks = <&rcc 1 CLK_USART1>;
467			status = "disabled";
468		};
469
470		usart6: serial@40011400 {
471			compatible = "st,stm32f7-uart";
472			reg = <0x40011400 0x400>;
473			interrupts = <71>;
474			clocks = <&rcc 1 CLK_USART6>;
475			status = "disabled";
476		};
477
478		sdio2: sdio2@40011c00 {
479			compatible = "arm,pl180", "arm,primecell";
480			arm,primecell-periphid = <0x00880180>;
481			reg = <0x40011c00 0x400>;
482			clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC2)>;
483			clock-names = "apb_pclk";
484			interrupts = <103>;
485			max-frequency = <48000000>;
486			status = "disabled";
487		};
488
489		sdio1: sdio1@40012c00 {
490			compatible = "arm,pl180", "arm,primecell";
491			arm,primecell-periphid = <0x00880180>;
492			reg = <0x40012c00 0x400>;
493			clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC1)>;
494			clock-names = "apb_pclk";
495			interrupts = <49>;
496			max-frequency = <48000000>;
497			status = "disabled";
498		};
499
500		syscfg: system-config@40013800 {
501			compatible = "syscon";
502			reg = <0x40013800 0x400>;
503		};
504
505		exti: interrupt-controller@40013c00 {
506			compatible = "st,stm32-exti";
507			interrupt-controller;
508			#interrupt-cells = <2>;
509			reg = <0x40013C00 0x400>;
510			interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
511		};
512
513		timers9: timers@40014000 {
514			#address-cells = <1>;
515			#size-cells = <0>;
516			compatible = "st,stm32-timers";
517			reg = <0x40014000 0x400>;
518			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM9)>;
519			clock-names = "int";
520			status = "disabled";
521
522			pwm {
523				compatible = "st,stm32-pwm";
524				#pwm-cells = <3>;
525				status = "disabled";
526			};
527
528			timer@8 {
529				compatible = "st,stm32-timer-trigger";
530				reg = <8>;
531				status = "disabled";
532			};
533		};
534
535		timers10: timers@40014400 {
536			#address-cells = <1>;
537			#size-cells = <0>;
538			compatible = "st,stm32-timers";
539			reg = <0x40014400 0x400>;
540			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
541			clock-names = "int";
542			status = "disabled";
543
544			pwm {
545				compatible = "st,stm32-pwm";
546				#pwm-cells = <3>;
547				status = "disabled";
548			};
549		};
550
551		timers11: timers@40014800 {
552			#address-cells = <1>;
553			#size-cells = <0>;
554			compatible = "st,stm32-timers";
555			reg = <0x40014800 0x400>;
556			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
557			clock-names = "int";
558			status = "disabled";
559
560			pwm {
561				compatible = "st,stm32-pwm";
562				#pwm-cells = <3>;
563				status = "disabled";
564			};
565		};
566
567		pwrcfg: power-config@40007000 {
568			compatible = "syscon";
569			reg = <0x40007000 0x400>;
570		};
571
572		crc: crc@40023000 {
573			compatible = "st,stm32f7-crc";
574			reg = <0x40023000 0x400>;
575			clocks = <&rcc 0 12>;
576			status = "disabled";
577		};
578
579		rcc: rcc@40023800 {
580			#reset-cells = <1>;
581			#clock-cells = <2>;
582			compatible = "st,stm32f746-rcc", "st,stm32-rcc";
583			reg = <0x40023800 0x400>;
584			clocks = <&clk_hse>, <&clk_i2s_ckin>;
585			st,syscfg = <&pwrcfg>;
586			assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
587			assigned-clock-rates = <1000000>;
588		};
589
590		dma1: dma@40026000 {
591			compatible = "st,stm32-dma";
592			reg = <0x40026000 0x400>;
593			interrupts = <11>,
594				     <12>,
595				     <13>,
596				     <14>,
597				     <15>,
598				     <16>,
599				     <17>,
600				     <47>;
601			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA1)>;
602			#dma-cells = <4>;
603			status = "disabled";
604		};
605
606		dma2: dma@40026400 {
607			compatible = "st,stm32-dma";
608			reg = <0x40026400 0x400>;
609			interrupts = <56>,
610				     <57>,
611				     <58>,
612				     <59>,
613				     <60>,
614				     <68>,
615				     <69>,
616				     <70>;
617			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA2)>;
618			#dma-cells = <4>;
619			st,mem2mem;
620			status = "disabled";
621		};
622
623		usbotg_hs: usb@40040000 {
624			compatible = "st,stm32f7-hsotg";
625			reg = <0x40040000 0x40000>;
626			interrupts = <77>;
627			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHS)>;
628			clock-names = "otg";
629			g-rx-fifo-size = <256>;
630			g-np-tx-fifo-size = <32>;
631			g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
632			status = "disabled";
633		};
634
635		usbotg_fs: usb@50000000 {
636			compatible = "st,stm32f4x9-fsotg";
637			reg = <0x50000000 0x40000>;
638			interrupts = <67>;
639			clocks = <&rcc 0 STM32F7_AHB2_CLOCK(OTGFS)>;
640			clock-names = "otg";
641			status = "disabled";
642		};
643	};
644};
645
646&systick {
647	clocks = <&rcc 1 0>;
648	status = "okay";
649};