]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - src/arm/stm32mp15xx-dhcom-som.dtsi
Import DTS from Linux 5.8
[FreeBSD/FreeBSD.git] / src / arm / stm32mp15xx-dhcom-som.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2 /*
3  * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de>
4  */
5
6 #include "stm32mp15-pinctrl.dtsi"
7 #include "stm32mp15xxaa-pinctrl.dtsi"
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/mfd/st,stpmic1.h>
10
11 / {
12         memory@c0000000 {
13                 device_type = "memory";
14                 reg = <0xC0000000 0x40000000>;
15         };
16
17         reserved-memory {
18                 #address-cells = <1>;
19                 #size-cells = <1>;
20                 ranges;
21
22                 mcuram2: mcuram2@10000000 {
23                         compatible = "shared-dma-pool";
24                         reg = <0x10000000 0x40000>;
25                         no-map;
26                 };
27
28                 vdev0vring0: vdev0vring0@10040000 {
29                         compatible = "shared-dma-pool";
30                         reg = <0x10040000 0x1000>;
31                         no-map;
32                 };
33
34                 vdev0vring1: vdev0vring1@10041000 {
35                         compatible = "shared-dma-pool";
36                         reg = <0x10041000 0x1000>;
37                         no-map;
38                 };
39
40                 vdev0buffer: vdev0buffer@10042000 {
41                         compatible = "shared-dma-pool";
42                         reg = <0x10042000 0x4000>;
43                         no-map;
44                 };
45
46                 mcuram: mcuram@30000000 {
47                         compatible = "shared-dma-pool";
48                         reg = <0x30000000 0x40000>;
49                         no-map;
50                 };
51
52                 retram: retram@38000000 {
53                         compatible = "shared-dma-pool";
54                         reg = <0x38000000 0x10000>;
55                         no-map;
56                 };
57         };
58 };
59
60 &adc {
61         vdd-supply = <&vdd>;
62         vdda-supply = <&vdda>;
63         vref-supply = <&vdda>;
64         status = "okay";
65
66         adc1: adc@0 {
67                 st,min-sample-time-nsecs = <5000>;
68                 st,adc-channels = <0>;
69                 status = "okay";
70         };
71
72         adc2: adc@100 {
73                 st,adc-channels = <1>;
74                 st,min-sample-time-nsecs = <5000>;
75                 status = "okay";
76         };
77 };
78
79 &dac {
80         pinctrl-names = "default";
81         pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
82         vref-supply = <&vdda>;
83         status = "okay";
84
85         dac1: dac@1 {
86                 status = "okay";
87         };
88         dac2: dac@2 {
89                 status = "okay";
90         };
91 };
92
93 &dts {
94         status = "okay";
95 };
96
97 &i2c4 {
98         pinctrl-names = "default";
99         pinctrl-0 = <&i2c4_pins_a>;
100         i2c-scl-rising-time-ns = <185>;
101         i2c-scl-falling-time-ns = <20>;
102         status = "okay";
103         /* spare dmas for other usage */
104         /delete-property/dmas;
105         /delete-property/dma-names;
106
107         rtc@32 {
108                 compatible = "microcrystal,rv8803";
109                 reg = <0x32>;
110         };
111
112         pmic: stpmic@33 {
113                 compatible = "st,stpmic1";
114                 reg = <0x33>;
115                 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
116                 interrupt-controller;
117                 #interrupt-cells = <2>;
118                 status = "okay";
119
120                 regulators {
121                         compatible = "st,stpmic1-regulators";
122                         ldo1-supply = <&v3v3>;
123                         ldo2-supply = <&v3v3>;
124                         ldo3-supply = <&vdd_ddr>;
125                         ldo5-supply = <&v3v3>;
126                         ldo6-supply = <&v3v3>;
127                         pwr_sw1-supply = <&bst_out>;
128                         pwr_sw2-supply = <&bst_out>;
129
130                         vddcore: buck1 {
131                                 regulator-name = "vddcore";
132                                 regulator-min-microvolt = <800000>;
133                                 regulator-max-microvolt = <1350000>;
134                                 regulator-always-on;
135                                 regulator-initial-mode = <0>;
136                                 regulator-over-current-protection;
137                         };
138
139                         vdd_ddr: buck2 {
140                                 regulator-name = "vdd_ddr";
141                                 regulator-min-microvolt = <1350000>;
142                                 regulator-max-microvolt = <1350000>;
143                                 regulator-always-on;
144                                 regulator-initial-mode = <0>;
145                                 regulator-over-current-protection;
146                         };
147
148                         vdd: buck3 {
149                                 regulator-name = "vdd";
150                                 regulator-min-microvolt = <3300000>;
151                                 regulator-max-microvolt = <3300000>;
152                                 regulator-always-on;
153                                 st,mask-reset;
154                                 regulator-initial-mode = <0>;
155                                 regulator-over-current-protection;
156                         };
157
158                         v3v3: buck4 {
159                                 regulator-name = "v3v3";
160                                 regulator-min-microvolt = <3300000>;
161                                 regulator-max-microvolt = <3300000>;
162                                 regulator-always-on;
163                                 regulator-over-current-protection;
164                                 regulator-initial-mode = <0>;
165                         };
166
167                         vdda: ldo1 {
168                                 regulator-name = "vdda";
169                                 regulator-min-microvolt = <2900000>;
170                                 regulator-max-microvolt = <2900000>;
171                                 interrupts = <IT_CURLIM_LDO1 0>;
172                         };
173
174                         v2v8: ldo2 {
175                                 regulator-name = "v2v8";
176                                 regulator-min-microvolt = <2800000>;
177                                 regulator-max-microvolt = <2800000>;
178                                 interrupts = <IT_CURLIM_LDO2 0>;
179                         };
180
181                         vtt_ddr: ldo3 {
182                                 regulator-name = "vtt_ddr";
183                                 regulator-min-microvolt = <500000>;
184                                 regulator-max-microvolt = <750000>;
185                                 regulator-always-on;
186                                 regulator-over-current-protection;
187                         };
188
189                         vdd_usb: ldo4 {
190                                 regulator-name = "vdd_usb";
191                                 regulator-min-microvolt = <3300000>;
192                                 regulator-max-microvolt = <3300000>;
193                                 interrupts = <IT_CURLIM_LDO4 0>;
194                         };
195
196                         vdd_sd: ldo5 {
197                                 regulator-name = "vdd_sd";
198                                 regulator-min-microvolt = <2900000>;
199                                 regulator-max-microvolt = <2900000>;
200                                 interrupts = <IT_CURLIM_LDO5 0>;
201                                 regulator-boot-on;
202                         };
203
204                         v1v8: ldo6 {
205                                 regulator-name = "v1v8";
206                                 regulator-min-microvolt = <1800000>;
207                                 regulator-max-microvolt = <1800000>;
208                                 interrupts = <IT_CURLIM_LDO6 0>;
209                         };
210
211                         vref_ddr: vref_ddr {
212                                 regulator-name = "vref_ddr";
213                                 regulator-always-on;
214                                 regulator-over-current-protection;
215                         };
216
217                         bst_out: boost {
218                                 regulator-name = "bst_out";
219                                 interrupts = <IT_OCP_BOOST 0>;
220                         };
221
222                         vbus_otg: pwr_sw1 {
223                                 regulator-name = "vbus_otg";
224                                 interrupts = <IT_OCP_OTG 0>;
225                         };
226
227                         vbus_sw: pwr_sw2 {
228                                 regulator-name = "vbus_sw";
229                                 interrupts = <IT_OCP_SWOUT 0>;
230                                 regulator-active-discharge;
231                         };
232                 };
233
234                 onkey {
235                         compatible = "st,stpmic1-onkey";
236                         interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
237                         interrupt-names = "onkey-falling", "onkey-rising";
238                         power-off-time-sec = <10>;
239                         status = "okay";
240                 };
241
242                 watchdog {
243                         compatible = "st,stpmic1-wdt";
244                         status = "disabled";
245                 };
246         };
247
248         touchscreen@49 {
249                 compatible = "ti,tsc2004";
250                 reg = <0x49>;
251                 vio-supply = <&v3v3>;
252                 interrupts-extended = <&gpioh 3 IRQ_TYPE_EDGE_FALLING>;
253         };
254
255         eeprom@50 {
256                 compatible = "atmel,24c02";
257                 reg = <0x50>;
258                 pagesize = <16>;
259         };
260 };
261
262 &ipcc {
263         status = "okay";
264 };
265
266 &iwdg2 {
267         timeout-sec = <32>;
268         status = "okay";
269 };
270
271 &m4_rproc {
272         memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
273                         <&vdev0vring1>, <&vdev0buffer>;
274         mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
275         mbox-names = "vq0", "vq1", "shutdown";
276         interrupt-parent = <&exti>;
277         interrupts = <68 1>;
278         status = "okay";
279 };
280
281 &pwr_regulators {
282         vdd-supply = <&vdd>;
283         vdd_3v3_usbfs-supply = <&vdd_usb>;
284 };
285
286 &qspi {
287         pinctrl-names = "default", "sleep";
288         pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>;
289         pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>;
290         reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
291         #address-cells = <1>;
292         #size-cells = <0>;
293         status = "okay";
294
295         flash0: mx66l51235l@0 {
296                 compatible = "jedec,spi-nor";
297                 reg = <0>;
298                 spi-rx-bus-width = <4>;
299                 spi-max-frequency = <108000000>;
300                 #address-cells = <1>;
301                 #size-cells = <1>;
302         };
303 };
304
305 &rng1 {
306         status = "okay";
307 };
308
309 &rtc {
310         status = "okay";
311 };
312
313 &sdmmc1 {
314         pinctrl-names = "default", "opendrain", "sleep";
315         pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
316         pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
317         pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
318         broken-cd;
319         st,sig-dir;
320         st,neg-edge;
321         st,use-ckin;
322         bus-width = <4>;
323         vmmc-supply = <&vdd_sd>;
324         status = "okay";
325 };
326
327 &sdmmc2 {
328         pinctrl-names = "default", "opendrain", "sleep";
329         pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
330         pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
331         pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
332         non-removable;
333         no-sd;
334         no-sdio;
335         st,neg-edge;
336         bus-width = <8>;
337         vmmc-supply = <&v3v3>;
338         vqmmc-supply = <&v3v3>;
339         mmc-ddr-3_3v;
340         status = "okay";
341 };
342
343 &sdmmc3 {
344         pinctrl-names = "default", "opendrain", "sleep";
345         pinctrl-0 = <&sdmmc3_b4_pins_a>;
346         pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
347         pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
348         broken-cd;
349         st,neg-edge;
350         bus-width = <4>;
351         vmmc-supply = <&v3v3>;
352         vqmmc-supply = <&v3v3>;
353         mmc-ddr-3_3v;
354         status = "okay";
355 };
356
357 &uart4 {
358         pinctrl-names = "default";
359         pinctrl-0 = <&uart4_pins_a>;
360         status = "okay";
361 };