blob: 66ed5f9921ba14d96c5dcc2cc6f4c53cce3f54c9 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2017 - All Rights Reserved
4 * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics.
5 */
6/dts-v1/;
7
8#include "stm32mp157.dtsi"
9#include "stm32mp15xc.dtsi"
10#include "stm32mp15-pinctrl.dtsi"
11#include "stm32mp15xxaa-pinctrl.dtsi"
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/mfd/st,stpmic1.h>
14
15/ {
16 model = "STMicroelectronics STM32MP157C eval daughter";
17 compatible = "st,stm32mp157c-ed1", "st,stm32mp157";
18
19 aliases {
20 serial0 = &uart4;
21 };
22
23 chosen {
24 stdout-path = "serial0:115200n8";
25 };
26
27 memory@c0000000 {
28 device_type = "memory";
29 reg = <0xC0000000 0x40000000>;
30 };
31
32 reserved-memory {
33 #address-cells = <1>;
34 #size-cells = <1>;
35 ranges;
36
37 mcuram2: mcuram2@10000000 {
38 compatible = "shared-dma-pool";
39 reg = <0x10000000 0x40000>;
40 no-map;
41 };
42
43 vdev0vring0: vdev0vring0@10040000 {
44 compatible = "shared-dma-pool";
45 reg = <0x10040000 0x1000>;
46 no-map;
47 };
48
49 vdev0vring1: vdev0vring1@10041000 {
50 compatible = "shared-dma-pool";
51 reg = <0x10041000 0x1000>;
52 no-map;
53 };
54
55 vdev0buffer: vdev0buffer@10042000 {
56 compatible = "shared-dma-pool";
57 reg = <0x10042000 0x4000>;
58 no-map;
59 };
60
61 mcuram: mcuram@30000000 {
62 compatible = "shared-dma-pool";
63 reg = <0x30000000 0x40000>;
64 no-map;
65 };
66
67 retram: retram@38000000 {
68 compatible = "shared-dma-pool";
69 reg = <0x38000000 0x10000>;
70 no-map;
71 };
72 };
73
74 sd_switch: regulator-sd_switch {
75 compatible = "regulator-gpio";
76 regulator-name = "sd_switch";
77 regulator-min-microvolt = <1800000>;
78 regulator-max-microvolt = <2900000>;
79 regulator-type = "voltage";
80 regulator-always-on;
81
82 gpios = <&gpiof 14 GPIO_ACTIVE_HIGH>;
83 gpios-states = <0>;
84 states = <1800000 0x1>,
85 <2900000 0x0>;
86 };
87
88 vin: vin {
89 compatible = "regulator-fixed";
90 regulator-name = "vin";
91 regulator-min-microvolt = <5000000>;
92 regulator-max-microvolt = <5000000>;
93 regulator-always-on;
94 };
95};
96
97&adc {
98 /* ANA0, ANA1 are dedicated pins and don't need pinctrl: only in6. */
99 pinctrl-0 = <&adc1_in6_pins_a>;
100 pinctrl-names = "default";
101 vdd-supply = <&vdd>;
102 vdda-supply = <&vdda>;
103 vref-supply = <&vdda>;
104 status = "disabled";
105 adc1: adc@0 {
106 status = "okay";
107 channel@0 {
108 reg = <0>;
109 /* 16.5 ck_cycles sampling time */
110 st,min-sample-time-ns = <400>;
111 };
112 channel@1 {
113 reg = <1>;
114 st,min-sample-time-ns = <400>;
115 };
116 channel@6 {
117 reg = <6>;
118 st,min-sample-time-ns = <400>;
119 };
120 };
121};
122
123&crc1 {
124 status = "okay";
125};
126
127&cryp1 {
128 status = "okay";
129};
130
131&dac {
132 pinctrl-names = "default";
133 pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
134 vref-supply = <&vdda>;
135 status = "disabled";
136 dac1: dac@1 {
137 status = "okay";
138 };
139 dac2: dac@2 {
140 status = "okay";
141 };
142};
143
144&dts {
145 status = "okay";
146};
147
148&hash1 {
149 status = "okay";
150};
151
152&i2c4 {
153 pinctrl-names = "default", "sleep";
154 pinctrl-0 = <&i2c4_pins_a>;
155 pinctrl-1 = <&i2c4_sleep_pins_a>;
156 i2c-scl-rising-time-ns = <185>;
157 i2c-scl-falling-time-ns = <20>;
158 clock-frequency = <400000>;
159 status = "okay";
160 /* spare dmas for other usage */
161 /delete-property/dmas;
162 /delete-property/dma-names;
163
164 pmic: stpmic@33 {
165 compatible = "st,stpmic1";
166 reg = <0x33>;
167 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
168 interrupt-controller;
169 #interrupt-cells = <2>;
170 status = "okay";
171
172 regulators {
173 compatible = "st,stpmic1-regulators";
174 buck1-supply = <&vin>;
175 buck2-supply = <&vin>;
176 buck3-supply = <&vin>;
177 buck4-supply = <&vin>;
178 ldo1-supply = <&v3v3>;
179 ldo2-supply = <&v3v3>;
180 ldo3-supply = <&vdd_ddr>;
181 ldo4-supply = <&vin>;
182 ldo5-supply = <&v3v3>;
183 ldo6-supply = <&v3v3>;
184 vref_ddr-supply = <&vin>;
185 boost-supply = <&vin>;
186 pwr_sw1-supply = <&bst_out>;
187 pwr_sw2-supply = <&bst_out>;
188
189 vddcore: buck1 {
190 regulator-name = "vddcore";
191 regulator-min-microvolt = <1200000>;
192 regulator-max-microvolt = <1350000>;
193 regulator-always-on;
194 regulator-initial-mode = <0>;
195 regulator-over-current-protection;
196 };
197
198 vdd_ddr: buck2 {
199 regulator-name = "vdd_ddr";
200 regulator-min-microvolt = <1350000>;
201 regulator-max-microvolt = <1350000>;
202 regulator-always-on;
203 regulator-initial-mode = <0>;
204 regulator-over-current-protection;
205 };
206
207 vdd: buck3 {
208 regulator-name = "vdd";
209 regulator-min-microvolt = <3300000>;
210 regulator-max-microvolt = <3300000>;
211 regulator-always-on;
212 st,mask-reset;
213 regulator-initial-mode = <0>;
214 regulator-over-current-protection;
215 };
216
217 v3v3: buck4 {
218 regulator-name = "v3v3";
219 regulator-min-microvolt = <3300000>;
220 regulator-max-microvolt = <3300000>;
221 regulator-always-on;
222 regulator-over-current-protection;
223 regulator-initial-mode = <0>;
224 };
225
226 vdda: ldo1 {
227 regulator-name = "vdda";
228 regulator-min-microvolt = <2900000>;
229 regulator-max-microvolt = <2900000>;
230 interrupts = <IT_CURLIM_LDO1 0>;
231 };
232
233 v2v8: ldo2 {
234 regulator-name = "v2v8";
235 regulator-min-microvolt = <2800000>;
236 regulator-max-microvolt = <2800000>;
237 interrupts = <IT_CURLIM_LDO2 0>;
238 };
239
240 vtt_ddr: ldo3 {
241 regulator-name = "vtt_ddr";
242 regulator-min-microvolt = <500000>;
243 regulator-max-microvolt = <750000>;
244 regulator-always-on;
245 regulator-over-current-protection;
246 };
247
248 vdd_usb: ldo4 {
249 regulator-name = "vdd_usb";
250 interrupts = <IT_CURLIM_LDO4 0>;
251 };
252
253 vdd_sd: ldo5 {
254 regulator-name = "vdd_sd";
255 regulator-min-microvolt = <2900000>;
256 regulator-max-microvolt = <2900000>;
257 interrupts = <IT_CURLIM_LDO5 0>;
258 regulator-boot-on;
259 };
260
261 v1v8: ldo6 {
262 regulator-name = "v1v8";
263 regulator-min-microvolt = <1800000>;
264 regulator-max-microvolt = <1800000>;
265 interrupts = <IT_CURLIM_LDO6 0>;
266 };
267
268 vref_ddr: vref_ddr {
269 regulator-name = "vref_ddr";
270 regulator-always-on;
271 };
272
273 bst_out: boost {
274 regulator-name = "bst_out";
275 interrupts = <IT_OCP_BOOST 0>;
276 };
277
278 vbus_otg: pwr_sw1 {
279 regulator-name = "vbus_otg";
280 interrupts = <IT_OCP_OTG 0>;
281 };
282
283 vbus_sw: pwr_sw2 {
284 regulator-name = "vbus_sw";
285 interrupts = <IT_OCP_SWOUT 0>;
286 regulator-active-discharge = <1>;
287 };
288 };
289
290 onkey {
291 compatible = "st,stpmic1-onkey";
292 interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
293 interrupt-names = "onkey-falling", "onkey-rising";
294 power-off-time-sec = <10>;
295 status = "okay";
296 };
297
298 watchdog {
299 compatible = "st,stpmic1-wdt";
300 status = "disabled";
301 };
302 };
303};
304
305&ipcc {
306 status = "okay";
307};
308
309&iwdg2 {
310 timeout-sec = <32>;
311 status = "okay";
312};
313
314&m4_rproc {
315 memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
316 <&vdev0vring1>, <&vdev0buffer>;
317 mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
318 mbox-names = "vq0", "vq1", "shutdown", "detach";
319 interrupt-parent = <&exti>;
320 interrupts = <68 1>;
321 status = "okay";
322};
323
324&pwr_regulators {
325 vdd-supply = <&vdd>;
326 vdd_3v3_usbfs-supply = <&vdd_usb>;
327};
328
329&rng1 {
330 status = "okay";
331};
332
333&rtc {
334 status = "okay";
335};
336
337&sdmmc1 {
338 pinctrl-names = "default", "opendrain", "sleep";
339 pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
340 pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
341 pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
342 cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
343 disable-wp;
344 st,sig-dir;
345 st,neg-edge;
346 st,use-ckin;
347 bus-width = <4>;
348 vmmc-supply = <&vdd_sd>;
349 vqmmc-supply = <&sd_switch>;
350 sd-uhs-sdr12;
351 sd-uhs-sdr25;
352 sd-uhs-sdr50;
353 sd-uhs-ddr50;
354 status = "okay";
355};
356
357&sdmmc2 {
358 pinctrl-names = "default", "opendrain", "sleep";
359 pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
360 pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
361 pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
362 non-removable;
363 no-sd;
364 no-sdio;
365 st,neg-edge;
366 bus-width = <8>;
367 vmmc-supply = <&v3v3>;
368 vqmmc-supply = <&vdd>;
369 mmc-ddr-3_3v;
370 status = "okay";
371};
372
373&timers6 {
374 status = "okay";
375 /* spare dmas for other usage */
376 /delete-property/dmas;
377 /delete-property/dma-names;
378 timer@5 {
379 status = "okay";
380 };
381};
382
383&uart4 {
384 pinctrl-names = "default", "sleep", "idle";
385 pinctrl-0 = <&uart4_pins_a>;
386 pinctrl-1 = <&uart4_sleep_pins_a>;
387 pinctrl-2 = <&uart4_idle_pins_a>;
388 /delete-property/dmas;
389 /delete-property/dma-names;
390 status = "okay";
391};
392
393&usbotg_hs {
394 vbus-supply = <&vbus_otg>;
395};
396
397&usbphyc_port0 {
398 phy-supply = <&vdd_usb>;
399};
400
401&usbphyc_port1 {
402 phy-supply = <&vdd_usb>;
403};