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