]> asedeno.scripts.mit.edu Git - linux.git/blob - arch/arm/boot/dts/stm32mp157a-dk1.dts
ARM: dts: stm32: enable m4 coprocessor support on STM32MP157a-dk1
[linux.git] / arch / arm / boot / dts / stm32mp157a-dk1.dts
1 // 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"
10 #include "stm32mp157xac-pinctrl.dtsi"
11 #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 {
28                 reg = <0xc0000000 0x20000000>;
29         };
30
31         reserved-memory {
32                 #address-cells = <1>;
33                 #size-cells = <1>;
34                 ranges;
35
36                 mcuram2: mcuram2@10000000 {
37                         compatible = "shared-dma-pool";
38                         reg = <0x10000000 0x40000>;
39                         no-map;
40                 };
41
42                 vdev0vring0: vdev0vring0@10040000 {
43                         compatible = "shared-dma-pool";
44                         reg = <0x10040000 0x1000>;
45                         no-map;
46                 };
47
48                 vdev0vring1: vdev0vring1@10041000 {
49                         compatible = "shared-dma-pool";
50                         reg = <0x10041000 0x1000>;
51                         no-map;
52                 };
53
54                 vdev0buffer: vdev0buffer@10042000 {
55                         compatible = "shared-dma-pool";
56                         reg = <0x10042000 0x4000>;
57                         no-map;
58                 };
59
60                 mcuram: mcuram@30000000 {
61                         compatible = "shared-dma-pool";
62                         reg = <0x30000000 0x40000>;
63                         no-map;
64                 };
65
66                 retram: retram@38000000 {
67                         compatible = "shared-dma-pool";
68                         reg = <0x38000000 0x10000>;
69                         no-map;
70                 };
71
72                 gpu_reserved: gpu@d4000000 {
73                         reg = <0xd4000000 0x4000000>;
74                         no-map;
75                 };
76         };
77
78         led {
79                 compatible = "gpio-leds";
80                 blue {
81                         label = "heartbeat";
82                         gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
83                         linux,default-trigger = "heartbeat";
84                         default-state = "off";
85                 };
86         };
87 };
88
89 &cec {
90         pinctrl-names = "default", "sleep";
91         pinctrl-0 = <&cec_pins_b>;
92         pinctrl-1 = <&cec_pins_sleep_b>;
93         status = "okay";
94 };
95
96 &ethernet0 {
97         status = "okay";
98         pinctrl-0 = <&ethernet0_rgmii_pins_a>;
99         pinctrl-1 = <&ethernet0_rgmii_pins_sleep_a>;
100         pinctrl-names = "default", "sleep";
101         phy-mode = "rgmii-id";
102         max-speed = <1000>;
103         phy-handle = <&phy0>;
104
105         mdio0 {
106                 #address-cells = <1>;
107                 #size-cells = <0>;
108                 compatible = "snps,dwmac-mdio";
109                 phy0: ethernet-phy@0 {
110                         reg = <0>;
111                 };
112         };
113 };
114
115 &gpu {
116         contiguous-area = <&gpu_reserved>;
117         status = "okay";
118 };
119
120 &i2c1 {
121         pinctrl-names = "default", "sleep";
122         pinctrl-0 = <&i2c1_pins_a>;
123         pinctrl-1 = <&i2c1_pins_sleep_a>;
124         i2c-scl-rising-time-ns = <100>;
125         i2c-scl-falling-time-ns = <7>;
126         status = "okay";
127         /delete-property/dmas;
128         /delete-property/dma-names;
129
130         hdmi-transmitter@39 {
131                 compatible = "sil,sii9022";
132                 reg = <0x39>;
133                 iovcc-supply = <&v3v3_hdmi>;
134                 cvcc12-supply = <&v1v2_hdmi>;
135                 reset-gpios = <&gpioa 10 GPIO_ACTIVE_LOW>;
136                 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
137                 interrupt-parent = <&gpiog>;
138                 pinctrl-names = "default", "sleep";
139                 pinctrl-0 = <&ltdc_pins_a>;
140                 pinctrl-1 = <&ltdc_pins_sleep_a>;
141                 status = "okay";
142
143                 ports {
144                         #address-cells = <1>;
145                         #size-cells = <0>;
146
147                         port@0 {
148                                 reg = <0>;
149                                 sii9022_in: endpoint {
150                                         remote-endpoint = <&ltdc_ep0_out>;
151                                 };
152                         };
153                 };
154         };
155 };
156
157 &i2c4 {
158         pinctrl-names = "default";
159         pinctrl-0 = <&i2c4_pins_a>;
160         i2c-scl-rising-time-ns = <185>;
161         i2c-scl-falling-time-ns = <20>;
162         status = "okay";
163         /* spare dmas for other usage */
164         /delete-property/dmas;
165         /delete-property/dma-names;
166
167         pmic: stpmic@33 {
168                 compatible = "st,stpmic1";
169                 reg = <0x33>;
170                 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
171                 interrupt-controller;
172                 #interrupt-cells = <2>;
173                 status = "okay";
174
175                 regulators {
176                         compatible = "st,stpmic1-regulators";
177                         ldo1-supply = <&v3v3>;
178                         ldo3-supply = <&vdd_ddr>;
179                         ldo6-supply = <&v3v3>;
180                         pwr_sw1-supply = <&bst_out>;
181                         pwr_sw2-supply = <&bst_out>;
182
183                         vddcore: buck1 {
184                                 regulator-name = "vddcore";
185                                 regulator-min-microvolt = <800000>;
186                                 regulator-max-microvolt = <1350000>;
187                                 regulator-always-on;
188                                 regulator-initial-mode = <0>;
189                                 regulator-over-current-protection;
190                         };
191
192                         vdd_ddr: buck2 {
193                                 regulator-name = "vdd_ddr";
194                                 regulator-min-microvolt = <1350000>;
195                                 regulator-max-microvolt = <1350000>;
196                                 regulator-always-on;
197                                 regulator-initial-mode = <0>;
198                                 regulator-over-current-protection;
199                         };
200
201                         vdd: buck3 {
202                                 regulator-name = "vdd";
203                                 regulator-min-microvolt = <3300000>;
204                                 regulator-max-microvolt = <3300000>;
205                                 regulator-always-on;
206                                 st,mask-reset;
207                                 regulator-initial-mode = <0>;
208                                 regulator-over-current-protection;
209                         };
210
211                         v3v3: buck4 {
212                                 regulator-name = "v3v3";
213                                 regulator-min-microvolt = <3300000>;
214                                 regulator-max-microvolt = <3300000>;
215                                 regulator-always-on;
216                                 regulator-over-current-protection;
217                                 regulator-initial-mode = <0>;
218                         };
219
220                         v1v8_audio: ldo1 {
221                                 regulator-name = "v1v8_audio";
222                                 regulator-min-microvolt = <1800000>;
223                                 regulator-max-microvolt = <1800000>;
224                                 regulator-always-on;
225                                 interrupts = <IT_CURLIM_LDO1 0>;
226                         };
227
228                         v3v3_hdmi: ldo2 {
229                                 regulator-name = "v3v3_hdmi";
230                                 regulator-min-microvolt = <3300000>;
231                                 regulator-max-microvolt = <3300000>;
232                                 regulator-always-on;
233                                 interrupts = <IT_CURLIM_LDO2 0>;
234                         };
235
236                         vtt_ddr: ldo3 {
237                                 regulator-name = "vtt_ddr";
238                                 regulator-min-microvolt = <500000>;
239                                 regulator-max-microvolt = <750000>;
240                                 regulator-always-on;
241                                 regulator-over-current-protection;
242                         };
243
244                         vdd_usb: ldo4 {
245                                 regulator-name = "vdd_usb";
246                                 regulator-min-microvolt = <3300000>;
247                                 regulator-max-microvolt = <3300000>;
248                                 interrupts = <IT_CURLIM_LDO4 0>;
249                         };
250
251                         vdda: ldo5 {
252                                 regulator-name = "vdda";
253                                 regulator-min-microvolt = <2900000>;
254                                 regulator-max-microvolt = <2900000>;
255                                 interrupts = <IT_CURLIM_LDO5 0>;
256                                 regulator-boot-on;
257                         };
258
259                         v1v2_hdmi: ldo6 {
260                                 regulator-name = "v1v2_hdmi";
261                                 regulator-min-microvolt = <1200000>;
262                                 regulator-max-microvolt = <1200000>;
263                                 regulator-always-on;
264                                 interrupts = <IT_CURLIM_LDO6 0>;
265                         };
266
267                         vref_ddr: vref_ddr {
268                                 regulator-name = "vref_ddr";
269                                 regulator-always-on;
270                                 regulator-over-current-protection;
271                         };
272
273                          bst_out: boost {
274                                 regulator-name = "bst_out";
275                                 interrupts = <IT_OCP_BOOST 0>;
276                          };
277
278                         vbus_otg: pwr_sw1 {
279                                 regulator-name = "vbus_otg";
280                                 interrupts = <IT_OCP_OTG 0>;
281                          };
282
283                          vbus_sw: pwr_sw2 {
284                                 regulator-name = "vbus_sw";
285                                 interrupts = <IT_OCP_SWOUT 0>;
286                                 regulator-active-discharge;
287                          };
288                 };
289
290                 onkey {
291                         compatible = "st,stpmic1-onkey";
292                         interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
293                         interrupt-names = "onkey-falling", "onkey-rising";
294                         power-off-time-sec = <10>;
295                         status = "okay";
296                 };
297
298                 watchdog {
299                         compatible = "st,stpmic1-wdt";
300                         status = "disabled";
301                 };
302         };
303 };
304
305 &ipcc {
306         status = "okay";
307 };
308
309 &iwdg2 {
310         timeout-sec = <32>;
311         status = "okay";
312 };
313
314 &ltdc {
315         status = "okay";
316
317         port {
318                 #address-cells = <1>;
319                 #size-cells = <0>;
320
321                 ltdc_ep0_out: endpoint@0 {
322                         reg = <0>;
323                         remote-endpoint = <&sii9022_in>;
324                 };
325         };
326 };
327
328 &m4_rproc {
329         memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
330                         <&vdev0vring1>, <&vdev0buffer>;
331         mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
332         mbox-names = "vq0", "vq1", "shutdown";
333         interrupt-parent = <&exti>;
334         interrupts = <68 1>;
335         status = "okay";
336 };
337
338 &rng1 {
339         status = "okay";
340 };
341
342 &rtc {
343         status = "okay";
344 };
345
346 &sdmmc1 {
347         pinctrl-names = "default", "opendrain", "sleep";
348         pinctrl-0 = <&sdmmc1_b4_pins_a>;
349         pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
350         pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
351         broken-cd;
352         st,neg-edge;
353         bus-width = <4>;
354         vmmc-supply = <&v3v3>;
355         status = "okay";
356 };
357
358 &uart4 {
359         pinctrl-names = "default";
360         pinctrl-0 = <&uart4_pins_a>;
361         status = "okay";
362 };