blob: ab162f39473390df2c4e47e5becf9775b3c49222 [file] [log] [blame]
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +05301// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
2/*
3 * Copyright : STMicroelectronics 2018
4 *
5 * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
6 * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Marek Vasut526c9512020-03-31 19:51:36 +02007 * Copyright (C) 2020 Marek Vasut <marex@denx.de>
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +05308 */
9
10#include <dt-bindings/clock/stm32mp1-clksrc.h>
Patrick Delaunay48c5e902020-03-06 17:54:41 +010011#include "stm32mp15-u-boot.dtsi"
Marek Vasut272198e2020-04-29 15:08:38 +020012#include "stm32mp15-ddr3-dhsom-2x1Gb-1066-binG.dtsi"
13#include "stm32mp15-ddr3-dhsom-2x2Gb-1066-binG.dtsi"
14#include "stm32mp15-ddr3-dhsom-2x4Gb-1066-binG.dtsi"
Marek Vasut01711442024-10-05 03:15:50 +020015#include "stm32mp15xx-dhsom-u-boot.dtsi"
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +053016
Marek Vasut47b98ba2020-04-22 13:18:11 +020017/ {
Simon Glassd3a98cb2023-02-13 08:56:33 -070018 bootph-all;
Marek Vasut8b08dfb2021-12-30 23:46:46 +010019
20 aliases {
21 eeprom0 = &eeprom0;
22 };
23
Marek Vasut47b98ba2020-04-22 13:18:11 +020024 config {
Marek Vasut39221b52020-04-22 13:18:14 +020025 dh,ddr3-coding-gpios = <&gpiog 0 0>, <&gpiog 1 0>;
Marek Vasut47b98ba2020-04-22 13:18:11 +020026 dh,som-coding-gpios = <&gpioz 7 0>, <&gpiof 3 0>;
27 };
28};
29
Marek Vasutc2afb112020-10-01 12:25:55 +020030&flash0 {
Simon Glassd3a98cb2023-02-13 08:56:33 -070031 bootph-pre-ram;
Patrick Delaunayf172bcb2023-06-08 17:16:48 +020032
33 partitions {
34 compatible = "fixed-partitions";
35 #address-cells = <1>;
36 #size-cells = <1>;
37
38 partition@0 {
39 label = "fsbl1";
40 reg = <0x00000000 0x00040000>;
41 };
42 partition@40000 {
43 label = "fsbl2";
44 reg = <0x00040000 0x00040000>;
45 };
Patrice Chotard0f2f0d52024-03-08 14:50:08 +010046 partition@80000 {
Patrick Delaunayf172bcb2023-06-08 17:16:48 +020047 label = "uboot";
48 reg = <0x00080000 0x00160000>;
49 };
Patrice Chotard0f2f0d52024-03-08 14:50:08 +010050 partition@1e0000 {
Patrick Delaunayf172bcb2023-06-08 17:16:48 +020051 label = "env1";
52 reg = <0x001E0000 0x00010000>;
53 };
Patrice Chotard0f2f0d52024-03-08 14:50:08 +010054 partition@1f0000 {
Patrick Delaunayf172bcb2023-06-08 17:16:48 +020055 label = "env2";
56 reg = <0x001F0000 0x00010000>;
57 };
58 };
Marek Vasutc2afb112020-10-01 12:25:55 +020059};
60
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +053061&i2c4 {
Simon Glassd3a98cb2023-02-13 08:56:33 -070062 bootph-all;
63 bootph-pre-ram;
Marek Vasut8b08dfb2021-12-30 23:46:46 +010064
65 eeprom0: eeprom@53 {
66 };
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +053067};
68
69&i2c4_pins_a {
Simon Glassd3a98cb2023-02-13 08:56:33 -070070 bootph-all;
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +053071 pins {
Simon Glassd3a98cb2023-02-13 08:56:33 -070072 bootph-all;
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +053073 };
74};
75
76&pmic {
Simon Glassd3a98cb2023-02-13 08:56:33 -070077 bootph-all;
78 bootph-pre-ram;
Marek Vasutacb41692021-12-06 21:58:09 +010079
80 regulators {
Simon Glassd3a98cb2023-02-13 08:56:33 -070081 bootph-pre-ram;
Marek Vasutacb41692021-12-06 21:58:09 +010082 };
83};
84
85&pwr_regulators {
Simon Glassd3a98cb2023-02-13 08:56:33 -070086 bootph-pre-ram;
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +053087};
88
Marek Vasut526c9512020-03-31 19:51:36 +020089&qspi {
Simon Glassd3a98cb2023-02-13 08:56:33 -070090 bootph-pre-ram;
Marek Vasut526c9512020-03-31 19:51:36 +020091};
92
Marek Vasutc2afb112020-10-01 12:25:55 +020093&qspi_clk_pins_a {
Simon Glassd3a98cb2023-02-13 08:56:33 -070094 bootph-pre-ram;
Marek Vasutc2afb112020-10-01 12:25:55 +020095 pins {
Simon Glassd3a98cb2023-02-13 08:56:33 -070096 bootph-pre-ram;
Marek Vasutc2afb112020-10-01 12:25:55 +020097 };
98};
99
100&qspi_bk1_pins_a {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700101 bootph-pre-ram;
Marek Vasut3f3375c2023-10-10 01:15:51 +0200102 pins {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700103 bootph-pre-ram;
Marek Vasutc2afb112020-10-01 12:25:55 +0200104 };
Marek Vasut3f3375c2023-10-10 01:15:51 +0200105};
106
107&qspi_cs1_pins_a {
108 bootph-pre-ram;
109 pins {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700110 bootph-pre-ram;
Marek Vasutc2afb112020-10-01 12:25:55 +0200111 };
112};
113
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +0530114&rcc {
Marek Vasut1f052cb2024-12-16 00:29:12 +0100115 clock-names = "hse", "hsi", "csi", "lse", "lsi";
116 clocks = <&clk_hse>, <&clk_hsi>, <&clk_csi>,
117 <&clk_lse>, <&clk_lsi>;
118
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +0530119 st,clksrc = <
120 CLK_MPU_PLL1P
121 CLK_AXI_PLL2P
122 CLK_MCU_PLL3P
123 CLK_PLL12_HSE
124 CLK_PLL3_HSE
125 CLK_PLL4_HSE
126 CLK_RTC_LSE
127 CLK_MCO1_DISABLED
128 CLK_MCO2_DISABLED
129 >;
130
131 st,clkdiv = <
132 1 /*MPU*/
133 0 /*AXI*/
134 0 /*MCU*/
135 1 /*APB1*/
136 1 /*APB2*/
137 1 /*APB3*/
138 1 /*APB4*/
139 2 /*APB5*/
140 23 /*RTC*/
141 0 /*MCO1*/
142 0 /*MCO2*/
143 >;
144
145 st,pkcs = <
146 CLK_CKPER_HSE
147 CLK_FMC_ACLK
148 CLK_QSPI_ACLK
149 CLK_ETH_DISABLED
150 CLK_SDMMC12_PLL4P
151 CLK_DSI_DSIPLL
152 CLK_STGEN_HSE
153 CLK_USBPHY_HSE
154 CLK_SPI2S1_PLL3Q
155 CLK_SPI2S23_PLL3Q
156 CLK_SPI45_HSI
157 CLK_SPI6_HSI
158 CLK_I2C46_HSI
159 CLK_SDMMC3_PLL4P
160 CLK_USBO_USBPHY
161 CLK_ADC_CKPER
162 CLK_CEC_LSE
163 CLK_I2C12_HSI
164 CLK_I2C35_HSI
165 CLK_UART1_HSI
166 CLK_UART24_HSI
167 CLK_UART35_HSI
168 CLK_UART6_HSI
169 CLK_UART78_HSI
170 CLK_SPDIF_PLL4P
Antonio Borneo84159e82020-01-28 10:11:01 +0100171 CLK_FDCAN_PLL4R
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +0530172 CLK_SAI1_PLL3Q
173 CLK_SAI2_PLL3Q
174 CLK_SAI3_PLL3Q
175 CLK_SAI4_PLL3Q
176 CLK_RNG1_LSI
177 CLK_RNG2_LSI
178 CLK_LPTIM1_PCLK1
179 CLK_LPTIM23_PCLK3
180 CLK_LPTIM45_LSE
181 >;
182
Marek Vasut086fa932022-10-11 22:42:44 +0200183 /*
184 * cfg = < DIVM1 DIVN P Q R PQR(p,q,r) >;
185 * frac = < f >;
186 *
187 * PRQ(p,q,r) ... for p,q,r: 0-output disabled / 1-output enabled
188 * DIVN ... actually multiplier, but RCC_PLL1CFGR1 calls the field DIVN
189 * m ... for PLL1,2: m=2 ; for PLL3,4: m=1
190 * XTAL = 24 MHz
191 *
192 * VCO = ( XTAL / (DIVM1 + 1) ) * m * ( DIVN + 1 + ( f / 8192 ) )
193 * P = VCO / (P + 1)
194 * Q = VCO / (Q + 1)
195 * R = VCO / (R + 1)
196 */
197
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +0530198 /* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */
199 pll2: st,pll@1 {
Patrick Delaunayc22caac2020-01-28 10:11:03 +0100200 compatible = "st,stm32mp1-pll";
201 reg = <1>;
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +0530202 cfg = < 2 65 1 0 0 PQR(1,1,1) >;
203 frac = < 0x1400 >;
Simon Glassd3a98cb2023-02-13 08:56:33 -0700204 bootph-all;
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +0530205 };
206
207 /* VCO = 417.8 MHz => P = 209, Q = 24, R = 11 */
208 pll3: st,pll@2 {
Patrick Delaunayc22caac2020-01-28 10:11:03 +0100209 compatible = "st,stm32mp1-pll";
210 reg = <2>;
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +0530211 cfg = < 1 33 1 16 36 PQR(1,1,1) >;
212 frac = < 0x1a04 >;
Simon Glassd3a98cb2023-02-13 08:56:33 -0700213 bootph-all;
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +0530214 };
215
Marek Vasut086fa932022-10-11 22:42:44 +0200216 /* VCO = 594.0 MHz => P = 99, Q = 74, R = 99 */
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +0530217 pll4: st,pll@3 {
Patrick Delaunayc22caac2020-01-28 10:11:03 +0100218 compatible = "st,stm32mp1-pll";
219 reg = <3>;
Marek Vasutb48223e2020-08-22 22:45:25 +0200220 cfg = < 3 98 5 7 5 PQR(1,1,1) >;
Simon Glassd3a98cb2023-02-13 08:56:33 -0700221 bootph-all;
Manivannan Sadhasivamd1564072019-05-02 13:26:44 +0530222 };
223};
Marek Vasutacb41692021-12-06 21:58:09 +0100224
225&reg11 {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700226 bootph-pre-ram;
Marek Vasutacb41692021-12-06 21:58:09 +0100227};
228
229&reg18 {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700230 bootph-pre-ram;
Marek Vasutacb41692021-12-06 21:58:09 +0100231};
232
Marek Vasut5c92da92022-01-28 19:35:20 +0100233&usb33 {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700234 bootph-pre-ram;
Marek Vasut5c92da92022-01-28 19:35:20 +0100235};
236
237&usbotg_hs_pins_a {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700238 bootph-pre-ram;
Marek Vasut5c92da92022-01-28 19:35:20 +0100239};
240
Marek Vasutacb41692021-12-06 21:58:09 +0100241&usbotg_hs {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700242 bootph-pre-ram;
Marek Vasutacb41692021-12-06 21:58:09 +0100243};
244
245&usbphyc {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700246 bootph-pre-ram;
Marek Vasutacb41692021-12-06 21:58:09 +0100247};
248
249&usbphyc_port0 {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700250 bootph-pre-ram;
Marek Vasutacb41692021-12-06 21:58:09 +0100251};
252
253&usbphyc_port1 {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700254 bootph-pre-ram;
Marek Vasutacb41692021-12-06 21:58:09 +0100255};
256
Marek Vasutacb41692021-12-06 21:58:09 +0100257&vdd_usb {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700258 bootph-pre-ram;
Marek Vasutacb41692021-12-06 21:58:09 +0100259};