ARM: dts: stm32: Add alternate pinmux for ethernet RGMII
[oweals/u-boot.git] / arch / arm / dts / stm32mp15xx-dhcom.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2 /*
3  * Copyright (C) 2019 Marek Vasut <marex@denx.de>
4  */
5 /dts-v1/;
6
7 #include "stm32mp157c.dtsi"
8 #include "stm32mp157xaa-pinctrl.dtsi"
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/mfd/st,stpmic1.h>
11
12 / {
13         aliases {
14                 eeprom0 = &eeprom0;
15         };
16
17         memory@c0000000 {
18                 device_type = "memory";
19                 reg = <0xC0000000 0x40000000>;
20         };
21 };
22
23 &cec {
24         pinctrl-names = "default";
25         pinctrl-0 = <&cec_pins_a>;
26         status = "okay";
27 };
28
29 &dcmi {
30         status = "okay";
31         pinctrl-names = "default", "sleep";
32         pinctrl-0 = <&dcmi_pins_a>;
33         pinctrl-1 = <&dcmi_sleep_pins_a>;
34 };
35
36 &dts {
37         status = "okay";
38 };
39
40 &i2c2 {
41         pinctrl-names = "default";
42         pinctrl-0 = <&i2c2_pins_a>;
43         i2c-scl-rising-time-ns = <185>;
44         i2c-scl-falling-time-ns = <20>;
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         eeprom0: eeprom@50 {
195                 compatible = "atmel,24c02";
196                 reg = <0x50>;
197                 pagesize = <16>;
198         };
199 };
200
201 &i2c5 {
202         pinctrl-names = "default";
203         pinctrl-0 = <&i2c5_pins_a>;
204         i2c-scl-rising-time-ns = <185>;
205         i2c-scl-falling-time-ns = <20>;
206         status = "okay";
207 };
208
209 &ipcc {
210         status = "okay";
211 };
212
213 &iwdg2 {
214         timeout-sec = <32>;
215         status = "okay";
216 };
217
218 &m4_rproc {
219         mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
220         mbox-names = "vq0", "vq1", "shutdown";
221         status = "okay";
222 };
223
224 &pwr_regulators {
225         vdd-supply = <&vdd>;
226         vdd_3v3_usbfs-supply = <&vdd_usb>;
227 };
228
229 &qspi {
230         pinctrl-names = "default", "sleep";
231         pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>;
232         pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>;
233         reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
234         #address-cells = <1>;
235         #size-cells = <0>;
236         status = "okay";
237
238         flash0: mx66l51235l@0 {
239                 compatible = "jedec,spi-nor";
240                 reg = <0>;
241                 spi-rx-bus-width = <4>;
242                 spi-max-frequency = <108000000>;
243                 #address-cells = <1>;
244                 #size-cells = <1>;
245         };
246
247         flash1: mx66l51235l@1 {
248                 compatible = "jedec,spi-nor";
249                 reg = <1>;
250                 spi-rx-bus-width = <4>;
251                 spi-max-frequency = <108000000>;
252                 #address-cells = <1>;
253                 #size-cells = <1>;
254         };
255 };
256
257 &rng1 {
258         status = "okay";
259 };
260
261 &rtc {
262         status = "okay";
263 };
264
265 &sdmmc1 {
266         pinctrl-names = "default", "opendrain", "sleep";
267         pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
268         pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
269         pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
270         broken-cd;
271         st,sig-dir;
272         st,neg-edge;
273         st,use-ckin;
274         bus-width = <4>;
275         vmmc-supply = <&vdd_sd>;
276         status = "okay";
277 };
278
279 &sdmmc2 {
280         pinctrl-names = "default";
281         pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
282         non-removable;
283         no-sd;
284         no-sdio;
285         st,sig-dir;
286         st,neg-edge;
287         bus-width = <8>;
288         vmmc-supply = <&v3v3>;
289         status = "okay";
290 };
291
292 &spi1 {
293         pinctrl-names = "default";
294         pinctrl-0 = <&spi1_pins_a>;
295         status = "disabled";
296 };
297
298 &timers2 {
299         /* spare dmas for other usage (un-delete to enable pwm capture) */
300         /delete-property/dmas;
301         /delete-property/dma-names;
302         status = "disabled";
303         pwm {
304                 pinctrl-0 = <&pwm2_pins_a>;
305                 pinctrl-names = "default";
306                 status = "okay";
307         };
308         timer@1 {
309                 status = "okay";
310         };
311 };
312
313 &timers6 {
314         status = "okay";
315         /* spare dmas for other usage */
316         /delete-property/dmas;
317         /delete-property/dma-names;
318         timer@5 {
319                 status = "okay";
320         };
321 };
322
323 &timers8 {
324         /delete-property/dmas;
325         /delete-property/dma-names;
326         status = "disabled";
327         pwm {
328                 pinctrl-0 = <&pwm8_pins_a>;
329                 pinctrl-names = "default";
330                 status = "okay";
331         };
332         timer@7 {
333                 status = "okay";
334         };
335 };
336
337 &timers12 {
338         /delete-property/dmas;
339         /delete-property/dma-names;
340         status = "disabled";
341         pwm {
342                 pinctrl-0 = <&pwm12_pins_a>;
343                 pinctrl-names = "default";
344                 status = "okay";
345         };
346         timer@11 {
347                 status = "okay";
348         };
349 };
350
351 &uart4 {
352         pinctrl-names = "default";
353         pinctrl-0 = <&uart4_pins_a>;
354         status = "okay";
355 };
356
357 &usbh_ehci {
358         phys = <&usbphyc_port0>;
359         phy-names = "usb";
360         status = "okay";
361 };
362
363 &usbotg_hs {
364         dr_mode = "peripheral";
365         phys = <&usbphyc_port1 0>;
366         phy-names = "usb2-phy";
367         vbus-supply = <&vbus_otg>;
368         status = "okay";
369 };
370
371 &usbphyc {
372         status = "okay";
373 };
374
375 &usbphyc_port0 {
376         phy-supply = <&vdd_usb>;
377 };
378
379 &usbphyc_port1 {
380         phy-supply = <&vdd_usb>;
381 };