blob: 6ae97c7581d1ec48d347c318a03fc4e43d975541 [file] [log] [blame]
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +05301// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (C) Arrow Electronics 2019 - All Rights Reserved
4 * Author: Botond Kardos <botond.kardos@arroweurope.com>
5 *
6 * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
7 * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
8 */
9
10/dts-v1/;
11
Yann Gautier4ede20a2020-09-18 15:04:14 +020012#include "stm32mp157.dtsi"
13#include "stm32mp15-pinctrl.dtsi"
14#include "stm32mp15xxac-pinctrl.dtsi"
15#include <dt-bindings/clock/stm32mp1-clksrc.h>
16#include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi"
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +053017
18/ {
19 model = "Arrow Electronics STM32MP157A Avenger96 board";
Yann Gautier4ede20a2020-09-18 15:04:14 +020020 compatible = "arrow,stm32mp157a-avenger96", "st,stm32mp157";
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +053021
22 aliases {
Yann Gautier4ede20a2020-09-18 15:04:14 +020023 mmc0 = &sdmmc1;
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +053024 serial0 = &uart4;
Yann Gautier4ede20a2020-09-18 15:04:14 +020025 serial1 = &uart7;
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +053026 };
27
28 chosen {
29 stdout-path = "serial0:115200n8";
30 };
31
Yann Gautier4ede20a2020-09-18 15:04:14 +020032 memory@c0000000 {
33 device_type = "memory";
34 reg = <0xc0000000 0x40000000>;
35 };
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +053036};
37
38&i2c4 {
39 pinctrl-names = "default";
40 pinctrl-0 = <&i2c4_pins_a>;
41 i2c-scl-rising-time-ns = <185>;
42 i2c-scl-falling-time-ns = <20>;
43 status = "okay";
44
45 pmic: stpmic@33 {
46 compatible = "st,stpmic1";
47 reg = <0x33>;
48 interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>;
49 interrupt-controller;
50 #interrupt-cells = <2>;
51 status = "okay";
52
53 st,main-control-register = <0x04>;
54 st,vin-control-register = <0xc0>;
Yann Gautier4ede20a2020-09-18 15:04:14 +020055 st,usb-control-register = <0x30>;
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +053056
57 regulators {
58 compatible = "st,stpmic1-regulators";
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +053059 ldo1-supply = <&v3v3>;
60 ldo2-supply = <&v3v3>;
61 ldo3-supply = <&vdd_ddr>;
62 ldo5-supply = <&v3v3>;
63 ldo6-supply = <&v3v3>;
Yann Gautier4ede20a2020-09-18 15:04:14 +020064 pwr_sw1-supply = <&bst_out>;
65 pwr_sw2-supply = <&bst_out>;
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +053066
67 vddcore: buck1 {
68 regulator-name = "vddcore";
69 regulator-min-microvolt = <1200000>;
70 regulator-max-microvolt = <1350000>;
71 regulator-always-on;
72 regulator-initial-mode = <0>;
73 regulator-over-current-protection;
74 };
75
76 vdd_ddr: buck2 {
77 regulator-name = "vdd_ddr";
78 regulator-min-microvolt = <1350000>;
79 regulator-max-microvolt = <1350000>;
80 regulator-always-on;
81 regulator-initial-mode = <0>;
82 regulator-over-current-protection;
83 };
84
85 vdd: buck3 {
86 regulator-name = "vdd";
87 regulator-min-microvolt = <3300000>;
88 regulator-max-microvolt = <3300000>;
89 regulator-always-on;
90 st,mask-reset;
91 regulator-initial-mode = <0>;
92 regulator-over-current-protection;
93 };
94
95 v3v3: buck4 {
96 regulator-name = "v3v3";
97 regulator-min-microvolt = <3300000>;
98 regulator-max-microvolt = <3300000>;
99 regulator-always-on;
100 regulator-over-current-protection;
101 regulator-initial-mode = <0>;
102 };
103
104 vdda: ldo1 {
105 regulator-name = "vdda";
106 regulator-min-microvolt = <2900000>;
107 regulator-max-microvolt = <2900000>;
108 };
109
110 v2v8: ldo2 {
111 regulator-name = "v2v8";
112 regulator-min-microvolt = <2800000>;
113 regulator-max-microvolt = <2800000>;
114 };
115
116 vtt_ddr: ldo3 {
117 regulator-name = "vtt_ddr";
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +0530118 regulator-always-on;
119 regulator-over-current-protection;
Ahmad Fatoum9d3c53c2022-06-02 06:28:31 +0200120 st,regulator-sink-source;
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +0530121 };
122
123 vdd_usb: ldo4 {
124 regulator-name = "vdd_usb";
125 regulator-min-microvolt = <3300000>;
126 regulator-max-microvolt = <3300000>;
127 };
128
129 vdd_sd: ldo5 {
130 regulator-name = "vdd_sd";
131 regulator-min-microvolt = <2900000>;
132 regulator-max-microvolt = <2900000>;
133 regulator-boot-on;
134 };
135
136 v1v8: ldo6 {
137 regulator-name = "v1v8";
138 regulator-min-microvolt = <1800000>;
139 regulator-max-microvolt = <1800000>;
140 };
141
142 vref_ddr: vref_ddr {
143 regulator-name = "vref_ddr";
144 regulator-always-on;
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +0530145 };
Yann Gautier4ede20a2020-09-18 15:04:14 +0200146
147 bst_out: boost {
148 regulator-name = "bst_out";
149 };
150
151 vbus_otg: pwr_sw1 {
152 regulator-name = "vbus_otg";
153 };
154
155 vbus_sw: pwr_sw2 {
156 regulator-name = "vbus_sw";
157 regulator-active-discharge = <1>;
158 };
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +0530159 };
160 };
161};
162
163&iwdg2 {
164 timeout-sec = <32>;
165 status = "okay";
Yann Gautier4ede20a2020-09-18 15:04:14 +0200166 secure-status = "okay";
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +0530167};
168
Yann Gautier4ede20a2020-09-18 15:04:14 +0200169&pwr_regulators {
170 vdd-supply = <&vdd>;
171 vdd_3v3_usbfs-supply = <&vdd_usb>;
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +0530172};
173
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +0530174&rcc {
175 secure-status = "disabled";
176 st,clksrc = <
177 CLK_MPU_PLL1P
178 CLK_AXI_PLL2P
179 CLK_MCU_PLL3P
180 CLK_PLL12_HSE
181 CLK_PLL3_HSE
182 CLK_PLL4_HSE
183 CLK_RTC_LSE
184 CLK_MCO1_DISABLED
185 CLK_MCO2_DISABLED
186 >;
187
188 st,clkdiv = <
189 1 /*MPU*/
190 0 /*AXI*/
191 0 /*MCU*/
192 1 /*APB1*/
193 1 /*APB2*/
194 1 /*APB3*/
195 1 /*APB4*/
196 2 /*APB5*/
197 23 /*RTC*/
198 0 /*MCO1*/
199 0 /*MCO2*/
200 >;
201
202 st,pkcs = <
203 CLK_CKPER_HSE
204 CLK_FMC_ACLK
205 CLK_QSPI_ACLK
206 CLK_ETH_DISABLED
207 CLK_SDMMC12_PLL4P
208 CLK_DSI_DSIPLL
209 CLK_STGEN_HSE
210 CLK_USBPHY_HSE
211 CLK_SPI2S1_PLL3Q
212 CLK_SPI2S23_PLL3Q
213 CLK_SPI45_HSI
214 CLK_SPI6_HSI
215 CLK_I2C46_HSI
216 CLK_SDMMC3_PLL4P
217 CLK_USBO_USBPHY
218 CLK_ADC_CKPER
219 CLK_CEC_LSE
220 CLK_I2C12_HSI
221 CLK_I2C35_HSI
222 CLK_UART1_HSI
223 CLK_UART24_HSI
224 CLK_UART35_HSI
225 CLK_UART6_HSI
226 CLK_UART78_HSI
227 CLK_SPDIF_PLL4P
Antonio Borneodd445ab2019-07-29 14:46:16 +0200228 CLK_FDCAN_PLL4R
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +0530229 CLK_SAI1_PLL3Q
230 CLK_SAI2_PLL3Q
231 CLK_SAI3_PLL3Q
232 CLK_SAI4_PLL3Q
233 CLK_RNG1_LSI
234 CLK_RNG2_LSI
235 CLK_LPTIM1_PCLK1
236 CLK_LPTIM23_PCLK3
237 CLK_LPTIM45_LSE
238 >;
239
240 /* VCO = 1300.0 MHz => P = 650 (CPU) */
241 pll1: st,pll@0 {
Yann Gautier4ede20a2020-09-18 15:04:14 +0200242 compatible = "st,stm32mp1-pll";
243 reg = <0>;
244 cfg = <2 80 0 0 0 PQR(1,0,0)>;
245 frac = <0x800>;
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +0530246 };
247
248 /* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */
249 pll2: st,pll@1 {
Yann Gautier4ede20a2020-09-18 15:04:14 +0200250 compatible = "st,stm32mp1-pll";
251 reg = <1>;
252 cfg = <2 65 1 0 0 PQR(1,1,1)>;
253 frac = <0x1400>;
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +0530254 };
255
256 /* VCO = 417.8 MHz => P = 209, Q = 24, R = 11 */
257 pll3: st,pll@2 {
Yann Gautier4ede20a2020-09-18 15:04:14 +0200258 compatible = "st,stm32mp1-pll";
259 reg = <2>;
260 cfg = <1 33 1 16 36 PQR(1,1,1)>;
261 frac = <0x1a04>;
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +0530262 };
263
264 /* VCO = 480.0 MHz => P = 120, Q = 40, R = 96 */
265 pll4: st,pll@3 {
Yann Gautier4ede20a2020-09-18 15:04:14 +0200266 compatible = "st,stm32mp1-pll";
267 reg = <3>;
268 cfg = <1 39 3 11 4 PQR(1,1,1)>;
Manivannan Sadhasivam02a66d62019-04-26 18:43:50 +0530269 };
270};
Yann Gautier4ede20a2020-09-18 15:04:14 +0200271
272&rng1 {
273 status = "okay";
274};
275
276&rtc {
277 status = "okay";
278};
279
280&sdmmc1 {
281 pinctrl-names = "default";
282 pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
283 st,sig-dir;
284 st,neg-edge;
285 st,use-ckin;
286 bus-width = <4>;
287 vmmc-supply = <&vdd_sd>;
288 status = "okay";
289};
290
291&uart4 {
292 /* On Low speed expansion header */
293 label = "LS-UART1";
294 pinctrl-names = "default";
295 pinctrl-0 = <&uart4_pins_b>;
296 status = "okay";
297};
298
299&uart7 {
300 /* On Low speed expansion header */
301 label = "LS-UART0";
302 pinctrl-names = "default";
303 pinctrl-0 = <&uart7_pins_a>;
304 status = "okay";
305};