Prepare v2023.10
[platform/kernel/u-boot.git] / arch / arm / dts / stm32mp157c-ed1.dts
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/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                 st,adc-channels = <0 1 6>;
107                 /* 16.5 ck_cycles sampling time */
108                 st,min-sample-time-nsecs = <400>;
109                 status = "okay";
110         };
111 };
112
113 &cpu0{
114         cpu-supply = <&vddcore>;
115 };
116
117 &cpu1{
118         cpu-supply = <&vddcore>;
119 };
120
121 &crc1 {
122         status = "okay";
123 };
124
125 &cryp1 {
126         status = "okay";
127 };
128
129 &dac {
130         pinctrl-names = "default";
131         pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
132         vref-supply = <&vdda>;
133         status = "disabled";
134         dac1: dac@1 {
135                 status = "okay";
136         };
137         dac2: dac@2 {
138                 status = "okay";
139         };
140 };
141
142 &dts {
143         status = "okay";
144 };
145
146 &hash1 {
147         status = "okay";
148 };
149
150 &i2c4 {
151         pinctrl-names = "default", "sleep";
152         pinctrl-0 = <&i2c4_pins_a>;
153         pinctrl-1 = <&i2c4_sleep_pins_a>;
154         i2c-scl-rising-time-ns = <185>;
155         i2c-scl-falling-time-ns = <20>;
156         clock-frequency = <400000>;
157         status = "okay";
158         /* spare dmas for other usage */
159         /delete-property/dmas;
160         /delete-property/dma-names;
161
162         pmic: stpmic@33 {
163                 compatible = "st,stpmic1";
164                 reg = <0x33>;
165                 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
166                 interrupt-controller;
167                 #interrupt-cells = <2>;
168                 status = "okay";
169
170                 regulators {
171                         compatible = "st,stpmic1-regulators";
172                         buck1-supply = <&vin>;
173                         buck2-supply = <&vin>;
174                         buck3-supply = <&vin>;
175                         buck4-supply = <&vin>;
176                         ldo1-supply = <&v3v3>;
177                         ldo2-supply = <&v3v3>;
178                         ldo3-supply = <&vdd_ddr>;
179                         ldo4-supply = <&vin>;
180                         ldo5-supply = <&v3v3>;
181                         ldo6-supply = <&v3v3>;
182                         vref_ddr-supply = <&vin>;
183                         boost-supply = <&vin>;
184                         pwr_sw1-supply = <&bst_out>;
185                         pwr_sw2-supply = <&bst_out>;
186
187                         vddcore: buck1 {
188                                 regulator-name = "vddcore";
189                                 regulator-min-microvolt = <1200000>;
190                                 regulator-max-microvolt = <1350000>;
191                                 regulator-always-on;
192                                 regulator-initial-mode = <0>;
193                                 regulator-over-current-protection;
194                         };
195
196                         vdd_ddr: buck2 {
197                                 regulator-name = "vdd_ddr";
198                                 regulator-min-microvolt = <1350000>;
199                                 regulator-max-microvolt = <1350000>;
200                                 regulator-always-on;
201                                 regulator-initial-mode = <0>;
202                                 regulator-over-current-protection;
203                         };
204
205                         vdd: buck3 {
206                                 regulator-name = "vdd";
207                                 regulator-min-microvolt = <3300000>;
208                                 regulator-max-microvolt = <3300000>;
209                                 regulator-always-on;
210                                 st,mask-reset;
211                                 regulator-initial-mode = <0>;
212                                 regulator-over-current-protection;
213                         };
214
215                         v3v3: buck4 {
216                                 regulator-name = "v3v3";
217                                 regulator-min-microvolt = <3300000>;
218                                 regulator-max-microvolt = <3300000>;
219                                 regulator-always-on;
220                                 regulator-over-current-protection;
221                                 regulator-initial-mode = <0>;
222                         };
223
224                         vdda: ldo1 {
225                                 regulator-name = "vdda";
226                                 regulator-min-microvolt = <2900000>;
227                                 regulator-max-microvolt = <2900000>;
228                                 interrupts = <IT_CURLIM_LDO1 0>;
229                         };
230
231                         v2v8: ldo2 {
232                                 regulator-name = "v2v8";
233                                 regulator-min-microvolt = <2800000>;
234                                 regulator-max-microvolt = <2800000>;
235                                 interrupts = <IT_CURLIM_LDO2 0>;
236                         };
237
238                         vtt_ddr: ldo3 {
239                                 regulator-name = "vtt_ddr";
240                                 regulator-min-microvolt = <500000>;
241                                 regulator-max-microvolt = <750000>;
242                                 regulator-always-on;
243                                 regulator-over-current-protection;
244                         };
245
246                         vdd_usb: ldo4 {
247                                 regulator-name = "vdd_usb";
248                                 interrupts = <IT_CURLIM_LDO4 0>;
249                         };
250
251                         vdd_sd: ldo5 {
252                                 regulator-name = "vdd_sd";
253                                 regulator-min-microvolt = <2900000>;
254                                 regulator-max-microvolt = <2900000>;
255                                 interrupts = <IT_CURLIM_LDO5 0>;
256                                 regulator-boot-on;
257                         };
258
259                         v1v8: ldo6 {
260                                 regulator-name = "v1v8";
261                                 regulator-min-microvolt = <1800000>;
262                                 regulator-max-microvolt = <1800000>;
263                                 interrupts = <IT_CURLIM_LDO6 0>;
264                         };
265
266                         vref_ddr: vref_ddr {
267                                 regulator-name = "vref_ddr";
268                                 regulator-always-on;
269                         };
270
271                         bst_out: boost {
272                                 regulator-name = "bst_out";
273                                 interrupts = <IT_OCP_BOOST 0>;
274                         };
275
276                         vbus_otg: pwr_sw1 {
277                                 regulator-name = "vbus_otg";
278                                 interrupts = <IT_OCP_OTG 0>;
279                          };
280
281                          vbus_sw: pwr_sw2 {
282                                 regulator-name = "vbus_sw";
283                                 interrupts = <IT_OCP_SWOUT 0>;
284                                 regulator-active-discharge = <1>;
285                          };
286                 };
287
288                 onkey {
289                         compatible = "st,stpmic1-onkey";
290                         interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
291                         interrupt-names = "onkey-falling", "onkey-rising";
292                         power-off-time-sec = <10>;
293                         status = "okay";
294                 };
295
296                 watchdog {
297                         compatible = "st,stpmic1-wdt";
298                         status = "disabled";
299                 };
300         };
301 };
302
303 &ipcc {
304         status = "okay";
305 };
306
307 &iwdg2 {
308         timeout-sec = <32>;
309         status = "okay";
310 };
311
312 &m4_rproc {
313         memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
314                         <&vdev0vring1>, <&vdev0buffer>;
315         mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
316         mbox-names = "vq0", "vq1", "shutdown", "detach";
317         interrupt-parent = <&exti>;
318         interrupts = <68 1>;
319         status = "okay";
320 };
321
322 &pwr_regulators {
323         vdd-supply = <&vdd>;
324         vdd_3v3_usbfs-supply = <&vdd_usb>;
325 };
326
327 &rng1 {
328         status = "okay";
329 };
330
331 &rtc {
332         status = "okay";
333 };
334
335 &sdmmc1 {
336         pinctrl-names = "default", "opendrain", "sleep";
337         pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
338         pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
339         pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
340         cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
341         disable-wp;
342         st,sig-dir;
343         st,neg-edge;
344         st,use-ckin;
345         bus-width = <4>;
346         vmmc-supply = <&vdd_sd>;
347         vqmmc-supply = <&sd_switch>;
348         sd-uhs-sdr12;
349         sd-uhs-sdr25;
350         sd-uhs-sdr50;
351         sd-uhs-ddr50;
352         status = "okay";
353 };
354
355 &sdmmc2 {
356         pinctrl-names = "default", "opendrain", "sleep";
357         pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
358         pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
359         pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
360         non-removable;
361         no-sd;
362         no-sdio;
363         st,neg-edge;
364         bus-width = <8>;
365         vmmc-supply = <&v3v3>;
366         vqmmc-supply = <&vdd>;
367         mmc-ddr-3_3v;
368         status = "okay";
369 };
370
371 &timers6 {
372         status = "okay";
373         /* spare dmas for other usage */
374         /delete-property/dmas;
375         /delete-property/dma-names;
376         timer@5 {
377                 status = "okay";
378         };
379 };
380
381 &uart4 {
382         pinctrl-names = "default", "sleep", "idle";
383         pinctrl-0 = <&uart4_pins_a>;
384         pinctrl-1 = <&uart4_sleep_pins_a>;
385         pinctrl-2 = <&uart4_idle_pins_a>;
386         /delete-property/dmas;
387         /delete-property/dma-names;
388         status = "okay";
389 };
390
391 &usbotg_hs {
392         vbus-supply = <&vbus_otg>;
393 };
394
395 &usbphyc_port0 {
396         phy-supply = <&vdd_usb>;
397 };
398
399 &usbphyc_port1 {
400         phy-supply = <&vdd_usb>;
401 };