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