Linux Audio

Check our new training course

Loading...
v6.2
  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		timers2: timers@40000000 {
 79			#address-cells = <1>;
 80			#size-cells = <0>;
 81			compatible = "st,stm32-timers";
 82			reg = <0x40000000 0x400>;
 83			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM2)>;
 84			clock-names = "int";
 85			status = "disabled";
 86
 87			pwm {
 88				compatible = "st,stm32-pwm";
 89				#pwm-cells = <3>;
 90				status = "disabled";
 91			};
 92
 93			timer@1 {
 94				compatible = "st,stm32-timer-trigger";
 95				reg = <1>;
 96				status = "disabled";
 97			};
 98		};
 99
 
 
 
 
 
 
 
 
100		timers3: timers@40000400 {
101			#address-cells = <1>;
102			#size-cells = <0>;
103			compatible = "st,stm32-timers";
104			reg = <0x40000400 0x400>;
105			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
106			clock-names = "int";
107			status = "disabled";
108
109			pwm {
110				compatible = "st,stm32-pwm";
111				#pwm-cells = <3>;
112				status = "disabled";
113			};
114
115			timer@2 {
116				compatible = "st,stm32-timer-trigger";
117				reg = <2>;
118				status = "disabled";
119			};
120		};
121
 
 
 
 
 
 
 
 
122		timers4: timers@40000800 {
123			#address-cells = <1>;
124			#size-cells = <0>;
125			compatible = "st,stm32-timers";
126			reg = <0x40000800 0x400>;
127			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
128			clock-names = "int";
129			status = "disabled";
130
131			pwm {
132				compatible = "st,stm32-pwm";
133				#pwm-cells = <3>;
134				status = "disabled";
135			};
136
137			timer@3 {
138				compatible = "st,stm32-timer-trigger";
139				reg = <3>;
140				status = "disabled";
141			};
142		};
143
 
 
 
 
 
 
 
144		timers5: timers@40000c00 {
145			#address-cells = <1>;
146			#size-cells = <0>;
147			compatible = "st,stm32-timers";
148			reg = <0x40000C00 0x400>;
149			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
150			clock-names = "int";
151			status = "disabled";
152
153			pwm {
154				compatible = "st,stm32-pwm";
155				#pwm-cells = <3>;
156				status = "disabled";
157			};
158
159			timer@4 {
160				compatible = "st,stm32-timer-trigger";
161				reg = <4>;
162				status = "disabled";
163			};
164		};
165
 
 
 
 
 
 
 
 
166		timers6: timers@40001000 {
167			#address-cells = <1>;
168			#size-cells = <0>;
169			compatible = "st,stm32-timers";
170			reg = <0x40001000 0x400>;
171			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
172			clock-names = "int";
173			status = "disabled";
174
175			timer@5 {
176				compatible = "st,stm32-timer-trigger";
177				reg = <5>;
178				status = "disabled";
179			};
 
 
 
 
 
 
 
 
180		};
181
182		timers7: timers@40001400 {
183			#address-cells = <1>;
184			#size-cells = <0>;
185			compatible = "st,stm32-timers";
186			reg = <0x40001400 0x400>;
187			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
188			clock-names = "int";
189			status = "disabled";
190
191			timer@6 {
192				compatible = "st,stm32-timer-trigger";
193				reg = <6>;
194				status = "disabled";
195			};
196		};
197
198		timers12: timers@40001800 {
199			#address-cells = <1>;
200			#size-cells = <0>;
201			compatible = "st,stm32-timers";
202			reg = <0x40001800 0x400>;
203			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM12)>;
204			clock-names = "int";
205			status = "disabled";
206
207			pwm {
208				compatible = "st,stm32-pwm";
209				#pwm-cells = <3>;
210				status = "disabled";
211			};
212
213			timer@11 {
214				compatible = "st,stm32-timer-trigger";
215				reg = <11>;
216				status = "disabled";
217			};
218		};
219
220		timers13: timers@40001c00 {
221			compatible = "st,stm32-timers";
222			reg = <0x40001C00 0x400>;
223			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
224			clock-names = "int";
225			status = "disabled";
226
227			pwm {
228				compatible = "st,stm32-pwm";
229				#pwm-cells = <3>;
230				status = "disabled";
231			};
232		};
233
234		timers14: timers@40002000 {
235			compatible = "st,stm32-timers";
236			reg = <0x40002000 0x400>;
237			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
238			clock-names = "int";
239			status = "disabled";
240
241			pwm {
242				compatible = "st,stm32-pwm";
243				#pwm-cells = <3>;
244				status = "disabled";
245			};
246		};
247
248		rtc: rtc@40002800 {
249			compatible = "st,stm32-rtc";
250			reg = <0x40002800 0x400>;
251			clocks = <&rcc 1 CLK_RTC>;
252			assigned-clocks = <&rcc 1 CLK_RTC>;
253			assigned-clock-parents = <&rcc 1 CLK_LSE>;
254			interrupt-parent = <&exti>;
255			interrupts = <17 1>;
256			st,syscfg = <&pwrcfg 0x00 0x100>;
257			status = "disabled";
258		};
259
260		usart2: serial@40004400 {
261			compatible = "st,stm32f7-uart";
262			reg = <0x40004400 0x400>;
263			interrupts = <38>;
264			clocks = <&rcc 1 CLK_USART2>;
265			status = "disabled";
266		};
267
268		usart3: serial@40004800 {
269			compatible = "st,stm32f7-uart";
270			reg = <0x40004800 0x400>;
271			interrupts = <39>;
272			clocks = <&rcc 1 CLK_USART3>;
273			status = "disabled";
274		};
275
276		usart4: serial@40004c00 {
277			compatible = "st,stm32f7-uart";
278			reg = <0x40004c00 0x400>;
279			interrupts = <52>;
280			clocks = <&rcc 1 CLK_UART4>;
281			status = "disabled";
282		};
283
284		usart5: serial@40005000 {
285			compatible = "st,stm32f7-uart";
286			reg = <0x40005000 0x400>;
287			interrupts = <53>;
288			clocks = <&rcc 1 CLK_UART5>;
289			status = "disabled";
290		};
291
292		i2c1: i2c@40005400 {
293			compatible = "st,stm32f7-i2c";
294			reg = <0x40005400 0x400>;
295			interrupts = <31>,
296				     <32>;
297			resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
298			clocks = <&rcc 1 CLK_I2C1>;
299			#address-cells = <1>;
300			#size-cells = <0>;
301			status = "disabled";
302		};
303
304		i2c2: i2c@40005800 {
305			compatible = "st,stm32f7-i2c";
306			reg = <0x40005800 0x400>;
307			interrupts = <33>,
308				     <34>;
309			resets = <&rcc STM32F7_APB1_RESET(I2C2)>;
310			clocks = <&rcc 1 CLK_I2C2>;
311			#address-cells = <1>;
312			#size-cells = <0>;
313			status = "disabled";
314		};
315
316		i2c3: i2c@40005c00 {
317			compatible = "st,stm32f7-i2c";
318			reg = <0x40005c00 0x400>;
319			interrupts = <72>,
320				     <73>;
321			resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
322			clocks = <&rcc 1 CLK_I2C3>;
323			#address-cells = <1>;
324			#size-cells = <0>;
325			status = "disabled";
326		};
327
328		i2c4: i2c@40006000 {
329			compatible = "st,stm32f7-i2c";
330			reg = <0x40006000 0x400>;
331			interrupts = <95>,
332				     <96>;
333			resets = <&rcc STM32F7_APB1_RESET(I2C4)>;
334			clocks = <&rcc 1 CLK_I2C4>;
335			#address-cells = <1>;
336			#size-cells = <0>;
337			status = "disabled";
338		};
339
340		cec: cec@40006c00 {
341			compatible = "st,stm32-cec";
342			reg = <0x40006C00 0x400>;
343			interrupts = <94>;
344			clocks = <&rcc 0 STM32F7_APB1_CLOCK(CEC)>, <&rcc 1 CLK_HDMI_CEC>;
345			clock-names = "cec", "hdmi-cec";
346			status = "disabled";
347		};
348
349		usart7: serial@40007800 {
350			compatible = "st,stm32f7-uart";
351			reg = <0x40007800 0x400>;
352			interrupts = <82>;
353			clocks = <&rcc 1 CLK_UART7>;
354			status = "disabled";
355		};
356
357		usart8: serial@40007c00 {
358			compatible = "st,stm32f7-uart";
359			reg = <0x40007c00 0x400>;
360			interrupts = <83>;
361			clocks = <&rcc 1 CLK_UART8>;
362			status = "disabled";
363		};
364
365		timers1: timers@40010000 {
366			#address-cells = <1>;
367			#size-cells = <0>;
368			compatible = "st,stm32-timers";
369			reg = <0x40010000 0x400>;
370			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM1)>;
371			clock-names = "int";
372			status = "disabled";
373
374			pwm {
375				compatible = "st,stm32-pwm";
376				#pwm-cells = <3>;
377				status = "disabled";
378			};
379
380			timer@0 {
381				compatible = "st,stm32-timer-trigger";
382				reg = <0>;
383				status = "disabled";
384			};
385		};
386
387		timers8: timers@40010400 {
388			#address-cells = <1>;
389			#size-cells = <0>;
390			compatible = "st,stm32-timers";
391			reg = <0x40010400 0x400>;
392			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM8)>;
393			clock-names = "int";
394			status = "disabled";
395
396			pwm {
397				compatible = "st,stm32-pwm";
398				#pwm-cells = <3>;
399				status = "disabled";
400			};
401
402			timer@7 {
403				compatible = "st,stm32-timer-trigger";
404				reg = <7>;
405				status = "disabled";
406			};
407		};
408
409		usart1: serial@40011000 {
410			compatible = "st,stm32f7-uart";
411			reg = <0x40011000 0x400>;
412			interrupts = <37>;
413			clocks = <&rcc 1 CLK_USART1>;
414			status = "disabled";
415		};
416
417		usart6: serial@40011400 {
418			compatible = "st,stm32f7-uart";
419			reg = <0x40011400 0x400>;
420			interrupts = <71>;
421			clocks = <&rcc 1 CLK_USART6>;
422			status = "disabled";
423		};
424
425		sdio2: mmc@40011c00 {
426			compatible = "arm,pl180", "arm,primecell";
427			arm,primecell-periphid = <0x00880180>;
428			reg = <0x40011c00 0x400>;
429			clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC2)>;
430			clock-names = "apb_pclk";
431			interrupts = <103>;
432			max-frequency = <48000000>;
433			status = "disabled";
434		};
435
436		sdio1: mmc@40012c00 {
437			compatible = "arm,pl180", "arm,primecell";
438			arm,primecell-periphid = <0x00880180>;
439			reg = <0x40012c00 0x400>;
440			clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC1)>;
441			clock-names = "apb_pclk";
442			interrupts = <49>;
443			max-frequency = <48000000>;
444			status = "disabled";
445		};
446
447		syscfg: syscon@40013800 {
448			compatible = "st,stm32-syscfg", "syscon";
449			reg = <0x40013800 0x400>;
450		};
451
452		exti: interrupt-controller@40013c00 {
453			compatible = "st,stm32-exti";
454			interrupt-controller;
455			#interrupt-cells = <2>;
456			reg = <0x40013C00 0x400>;
457			interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
458		};
459
460		timers9: timers@40014000 {
461			#address-cells = <1>;
462			#size-cells = <0>;
463			compatible = "st,stm32-timers";
464			reg = <0x40014000 0x400>;
465			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM9)>;
466			clock-names = "int";
467			status = "disabled";
468
469			pwm {
470				compatible = "st,stm32-pwm";
471				#pwm-cells = <3>;
472				status = "disabled";
473			};
474
475			timer@8 {
476				compatible = "st,stm32-timer-trigger";
477				reg = <8>;
478				status = "disabled";
479			};
480		};
481
482		timers10: timers@40014400 {
483			compatible = "st,stm32-timers";
484			reg = <0x40014400 0x400>;
485			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
486			clock-names = "int";
487			status = "disabled";
488
489			pwm {
490				compatible = "st,stm32-pwm";
491				#pwm-cells = <3>;
492				status = "disabled";
493			};
494		};
495
496		timers11: timers@40014800 {
497			compatible = "st,stm32-timers";
498			reg = <0x40014800 0x400>;
499			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
500			clock-names = "int";
501			status = "disabled";
502
503			pwm {
504				compatible = "st,stm32-pwm";
505				#pwm-cells = <3>;
506				status = "disabled";
507			};
508		};
509
510		pwrcfg: power-config@40007000 {
511			compatible = "st,stm32-power-config", "syscon";
512			reg = <0x40007000 0x400>;
513		};
514
515		crc: crc@40023000 {
516			compatible = "st,stm32f7-crc";
517			reg = <0x40023000 0x400>;
518			clocks = <&rcc 0 12>;
519			status = "disabled";
520		};
521
522		rcc: rcc@40023800 {
523			#reset-cells = <1>;
524			#clock-cells = <2>;
525			compatible = "st,stm32f746-rcc", "st,stm32-rcc";
526			reg = <0x40023800 0x400>;
527			clocks = <&clk_hse>, <&clk_i2s_ckin>;
528			st,syscfg = <&pwrcfg>;
529			assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
530			assigned-clock-rates = <1000000>;
531		};
532
533		dma1: dma-controller@40026000 {
534			compatible = "st,stm32-dma";
535			reg = <0x40026000 0x400>;
536			interrupts = <11>,
537				     <12>,
538				     <13>,
539				     <14>,
540				     <15>,
541				     <16>,
542				     <17>,
543				     <47>;
544			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA1)>;
545			#dma-cells = <4>;
546			status = "disabled";
547		};
548
549		dma2: dma-controller@40026400 {
550			compatible = "st,stm32-dma";
551			reg = <0x40026400 0x400>;
552			interrupts = <56>,
553				     <57>,
554				     <58>,
555				     <59>,
556				     <60>,
557				     <68>,
558				     <69>,
559				     <70>;
560			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA2)>;
561			#dma-cells = <4>;
562			st,mem2mem;
563			status = "disabled";
564		};
565
566		usbotg_hs: usb@40040000 {
567			compatible = "st,stm32f7-hsotg";
568			reg = <0x40040000 0x40000>;
569			interrupts = <77>;
570			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHS)>;
571			clock-names = "otg";
572			g-rx-fifo-size = <256>;
573			g-np-tx-fifo-size = <32>;
574			g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
575			status = "disabled";
576		};
577
578		usbotg_fs: usb@50000000 {
579			compatible = "st,stm32f4x9-fsotg";
580			reg = <0x50000000 0x40000>;
581			interrupts = <67>;
582			clocks = <&rcc 0 STM32F7_AHB2_CLOCK(OTGFS)>;
583			clock-names = "otg";
584			status = "disabled";
585		};
586	};
587};
588
589&systick {
590	clocks = <&rcc 1 0>;
591	status = "okay";
592};
v5.14.15
  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			compatible = "st,stm32-timers";
269			reg = <0x40001C00 0x400>;
270			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
271			clock-names = "int";
272			status = "disabled";
273
274			pwm {
275				compatible = "st,stm32-pwm";
276				#pwm-cells = <3>;
277				status = "disabled";
278			};
279		};
280
281		timers14: timers@40002000 {
282			compatible = "st,stm32-timers";
283			reg = <0x40002000 0x400>;
284			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
285			clock-names = "int";
286			status = "disabled";
287
288			pwm {
289				compatible = "st,stm32-pwm";
290				#pwm-cells = <3>;
291				status = "disabled";
292			};
293		};
294
295		rtc: rtc@40002800 {
296			compatible = "st,stm32-rtc";
297			reg = <0x40002800 0x400>;
298			clocks = <&rcc 1 CLK_RTC>;
299			assigned-clocks = <&rcc 1 CLK_RTC>;
300			assigned-clock-parents = <&rcc 1 CLK_LSE>;
301			interrupt-parent = <&exti>;
302			interrupts = <17 1>;
303			st,syscfg = <&pwrcfg 0x00 0x100>;
304			status = "disabled";
305		};
306
307		usart2: serial@40004400 {
308			compatible = "st,stm32f7-uart";
309			reg = <0x40004400 0x400>;
310			interrupts = <38>;
311			clocks = <&rcc 1 CLK_USART2>;
312			status = "disabled";
313		};
314
315		usart3: serial@40004800 {
316			compatible = "st,stm32f7-uart";
317			reg = <0x40004800 0x400>;
318			interrupts = <39>;
319			clocks = <&rcc 1 CLK_USART3>;
320			status = "disabled";
321		};
322
323		usart4: serial@40004c00 {
324			compatible = "st,stm32f7-uart";
325			reg = <0x40004c00 0x400>;
326			interrupts = <52>;
327			clocks = <&rcc 1 CLK_UART4>;
328			status = "disabled";
329		};
330
331		usart5: serial@40005000 {
332			compatible = "st,stm32f7-uart";
333			reg = <0x40005000 0x400>;
334			interrupts = <53>;
335			clocks = <&rcc 1 CLK_UART5>;
336			status = "disabled";
337		};
338
339		i2c1: i2c@40005400 {
340			compatible = "st,stm32f7-i2c";
341			reg = <0x40005400 0x400>;
342			interrupts = <31>,
343				     <32>;
344			resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
345			clocks = <&rcc 1 CLK_I2C1>;
346			#address-cells = <1>;
347			#size-cells = <0>;
348			status = "disabled";
349		};
350
351		i2c2: i2c@40005800 {
352			compatible = "st,stm32f7-i2c";
353			reg = <0x40005800 0x400>;
354			interrupts = <33>,
355				     <34>;
356			resets = <&rcc STM32F7_APB1_RESET(I2C2)>;
357			clocks = <&rcc 1 CLK_I2C2>;
358			#address-cells = <1>;
359			#size-cells = <0>;
360			status = "disabled";
361		};
362
363		i2c3: i2c@40005c00 {
364			compatible = "st,stm32f7-i2c";
365			reg = <0x40005c00 0x400>;
366			interrupts = <72>,
367				     <73>;
368			resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
369			clocks = <&rcc 1 CLK_I2C3>;
370			#address-cells = <1>;
371			#size-cells = <0>;
372			status = "disabled";
373		};
374
375		i2c4: i2c@40006000 {
376			compatible = "st,stm32f7-i2c";
377			reg = <0x40006000 0x400>;
378			interrupts = <95>,
379				     <96>;
380			resets = <&rcc STM32F7_APB1_RESET(I2C4)>;
381			clocks = <&rcc 1 CLK_I2C4>;
382			#address-cells = <1>;
383			#size-cells = <0>;
384			status = "disabled";
385		};
386
387		cec: cec@40006c00 {
388			compatible = "st,stm32-cec";
389			reg = <0x40006C00 0x400>;
390			interrupts = <94>;
391			clocks = <&rcc 0 STM32F7_APB1_CLOCK(CEC)>, <&rcc 1 CLK_HDMI_CEC>;
392			clock-names = "cec", "hdmi-cec";
393			status = "disabled";
394		};
395
396		usart7: serial@40007800 {
397			compatible = "st,stm32f7-uart";
398			reg = <0x40007800 0x400>;
399			interrupts = <82>;
400			clocks = <&rcc 1 CLK_UART7>;
401			status = "disabled";
402		};
403
404		usart8: serial@40007c00 {
405			compatible = "st,stm32f7-uart";
406			reg = <0x40007c00 0x400>;
407			interrupts = <83>;
408			clocks = <&rcc 1 CLK_UART8>;
409			status = "disabled";
410		};
411
412		timers1: timers@40010000 {
413			#address-cells = <1>;
414			#size-cells = <0>;
415			compatible = "st,stm32-timers";
416			reg = <0x40010000 0x400>;
417			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM1)>;
418			clock-names = "int";
419			status = "disabled";
420
421			pwm {
422				compatible = "st,stm32-pwm";
423				#pwm-cells = <3>;
424				status = "disabled";
425			};
426
427			timer@0 {
428				compatible = "st,stm32-timer-trigger";
429				reg = <0>;
430				status = "disabled";
431			};
432		};
433
434		timers8: timers@40010400 {
435			#address-cells = <1>;
436			#size-cells = <0>;
437			compatible = "st,stm32-timers";
438			reg = <0x40010400 0x400>;
439			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM8)>;
440			clock-names = "int";
441			status = "disabled";
442
443			pwm {
444				compatible = "st,stm32-pwm";
445				#pwm-cells = <3>;
446				status = "disabled";
447			};
448
449			timer@7 {
450				compatible = "st,stm32-timer-trigger";
451				reg = <7>;
452				status = "disabled";
453			};
454		};
455
456		usart1: serial@40011000 {
457			compatible = "st,stm32f7-uart";
458			reg = <0x40011000 0x400>;
459			interrupts = <37>;
460			clocks = <&rcc 1 CLK_USART1>;
461			status = "disabled";
462		};
463
464		usart6: serial@40011400 {
465			compatible = "st,stm32f7-uart";
466			reg = <0x40011400 0x400>;
467			interrupts = <71>;
468			clocks = <&rcc 1 CLK_USART6>;
469			status = "disabled";
470		};
471
472		sdio2: mmc@40011c00 {
473			compatible = "arm,pl180", "arm,primecell";
474			arm,primecell-periphid = <0x00880180>;
475			reg = <0x40011c00 0x400>;
476			clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC2)>;
477			clock-names = "apb_pclk";
478			interrupts = <103>;
479			max-frequency = <48000000>;
480			status = "disabled";
481		};
482
483		sdio1: mmc@40012c00 {
484			compatible = "arm,pl180", "arm,primecell";
485			arm,primecell-periphid = <0x00880180>;
486			reg = <0x40012c00 0x400>;
487			clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC1)>;
488			clock-names = "apb_pclk";
489			interrupts = <49>;
490			max-frequency = <48000000>;
491			status = "disabled";
492		};
493
494		syscfg: syscon@40013800 {
495			compatible = "st,stm32-syscfg", "syscon";
496			reg = <0x40013800 0x400>;
497		};
498
499		exti: interrupt-controller@40013c00 {
500			compatible = "st,stm32-exti";
501			interrupt-controller;
502			#interrupt-cells = <2>;
503			reg = <0x40013C00 0x400>;
504			interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
505		};
506
507		timers9: timers@40014000 {
508			#address-cells = <1>;
509			#size-cells = <0>;
510			compatible = "st,stm32-timers";
511			reg = <0x40014000 0x400>;
512			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM9)>;
513			clock-names = "int";
514			status = "disabled";
515
516			pwm {
517				compatible = "st,stm32-pwm";
518				#pwm-cells = <3>;
519				status = "disabled";
520			};
521
522			timer@8 {
523				compatible = "st,stm32-timer-trigger";
524				reg = <8>;
525				status = "disabled";
526			};
527		};
528
529		timers10: timers@40014400 {
530			compatible = "st,stm32-timers";
531			reg = <0x40014400 0x400>;
532			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
533			clock-names = "int";
534			status = "disabled";
535
536			pwm {
537				compatible = "st,stm32-pwm";
538				#pwm-cells = <3>;
539				status = "disabled";
540			};
541		};
542
543		timers11: timers@40014800 {
544			compatible = "st,stm32-timers";
545			reg = <0x40014800 0x400>;
546			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
547			clock-names = "int";
548			status = "disabled";
549
550			pwm {
551				compatible = "st,stm32-pwm";
552				#pwm-cells = <3>;
553				status = "disabled";
554			};
555		};
556
557		pwrcfg: power-config@40007000 {
558			compatible = "st,stm32-power-config", "syscon";
559			reg = <0x40007000 0x400>;
560		};
561
562		crc: crc@40023000 {
563			compatible = "st,stm32f7-crc";
564			reg = <0x40023000 0x400>;
565			clocks = <&rcc 0 12>;
566			status = "disabled";
567		};
568
569		rcc: rcc@40023800 {
570			#reset-cells = <1>;
571			#clock-cells = <2>;
572			compatible = "st,stm32f746-rcc", "st,stm32-rcc";
573			reg = <0x40023800 0x400>;
574			clocks = <&clk_hse>, <&clk_i2s_ckin>;
575			st,syscfg = <&pwrcfg>;
576			assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
577			assigned-clock-rates = <1000000>;
578		};
579
580		dma1: dma-controller@40026000 {
581			compatible = "st,stm32-dma";
582			reg = <0x40026000 0x400>;
583			interrupts = <11>,
584				     <12>,
585				     <13>,
586				     <14>,
587				     <15>,
588				     <16>,
589				     <17>,
590				     <47>;
591			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA1)>;
592			#dma-cells = <4>;
593			status = "disabled";
594		};
595
596		dma2: dma-controller@40026400 {
597			compatible = "st,stm32-dma";
598			reg = <0x40026400 0x400>;
599			interrupts = <56>,
600				     <57>,
601				     <58>,
602				     <59>,
603				     <60>,
604				     <68>,
605				     <69>,
606				     <70>;
607			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA2)>;
608			#dma-cells = <4>;
609			st,mem2mem;
610			status = "disabled";
611		};
612
613		usbotg_hs: usb@40040000 {
614			compatible = "st,stm32f7-hsotg";
615			reg = <0x40040000 0x40000>;
616			interrupts = <77>;
617			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHS)>;
618			clock-names = "otg";
619			g-rx-fifo-size = <256>;
620			g-np-tx-fifo-size = <32>;
621			g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
622			status = "disabled";
623		};
624
625		usbotg_fs: usb@50000000 {
626			compatible = "st,stm32f4x9-fsotg";
627			reg = <0x50000000 0x40000>;
628			interrupts = <67>;
629			clocks = <&rcc 0 STM32F7_AHB2_CLOCK(OTGFS)>;
630			clock-names = "otg";
631			status = "disabled";
632		};
633	};
634};
635
636&systick {
637	clocks = <&rcc 1 0>;
638	status = "okay";
639};