xref: /freebsd/sys/contrib/device-tree/src/arm/st/stm32f746.dtsi (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
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*aa1a8ff2SEmmanuel Vadot		can3: can@40003400 {
261*aa1a8ff2SEmmanuel Vadot			compatible = "st,stm32f4-bxcan";
262*aa1a8ff2SEmmanuel Vadot			reg = <0x40003400 0x200>;
263*aa1a8ff2SEmmanuel Vadot			interrupts = <104>, <105>, <106>, <107>;
264*aa1a8ff2SEmmanuel Vadot			interrupt-names = "tx", "rx0", "rx1", "sce";
265*aa1a8ff2SEmmanuel Vadot			resets = <&rcc STM32F7_APB1_RESET(CAN3)>;
266*aa1a8ff2SEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
267*aa1a8ff2SEmmanuel Vadot			st,gcan = <&gcan3>;
268*aa1a8ff2SEmmanuel Vadot			status = "disabled";
269*aa1a8ff2SEmmanuel Vadot		};
270*aa1a8ff2SEmmanuel Vadot
271*aa1a8ff2SEmmanuel Vadot		gcan3: gcan@40003600 {
272*aa1a8ff2SEmmanuel Vadot			compatible = "st,stm32f4-gcan", "syscon";
273*aa1a8ff2SEmmanuel Vadot			reg = <0x40003600 0x200>;
274*aa1a8ff2SEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
275*aa1a8ff2SEmmanuel Vadot		};
276*aa1a8ff2SEmmanuel Vadot
277f126890aSEmmanuel Vadot		usart2: serial@40004400 {
278f126890aSEmmanuel Vadot			compatible = "st,stm32f7-uart";
279f126890aSEmmanuel Vadot			reg = <0x40004400 0x400>;
280f126890aSEmmanuel Vadot			interrupts = <38>;
281f126890aSEmmanuel Vadot			clocks = <&rcc 1 CLK_USART2>;
282f126890aSEmmanuel Vadot			status = "disabled";
283f126890aSEmmanuel Vadot		};
284f126890aSEmmanuel Vadot
285f126890aSEmmanuel Vadot		usart3: serial@40004800 {
286f126890aSEmmanuel Vadot			compatible = "st,stm32f7-uart";
287f126890aSEmmanuel Vadot			reg = <0x40004800 0x400>;
288f126890aSEmmanuel Vadot			interrupts = <39>;
289f126890aSEmmanuel Vadot			clocks = <&rcc 1 CLK_USART3>;
290f126890aSEmmanuel Vadot			status = "disabled";
291f126890aSEmmanuel Vadot		};
292f126890aSEmmanuel Vadot
293f126890aSEmmanuel Vadot		usart4: serial@40004c00 {
294f126890aSEmmanuel Vadot			compatible = "st,stm32f7-uart";
295f126890aSEmmanuel Vadot			reg = <0x40004c00 0x400>;
296f126890aSEmmanuel Vadot			interrupts = <52>;
297f126890aSEmmanuel Vadot			clocks = <&rcc 1 CLK_UART4>;
298f126890aSEmmanuel Vadot			status = "disabled";
299f126890aSEmmanuel Vadot		};
300f126890aSEmmanuel Vadot
301f126890aSEmmanuel Vadot		usart5: serial@40005000 {
302f126890aSEmmanuel Vadot			compatible = "st,stm32f7-uart";
303f126890aSEmmanuel Vadot			reg = <0x40005000 0x400>;
304f126890aSEmmanuel Vadot			interrupts = <53>;
305f126890aSEmmanuel Vadot			clocks = <&rcc 1 CLK_UART5>;
306f126890aSEmmanuel Vadot			status = "disabled";
307f126890aSEmmanuel Vadot		};
308f126890aSEmmanuel Vadot
309f126890aSEmmanuel Vadot		i2c1: i2c@40005400 {
310f126890aSEmmanuel Vadot			compatible = "st,stm32f7-i2c";
311f126890aSEmmanuel Vadot			reg = <0x40005400 0x400>;
312f126890aSEmmanuel Vadot			interrupts = <31>,
313f126890aSEmmanuel Vadot				     <32>;
314f126890aSEmmanuel Vadot			resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
315f126890aSEmmanuel Vadot			clocks = <&rcc 1 CLK_I2C1>;
316f126890aSEmmanuel Vadot			#address-cells = <1>;
317f126890aSEmmanuel Vadot			#size-cells = <0>;
318f126890aSEmmanuel Vadot			status = "disabled";
319f126890aSEmmanuel Vadot		};
320f126890aSEmmanuel Vadot
321f126890aSEmmanuel Vadot		i2c2: i2c@40005800 {
322f126890aSEmmanuel Vadot			compatible = "st,stm32f7-i2c";
323f126890aSEmmanuel Vadot			reg = <0x40005800 0x400>;
324f126890aSEmmanuel Vadot			interrupts = <33>,
325f126890aSEmmanuel Vadot				     <34>;
326f126890aSEmmanuel Vadot			resets = <&rcc STM32F7_APB1_RESET(I2C2)>;
327f126890aSEmmanuel Vadot			clocks = <&rcc 1 CLK_I2C2>;
328f126890aSEmmanuel Vadot			#address-cells = <1>;
329f126890aSEmmanuel Vadot			#size-cells = <0>;
330f126890aSEmmanuel Vadot			status = "disabled";
331f126890aSEmmanuel Vadot		};
332f126890aSEmmanuel Vadot
333f126890aSEmmanuel Vadot		i2c3: i2c@40005c00 {
334f126890aSEmmanuel Vadot			compatible = "st,stm32f7-i2c";
335f126890aSEmmanuel Vadot			reg = <0x40005c00 0x400>;
336f126890aSEmmanuel Vadot			interrupts = <72>,
337f126890aSEmmanuel Vadot				     <73>;
338f126890aSEmmanuel Vadot			resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
339f126890aSEmmanuel Vadot			clocks = <&rcc 1 CLK_I2C3>;
340f126890aSEmmanuel Vadot			#address-cells = <1>;
341f126890aSEmmanuel Vadot			#size-cells = <0>;
342f126890aSEmmanuel Vadot			status = "disabled";
343f126890aSEmmanuel Vadot		};
344f126890aSEmmanuel Vadot
345f126890aSEmmanuel Vadot		i2c4: i2c@40006000 {
346f126890aSEmmanuel Vadot			compatible = "st,stm32f7-i2c";
347f126890aSEmmanuel Vadot			reg = <0x40006000 0x400>;
348f126890aSEmmanuel Vadot			interrupts = <95>,
349f126890aSEmmanuel Vadot				     <96>;
350f126890aSEmmanuel Vadot			resets = <&rcc STM32F7_APB1_RESET(I2C4)>;
351f126890aSEmmanuel Vadot			clocks = <&rcc 1 CLK_I2C4>;
352f126890aSEmmanuel Vadot			#address-cells = <1>;
353f126890aSEmmanuel Vadot			#size-cells = <0>;
354f126890aSEmmanuel Vadot			status = "disabled";
355f126890aSEmmanuel Vadot		};
356f126890aSEmmanuel Vadot
357*aa1a8ff2SEmmanuel Vadot		can1: can@40006400 {
358*aa1a8ff2SEmmanuel Vadot			compatible = "st,stm32f4-bxcan";
359*aa1a8ff2SEmmanuel Vadot			reg = <0x40006400 0x200>;
360*aa1a8ff2SEmmanuel Vadot			interrupts = <19>, <20>, <21>, <22>;
361*aa1a8ff2SEmmanuel Vadot			interrupt-names = "tx", "rx0", "rx1", "sce";
362*aa1a8ff2SEmmanuel Vadot			resets = <&rcc STM32F7_APB1_RESET(CAN1)>;
363*aa1a8ff2SEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN1)>;
364*aa1a8ff2SEmmanuel Vadot			st,can-primary;
365*aa1a8ff2SEmmanuel Vadot			st,gcan = <&gcan1>;
366*aa1a8ff2SEmmanuel Vadot			status = "disabled";
367*aa1a8ff2SEmmanuel Vadot		};
368*aa1a8ff2SEmmanuel Vadot
369*aa1a8ff2SEmmanuel Vadot		gcan1: gcan@40006600 {
370*aa1a8ff2SEmmanuel Vadot			compatible = "st,stm32f4-gcan", "syscon";
371*aa1a8ff2SEmmanuel Vadot			reg = <0x40006600 0x200>;
372*aa1a8ff2SEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN1)>;
373*aa1a8ff2SEmmanuel Vadot		};
374*aa1a8ff2SEmmanuel Vadot
375*aa1a8ff2SEmmanuel Vadot		can2: can@40006800 {
376*aa1a8ff2SEmmanuel Vadot			compatible = "st,stm32f4-bxcan";
377*aa1a8ff2SEmmanuel Vadot			reg = <0x40006800 0x200>;
378*aa1a8ff2SEmmanuel Vadot			interrupts = <63>, <64>, <65>, <66>;
379*aa1a8ff2SEmmanuel Vadot			interrupt-names = "tx", "rx0", "rx1", "sce";
380*aa1a8ff2SEmmanuel Vadot			resets = <&rcc STM32F7_APB1_RESET(CAN2)>;
381*aa1a8ff2SEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN2)>;
382*aa1a8ff2SEmmanuel Vadot			st,can-secondary;
383*aa1a8ff2SEmmanuel Vadot			st,gcan = <&gcan1>;
384*aa1a8ff2SEmmanuel Vadot			status = "disabled";
385*aa1a8ff2SEmmanuel Vadot		};
386*aa1a8ff2SEmmanuel Vadot
387f126890aSEmmanuel Vadot		cec: cec@40006c00 {
388f126890aSEmmanuel Vadot			compatible = "st,stm32-cec";
389f126890aSEmmanuel Vadot			reg = <0x40006C00 0x400>;
390f126890aSEmmanuel Vadot			interrupts = <94>;
391f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB1_CLOCK(CEC)>, <&rcc 1 CLK_HDMI_CEC>;
392f126890aSEmmanuel Vadot			clock-names = "cec", "hdmi-cec";
393f126890aSEmmanuel Vadot			status = "disabled";
394f126890aSEmmanuel Vadot		};
395f126890aSEmmanuel Vadot
396f126890aSEmmanuel Vadot		usart7: serial@40007800 {
397f126890aSEmmanuel Vadot			compatible = "st,stm32f7-uart";
398f126890aSEmmanuel Vadot			reg = <0x40007800 0x400>;
399f126890aSEmmanuel Vadot			interrupts = <82>;
400f126890aSEmmanuel Vadot			clocks = <&rcc 1 CLK_UART7>;
401f126890aSEmmanuel Vadot			status = "disabled";
402f126890aSEmmanuel Vadot		};
403f126890aSEmmanuel Vadot
404f126890aSEmmanuel Vadot		usart8: serial@40007c00 {
405f126890aSEmmanuel Vadot			compatible = "st,stm32f7-uart";
406f126890aSEmmanuel Vadot			reg = <0x40007c00 0x400>;
407f126890aSEmmanuel Vadot			interrupts = <83>;
408f126890aSEmmanuel Vadot			clocks = <&rcc 1 CLK_UART8>;
409f126890aSEmmanuel Vadot			status = "disabled";
410f126890aSEmmanuel Vadot		};
411f126890aSEmmanuel Vadot
412f126890aSEmmanuel Vadot		timers1: timers@40010000 {
413f126890aSEmmanuel Vadot			#address-cells = <1>;
414f126890aSEmmanuel Vadot			#size-cells = <0>;
415f126890aSEmmanuel Vadot			compatible = "st,stm32-timers";
416f126890aSEmmanuel Vadot			reg = <0x40010000 0x400>;
417f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM1)>;
418f126890aSEmmanuel Vadot			clock-names = "int";
419f126890aSEmmanuel Vadot			status = "disabled";
420f126890aSEmmanuel Vadot
421f126890aSEmmanuel Vadot			pwm {
422f126890aSEmmanuel Vadot				compatible = "st,stm32-pwm";
423f126890aSEmmanuel Vadot				#pwm-cells = <3>;
424f126890aSEmmanuel Vadot				status = "disabled";
425f126890aSEmmanuel Vadot			};
426f126890aSEmmanuel Vadot
427f126890aSEmmanuel Vadot			timer@0 {
428f126890aSEmmanuel Vadot				compatible = "st,stm32-timer-trigger";
429f126890aSEmmanuel Vadot				reg = <0>;
430f126890aSEmmanuel Vadot				status = "disabled";
431f126890aSEmmanuel Vadot			};
432f126890aSEmmanuel Vadot		};
433f126890aSEmmanuel Vadot
434f126890aSEmmanuel Vadot		timers8: timers@40010400 {
435f126890aSEmmanuel Vadot			#address-cells = <1>;
436f126890aSEmmanuel Vadot			#size-cells = <0>;
437f126890aSEmmanuel Vadot			compatible = "st,stm32-timers";
438f126890aSEmmanuel Vadot			reg = <0x40010400 0x400>;
439f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM8)>;
440f126890aSEmmanuel Vadot			clock-names = "int";
441f126890aSEmmanuel Vadot			status = "disabled";
442f126890aSEmmanuel Vadot
443f126890aSEmmanuel Vadot			pwm {
444f126890aSEmmanuel Vadot				compatible = "st,stm32-pwm";
445f126890aSEmmanuel Vadot				#pwm-cells = <3>;
446f126890aSEmmanuel Vadot				status = "disabled";
447f126890aSEmmanuel Vadot			};
448f126890aSEmmanuel Vadot
449f126890aSEmmanuel Vadot			timer@7 {
450f126890aSEmmanuel Vadot				compatible = "st,stm32-timer-trigger";
451f126890aSEmmanuel Vadot				reg = <7>;
452f126890aSEmmanuel Vadot				status = "disabled";
453f126890aSEmmanuel Vadot			};
454f126890aSEmmanuel Vadot		};
455f126890aSEmmanuel Vadot
456f126890aSEmmanuel Vadot		usart1: serial@40011000 {
457f126890aSEmmanuel Vadot			compatible = "st,stm32f7-uart";
458f126890aSEmmanuel Vadot			reg = <0x40011000 0x400>;
459f126890aSEmmanuel Vadot			interrupts = <37>;
460f126890aSEmmanuel Vadot			clocks = <&rcc 1 CLK_USART1>;
461f126890aSEmmanuel Vadot			status = "disabled";
462f126890aSEmmanuel Vadot		};
463f126890aSEmmanuel Vadot
464f126890aSEmmanuel Vadot		usart6: serial@40011400 {
465f126890aSEmmanuel Vadot			compatible = "st,stm32f7-uart";
466f126890aSEmmanuel Vadot			reg = <0x40011400 0x400>;
467f126890aSEmmanuel Vadot			interrupts = <71>;
468f126890aSEmmanuel Vadot			clocks = <&rcc 1 CLK_USART6>;
469f126890aSEmmanuel Vadot			status = "disabled";
470f126890aSEmmanuel Vadot		};
471f126890aSEmmanuel Vadot
472f126890aSEmmanuel Vadot		sdio2: mmc@40011c00 {
473f126890aSEmmanuel Vadot			compatible = "arm,pl180", "arm,primecell";
474f126890aSEmmanuel Vadot			arm,primecell-periphid = <0x00880180>;
475f126890aSEmmanuel Vadot			reg = <0x40011c00 0x400>;
476f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC2)>;
477f126890aSEmmanuel Vadot			clock-names = "apb_pclk";
478f126890aSEmmanuel Vadot			interrupts = <103>;
479f126890aSEmmanuel Vadot			max-frequency = <48000000>;
480f126890aSEmmanuel Vadot			status = "disabled";
481f126890aSEmmanuel Vadot		};
482f126890aSEmmanuel Vadot
483f126890aSEmmanuel Vadot		sdio1: mmc@40012c00 {
484f126890aSEmmanuel Vadot			compatible = "arm,pl180", "arm,primecell";
485f126890aSEmmanuel Vadot			arm,primecell-periphid = <0x00880180>;
486f126890aSEmmanuel Vadot			reg = <0x40012c00 0x400>;
487f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC1)>;
488f126890aSEmmanuel Vadot			clock-names = "apb_pclk";
489f126890aSEmmanuel Vadot			interrupts = <49>;
490f126890aSEmmanuel Vadot			max-frequency = <48000000>;
491f126890aSEmmanuel Vadot			status = "disabled";
492f126890aSEmmanuel Vadot		};
493f126890aSEmmanuel Vadot
494f126890aSEmmanuel Vadot		syscfg: syscon@40013800 {
495f126890aSEmmanuel Vadot			compatible = "st,stm32-syscfg", "syscon";
496f126890aSEmmanuel Vadot			reg = <0x40013800 0x400>;
497f126890aSEmmanuel Vadot		};
498f126890aSEmmanuel Vadot
499f126890aSEmmanuel Vadot		exti: interrupt-controller@40013c00 {
500f126890aSEmmanuel Vadot			compatible = "st,stm32-exti";
501f126890aSEmmanuel Vadot			interrupt-controller;
502f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
503f126890aSEmmanuel Vadot			reg = <0x40013C00 0x400>;
504f126890aSEmmanuel Vadot			interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
505f126890aSEmmanuel Vadot		};
506f126890aSEmmanuel Vadot
507f126890aSEmmanuel Vadot		timers9: timers@40014000 {
508f126890aSEmmanuel Vadot			#address-cells = <1>;
509f126890aSEmmanuel Vadot			#size-cells = <0>;
510f126890aSEmmanuel Vadot			compatible = "st,stm32-timers";
511f126890aSEmmanuel Vadot			reg = <0x40014000 0x400>;
512f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM9)>;
513f126890aSEmmanuel Vadot			clock-names = "int";
514f126890aSEmmanuel Vadot			status = "disabled";
515f126890aSEmmanuel Vadot
516f126890aSEmmanuel Vadot			pwm {
517f126890aSEmmanuel Vadot				compatible = "st,stm32-pwm";
518f126890aSEmmanuel Vadot				#pwm-cells = <3>;
519f126890aSEmmanuel Vadot				status = "disabled";
520f126890aSEmmanuel Vadot			};
521f126890aSEmmanuel Vadot
522f126890aSEmmanuel Vadot			timer@8 {
523f126890aSEmmanuel Vadot				compatible = "st,stm32-timer-trigger";
524f126890aSEmmanuel Vadot				reg = <8>;
525f126890aSEmmanuel Vadot				status = "disabled";
526f126890aSEmmanuel Vadot			};
527f126890aSEmmanuel Vadot		};
528f126890aSEmmanuel Vadot
529f126890aSEmmanuel Vadot		timers10: timers@40014400 {
530f126890aSEmmanuel Vadot			compatible = "st,stm32-timers";
531f126890aSEmmanuel Vadot			reg = <0x40014400 0x400>;
532f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
533f126890aSEmmanuel Vadot			clock-names = "int";
534f126890aSEmmanuel Vadot			status = "disabled";
535f126890aSEmmanuel Vadot
536f126890aSEmmanuel Vadot			pwm {
537f126890aSEmmanuel Vadot				compatible = "st,stm32-pwm";
538f126890aSEmmanuel Vadot				#pwm-cells = <3>;
539f126890aSEmmanuel Vadot				status = "disabled";
540f126890aSEmmanuel Vadot			};
541f126890aSEmmanuel Vadot		};
542f126890aSEmmanuel Vadot
543f126890aSEmmanuel Vadot		timers11: timers@40014800 {
544f126890aSEmmanuel Vadot			compatible = "st,stm32-timers";
545f126890aSEmmanuel Vadot			reg = <0x40014800 0x400>;
546f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
547f126890aSEmmanuel Vadot			clock-names = "int";
548f126890aSEmmanuel Vadot			status = "disabled";
549f126890aSEmmanuel Vadot
550f126890aSEmmanuel Vadot			pwm {
551f126890aSEmmanuel Vadot				compatible = "st,stm32-pwm";
552f126890aSEmmanuel Vadot				#pwm-cells = <3>;
553f126890aSEmmanuel Vadot				status = "disabled";
554f126890aSEmmanuel Vadot			};
555f126890aSEmmanuel Vadot		};
556f126890aSEmmanuel Vadot
557*aa1a8ff2SEmmanuel Vadot		ltdc: display-controller@40016800 {
558*aa1a8ff2SEmmanuel Vadot			compatible = "st,stm32-ltdc";
559*aa1a8ff2SEmmanuel Vadot			reg = <0x40016800 0x200>;
560*aa1a8ff2SEmmanuel Vadot			interrupts = <88>, <89>;
561*aa1a8ff2SEmmanuel Vadot			resets = <&rcc STM32F7_APB2_RESET(LTDC)>;
562*aa1a8ff2SEmmanuel Vadot			clocks = <&rcc 1 CLK_LCD>;
563*aa1a8ff2SEmmanuel Vadot			clock-names = "lcd";
564*aa1a8ff2SEmmanuel Vadot			status = "disabled";
565*aa1a8ff2SEmmanuel Vadot		};
566*aa1a8ff2SEmmanuel Vadot
567f126890aSEmmanuel Vadot		pwrcfg: power-config@40007000 {
568f126890aSEmmanuel Vadot			compatible = "st,stm32-power-config", "syscon";
569f126890aSEmmanuel Vadot			reg = <0x40007000 0x400>;
570f126890aSEmmanuel Vadot		};
571f126890aSEmmanuel Vadot
572f126890aSEmmanuel Vadot		crc: crc@40023000 {
573f126890aSEmmanuel Vadot			compatible = "st,stm32f7-crc";
574f126890aSEmmanuel Vadot			reg = <0x40023000 0x400>;
575f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(CRC)>;
576f126890aSEmmanuel Vadot			status = "disabled";
577f126890aSEmmanuel Vadot		};
578f126890aSEmmanuel Vadot
579f126890aSEmmanuel Vadot		rcc: rcc@40023800 {
580f126890aSEmmanuel Vadot			#reset-cells = <1>;
581f126890aSEmmanuel Vadot			#clock-cells = <2>;
582f126890aSEmmanuel Vadot			compatible = "st,stm32f746-rcc", "st,stm32-rcc";
583f126890aSEmmanuel Vadot			reg = <0x40023800 0x400>;
584f126890aSEmmanuel Vadot			clocks = <&clk_hse>, <&clk_i2s_ckin>;
585f126890aSEmmanuel Vadot			st,syscfg = <&pwrcfg>;
586f126890aSEmmanuel Vadot			assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
587f126890aSEmmanuel Vadot			assigned-clock-rates = <1000000>;
588f126890aSEmmanuel Vadot		};
589f126890aSEmmanuel Vadot
590f126890aSEmmanuel Vadot		dma1: dma-controller@40026000 {
591f126890aSEmmanuel Vadot			compatible = "st,stm32-dma";
592f126890aSEmmanuel Vadot			reg = <0x40026000 0x400>;
593f126890aSEmmanuel Vadot			interrupts = <11>,
594f126890aSEmmanuel Vadot				     <12>,
595f126890aSEmmanuel Vadot				     <13>,
596f126890aSEmmanuel Vadot				     <14>,
597f126890aSEmmanuel Vadot				     <15>,
598f126890aSEmmanuel Vadot				     <16>,
599f126890aSEmmanuel Vadot				     <17>,
600f126890aSEmmanuel Vadot				     <47>;
601f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA1)>;
602f126890aSEmmanuel Vadot			#dma-cells = <4>;
603f126890aSEmmanuel Vadot			status = "disabled";
604f126890aSEmmanuel Vadot		};
605f126890aSEmmanuel Vadot
606f126890aSEmmanuel Vadot		dma2: dma-controller@40026400 {
607f126890aSEmmanuel Vadot			compatible = "st,stm32-dma";
608f126890aSEmmanuel Vadot			reg = <0x40026400 0x400>;
609f126890aSEmmanuel Vadot			interrupts = <56>,
610f126890aSEmmanuel Vadot				     <57>,
611f126890aSEmmanuel Vadot				     <58>,
612f126890aSEmmanuel Vadot				     <59>,
613f126890aSEmmanuel Vadot				     <60>,
614f126890aSEmmanuel Vadot				     <68>,
615f126890aSEmmanuel Vadot				     <69>,
616f126890aSEmmanuel Vadot				     <70>;
617f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA2)>;
618f126890aSEmmanuel Vadot			#dma-cells = <4>;
619f126890aSEmmanuel Vadot			st,mem2mem;
620f126890aSEmmanuel Vadot			status = "disabled";
621f126890aSEmmanuel Vadot		};
622f126890aSEmmanuel Vadot
623f126890aSEmmanuel Vadot		usbotg_hs: usb@40040000 {
624f126890aSEmmanuel Vadot			compatible = "st,stm32f7-hsotg";
625f126890aSEmmanuel Vadot			reg = <0x40040000 0x40000>;
626f126890aSEmmanuel Vadot			interrupts = <77>;
627f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHS)>;
628f126890aSEmmanuel Vadot			clock-names = "otg";
629f126890aSEmmanuel Vadot			g-rx-fifo-size = <256>;
630f126890aSEmmanuel Vadot			g-np-tx-fifo-size = <32>;
631f126890aSEmmanuel Vadot			g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
632f126890aSEmmanuel Vadot			status = "disabled";
633f126890aSEmmanuel Vadot		};
634f126890aSEmmanuel Vadot
635f126890aSEmmanuel Vadot		usbotg_fs: usb@50000000 {
636f126890aSEmmanuel Vadot			compatible = "st,stm32f4x9-fsotg";
637f126890aSEmmanuel Vadot			reg = <0x50000000 0x40000>;
638f126890aSEmmanuel Vadot			interrupts = <67>;
639f126890aSEmmanuel Vadot			clocks = <&rcc 0 STM32F7_AHB2_CLOCK(OTGFS)>;
640f126890aSEmmanuel Vadot			clock-names = "otg";
641f126890aSEmmanuel Vadot			status = "disabled";
642f126890aSEmmanuel Vadot		};
643f126890aSEmmanuel Vadot	};
644f126890aSEmmanuel Vadot};
645f126890aSEmmanuel Vadot
646f126890aSEmmanuel Vadot&systick {
647f126890aSEmmanuel Vadot	clocks = <&rcc 1 0>;
648f126890aSEmmanuel Vadot	status = "okay";
649f126890aSEmmanuel Vadot};
650