blob: bed69c97b6b7a1742fafa6ba65739436e6674d92 [file] [log] [blame]
Marek Vasut19953732020-01-24 18:39:16 +01001// 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 memory@c0000000 {
14 device_type = "memory";
15 reg = <0xC0000000 0x40000000>;
16 };
17};
18
19&cec {
20 pinctrl-names = "default";
21 pinctrl-0 = <&cec_pins_a>;
22 status = "okay";
23};
24
25&dcmi {
26 status = "okay";
27 pinctrl-names = "default", "sleep";
28 pinctrl-0 = <&dcmi_pins_a>;
29 pinctrl-1 = <&dcmi_sleep_pins_a>;
30};
31
32&dts {
33 status = "okay";
34};
35
36&i2c2 {
37 pinctrl-names = "default";
38 pinctrl-0 = <&i2c2_pins_a>;
39 i2c-scl-rising-time-ns = <185>;
40 i2c-scl-falling-time-ns = <20>;
41 status = "okay";
42};
43
44&i2c4 {
45 pinctrl-names = "default";
46 pinctrl-0 = <&i2c4_pins_a>;
47 i2c-scl-rising-time-ns = <185>;
48 i2c-scl-falling-time-ns = <20>;
49 status = "okay";
50 /* spare dmas for other usage */
51 /delete-property/dmas;
52 /delete-property/dma-names;
53
54 pmic: stpmic@33 {
55 compatible = "st,stpmic1";
56 reg = <0x33>;
57 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
58 interrupt-controller;
59 #interrupt-cells = <2>;
60 status = "okay";
61
62 regulators {
63 compatible = "st,stpmic1-regulators";
64 ldo1-supply = <&v3v3>;
65 ldo2-supply = <&v3v3>;
66 ldo3-supply = <&vdd_ddr>;
67 ldo5-supply = <&v3v3>;
68 ldo6-supply = <&v3v3>;
69 pwr_sw1-supply = <&bst_out>;
70 pwr_sw2-supply = <&bst_out>;
71
72 vddcore: buck1 {
73 regulator-name = "vddcore";
74 regulator-min-microvolt = <800000>;
75 regulator-max-microvolt = <1350000>;
76 regulator-always-on;
77 regulator-initial-mode = <0>;
78 regulator-over-current-protection;
79 };
80
81 vdd_ddr: buck2 {
82 regulator-name = "vdd_ddr";
83 regulator-min-microvolt = <1350000>;
84 regulator-max-microvolt = <1350000>;
85 regulator-always-on;
86 regulator-initial-mode = <0>;
87 regulator-over-current-protection;
88 };
89
90 vdd: buck3 {
91 regulator-name = "vdd";
92 regulator-min-microvolt = <3300000>;
93 regulator-max-microvolt = <3300000>;
94 regulator-always-on;
95 st,mask-reset;
96 regulator-initial-mode = <0>;
97 regulator-over-current-protection;
98 };
99
100 v3v3: buck4 {
101 regulator-name = "v3v3";
102 regulator-min-microvolt = <3300000>;
103 regulator-max-microvolt = <3300000>;
104 regulator-always-on;
105 regulator-over-current-protection;
106 regulator-initial-mode = <0>;
107 };
108
109 vdda: ldo1 {
110 regulator-name = "vdda";
111 regulator-min-microvolt = <2900000>;
112 regulator-max-microvolt = <2900000>;
113 interrupts = <IT_CURLIM_LDO1 0>;
114 };
115
116 v2v8: ldo2 {
117 regulator-name = "v2v8";
118 regulator-min-microvolt = <2800000>;
119 regulator-max-microvolt = <2800000>;
120 interrupts = <IT_CURLIM_LDO2 0>;
121 };
122
123 vtt_ddr: ldo3 {
124 regulator-name = "vtt_ddr";
125 regulator-min-microvolt = <500000>;
126 regulator-max-microvolt = <750000>;
127 regulator-always-on;
128 regulator-over-current-protection;
129 };
130
131 vdd_usb: ldo4 {
132 regulator-name = "vdd_usb";
133 regulator-min-microvolt = <3300000>;
134 regulator-max-microvolt = <3300000>;
135 interrupts = <IT_CURLIM_LDO4 0>;
136 };
137
138 vdd_sd: ldo5 {
139 regulator-name = "vdd_sd";
140 regulator-min-microvolt = <2900000>;
141 regulator-max-microvolt = <2900000>;
142 interrupts = <IT_CURLIM_LDO5 0>;
143 regulator-boot-on;
144 };
145
146 v1v8: ldo6 {
147 regulator-name = "v1v8";
148 regulator-min-microvolt = <1800000>;
149 regulator-max-microvolt = <1800000>;
150 interrupts = <IT_CURLIM_LDO6 0>;
151 };
152
153 vref_ddr: vref_ddr {
154 regulator-name = "vref_ddr";
155 regulator-always-on;
156 regulator-over-current-protection;
157 };
158
159 bst_out: boost {
160 regulator-name = "bst_out";
161 interrupts = <IT_OCP_BOOST 0>;
162 };
163
164 vbus_otg: pwr_sw1 {
165 regulator-name = "vbus_otg";
166 interrupts = <IT_OCP_OTG 0>;
167 };
168
169 vbus_sw: pwr_sw2 {
170 regulator-name = "vbus_sw";
171 interrupts = <IT_OCP_SWOUT 0>;
172 regulator-active-discharge;
173 };
174 };
175
176 onkey {
177 compatible = "st,stpmic1-onkey";
178 interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
179 interrupt-names = "onkey-falling", "onkey-rising";
180 power-off-time-sec = <10>;
181 status = "okay";
182 };
183
184 watchdog {
185 compatible = "st,stpmic1-wdt";
186 status = "disabled";
187 };
188 };
189
190 eeprom@50 {
191 compatible = "atmel,24c02";
192 reg = <0x50>;
193 pagesize = <16>;
194 };
195};
196
197&i2c5 {
198 pinctrl-names = "default";
199 pinctrl-0 = <&i2c5_pins_a>;
200 i2c-scl-rising-time-ns = <185>;
201 i2c-scl-falling-time-ns = <20>;
202 status = "okay";
203};
204
205&ipcc {
206 status = "okay";
207};
208
209&iwdg2 {
210 timeout-sec = <32>;
211 status = "okay";
212};
213
214&m4_rproc {
215 mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
216 mbox-names = "vq0", "vq1", "shutdown";
217 status = "okay";
218};
219
Patrick Delaunay7915b992020-01-28 10:10:59 +0100220&pwr_regulators {
221 vdd-supply = <&vdd>;
222 vdd_3v3_usbfs-supply = <&vdd_usb>;
Marek Vasut19953732020-01-24 18:39:16 +0100223};
224
225&qspi {
226 pinctrl-names = "default", "sleep";
227 pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>;
228 pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>;
229 reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
230 #address-cells = <1>;
231 #size-cells = <0>;
232 status = "okay";
233
234 flash0: mx66l51235l@0 {
235 compatible = "jedec,spi-nor";
236 reg = <0>;
237 spi-rx-bus-width = <4>;
238 spi-max-frequency = <108000000>;
239 #address-cells = <1>;
240 #size-cells = <1>;
241 };
242
243 flash1: mx66l51235l@1 {
244 compatible = "jedec,spi-nor";
245 reg = <1>;
246 spi-rx-bus-width = <4>;
247 spi-max-frequency = <108000000>;
248 #address-cells = <1>;
249 #size-cells = <1>;
250 };
251};
252
253&rng1 {
254 status = "okay";
255};
256
257&rtc {
258 status = "okay";
259};
260
261&sdmmc1 {
262 pinctrl-names = "default", "opendrain", "sleep";
263 pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
264 pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
265 pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
266 broken-cd;
267 st,sig-dir;
268 st,neg-edge;
269 st,use-ckin;
270 bus-width = <4>;
271 vmmc-supply = <&vdd_sd>;
272 status = "okay";
273};
274
275&sdmmc2 {
276 pinctrl-names = "default";
277 pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
278 non-removable;
279 no-sd;
280 no-sdio;
281 st,sig-dir;
282 st,neg-edge;
283 bus-width = <8>;
284 vmmc-supply = <&v3v3>;
285 status = "okay";
286};
287
288&spi1 {
289 pinctrl-names = "default";
290 pinctrl-0 = <&spi1_pins_a>;
291 status = "disabled";
292};
293
294&timers2 {
295 /* spare dmas for other usage (un-delete to enable pwm capture) */
296 /delete-property/dmas;
297 /delete-property/dma-names;
298 status = "disabled";
299 pwm {
300 pinctrl-0 = <&pwm2_pins_a>;
301 pinctrl-names = "default";
302 status = "okay";
303 };
304 timer@1 {
305 status = "okay";
306 };
307};
308
309&timers6 {
310 status = "okay";
311 /* spare dmas for other usage */
312 /delete-property/dmas;
313 /delete-property/dma-names;
314 timer@5 {
315 status = "okay";
316 };
317};
318
319&timers8 {
320 /delete-property/dmas;
321 /delete-property/dma-names;
322 status = "disabled";
323 pwm {
324 pinctrl-0 = <&pwm8_pins_a>;
325 pinctrl-names = "default";
326 status = "okay";
327 };
328 timer@7 {
329 status = "okay";
330 };
331};
332
333&timers12 {
334 /delete-property/dmas;
335 /delete-property/dma-names;
336 status = "disabled";
337 pwm {
338 pinctrl-0 = <&pwm12_pins_a>;
339 pinctrl-names = "default";
340 status = "okay";
341 };
342 timer@11 {
343 status = "okay";
344 };
345};
346
347&uart4 {
348 pinctrl-names = "default";
349 pinctrl-0 = <&uart4_pins_a>;
350 status = "okay";
351};
352
353&usbh_ehci {
354 phys = <&usbphyc_port0>;
355 phy-names = "usb";
356 status = "okay";
357};
358
359&usbotg_hs {
360 dr_mode = "peripheral";
361 phys = <&usbphyc_port1 0>;
362 phy-names = "usb2-phy";
363 vbus-supply = <&vbus_otg>;
364 status = "okay";
365};
366
367&usbphyc {
368 status = "okay";
369};
370
371&usbphyc_port0 {
372 phy-supply = <&vdd_usb>;
373};
374
375&usbphyc_port1 {
376 phy-supply = <&vdd_usb>;
377};