blob: 624bf6954bec2d14bfa710727ba4ac57bc5b3f6b [file] [log] [blame]
Patrice Chotard23661602019-02-12 16:50:38 +01001// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2019 - All Rights Reserved
4 * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics.
5 */
6
7/dts-v1/;
8
9#include "stm32mp157c.dtsi"
Patrick Delaunayfe915332019-07-30 19:16:12 +020010#include "stm32mp157xac-pinctrl.dtsi"
Patrice Chotard23661602019-02-12 16:50:38 +010011#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/mfd/st,stpmic1.h>
13
14/ {
15 model = "STMicroelectronics STM32MP157A-DK1 Discovery Board";
16 compatible = "st,stm32mp157a-dk1", "st,stm32mp157";
17
18 aliases {
19 ethernet0 = &ethernet0;
20 serial0 = &uart4;
21 };
22
23 chosen {
24 stdout-path = "serial0:115200n8";
25 };
26
27 memory@c0000000 {
Patrick Delaunayd35a5af2020-01-28 10:11:00 +010028 device_type = "memory";
Patrice Chotard23661602019-02-12 16:50:38 +010029 reg = <0xc0000000 0x20000000>;
30 };
31
Patrick Delaunayfe915332019-07-30 19:16:12 +020032 reserved-memory {
33 #address-cells = <1>;
34 #size-cells = <1>;
35 ranges;
36
Patrick Delaunay62d620c2019-11-06 16:16:33 +010037 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
Patrick Delaunayfe915332019-07-30 19:16:12 +020073 gpu_reserved: gpu@d4000000 {
74 reg = <0xd4000000 0x4000000>;
75 no-map;
76 };
77 };
78
Patrice Chotard23661602019-02-12 16:50:38 +010079 led {
80 compatible = "gpio-leds";
81 blue {
82 label = "heartbeat";
83 gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
84 linux,default-trigger = "heartbeat";
85 default-state = "off";
86 };
87 };
Patrick Delaunay62d620c2019-11-06 16:16:33 +010088
89 sound {
90 compatible = "audio-graph-card";
91 label = "STM32MP1-DK";
92 routing =
93 "Playback" , "MCLK",
94 "Capture" , "MCLK",
95 "MICL" , "Mic Bias";
Patrick Delaunayd35a5af2020-01-28 10:11:00 +010096 dais = <&sai2a_port &sai2b_port &i2s2_port>;
97 status = "okay";
98 };
99};
100
101&adc {
102 pinctrl-names = "default";
103 pinctrl-0 = <&adc12_ain_pins_a>, <&adc12_usb_cc_pins_a>;
104 vdd-supply = <&vdd>;
105 vdda-supply = <&vdd>;
106 vref-supply = <&vrefbuf>;
107 status = "disabled";
108 adc1: adc@0 {
109 /*
110 * Type-C USB_PWR_CC1 & USB_PWR_CC2 on in18 & in19.
111 * Use at least 5 * RC time, e.g. 5 * (Rp + Rd) * C:
112 * 5 * (56 + 47kOhms) * 5pF => 2.5us.
113 * Use arbitrary margin here (e.g. 5us).
114 */
115 st,min-sample-time-nsecs = <5000>;
116 /* AIN connector, USB Type-C CC1 & CC2 */
117 st,adc-channels = <0 1 6 13 18 19>;
118 status = "okay";
119 };
120 adc2: adc@100 {
121 /* AIN connector, USB Type-C CC1 & CC2 */
122 st,adc-channels = <0 1 2 6 18 19>;
123 st,min-sample-time-nsecs = <5000>;
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100124 status = "okay";
125 };
Patrice Chotard23661602019-02-12 16:50:38 +0100126};
127
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200128&cec {
129 pinctrl-names = "default", "sleep";
130 pinctrl-0 = <&cec_pins_b>;
131 pinctrl-1 = <&cec_pins_sleep_b>;
132 status = "okay";
133};
134
Patrice Chotard23661602019-02-12 16:50:38 +0100135&ethernet0 {
136 status = "okay";
137 pinctrl-0 = <&ethernet0_rgmii_pins_a>;
138 pinctrl-1 = <&ethernet0_rgmii_pins_sleep_a>;
139 pinctrl-names = "default", "sleep";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200140 phy-mode = "rgmii-id";
Patrice Chotard23661602019-02-12 16:50:38 +0100141 max-speed = <1000>;
142 phy-handle = <&phy0>;
143
144 mdio0 {
145 #address-cells = <1>;
146 #size-cells = <0>;
147 compatible = "snps,dwmac-mdio";
148 phy0: ethernet-phy@0 {
149 reg = <0>;
150 };
151 };
152};
153
Patrick Delaunayfe915332019-07-30 19:16:12 +0200154&gpu {
155 contiguous-area = <&gpu_reserved>;
156 status = "okay";
157};
158
159&i2c1 {
160 pinctrl-names = "default", "sleep";
161 pinctrl-0 = <&i2c1_pins_a>;
162 pinctrl-1 = <&i2c1_pins_sleep_a>;
163 i2c-scl-rising-time-ns = <100>;
164 i2c-scl-falling-time-ns = <7>;
165 status = "okay";
166 /delete-property/dmas;
167 /delete-property/dma-names;
168
169 hdmi-transmitter@39 {
170 compatible = "sil,sii9022";
171 reg = <0x39>;
172 iovcc-supply = <&v3v3_hdmi>;
173 cvcc12-supply = <&v1v2_hdmi>;
174 reset-gpios = <&gpioa 10 GPIO_ACTIVE_LOW>;
175 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
176 interrupt-parent = <&gpiog>;
Patrick Delaunayd35a5af2020-01-28 10:11:00 +0100177 #sound-dai-cells = <0>;
Patrick Delaunayfe915332019-07-30 19:16:12 +0200178 status = "okay";
179
180 ports {
181 #address-cells = <1>;
182 #size-cells = <0>;
183
184 port@0 {
185 reg = <0>;
186 sii9022_in: endpoint {
187 remote-endpoint = <&ltdc_ep0_out>;
188 };
189 };
Patrick Delaunayd35a5af2020-01-28 10:11:00 +0100190
191 port@3 {
192 reg = <3>;
193 sii9022_tx_endpoint: endpoint {
194 remote-endpoint = <&i2s2_endpoint>;
195 };
196 };
Patrick Delaunayfe915332019-07-30 19:16:12 +0200197 };
198 };
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100199
200 cs42l51: cs42l51@4a {
201 compatible = "cirrus,cs42l51";
202 reg = <0x4a>;
203 #sound-dai-cells = <0>;
204 VL-supply = <&v3v3>;
205 VD-supply = <&v1v8_audio>;
206 VA-supply = <&v1v8_audio>;
207 VAHP-supply = <&v1v8_audio>;
208 reset-gpios = <&gpiog 9 GPIO_ACTIVE_LOW>;
209 clocks = <&sai2a>;
210 clock-names = "MCLK";
211 status = "okay";
212
213 cs42l51_port: port {
214 #address-cells = <1>;
215 #size-cells = <0>;
216
217 cs42l51_tx_endpoint: endpoint@0 {
218 reg = <0>;
219 remote-endpoint = <&sai2a_endpoint>;
220 frame-master;
221 bitclock-master;
222 };
223
224 cs42l51_rx_endpoint: endpoint@1 {
225 reg = <1>;
226 remote-endpoint = <&sai2b_endpoint>;
227 frame-master;
228 bitclock-master;
229 };
230 };
231 };
Patrick Delaunayfe915332019-07-30 19:16:12 +0200232};
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200233
Patrice Chotard23661602019-02-12 16:50:38 +0100234&i2c4 {
235 pinctrl-names = "default";
236 pinctrl-0 = <&i2c4_pins_a>;
237 i2c-scl-rising-time-ns = <185>;
238 i2c-scl-falling-time-ns = <20>;
239 status = "okay";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200240 /* spare dmas for other usage */
Patrice Chotard23661602019-02-12 16:50:38 +0100241 /delete-property/dmas;
242 /delete-property/dma-names;
243
Patrick Delaunay6fe7dd32019-03-29 15:42:24 +0100244 typec: stusb1600@28 {
245 compatible = "st,stusb1600";
246 reg = <0x28>;
247 interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
248 interrupt-parent = <&gpioi>;
249 pinctrl-names = "default";
250 pinctrl-0 = <&stusb1600_pins_a>;
251
252 status = "okay";
253
254 typec_con: connector {
255 compatible = "usb-c-connector";
256 label = "USB-C";
257 power-role = "sink";
258 power-opmode = "default";
259 };
260 };
261
Patrice Chotard23661602019-02-12 16:50:38 +0100262 pmic: stpmic@33 {
263 compatible = "st,stpmic1";
264 reg = <0x33>;
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200265 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
Patrice Chotard23661602019-02-12 16:50:38 +0100266 interrupt-controller;
267 #interrupt-cells = <2>;
268 status = "okay";
269
Patrice Chotard23661602019-02-12 16:50:38 +0100270 regulators {
271 compatible = "st,stpmic1-regulators";
Patrice Chotard23661602019-02-12 16:50:38 +0100272 ldo1-supply = <&v3v3>;
273 ldo3-supply = <&vdd_ddr>;
274 ldo6-supply = <&v3v3>;
275 pwr_sw1-supply = <&bst_out>;
276 pwr_sw2-supply = <&bst_out>;
277
278 vddcore: buck1 {
279 regulator-name = "vddcore";
Patrick Delaunayd35a5af2020-01-28 10:11:00 +0100280 regulator-min-microvolt = <1200000>;
Patrice Chotard23661602019-02-12 16:50:38 +0100281 regulator-max-microvolt = <1350000>;
282 regulator-always-on;
283 regulator-initial-mode = <0>;
284 regulator-over-current-protection;
285 };
286
287 vdd_ddr: buck2 {
288 regulator-name = "vdd_ddr";
289 regulator-min-microvolt = <1350000>;
290 regulator-max-microvolt = <1350000>;
291 regulator-always-on;
292 regulator-initial-mode = <0>;
293 regulator-over-current-protection;
294 };
295
296 vdd: buck3 {
297 regulator-name = "vdd";
298 regulator-min-microvolt = <3300000>;
299 regulator-max-microvolt = <3300000>;
300 regulator-always-on;
301 st,mask-reset;
302 regulator-initial-mode = <0>;
303 regulator-over-current-protection;
304 };
305
306 v3v3: buck4 {
307 regulator-name = "v3v3";
308 regulator-min-microvolt = <3300000>;
309 regulator-max-microvolt = <3300000>;
310 regulator-always-on;
311 regulator-over-current-protection;
312 regulator-initial-mode = <0>;
313 };
314
315 v1v8_audio: ldo1 {
316 regulator-name = "v1v8_audio";
317 regulator-min-microvolt = <1800000>;
318 regulator-max-microvolt = <1800000>;
319 regulator-always-on;
320 interrupts = <IT_CURLIM_LDO1 0>;
321 };
322
323 v3v3_hdmi: ldo2 {
324 regulator-name = "v3v3_hdmi";
325 regulator-min-microvolt = <3300000>;
326 regulator-max-microvolt = <3300000>;
327 regulator-always-on;
328 interrupts = <IT_CURLIM_LDO2 0>;
329 };
330
331 vtt_ddr: ldo3 {
332 regulator-name = "vtt_ddr";
333 regulator-min-microvolt = <500000>;
334 regulator-max-microvolt = <750000>;
335 regulator-always-on;
336 regulator-over-current-protection;
337 };
338
339 vdd_usb: ldo4 {
340 regulator-name = "vdd_usb";
341 regulator-min-microvolt = <3300000>;
342 regulator-max-microvolt = <3300000>;
343 interrupts = <IT_CURLIM_LDO4 0>;
344 };
345
346 vdda: ldo5 {
347 regulator-name = "vdda";
348 regulator-min-microvolt = <2900000>;
349 regulator-max-microvolt = <2900000>;
350 interrupts = <IT_CURLIM_LDO5 0>;
351 regulator-boot-on;
352 };
353
354 v1v2_hdmi: ldo6 {
355 regulator-name = "v1v2_hdmi";
356 regulator-min-microvolt = <1200000>;
357 regulator-max-microvolt = <1200000>;
358 regulator-always-on;
359 interrupts = <IT_CURLIM_LDO6 0>;
Patrice Chotard23661602019-02-12 16:50:38 +0100360 };
361
362 vref_ddr: vref_ddr {
363 regulator-name = "vref_ddr";
364 regulator-always-on;
365 regulator-over-current-protection;
366 };
367
368 bst_out: boost {
369 regulator-name = "bst_out";
370 interrupts = <IT_OCP_BOOST 0>;
371 };
372
373 vbus_otg: pwr_sw1 {
374 regulator-name = "vbus_otg";
375 interrupts = <IT_OCP_OTG 0>;
Patrice Chotard23661602019-02-12 16:50:38 +0100376 };
377
378 vbus_sw: pwr_sw2 {
379 regulator-name = "vbus_sw";
380 interrupts = <IT_OCP_SWOUT 0>;
Patrick Delaunayd35a5af2020-01-28 10:11:00 +0100381 regulator-active-discharge = <1>;
Patrice Chotard23661602019-02-12 16:50:38 +0100382 };
383 };
384
385 onkey {
386 compatible = "st,stpmic1-onkey";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200387 interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
Patrice Chotard23661602019-02-12 16:50:38 +0100388 interrupt-names = "onkey-falling", "onkey-rising";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200389 power-off-time-sec = <10>;
Patrice Chotard23661602019-02-12 16:50:38 +0100390 status = "okay";
391 };
392
393 watchdog {
394 compatible = "st,stpmic1-wdt";
395 status = "disabled";
396 };
397 };
398};
399
Patrick Delaunayd35a5af2020-01-28 10:11:00 +0100400&i2s2 {
401 clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
402 clock-names = "pclk", "i2sclk", "x8k", "x11k";
403 pinctrl-names = "default", "sleep";
404 pinctrl-0 = <&i2s2_pins_a>;
405 pinctrl-1 = <&i2s2_pins_sleep_a>;
406 status = "okay";
407
408 i2s2_port: port {
409 i2s2_endpoint: endpoint {
410 remote-endpoint = <&sii9022_tx_endpoint>;
411 format = "i2s";
412 mclk-fs = <256>;
413 };
414 };
415};
416
Fabien Dessenne1958dae2019-05-14 11:20:37 +0200417&ipcc {
418 status = "okay";
419};
420
Patrice Chotard23661602019-02-12 16:50:38 +0100421&iwdg2 {
422 timeout-sec = <32>;
423 status = "okay";
424};
425
Patrick Delaunayfe915332019-07-30 19:16:12 +0200426&ltdc {
Patrick Delaunayd35a5af2020-01-28 10:11:00 +0100427 pinctrl-names = "default", "sleep";
428 pinctrl-0 = <&ltdc_pins_a>;
429 pinctrl-1 = <&ltdc_pins_sleep_a>;
Patrick Delaunayfe915332019-07-30 19:16:12 +0200430 status = "okay";
431
432 port {
433 #address-cells = <1>;
434 #size-cells = <0>;
435
436 ltdc_ep0_out: endpoint@0 {
437 reg = <0>;
438 remote-endpoint = <&sii9022_in>;
439 };
440 };
441};
442
Patrick Delaunay5d2901a2019-08-02 15:07:18 +0200443&m4_rproc {
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100444 memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
445 <&vdev0vring1>, <&vdev0buffer>;
Patrick Delaunay5d2901a2019-08-02 15:07:18 +0200446 mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
447 mbox-names = "vq0", "vq1", "shutdown";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100448 interrupt-parent = <&exti>;
449 interrupts = <68 1>;
Patrick Delaunay5d2901a2019-08-02 15:07:18 +0200450 status = "okay";
451};
452
Patrick Delaunay7915b992020-01-28 10:10:59 +0100453&pwr_regulators {
454 vdd-supply = <&vdd>;
455 vdd_3v3_usbfs-supply = <&vdd_usb>;
Patrice Chotard23661602019-02-12 16:50:38 +0100456};
457
458&rng1 {
459 status = "okay";
460};
461
462&rtc {
463 status = "okay";
464};
465
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100466&sai2 {
467 clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
468 clock-names = "pclk", "x8k", "x11k";
469 pinctrl-names = "default", "sleep";
470 pinctrl-0 = <&sai2a_pins_a>, <&sai2b_pins_b>;
471 pinctrl-1 = <&sai2a_sleep_pins_a>, <&sai2b_sleep_pins_b>;
472 status = "okay";
473
474 sai2a: audio-controller@4400b004 {
475 #clock-cells = <0>;
476 dma-names = "tx";
477 clocks = <&rcc SAI2_K>;
478 clock-names = "sai_ck";
479 status = "okay";
480
481 sai2a_port: port {
482 sai2a_endpoint: endpoint {
483 remote-endpoint = <&cs42l51_tx_endpoint>;
484 format = "i2s";
485 mclk-fs = <256>;
486 dai-tdm-slot-num = <2>;
487 dai-tdm-slot-width = <32>;
488 };
489 };
490 };
491
492 sai2b: audio-controller@4400b024 {
493 dma-names = "rx";
494 st,sync = <&sai2a 2>;
495 clocks = <&rcc SAI2_K>, <&sai2a>;
496 clock-names = "sai_ck", "MCLK";
497 status = "okay";
498
499 sai2b_port: port {
500 sai2b_endpoint: endpoint {
501 remote-endpoint = <&cs42l51_rx_endpoint>;
502 format = "i2s";
503 mclk-fs = <256>;
504 dai-tdm-slot-num = <2>;
505 dai-tdm-slot-width = <32>;
506 };
507 };
508 };
509};
510
Patrice Chotard23661602019-02-12 16:50:38 +0100511&sdmmc1 {
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200512 pinctrl-names = "default", "opendrain", "sleep";
Patrice Chotard23661602019-02-12 16:50:38 +0100513 pinctrl-0 = <&sdmmc1_b4_pins_a>;
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200514 pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
515 pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
Patrice Chotard23661602019-02-12 16:50:38 +0100516 broken-cd;
517 st,neg-edge;
518 bus-width = <4>;
519 vmmc-supply = <&v3v3>;
520 status = "okay";
521};
522
523&uart4 {
524 pinctrl-names = "default";
525 pinctrl-0 = <&uart4_pins_a>;
526 status = "okay";
527};
528
529&usbh_ehci {
530 phys = <&usbphyc_port0>;
531 phy-names = "usb";
532 status = "okay";
533};
534
Patrick Delaunayc31000c2019-03-29 15:42:23 +0100535&usbotg_hs {
536 dr_mode = "peripheral";
537 phys = <&usbphyc_port1 0>;
538 phy-names = "usb2-phy";
Patrice Chotard23661602019-02-12 16:50:38 +0100539 status = "okay";
540};
541
Patrick Delaunayc31000c2019-03-29 15:42:23 +0100542&usbphyc {
543 status = "okay";
544};
545
546&usbphyc_port0 {
547 phy-supply = <&vdd_usb>;
548};
549
550&usbphyc_port1 {
551 phy-supply = <&vdd_usb>;
552};
553
Patrice Chotard23661602019-02-12 16:50:38 +0100554&vrefbuf {
555 regulator-min-microvolt = <2500000>;
556 regulator-max-microvolt = <2500000>;
557 vdda-supply = <&vdd>;
558 status = "okay";
559};