xref: /openbmc/u-boot/arch/arm/dts/stm32f746.dtsi (revision fa87abb6b67d21860b95f4c8a5d1c14008f7be46)
1b1a8de7eSMichael Kurz/*
2b1a8de7eSMichael Kurz * Copyright 2016 - Michael Kurz <michi.kurz@gmail.com>
3fd198ee1SVikas Manocha * Copyright 2016 - Vikas MANOCHA <vikas.manocha@st.com>
4b1a8de7eSMichael Kurz *
5b1a8de7eSMichael Kurz * Based on:
6b1a8de7eSMichael Kurz * stm32f429.dtsi from Linux
7b1a8de7eSMichael Kurz * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
8b1a8de7eSMichael Kurz *
9b1a8de7eSMichael Kurz * This file is dual-licensed: you can use it either under the terms
10b1a8de7eSMichael Kurz * of the GPL or the X11 license, at your option. Note that this dual
11b1a8de7eSMichael Kurz * licensing only applies to this file, and not this project as a
12b1a8de7eSMichael Kurz * whole.
13b1a8de7eSMichael Kurz *
14b1a8de7eSMichael Kurz *  a) This file is free software; you can redistribute it and/or
15b1a8de7eSMichael Kurz *     modify it under the terms of the GNU General Public License as
16b1a8de7eSMichael Kurz *     published by the Free Software Foundation; either version 2 of the
17b1a8de7eSMichael Kurz *     License, or (at your option) any later version.
18b1a8de7eSMichael Kurz *
19b1a8de7eSMichael Kurz *     This file is distributed in the hope that it will be useful,
20b1a8de7eSMichael Kurz *     but WITHOUT ANY WARRANTY; without even the implied warranty of
21b1a8de7eSMichael Kurz *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22b1a8de7eSMichael Kurz *     GNU General Public License for more details.
23b1a8de7eSMichael Kurz *
24b1a8de7eSMichael Kurz * Or, alternatively,
25b1a8de7eSMichael Kurz *
26b1a8de7eSMichael Kurz *  b) Permission is hereby granted, free of charge, to any person
27b1a8de7eSMichael Kurz *     obtaining a copy of this software and associated documentation
28b1a8de7eSMichael Kurz *     files (the "Software"), to deal in the Software without
29b1a8de7eSMichael Kurz *     restriction, including without limitation the rights to use,
30b1a8de7eSMichael Kurz *     copy, modify, merge, publish, distribute, sublicense, and/or
31b1a8de7eSMichael Kurz *     sell copies of the Software, and to permit persons to whom the
32b1a8de7eSMichael Kurz *     Software is furnished to do so, subject to the following
33b1a8de7eSMichael Kurz *     conditions:
34b1a8de7eSMichael Kurz *
35b1a8de7eSMichael Kurz *     The above copyright notice and this permission notice shall be
36b1a8de7eSMichael Kurz *     included in all copies or substantial portions of the Software.
37b1a8de7eSMichael Kurz *
38b1a8de7eSMichael Kurz *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39b1a8de7eSMichael Kurz *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40b1a8de7eSMichael Kurz *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41b1a8de7eSMichael Kurz *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42b1a8de7eSMichael Kurz *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43b1a8de7eSMichael Kurz *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44b1a8de7eSMichael Kurz *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45b1a8de7eSMichael Kurz *     OTHER DEALINGS IN THE SOFTWARE.
46b1a8de7eSMichael Kurz */
47b1a8de7eSMichael Kurz
48b1a8de7eSMichael Kurz#include "armv7-m.dtsi"
49b1a8de7eSMichael Kurz#include <dt-bindings/pinctrl/stm32f746-pinfunc.h>
50*fa87abb6SPatrice Chotard#include <dt-bindings/clock/stm32fx-clock.h>
51*fa87abb6SPatrice Chotard#include <dt-bindings/mfd/stm32f7-rcc.h>
52b1a8de7eSMichael Kurz
53b1a8de7eSMichael Kurz/ {
5484bfdc17SVikas Manocha	clocks {
5584bfdc17SVikas Manocha		clk_hse: clk-hse {
5684bfdc17SVikas Manocha			#clock-cells = <0>;
5784bfdc17SVikas Manocha			compatible = "fixed-clock";
5884bfdc17SVikas Manocha			clock-frequency = <0>;
5984bfdc17SVikas Manocha		};
6084bfdc17SVikas Manocha};
6184bfdc17SVikas Manocha
62b1a8de7eSMichael Kurz	soc {
6384bfdc17SVikas Manocha		u-boot,dm-pre-reloc;
64b1a8de7eSMichael Kurz		mac: ethernet@40028000 {
65b1a8de7eSMichael Kurz			compatible = "st,stm32-dwmac";
66b1a8de7eSMichael Kurz			reg = <0x40028000 0x8000>;
67b1a8de7eSMichael Kurz			reg-names = "stmmaceth";
68b1a8de7eSMichael Kurz			interrupts = <61>, <62>;
69b1a8de7eSMichael Kurz			interrupt-names = "macirq", "eth_wake_irq";
70b1a8de7eSMichael Kurz			snps,pbl = <8>;
71b1a8de7eSMichael Kurz			snps,mixed-burst;
72b1a8de7eSMichael Kurz			dma-ranges;
73b1a8de7eSMichael Kurz			status = "disabled";
74b1a8de7eSMichael Kurz		};
75b1a8de7eSMichael Kurz
76fd198ee1SVikas Manocha		fmc: fmc@A0000000 {
77fd198ee1SVikas Manocha			compatible = "st,stm32-fmc";
78fd198ee1SVikas Manocha			reg = <0xA0000000 0x1000>;
79*fa87abb6SPatrice Chotard			clocks = <&rcc 0 STM32F7_AHB3_CLOCK(FMC)>;
80fd198ee1SVikas Manocha			u-boot,dm-pre-reloc;
81fd198ee1SVikas Manocha		};
82fd198ee1SVikas Manocha
83b1a8de7eSMichael Kurz		qspi: quadspi@A0001000 {
84b1a8de7eSMichael Kurz			compatible = "st,stm32-qspi";
85b1a8de7eSMichael Kurz			#address-cells = <1>;
86b1a8de7eSMichael Kurz			#size-cells = <0>;
87b1a8de7eSMichael Kurz			reg = <0xA0001000 0x1000>, <0x90000000 0x10000000>;
88b1a8de7eSMichael Kurz			reg-names = "QuadSPI", "QuadSPI-memory";
89b1a8de7eSMichael Kurz			interrupts = <92>;
90b1a8de7eSMichael Kurz			spi-max-frequency = <108000000>;
91*fa87abb6SPatrice Chotard			clocks = <&rcc 0 STM32F7_AHB3_CLOCK(QSPI)>;
92b1a8de7eSMichael Kurz			status = "disabled";
93b1a8de7eSMichael Kurz		};
9484bfdc17SVikas Manocha		usart1: serial@40011000 {
951113ad49SPatrice Chotard			compatible = "st,stm32f7-usart", "st,stm32f7-uart";
9684bfdc17SVikas Manocha			reg = <0x40011000 0x400>;
9784bfdc17SVikas Manocha			interrupts = <37>;
98*fa87abb6SPatrice Chotard			clocks = <&rcc 0 STM32F7_APB2_CLOCK(USART1)>;
9984bfdc17SVikas Manocha			status = "disabled";
10084bfdc17SVikas Manocha			u-boot,dm-pre-reloc;
10184bfdc17SVikas Manocha		};
10284bfdc17SVikas Manocha		rcc: rcc@40023810 {
10384bfdc17SVikas Manocha			#reset-cells = <1>;
10484bfdc17SVikas Manocha			#clock-cells = <2>;
10584bfdc17SVikas Manocha			compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
10684bfdc17SVikas Manocha			reg = <0x40023800 0x400>;
10784bfdc17SVikas Manocha			clocks = <&clk_hse>;
10884bfdc17SVikas Manocha			u-boot,dm-pre-reloc;
10984bfdc17SVikas Manocha		};
11084bfdc17SVikas Manocha
111da4e17f2SVikas Manocha		pinctrl: pin-controller {
112da4e17f2SVikas Manocha			#address-cells = <1>;
113da4e17f2SVikas Manocha			#size-cells = <1>;
114da4e17f2SVikas Manocha			compatible = "st,stm32f746-pinctrl";
115da4e17f2SVikas Manocha			ranges = <0 0x40020000 0x3000>;
116da4e17f2SVikas Manocha			u-boot,dm-pre-reloc;
117da4e17f2SVikas Manocha			pins-are-numbered;
118e34e19feSVikas Manocha
119d33a6a2fSVikas Manocha			gpioa: gpio@40020000 {
120d33a6a2fSVikas Manocha				gpio-controller;
121d33a6a2fSVikas Manocha				#gpio-cells = <2>;
122d33a6a2fSVikas Manocha				compatible = "st,stm32-gpio";
123d33a6a2fSVikas Manocha				reg = <0x0 0x400>;
124*fa87abb6SPatrice Chotard				clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOA)>;
125d33a6a2fSVikas Manocha				st,bank-name = "GPIOA";
126d33a6a2fSVikas Manocha				u-boot,dm-pre-reloc;
127d33a6a2fSVikas Manocha			};
128d33a6a2fSVikas Manocha
129d33a6a2fSVikas Manocha			gpiob: gpio@40020400 {
130d33a6a2fSVikas Manocha				gpio-controller;
131d33a6a2fSVikas Manocha				#gpio-cells = <2>;
132d33a6a2fSVikas Manocha				compatible = "st,stm32-gpio";
133d33a6a2fSVikas Manocha				reg = <0x400 0x400>;
134*fa87abb6SPatrice Chotard				clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOB)>;
135d33a6a2fSVikas Manocha				st,bank-name = "GPIOB";
136d33a6a2fSVikas Manocha				u-boot,dm-pre-reloc;
137d33a6a2fSVikas Manocha			};
138d33a6a2fSVikas Manocha
139d33a6a2fSVikas Manocha
140d33a6a2fSVikas Manocha			gpioc: gpio@40020800 {
141d33a6a2fSVikas Manocha				gpio-controller;
142d33a6a2fSVikas Manocha				#gpio-cells = <2>;
143d33a6a2fSVikas Manocha				compatible = "st,stm32-gpio";
144d33a6a2fSVikas Manocha				reg = <0x800 0x400>;
145*fa87abb6SPatrice Chotard				clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOC)>;
146d33a6a2fSVikas Manocha				st,bank-name = "GPIOC";
147d33a6a2fSVikas Manocha				u-boot,dm-pre-reloc;
148d33a6a2fSVikas Manocha			};
149d33a6a2fSVikas Manocha
150d33a6a2fSVikas Manocha			gpiod: gpio@40020c00 {
151d33a6a2fSVikas Manocha				gpio-controller;
152d33a6a2fSVikas Manocha				#gpio-cells = <2>;
153d33a6a2fSVikas Manocha				compatible = "st,stm32-gpio";
154d33a6a2fSVikas Manocha				reg = <0xc00 0x400>;
155*fa87abb6SPatrice Chotard				clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOD)>;
156d33a6a2fSVikas Manocha				st,bank-name = "GPIOD";
157d33a6a2fSVikas Manocha				u-boot,dm-pre-reloc;
158d33a6a2fSVikas Manocha			};
159d33a6a2fSVikas Manocha
160d33a6a2fSVikas Manocha			gpioe: gpio@40021000 {
161d33a6a2fSVikas Manocha				gpio-controller;
162d33a6a2fSVikas Manocha				#gpio-cells = <2>;
163d33a6a2fSVikas Manocha				compatible = "st,stm32-gpio";
164d33a6a2fSVikas Manocha				reg = <0x1000 0x400>;
165*fa87abb6SPatrice Chotard				clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOE)>;
166d33a6a2fSVikas Manocha				st,bank-name = "GPIOE";
167d33a6a2fSVikas Manocha				u-boot,dm-pre-reloc;
168d33a6a2fSVikas Manocha			};
169d33a6a2fSVikas Manocha
170d33a6a2fSVikas Manocha			gpiof: gpio@40021400 {
171d33a6a2fSVikas Manocha				gpio-controller;
172d33a6a2fSVikas Manocha				#gpio-cells = <2>;
173d33a6a2fSVikas Manocha				compatible = "st,stm32-gpio";
174d33a6a2fSVikas Manocha				reg = <0x1400 0x400>;
175*fa87abb6SPatrice Chotard				clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOF)>;
176d33a6a2fSVikas Manocha				st,bank-name = "GPIOF";
177d33a6a2fSVikas Manocha				u-boot,dm-pre-reloc;
178d33a6a2fSVikas Manocha			};
179d33a6a2fSVikas Manocha
180d33a6a2fSVikas Manocha			gpiog: gpio@40021800 {
181d33a6a2fSVikas Manocha				gpio-controller;
182d33a6a2fSVikas Manocha				#gpio-cells = <2>;
183d33a6a2fSVikas Manocha				compatible = "st,stm32-gpio";
184d33a6a2fSVikas Manocha				reg = <0x1800 0x400>;
185*fa87abb6SPatrice Chotard				clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOG)>;
186d33a6a2fSVikas Manocha				st,bank-name = "GPIOG";
187d33a6a2fSVikas Manocha				u-boot,dm-pre-reloc;
188d33a6a2fSVikas Manocha			};
189d33a6a2fSVikas Manocha
190d33a6a2fSVikas Manocha			gpioh: gpio@40021c00 {
191d33a6a2fSVikas Manocha				gpio-controller;
192d33a6a2fSVikas Manocha				#gpio-cells = <2>;
193d33a6a2fSVikas Manocha				compatible = "st,stm32-gpio";
194d33a6a2fSVikas Manocha				reg = <0x1c00 0x400>;
195*fa87abb6SPatrice Chotard				clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOH)>;
196d33a6a2fSVikas Manocha				st,bank-name = "GPIOH";
197d33a6a2fSVikas Manocha				u-boot,dm-pre-reloc;
198d33a6a2fSVikas Manocha			};
199d33a6a2fSVikas Manocha
200d33a6a2fSVikas Manocha			gpioi: gpio@40022000 {
201d33a6a2fSVikas Manocha				gpio-controller;
202d33a6a2fSVikas Manocha				#gpio-cells = <2>;
203d33a6a2fSVikas Manocha				compatible = "st,stm32-gpio";
204d33a6a2fSVikas Manocha				reg = <0x2000 0x400>;
205*fa87abb6SPatrice Chotard				clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOI)>;
206d33a6a2fSVikas Manocha				st,bank-name = "GPIOI";
207d33a6a2fSVikas Manocha				u-boot,dm-pre-reloc;
208d33a6a2fSVikas Manocha			};
209d33a6a2fSVikas Manocha
210d33a6a2fSVikas Manocha			gpioj: gpio@40022400 {
211d33a6a2fSVikas Manocha				gpio-controller;
212d33a6a2fSVikas Manocha				#gpio-cells = <2>;
213d33a6a2fSVikas Manocha				compatible = "st,stm32-gpio";
214d33a6a2fSVikas Manocha				reg = <0x2400 0x400>;
215*fa87abb6SPatrice Chotard				clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOJ)>;
216d33a6a2fSVikas Manocha				st,bank-name = "GPIOJ";
217d33a6a2fSVikas Manocha				u-boot,dm-pre-reloc;
218d33a6a2fSVikas Manocha			};
219d33a6a2fSVikas Manocha
220d33a6a2fSVikas Manocha			gpiok: gpio@40022800 {
221d33a6a2fSVikas Manocha				gpio-controller;
222d33a6a2fSVikas Manocha				#gpio-cells = <2>;
223d33a6a2fSVikas Manocha				compatible = "st,stm32-gpio";
224d33a6a2fSVikas Manocha				reg = <0x2800 0x400>;
225*fa87abb6SPatrice Chotard				clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOK)>;
226d33a6a2fSVikas Manocha				st,bank-name = "GPIOK";
227d33a6a2fSVikas Manocha				u-boot,dm-pre-reloc;
228d33a6a2fSVikas Manocha			};
229d33a6a2fSVikas Manocha
230da4e17f2SVikas Manocha		};
231b1a8de7eSMichael Kurz	};
232b1a8de7eSMichael Kurz};
233b1a8de7eSMichael Kurz
234b1a8de7eSMichael Kurz&systick {
235b1a8de7eSMichael Kurz	status = "okay";
236b1a8de7eSMichael Kurz};
237