Merge tag 'mpx-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/daveh...
[sfrench/cifs-2.6.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 "stm32mp157c.dtsi"
9 #include "stm32mp157xaa-pinctrl.dtsi"
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/mfd/st,stpmic1.h>
12
13 / {
14         model = "STMicroelectronics STM32MP157C eval daughter";
15         compatible = "st,stm32mp157c-ed1", "st,stm32mp157";
16
17         chosen {
18                 stdout-path = "serial0:115200n8";
19         };
20
21         memory@c0000000 {
22                 device_type = "memory";
23                 reg = <0xC0000000 0x40000000>;
24         };
25
26         reserved-memory {
27                 #address-cells = <1>;
28                 #size-cells = <1>;
29                 ranges;
30
31                 mcuram2: mcuram2@10000000 {
32                         compatible = "shared-dma-pool";
33                         reg = <0x10000000 0x40000>;
34                         no-map;
35                 };
36
37                 vdev0vring0: vdev0vring0@10040000 {
38                         compatible = "shared-dma-pool";
39                         reg = <0x10040000 0x1000>;
40                         no-map;
41                 };
42
43                 vdev0vring1: vdev0vring1@10041000 {
44                         compatible = "shared-dma-pool";
45                         reg = <0x10041000 0x1000>;
46                         no-map;
47                 };
48
49                 vdev0buffer: vdev0buffer@10042000 {
50                         compatible = "shared-dma-pool";
51                         reg = <0x10042000 0x4000>;
52                         no-map;
53                 };
54
55                 mcuram: mcuram@30000000 {
56                         compatible = "shared-dma-pool";
57                         reg = <0x30000000 0x40000>;
58                         no-map;
59                 };
60
61                 retram: retram@38000000 {
62                         compatible = "shared-dma-pool";
63                         reg = <0x38000000 0x10000>;
64                         no-map;
65                 };
66
67                 gpu_reserved: gpu@e8000000 {
68                         reg = <0xe8000000 0x8000000>;
69                         no-map;
70                 };
71         };
72
73         aliases {
74                 serial0 = &uart4;
75         };
76
77         sd_switch: regulator-sd_switch {
78                 compatible = "regulator-gpio";
79                 regulator-name = "sd_switch";
80                 regulator-min-microvolt = <1800000>;
81                 regulator-max-microvolt = <2900000>;
82                 regulator-type = "voltage";
83                 regulator-always-on;
84
85                 gpios = <&gpiof 14 GPIO_ACTIVE_HIGH>;
86                 gpios-states = <0>;
87                 states = <1800000 0x1>,
88                          <2900000 0x0>;
89         };
90 };
91
92 &dac {
93         pinctrl-names = "default";
94         pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
95         vref-supply = <&vdda>;
96         status = "disabled";
97         dac1: dac@1 {
98                 status = "okay";
99         };
100         dac2: dac@2 {
101                 status = "okay";
102         };
103 };
104
105 &dts {
106         status = "okay";
107 };
108
109 &gpu {
110         contiguous-area = <&gpu_reserved>;
111         status = "okay";
112 };
113
114 &i2c4 {
115         pinctrl-names = "default";
116         pinctrl-0 = <&i2c4_pins_a>;
117         i2c-scl-rising-time-ns = <185>;
118         i2c-scl-falling-time-ns = <20>;
119         status = "okay";
120         /* spare dmas for other usage */
121         /delete-property/dmas;
122         /delete-property/dma-names;
123
124         pmic: stpmic@33 {
125                 compatible = "st,stpmic1";
126                 reg = <0x33>;
127                 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
128                 interrupt-controller;
129                 #interrupt-cells = <2>;
130                 status = "okay";
131
132                 regulators {
133                         compatible = "st,stpmic1-regulators";
134                         ldo1-supply = <&v3v3>;
135                         ldo2-supply = <&v3v3>;
136                         ldo3-supply = <&vdd_ddr>;
137                         ldo5-supply = <&v3v3>;
138                         ldo6-supply = <&v3v3>;
139                         pwr_sw1-supply = <&bst_out>;
140                         pwr_sw2-supply = <&bst_out>;
141
142                         vddcore: buck1 {
143                                 regulator-name = "vddcore";
144                                 regulator-min-microvolt = <1200000>;
145                                 regulator-max-microvolt = <1350000>;
146                                 regulator-always-on;
147                                 regulator-initial-mode = <0>;
148                                 regulator-over-current-protection;
149                         };
150
151                         vdd_ddr: buck2 {
152                                 regulator-name = "vdd_ddr";
153                                 regulator-min-microvolt = <1350000>;
154                                 regulator-max-microvolt = <1350000>;
155                                 regulator-always-on;
156                                 regulator-initial-mode = <0>;
157                                 regulator-over-current-protection;
158                         };
159
160                         vdd: buck3 {
161                                 regulator-name = "vdd";
162                                 regulator-min-microvolt = <3300000>;
163                                 regulator-max-microvolt = <3300000>;
164                                 regulator-always-on;
165                                 st,mask-reset;
166                                 regulator-initial-mode = <0>;
167                                 regulator-over-current-protection;
168                         };
169
170                         v3v3: buck4 {
171                                 regulator-name = "v3v3";
172                                 regulator-min-microvolt = <3300000>;
173                                 regulator-max-microvolt = <3300000>;
174                                 regulator-always-on;
175                                 regulator-over-current-protection;
176                                 regulator-initial-mode = <0>;
177                         };
178
179                         vdda: ldo1 {
180                                 regulator-name = "vdda";
181                                 regulator-min-microvolt = <2900000>;
182                                 regulator-max-microvolt = <2900000>;
183                                 interrupts = <IT_CURLIM_LDO1 0>;
184                         };
185
186                         v2v8: ldo2 {
187                                 regulator-name = "v2v8";
188                                 regulator-min-microvolt = <2800000>;
189                                 regulator-max-microvolt = <2800000>;
190                                 interrupts = <IT_CURLIM_LDO2 0>;
191                         };
192
193                         vtt_ddr: ldo3 {
194                                 regulator-name = "vtt_ddr";
195                                 regulator-min-microvolt = <500000>;
196                                 regulator-max-microvolt = <750000>;
197                                 regulator-always-on;
198                                 regulator-over-current-protection;
199                         };
200
201                         vdd_usb: ldo4 {
202                                 regulator-name = "vdd_usb";
203                                 regulator-min-microvolt = <3300000>;
204                                 regulator-max-microvolt = <3300000>;
205                                 interrupts = <IT_CURLIM_LDO4 0>;
206                         };
207
208                         vdd_sd: ldo5 {
209                                 regulator-name = "vdd_sd";
210                                 regulator-min-microvolt = <2900000>;
211                                 regulator-max-microvolt = <2900000>;
212                                 interrupts = <IT_CURLIM_LDO5 0>;
213                                 regulator-boot-on;
214                         };
215
216                         v1v8: ldo6 {
217                                 regulator-name = "v1v8";
218                                 regulator-min-microvolt = <1800000>;
219                                 regulator-max-microvolt = <1800000>;
220                                 interrupts = <IT_CURLIM_LDO6 0>;
221                         };
222
223                         vref_ddr: vref_ddr {
224                                 regulator-name = "vref_ddr";
225                                 regulator-always-on;
226                                 regulator-over-current-protection;
227                         };
228
229                         bst_out: boost {
230                                 regulator-name = "bst_out";
231                                 interrupts = <IT_OCP_BOOST 0>;
232                         };
233
234                         vbus_otg: pwr_sw1 {
235                                 regulator-name = "vbus_otg";
236                                 interrupts = <IT_OCP_OTG 0>;
237                          };
238
239                          vbus_sw: pwr_sw2 {
240                                 regulator-name = "vbus_sw";
241                                 interrupts = <IT_OCP_SWOUT 0>;
242                                 regulator-active-discharge = <1>;
243                          };
244                 };
245
246                 onkey {
247                         compatible = "st,stpmic1-onkey";
248                         interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
249                         interrupt-names = "onkey-falling", "onkey-rising";
250                         power-off-time-sec = <10>;
251                         status = "okay";
252                 };
253
254                 watchdog {
255                         compatible = "st,stpmic1-wdt";
256                         status = "disabled";
257                 };
258         };
259 };
260
261 &ipcc {
262         status = "okay";
263 };
264
265 &iwdg2 {
266         timeout-sec = <32>;
267         status = "okay";
268 };
269
270 &m4_rproc {
271         memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
272                         <&vdev0vring1>, <&vdev0buffer>;
273         mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
274         mbox-names = "vq0", "vq1", "shutdown";
275         interrupt-parent = <&exti>;
276         interrupts = <68 1>;
277         status = "okay";
278 };
279
280 &pwr_regulators {
281         vdd-supply = <&vdd>;
282         vdd_3v3_usbfs-supply = <&vdd_usb>;
283 };
284
285 &rng1 {
286         status = "okay";
287 };
288
289 &rtc {
290         status = "okay";
291 };
292
293 &sdmmc1 {
294         pinctrl-names = "default", "opendrain", "sleep";
295         pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
296         pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
297         pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
298         broken-cd;
299         st,sig-dir;
300         st,neg-edge;
301         st,use-ckin;
302         bus-width = <4>;
303         vmmc-supply = <&vdd_sd>;
304         vqmmc-supply = <&sd_switch>;
305         status = "okay";
306 };
307
308 &timers6 {
309         status = "okay";
310         /* spare dmas for other usage */
311         /delete-property/dmas;
312         /delete-property/dma-names;
313         timer@5 {
314                 status = "okay";
315         };
316 };
317
318 &uart4 {
319         pinctrl-names = "default";
320         pinctrl-0 = <&uart4_pins_a>;
321         status = "okay";
322 };
323
324 &usbphyc_port0 {
325         phy-supply = <&vdd_usb>;
326         vdda1v1-supply = <&reg11>;
327         vdda1v8-supply = <&reg18>;
328 };
329
330 &usbphyc_port1 {
331         phy-supply = <&vdd_usb>;
332         vdda1v1-supply = <&reg11>;
333         vdda1v8-supply = <&reg18>;
334 };