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