Merge https://gitlab.denx.de/u-boot/custodians/u-boot-clk
[oweals/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 "stm32mp157c.dtsi"
9 #include "stm32mp157-pinctrl.dtsi"
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/mfd/st,stpmic1.h>
12
13 / {
14         model = "STMicroelectronics STM32MP157C eval daughter";
15         compatible = "st,stm32mp157c-ed1", "st,stm32mp157";
16
17         chosen {
18                 stdout-path = "serial0:115200n8";
19         };
20
21         memory@c0000000 {
22                 device_type = "memory";
23                 reg = <0xC0000000 0x40000000>;
24         };
25
26         aliases {
27                 serial0 = &uart4;
28         };
29
30         sd_switch: regulator-sd_switch {
31                 compatible = "regulator-gpio";
32                 regulator-name = "sd_switch";
33                 regulator-min-microvolt = <1800000>;
34                 regulator-max-microvolt = <2900000>;
35                 regulator-type = "voltage";
36                 regulator-always-on;
37
38                 gpios = <&gpiof 14 GPIO_ACTIVE_HIGH>;
39                 gpios-states = <0>;
40                 states = <1800000 0x1 2900000 0x0>;
41         };
42 };
43
44 &dts {
45         status = "okay";
46 };
47
48 &i2c4 {
49         pinctrl-names = "default";
50         pinctrl-0 = <&i2c4_pins_a>;
51         i2c-scl-rising-time-ns = <185>;
52         i2c-scl-falling-time-ns = <20>;
53         status = "okay";
54         /* spare dmas for other usage */
55         /delete-property/dmas;
56         /delete-property/dma-names;
57
58         pmic: stpmic@33 {
59                 compatible = "st,stpmic1";
60                 reg = <0x33>;
61                 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
62                 interrupt-controller;
63                 #interrupt-cells = <2>;
64                 status = "okay";
65
66                 regulators {
67                         compatible = "st,stpmic1-regulators";
68                         ldo1-supply = <&v3v3>;
69                         ldo2-supply = <&v3v3>;
70                         ldo3-supply = <&vdd_ddr>;
71                         ldo5-supply = <&v3v3>;
72                         ldo6-supply = <&v3v3>;
73                         pwr_sw1-supply = <&bst_out>;
74                         pwr_sw2-supply = <&bst_out>;
75
76                         vddcore: buck1 {
77                                 regulator-name = "vddcore";
78                                 regulator-min-microvolt = <800000>;
79                                 regulator-max-microvolt = <1350000>;
80                                 regulator-always-on;
81                                 regulator-initial-mode = <0>;
82                                 regulator-over-current-protection;
83                         };
84
85                         vdd_ddr: buck2 {
86                                 regulator-name = "vdd_ddr";
87                                 regulator-min-microvolt = <1350000>;
88                                 regulator-max-microvolt = <1350000>;
89                                 regulator-always-on;
90                                 regulator-initial-mode = <0>;
91                                 regulator-over-current-protection;
92                         };
93
94                         vdd: buck3 {
95                                 regulator-name = "vdd";
96                                 regulator-min-microvolt = <3300000>;
97                                 regulator-max-microvolt = <3300000>;
98                                 regulator-always-on;
99                                 st,mask-reset;
100                                 regulator-initial-mode = <0>;
101                                 regulator-over-current-protection;
102                         };
103
104                         v3v3: buck4 {
105                                 regulator-name = "v3v3";
106                                 regulator-min-microvolt = <3300000>;
107                                 regulator-max-microvolt = <3300000>;
108                                 regulator-always-on;
109                                 regulator-over-current-protection;
110                                 regulator-initial-mode = <0>;
111                         };
112
113                         vdda: ldo1 {
114                                 regulator-name = "vdda";
115                                 regulator-min-microvolt = <2900000>;
116                                 regulator-max-microvolt = <2900000>;
117                                 interrupts = <IT_CURLIM_LDO1 0>;
118                         };
119
120                         v2v8: ldo2 {
121                                 regulator-name = "v2v8";
122                                 regulator-min-microvolt = <2800000>;
123                                 regulator-max-microvolt = <2800000>;
124                                 interrupts = <IT_CURLIM_LDO2 0>;
125                         };
126
127                         vtt_ddr: ldo3 {
128                                 regulator-name = "vtt_ddr";
129                                 regulator-min-microvolt = <500000>;
130                                 regulator-max-microvolt = <750000>;
131                                 regulator-always-on;
132                                 regulator-over-current-protection;
133                         };
134
135                         vdd_usb: ldo4 {
136                                 regulator-name = "vdd_usb";
137                                 regulator-min-microvolt = <3300000>;
138                                 regulator-max-microvolt = <3300000>;
139                                 interrupts = <IT_CURLIM_LDO4 0>;
140                         };
141
142                         vdd_sd: ldo5 {
143                                 regulator-name = "vdd_sd";
144                                 regulator-min-microvolt = <2900000>;
145                                 regulator-max-microvolt = <2900000>;
146                                 interrupts = <IT_CURLIM_LDO5 0>;
147                                 regulator-boot-on;
148                         };
149
150                         v1v8: ldo6 {
151                                 regulator-name = "v1v8";
152                                 regulator-min-microvolt = <1800000>;
153                                 regulator-max-microvolt = <1800000>;
154                                 interrupts = <IT_CURLIM_LDO6 0>;
155                         };
156
157                         vref_ddr: vref_ddr {
158                                 regulator-name = "vref_ddr";
159                                 regulator-always-on;
160                                 regulator-over-current-protection;
161                         };
162
163                          bst_out: boost {
164                                 regulator-name = "bst_out";
165                                 interrupts = <IT_OCP_BOOST 0>;
166                          };
167
168                         vbus_otg: pwr_sw1 {
169                                 regulator-name = "vbus_otg";
170                                 interrupts = <IT_OCP_OTG 0>;
171                          };
172
173                          vbus_sw: pwr_sw2 {
174                                 regulator-name = "vbus_sw";
175                                 interrupts = <IT_OCP_SWOUT 0>;
176                                 regulator-active-discharge;
177                          };
178                 };
179
180                 onkey {
181                         compatible = "st,stpmic1-onkey";
182                         interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
183                         interrupt-names = "onkey-falling", "onkey-rising";
184                         power-off-time-sec = <10>;
185                         status = "okay";
186                 };
187
188                 watchdog {
189                         compatible = "st,stpmic1-wdt";
190                         status = "disabled";
191                 };
192         };
193 };
194
195 &ipcc {
196         status = "okay";
197 };
198
199 &iwdg2 {
200         timeout-sec = <32>;
201         status = "okay";
202 };
203
204 &pwr {
205         pwr-supply = <&vdd>;
206 };
207
208 &rng1 {
209         status = "okay";
210 };
211
212 &rtc {
213         status = "okay";
214 };
215
216 &sdmmc1 {
217         pinctrl-names = "default", "opendrain", "sleep";
218         pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
219         pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
220         pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
221         broken-cd;
222         st,sig-dir;
223         st,neg-edge;
224         st,use-ckin;
225         bus-width = <4>;
226         vmmc-supply = <&vdd_sd>;
227         vqmmc-supply = <&sd_switch>;
228         status = "okay";
229 };
230
231 &sdmmc2 {
232         pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
233         non-removable;
234         no-sd;
235         no-sdio;
236         st,sig-dir;
237         st,neg-edge;
238         bus-width = <8>;
239         vmmc-supply = <&v3v3>;
240         vqmmc-supply = <&vdd>;
241         status = "okay";
242 };
243
244 &timers6 {
245         status = "okay";
246         /* spare dmas for other usage */
247         /delete-property/dmas;
248         /delete-property/dma-names;
249         timer@5 {
250                 status = "okay";
251         };
252 };
253
254 &uart4 {
255         pinctrl-names = "default";
256         pinctrl-0 = <&uart4_pins_a>;
257         status = "okay";
258 };
259
260 &usbotg_hs {
261         vbus-supply = <&vbus_otg>;
262 };
263
264 &usbphyc_port0 {
265         phy-supply = <&vdd_usb>;
266 };
267
268 &usbphyc_port1 {
269         phy-supply = <&vdd_usb>;
270 };