blob: f09f4290f62b7e908c222155fdc84b10e2434e7a [file] [log] [blame]
Marek Vasut19953732020-01-24 18:39:16 +01001// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
2/*
3 * Copyright (C) 2019 Marek Vasut <marex@denx.de>
4 */
5
6#include <dt-bindings/clock/stm32mp1-clksrc.h>
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01007#include "stm32mp15-u-boot.dtsi"
Marek Vasut92ca0f72020-04-29 15:08:38 +02008#include "stm32mp15-ddr3-dhsom-2x1Gb-1066-binG.dtsi"
9#include "stm32mp15-ddr3-dhsom-2x2Gb-1066-binG.dtsi"
10#include "stm32mp15-ddr3-dhsom-2x4Gb-1066-binG.dtsi"
Marek Vasut19953732020-01-24 18:39:16 +010011
Marek Vasut332facc2021-12-30 23:46:47 +010012/delete-node/ &ksz8851;
13
Marek Vasut19953732020-01-24 18:39:16 +010014/ {
15 aliases {
16 i2c1 = &i2c2;
17 i2c3 = &i2c4;
18 i2c4 = &i2c5;
19 mmc0 = &sdmmc1;
20 mmc1 = &sdmmc2;
21 spi0 = &qspi;
22 usb0 = &usbotg_hs;
Marek Vasut332facc2021-12-30 23:46:47 +010023 eeprom0 = &eeprom0;
24 ethernet1 = &ks8851;
Marek Vasut19953732020-01-24 18:39:16 +010025 };
26
27 config {
28 u-boot,boot-led = "heartbeat";
29 u-boot,error-led = "error";
30 st,fastboot-gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
31 st,stm32prog-gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
Marek Vasut731fd502020-04-22 13:18:11 +020032 dh,som-coding-gpios = <&gpiof 12 0>, <&gpiof 13 0>, <&gpiof 15 0>;
Marek Vasut2d683652020-04-22 13:18:14 +020033 dh,ddr3-coding-gpios = <&gpioz 6 0>, <&gpioz 7 0>;
Marek Vasut19953732020-01-24 18:39:16 +010034 };
35
Marek Vasutde80a242020-03-28 02:01:58 +010036 /* This is actually on FMC2, but we do not have bus driver for that */
Marek Vasut332facc2021-12-30 23:46:47 +010037 ks8851: ks8851mll@64000000 {
Marek Vasutde80a242020-03-28 02:01:58 +010038 compatible = "micrel,ks8851-mll";
39 reg = <0x64000000 0x20000>;
40 };
Marek Vasut19953732020-01-24 18:39:16 +010041};
42
Marek Vasut332facc2021-12-30 23:46:47 +010043&ethernet0 {
44 phy-reset-gpios = <&gpioh 3 GPIO_ACTIVE_LOW>;
45 /delete-property/ st,eth-ref-clk-sel;
46};
47
48&ethernet0_rmii_pins_a {
49 pins1 {
50 pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH1_RMII_TXD0 */
51 <STM32_PINMUX('G', 14, AF11)>, /* ETH1_RMII_TXD1 */
52 <STM32_PINMUX('B', 11, AF11)>, /* ETH1_RMII_TX_EN */
53 <STM32_PINMUX('A', 1, AF11)>, /* ETH1_RMII_REF_CLK */
54 <STM32_PINMUX('A', 2, AF11)>, /* ETH1_MDIO */
55 <STM32_PINMUX('C', 1, AF11)>; /* ETH1_MDC */
56 };
57};
58
Marek Vasut19953732020-01-24 18:39:16 +010059&i2c4 {
60 u-boot,dm-pre-reloc;
Marek Vasut332facc2021-12-30 23:46:47 +010061
62 eeprom0: eeprom@50 {
63 };
Marek Vasut19953732020-01-24 18:39:16 +010064};
65
66&i2c4_pins_a {
67 u-boot,dm-pre-reloc;
68 pins {
69 u-boot,dm-pre-reloc;
70 };
71};
72
Marek Vasut332facc2021-12-30 23:46:47 +010073&phy0 {
74 /delete-property/ reset-gpios;
75};
76
Marek Vasutde80a242020-03-28 02:01:58 +010077&pinctrl {
78 /* These should bound to FMC2 bus driver, but we do not have one */
Marek Vasut69ea30e2020-12-01 11:34:48 +010079 pinctrl-0 = <&fmc_pins_b &mco2_pins_a>;
80 pinctrl-1 = <&fmc_sleep_pins_b &mco2_sleep_pins_a>;
Marek Vasutde80a242020-03-28 02:01:58 +010081 pinctrl-names = "default", "sleep";
82
Marek Vasut69ea30e2020-12-01 11:34:48 +010083 mco2_pins_a: mco2-0 {
84 pins {
85 pinmux = <STM32_PINMUX('G', 2, AF1)>; /* MCO2 */
86 bias-disable;
87 drive-push-pull;
88 slew-rate = <2>;
89 };
90 };
91
92 mco2_sleep_pins_a: mco2-sleep-0 {
93 pins {
94 pinmux = <STM32_PINMUX('G', 2, ANALOG)>; /* MCO2 */
95 };
96 };
Marek Vasutde80a242020-03-28 02:01:58 +010097};
98
Marek Vasut19953732020-01-24 18:39:16 +010099&pmic {
100 u-boot,dm-pre-reloc;
101};
102
103&flash0 {
104 u-boot,dm-spl;
105};
106
107&qspi {
108 u-boot,dm-spl;
109};
110
111&qspi_clk_pins_a {
112 u-boot,dm-spl;
113 pins {
114 u-boot,dm-spl;
115 };
116};
117
118&qspi_bk1_pins_a {
119 u-boot,dm-spl;
120 pins1 {
121 u-boot,dm-spl;
122 };
123 pins2 {
124 u-boot,dm-spl;
125 };
126};
127
128&qspi_bk2_pins_a {
129 u-boot,dm-spl;
130 pins1 {
131 u-boot,dm-spl;
132 };
133 pins2 {
134 u-boot,dm-spl;
135 };
136};
137
138&rcc {
139 st,clksrc = <
140 CLK_MPU_PLL1P
141 CLK_AXI_PLL2P
142 CLK_MCU_PLL3P
143 CLK_PLL12_HSE
144 CLK_PLL3_HSE
145 CLK_PLL4_HSE
146 CLK_RTC_LSE
147 CLK_MCO1_DISABLED
Marek Vasut69ea30e2020-12-01 11:34:48 +0100148 CLK_MCO2_PLL4P
Marek Vasut19953732020-01-24 18:39:16 +0100149 >;
150
151 st,clkdiv = <
152 1 /*MPU*/
153 0 /*AXI*/
154 0 /*MCU*/
155 1 /*APB1*/
156 1 /*APB2*/
157 1 /*APB3*/
158 1 /*APB4*/
159 2 /*APB5*/
160 23 /*RTC*/
161 0 /*MCO1*/
Marek Vasut69ea30e2020-12-01 11:34:48 +0100162 1 /*MCO2*/
Marek Vasut19953732020-01-24 18:39:16 +0100163 >;
164
165 st,pkcs = <
166 CLK_CKPER_HSE
167 CLK_FMC_ACLK
168 CLK_QSPI_ACLK
169 CLK_ETH_PLL4P
170 CLK_SDMMC12_PLL4P
171 CLK_DSI_DSIPLL
172 CLK_STGEN_HSE
173 CLK_USBPHY_HSE
174 CLK_SPI2S1_PLL3Q
175 CLK_SPI2S23_PLL3Q
176 CLK_SPI45_HSI
177 CLK_SPI6_HSI
178 CLK_I2C46_HSI
179 CLK_SDMMC3_PLL4P
180 CLK_USBO_USBPHY
181 CLK_ADC_CKPER
182 CLK_CEC_LSE
183 CLK_I2C12_HSI
184 CLK_I2C35_HSI
185 CLK_UART1_HSI
186 CLK_UART24_HSI
187 CLK_UART35_HSI
188 CLK_UART6_HSI
189 CLK_UART78_HSI
190 CLK_SPDIF_PLL4P
Antonio Borneodb0cd2d2020-01-28 10:11:01 +0100191 CLK_FDCAN_PLL4R
Marek Vasut19953732020-01-24 18:39:16 +0100192 CLK_SAI1_PLL3Q
193 CLK_SAI2_PLL3Q
194 CLK_SAI3_PLL3Q
195 CLK_SAI4_PLL3Q
196 CLK_RNG1_LSI
197 CLK_RNG2_LSI
198 CLK_LPTIM1_PCLK1
199 CLK_LPTIM23_PCLK3
200 CLK_LPTIM45_LSE
201 >;
202
Marek Vasut19953732020-01-24 18:39:16 +0100203 /* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */
204 pll2: st,pll@1 {
Patrick Delaunay8d93a972020-01-28 10:11:03 +0100205 compatible = "st,stm32mp1-pll";
206 reg = <1>;
Marek Vasut19953732020-01-24 18:39:16 +0100207 cfg = < 2 65 1 0 0 PQR(1,1,1) >;
208 frac = < 0x1400 >;
209 u-boot,dm-pre-reloc;
210 };
211
212 /* VCO = 417.8 MHz => P = 209, Q = 24, R = 11 */
213 pll3: st,pll@2 {
Patrick Delaunay8d93a972020-01-28 10:11:03 +0100214 compatible = "st,stm32mp1-pll";
215 reg = <2>;
Marek Vasut19953732020-01-24 18:39:16 +0100216 cfg = < 1 33 1 16 36 PQR(1,1,1) >;
217 frac = < 0x1a04 >;
218 u-boot,dm-pre-reloc;
219 };
220
221 /* VCO = 600.0 MHz => P = 50, Q = 50, R = 50 */
222 pll4: st,pll@3 {
Patrick Delaunay8d93a972020-01-28 10:11:03 +0100223 compatible = "st,stm32mp1-pll";
224 reg = <3>;
Marek Vasut69ea30e2020-12-01 11:34:48 +0100225 cfg = < 1 49 5 11 11 PQR(1,1,1) >;
Marek Vasut19953732020-01-24 18:39:16 +0100226 u-boot,dm-pre-reloc;
227 };
228};
229
230&sdmmc1 {
231 u-boot,dm-spl;
Marek Vasut77d043c2021-11-13 03:29:44 +0100232 st,use-ckin;
233 st,cmd-gpios = <&gpiod 2 0>;
234 st,ck-gpios = <&gpioc 12 0>;
235 st,ckin-gpios = <&gpioe 4 0>;
Marek Vasut19953732020-01-24 18:39:16 +0100236};
237
238&sdmmc1_b4_pins_a {
239 u-boot,dm-spl;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +0100240 pins1 {
241 u-boot,dm-spl;
242 };
243 pins2 {
Marek Vasut19953732020-01-24 18:39:16 +0100244 u-boot,dm-spl;
245 };
246};
247
248&sdmmc1_dir_pins_a {
249 u-boot,dm-spl;
250 pins1 {
251 u-boot,dm-spl;
252 };
253 pins2 {
254 u-boot,dm-spl;
255 };
256};
257
258&sdmmc2 {
259 u-boot,dm-spl;
260};
261
262&sdmmc2_b4_pins_a {
263 u-boot,dm-spl;
264 pins {
265 u-boot,dm-spl;
266 };
267};
268
269&sdmmc2_d47_pins_a {
270 u-boot,dm-spl;
271 pins {
272 u-boot,dm-spl;
273 };
274};
275
276&uart4 {
277 u-boot,dm-pre-reloc;
278};
279
280&uart4_pins_a {
281 u-boot,dm-pre-reloc;
282 pins1 {
283 u-boot,dm-pre-reloc;
284 };
285 pins2 {
286 u-boot,dm-pre-reloc;
287 /* pull-up on rx to avoid floating level */
288 bias-pull-up;
289 };
290};