Merge branch 'next' into for-linus
[linux-2.6-microblaze.git] / arch / arm / boot / dts / stm32mp157c-ed1.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2 /*
3  * Copyright (C) STMicroelectronics 2017 - All Rights Reserved
4  * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics.
5  */
6 /dts-v1/;
7
8 #include "stm32mp157.dtsi"
9 #include "stm32mp15xc.dtsi"
10 #include "stm32mp15-pinctrl.dtsi"
11 #include "stm32mp15xxaa-pinctrl.dtsi"
12 #include <dt-bindings/gpio/gpio.h>
13 #include <dt-bindings/mfd/st,stpmic1.h>
14
15 / {
16         model = "STMicroelectronics STM32MP157C eval daughter";
17         compatible = "st,stm32mp157c-ed1", "st,stm32mp157";
18
19         chosen {
20                 stdout-path = "serial0:115200n8";
21         };
22
23         memory@c0000000 {
24                 device_type = "memory";
25                 reg = <0xC0000000 0x40000000>;
26         };
27
28         reserved-memory {
29                 #address-cells = <1>;
30                 #size-cells = <1>;
31                 ranges;
32
33                 mcuram2: mcuram2@10000000 {
34                         compatible = "shared-dma-pool";
35                         reg = <0x10000000 0x40000>;
36                         no-map;
37                 };
38
39                 vdev0vring0: vdev0vring0@10040000 {
40                         compatible = "shared-dma-pool";
41                         reg = <0x10040000 0x1000>;
42                         no-map;
43                 };
44
45                 vdev0vring1: vdev0vring1@10041000 {
46                         compatible = "shared-dma-pool";
47                         reg = <0x10041000 0x1000>;
48                         no-map;
49                 };
50
51                 vdev0buffer: vdev0buffer@10042000 {
52                         compatible = "shared-dma-pool";
53                         reg = <0x10042000 0x4000>;
54                         no-map;
55                 };
56
57                 mcuram: mcuram@30000000 {
58                         compatible = "shared-dma-pool";
59                         reg = <0x30000000 0x40000>;
60                         no-map;
61                 };
62
63                 retram: retram@38000000 {
64                         compatible = "shared-dma-pool";
65                         reg = <0x38000000 0x10000>;
66                         no-map;
67                 };
68
69                 gpu_reserved: gpu@e8000000 {
70                         reg = <0xe8000000 0x8000000>;
71                         no-map;
72                 };
73         };
74
75         aliases {
76                 serial0 = &uart4;
77         };
78
79         sd_switch: regulator-sd_switch {
80                 compatible = "regulator-gpio";
81                 regulator-name = "sd_switch";
82                 regulator-min-microvolt = <1800000>;
83                 regulator-max-microvolt = <2900000>;
84                 regulator-type = "voltage";
85                 regulator-always-on;
86
87                 gpios = <&gpiof 14 GPIO_ACTIVE_HIGH>;
88                 gpios-states = <0>;
89                 states = <1800000 0x1>,
90                          <2900000 0x0>;
91         };
92 };
93
94 &adc {
95         /* ANA0, ANA1 are dedicated pins and don't need pinctrl: only in6. */
96         pinctrl-0 = <&adc1_in6_pins_a>;
97         pinctrl-names = "default";
98         vdd-supply = <&vdd>;
99         vdda-supply = <&vdda>;
100         vref-supply = <&vdda>;
101         status = "disabled";
102         adc1: adc@0 {
103                 st,adc-channels = <0 1 6>;
104                 /* 16.5 ck_cycles sampling time */
105                 st,min-sample-time-nsecs = <400>;
106                 status = "okay";
107         };
108 };
109
110 &dac {
111         pinctrl-names = "default";
112         pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
113         vref-supply = <&vdda>;
114         status = "disabled";
115         dac1: dac@1 {
116                 status = "okay";
117         };
118         dac2: dac@2 {
119                 status = "okay";
120         };
121 };
122
123 &dts {
124         status = "okay";
125 };
126
127 &gpu {
128         contiguous-area = <&gpu_reserved>;
129 };
130
131 &i2c4 {
132         pinctrl-names = "default", "sleep";
133         pinctrl-0 = <&i2c4_pins_a>;
134         pinctrl-1 = <&i2c4_sleep_pins_a>;
135         i2c-scl-rising-time-ns = <185>;
136         i2c-scl-falling-time-ns = <20>;
137         clock-frequency = <400000>;
138         status = "okay";
139         /* spare dmas for other usage */
140         /delete-property/dmas;
141         /delete-property/dma-names;
142
143         pmic: stpmic@33 {
144                 compatible = "st,stpmic1";
145                 reg = <0x33>;
146                 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
147                 interrupt-controller;
148                 #interrupt-cells = <2>;
149                 status = "okay";
150
151                 regulators {
152                         compatible = "st,stpmic1-regulators";
153                         ldo1-supply = <&v3v3>;
154                         ldo2-supply = <&v3v3>;
155                         ldo3-supply = <&vdd_ddr>;
156                         ldo5-supply = <&v3v3>;
157                         ldo6-supply = <&v3v3>;
158                         pwr_sw1-supply = <&bst_out>;
159                         pwr_sw2-supply = <&bst_out>;
160
161                         vddcore: buck1 {
162                                 regulator-name = "vddcore";
163                                 regulator-min-microvolt = <1200000>;
164                                 regulator-max-microvolt = <1350000>;
165                                 regulator-always-on;
166                                 regulator-initial-mode = <0>;
167                                 regulator-over-current-protection;
168                         };
169
170                         vdd_ddr: buck2 {
171                                 regulator-name = "vdd_ddr";
172                                 regulator-min-microvolt = <1350000>;
173                                 regulator-max-microvolt = <1350000>;
174                                 regulator-always-on;
175                                 regulator-initial-mode = <0>;
176                                 regulator-over-current-protection;
177                         };
178
179                         vdd: buck3 {
180                                 regulator-name = "vdd";
181                                 regulator-min-microvolt = <3300000>;
182                                 regulator-max-microvolt = <3300000>;
183                                 regulator-always-on;
184                                 st,mask-reset;
185                                 regulator-initial-mode = <0>;
186                                 regulator-over-current-protection;
187                         };
188
189                         v3v3: buck4 {
190                                 regulator-name = "v3v3";
191                                 regulator-min-microvolt = <3300000>;
192                                 regulator-max-microvolt = <3300000>;
193                                 regulator-always-on;
194                                 regulator-over-current-protection;
195                                 regulator-initial-mode = <0>;
196                         };
197
198                         vdda: ldo1 {
199                                 regulator-name = "vdda";
200                                 regulator-min-microvolt = <2900000>;
201                                 regulator-max-microvolt = <2900000>;
202                                 interrupts = <IT_CURLIM_LDO1 0>;
203                         };
204
205                         v2v8: ldo2 {
206                                 regulator-name = "v2v8";
207                                 regulator-min-microvolt = <2800000>;
208                                 regulator-max-microvolt = <2800000>;
209                                 interrupts = <IT_CURLIM_LDO2 0>;
210                         };
211
212                         vtt_ddr: ldo3 {
213                                 regulator-name = "vtt_ddr";
214                                 regulator-min-microvolt = <500000>;
215                                 regulator-max-microvolt = <750000>;
216                                 regulator-always-on;
217                                 regulator-over-current-protection;
218                         };
219
220                         vdd_usb: ldo4 {
221                                 regulator-name = "vdd_usb";
222                                 interrupts = <IT_CURLIM_LDO4 0>;
223                         };
224
225                         vdd_sd: ldo5 {
226                                 regulator-name = "vdd_sd";
227                                 regulator-min-microvolt = <2900000>;
228                                 regulator-max-microvolt = <2900000>;
229                                 interrupts = <IT_CURLIM_LDO5 0>;
230                                 regulator-boot-on;
231                         };
232
233                         v1v8: ldo6 {
234                                 regulator-name = "v1v8";
235                                 regulator-min-microvolt = <1800000>;
236                                 regulator-max-microvolt = <1800000>;
237                                 interrupts = <IT_CURLIM_LDO6 0>;
238                         };
239
240                         vref_ddr: vref_ddr {
241                                 regulator-name = "vref_ddr";
242                                 regulator-always-on;
243                         };
244
245                         bst_out: boost {
246                                 regulator-name = "bst_out";
247                                 interrupts = <IT_OCP_BOOST 0>;
248                         };
249
250                         vbus_otg: pwr_sw1 {
251                                 regulator-name = "vbus_otg";
252                                 interrupts = <IT_OCP_OTG 0>;
253                          };
254
255                          vbus_sw: pwr_sw2 {
256                                 regulator-name = "vbus_sw";
257                                 interrupts = <IT_OCP_SWOUT 0>;
258                                 regulator-active-discharge = <1>;
259                          };
260                 };
261
262                 onkey {
263                         compatible = "st,stpmic1-onkey";
264                         interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
265                         interrupt-names = "onkey-falling", "onkey-rising";
266                         power-off-time-sec = <10>;
267                         status = "okay";
268                 };
269
270                 watchdog {
271                         compatible = "st,stpmic1-wdt";
272                         status = "disabled";
273                 };
274         };
275 };
276
277 &ipcc {
278         status = "okay";
279 };
280
281 &iwdg2 {
282         timeout-sec = <32>;
283         status = "okay";
284 };
285
286 &m4_rproc {
287         memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
288                         <&vdev0vring1>, <&vdev0buffer>;
289         mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
290         mbox-names = "vq0", "vq1", "shutdown";
291         interrupt-parent = <&exti>;
292         interrupts = <68 1>;
293         status = "okay";
294 };
295
296 &pwr_regulators {
297         vdd-supply = <&vdd>;
298         vdd_3v3_usbfs-supply = <&vdd_usb>;
299 };
300
301 &rng1 {
302         status = "okay";
303 };
304
305 &rtc {
306         status = "okay";
307 };
308
309 &sdmmc1 {
310         pinctrl-names = "default", "opendrain", "sleep";
311         pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
312         pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
313         pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
314         cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
315         disable-wp;
316         st,sig-dir;
317         st,neg-edge;
318         st,use-ckin;
319         bus-width = <4>;
320         vmmc-supply = <&vdd_sd>;
321         vqmmc-supply = <&sd_switch>;
322         sd-uhs-sdr12;
323         sd-uhs-sdr25;
324         sd-uhs-sdr50;
325         sd-uhs-ddr50;
326         status = "okay";
327 };
328
329 &sdmmc2 {
330         pinctrl-names = "default", "opendrain", "sleep";
331         pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
332         pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
333         pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
334         non-removable;
335         no-sd;
336         no-sdio;
337         st,neg-edge;
338         bus-width = <8>;
339         vmmc-supply = <&v3v3>;
340         vqmmc-supply = <&vdd>;
341         mmc-ddr-3_3v;
342         status = "okay";
343 };
344
345 &timers6 {
346         status = "okay";
347         /* spare dmas for other usage */
348         /delete-property/dmas;
349         /delete-property/dma-names;
350         timer@5 {
351                 status = "okay";
352         };
353 };
354
355 &uart4 {
356         pinctrl-names = "default", "sleep", "idle";
357         pinctrl-0 = <&uart4_pins_a>;
358         pinctrl-1 = <&uart4_sleep_pins_a>;
359         pinctrl-2 = <&uart4_idle_pins_a>;
360         status = "okay";
361 };
362
363 &usbotg_hs {
364         vbus-supply = <&vbus_otg>;
365 };
366
367 &usbphyc_port0 {
368         phy-supply = <&vdd_usb>;
369         vdda1v1-supply = <&reg11>;
370         vdda1v8-supply = <&reg18>;
371 };
372
373 &usbphyc_port1 {
374         phy-supply = <&vdd_usb>;
375         vdda1v1-supply = <&reg11>;
376         vdda1v8-supply = <&reg18>;
377 };