Merge tag 'docs-5.11-2' of git://git.lwn.net/linux
[linux-2.6-microblaze.git] / arch / arm / boot / dts / 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         aliases {
13                 ethernet0 = &ethernet0;
14                 ethernet1 = &ksz8851;
15         };
16
17         memory@c0000000 {
18                 device_type = "memory";
19                 reg = <0xC0000000 0x40000000>;
20         };
21
22         reserved-memory {
23                 #address-cells = <1>;
24                 #size-cells = <1>;
25                 ranges;
26
27                 mcuram2: mcuram2@10000000 {
28                         compatible = "shared-dma-pool";
29                         reg = <0x10000000 0x40000>;
30                         no-map;
31                 };
32
33                 vdev0vring0: vdev0vring0@10040000 {
34                         compatible = "shared-dma-pool";
35                         reg = <0x10040000 0x1000>;
36                         no-map;
37                 };
38
39                 vdev0vring1: vdev0vring1@10041000 {
40                         compatible = "shared-dma-pool";
41                         reg = <0x10041000 0x1000>;
42                         no-map;
43                 };
44
45                 vdev0buffer: vdev0buffer@10042000 {
46                         compatible = "shared-dma-pool";
47                         reg = <0x10042000 0x4000>;
48                         no-map;
49                 };
50
51                 mcuram: mcuram@30000000 {
52                         compatible = "shared-dma-pool";
53                         reg = <0x30000000 0x40000>;
54                         no-map;
55                 };
56
57                 retram: retram@38000000 {
58                         compatible = "shared-dma-pool";
59                         reg = <0x38000000 0x10000>;
60                         no-map;
61                 };
62         };
63
64         ethernet_vio: vioregulator {
65                 compatible = "regulator-fixed";
66                 regulator-name = "vio";
67                 regulator-min-microvolt = <3300000>;
68                 regulator-max-microvolt = <3300000>;
69                 gpio = <&gpiog 3 GPIO_ACTIVE_LOW>;
70                 regulator-always-on;
71                 regulator-boot-on;
72                 vin-supply = <&vdd>;
73         };
74 };
75
76 &adc {
77         vdd-supply = <&vdd>;
78         vdda-supply = <&vdda>;
79         vref-supply = <&vdda>;
80         status = "okay";
81
82         adc1: adc@0 {
83                 st,min-sample-time-nsecs = <5000>;
84                 st,adc-channels = <0>;
85                 status = "okay";
86         };
87
88         adc2: adc@100 {
89                 st,adc-channels = <1>;
90                 st,min-sample-time-nsecs = <5000>;
91                 status = "okay";
92         };
93 };
94
95 &dac {
96         pinctrl-names = "default";
97         pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
98         vref-supply = <&vdda>;
99         status = "okay";
100
101         dac1: dac@1 {
102                 status = "okay";
103         };
104         dac2: dac@2 {
105                 status = "okay";
106         };
107 };
108
109 &dts {
110         status = "okay";
111 };
112
113 &ethernet0 {
114         status = "okay";
115         pinctrl-0 = <&ethernet0_rmii_pins_a>;
116         pinctrl-1 = <&ethernet0_rmii_sleep_pins_a>;
117         pinctrl-names = "default", "sleep";
118         phy-mode = "rmii";
119         max-speed = <100>;
120         phy-handle = <&phy0>;
121         st,eth-ref-clk-sel;
122         phy-reset-gpios = <&gpioh 3 GPIO_ACTIVE_LOW>;
123
124         mdio0 {
125                 #address-cells = <1>;
126                 #size-cells = <0>;
127                 compatible = "snps,dwmac-mdio";
128
129                 phy0: ethernet-phy@1 {
130                         reg = <1>;
131                         interrupt-parent = <&gpioi>;
132                         interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
133                 };
134         };
135 };
136
137 &fmc {
138         pinctrl-names = "default", "sleep";
139         pinctrl-0 = <&fmc_pins_b>;
140         pinctrl-1 = <&fmc_sleep_pins_b>;
141         status = "okay";
142
143         ksz8851: ks8851mll@1,0 {
144                 compatible = "micrel,ks8851-mll";
145                 reg = <1 0x0 0x2>, <1 0x2 0x20000>;
146                 interrupt-parent = <&gpioc>;
147                 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
148                 bank-width = <2>;
149
150                 /* Timing values are in nS */
151                 st,fmc2-ebi-cs-mux-enable;
152                 st,fmc2-ebi-cs-transaction-type = <4>;
153                 st,fmc2-ebi-cs-buswidth = <16>;
154                 st,fmc2-ebi-cs-address-setup-ns = <5>;
155                 st,fmc2-ebi-cs-address-hold-ns = <5>;
156                 st,fmc2-ebi-cs-bus-turnaround-ns = <5>;
157                 st,fmc2-ebi-cs-data-setup-ns = <45>;
158                 st,fmc2-ebi-cs-data-hold-ns = <1>;
159                 st,fmc2-ebi-cs-write-address-setup-ns = <5>;
160                 st,fmc2-ebi-cs-write-address-hold-ns = <5>;
161                 st,fmc2-ebi-cs-write-bus-turnaround-ns = <5>;
162                 st,fmc2-ebi-cs-write-data-setup-ns = <45>;
163                 st,fmc2-ebi-cs-write-data-hold-ns = <1>;
164         };
165 };
166
167 &gpioc {
168         status = "okay";
169 };
170
171 &i2c4 {
172         pinctrl-names = "default";
173         pinctrl-0 = <&i2c4_pins_a>;
174         i2c-scl-rising-time-ns = <185>;
175         i2c-scl-falling-time-ns = <20>;
176         status = "okay";
177         /* spare dmas for other usage */
178         /delete-property/dmas;
179         /delete-property/dma-names;
180
181         rtc@32 {
182                 compatible = "microcrystal,rv8803";
183                 reg = <0x32>;
184         };
185
186         pmic: stpmic@33 {
187                 compatible = "st,stpmic1";
188                 reg = <0x33>;
189                 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
190                 interrupt-controller;
191                 #interrupt-cells = <2>;
192                 status = "okay";
193
194                 regulators {
195                         compatible = "st,stpmic1-regulators";
196                         ldo1-supply = <&v3v3>;
197                         ldo2-supply = <&v3v3>;
198                         ldo3-supply = <&vdd_ddr>;
199                         ldo5-supply = <&v3v3>;
200                         ldo6-supply = <&v3v3>;
201                         pwr_sw1-supply = <&bst_out>;
202                         pwr_sw2-supply = <&bst_out>;
203
204                         vddcore: buck1 {
205                                 regulator-name = "vddcore";
206                                 regulator-min-microvolt = <800000>;
207                                 regulator-max-microvolt = <1350000>;
208                                 regulator-always-on;
209                                 regulator-initial-mode = <0>;
210                                 regulator-over-current-protection;
211                         };
212
213                         vdd_ddr: buck2 {
214                                 regulator-name = "vdd_ddr";
215                                 regulator-min-microvolt = <1350000>;
216                                 regulator-max-microvolt = <1350000>;
217                                 regulator-always-on;
218                                 regulator-initial-mode = <0>;
219                                 regulator-over-current-protection;
220                         };
221
222                         vdd: buck3 {
223                                 regulator-name = "vdd";
224                                 regulator-min-microvolt = <3300000>;
225                                 regulator-max-microvolt = <3300000>;
226                                 regulator-always-on;
227                                 st,mask-reset;
228                                 regulator-initial-mode = <0>;
229                                 regulator-over-current-protection;
230                         };
231
232                         v3v3: buck4 {
233                                 regulator-name = "v3v3";
234                                 regulator-min-microvolt = <3300000>;
235                                 regulator-max-microvolt = <3300000>;
236                                 regulator-always-on;
237                                 regulator-over-current-protection;
238                                 regulator-initial-mode = <0>;
239                         };
240
241                         vdda: ldo1 {
242                                 regulator-name = "vdda";
243                                 regulator-always-on;
244                                 regulator-min-microvolt = <2900000>;
245                                 regulator-max-microvolt = <2900000>;
246                                 interrupts = <IT_CURLIM_LDO1 0>;
247                         };
248
249                         v2v8: ldo2 {
250                                 regulator-name = "v2v8";
251                                 regulator-min-microvolt = <2800000>;
252                                 regulator-max-microvolt = <2800000>;
253                                 interrupts = <IT_CURLIM_LDO2 0>;
254                         };
255
256                         vtt_ddr: ldo3 {
257                                 regulator-name = "vtt_ddr";
258                                 regulator-min-microvolt = <500000>;
259                                 regulator-max-microvolt = <750000>;
260                                 regulator-always-on;
261                                 regulator-over-current-protection;
262                         };
263
264                         vdd_usb: ldo4 {
265                                 regulator-name = "vdd_usb";
266                                 regulator-min-microvolt = <3300000>;
267                                 regulator-max-microvolt = <3300000>;
268                                 interrupts = <IT_CURLIM_LDO4 0>;
269                         };
270
271                         vdd_sd: ldo5 {
272                                 regulator-name = "vdd_sd";
273                                 regulator-min-microvolt = <2900000>;
274                                 regulator-max-microvolt = <2900000>;
275                                 interrupts = <IT_CURLIM_LDO5 0>;
276                                 regulator-boot-on;
277                         };
278
279                         v1v8: ldo6 {
280                                 regulator-name = "v1v8";
281                                 regulator-min-microvolt = <1800000>;
282                                 regulator-max-microvolt = <1800000>;
283                                 interrupts = <IT_CURLIM_LDO6 0>;
284                         };
285
286                         vref_ddr: vref_ddr {
287                                 regulator-name = "vref_ddr";
288                                 regulator-always-on;
289                                 regulator-over-current-protection;
290                         };
291
292                         bst_out: boost {
293                                 regulator-name = "bst_out";
294                                 interrupts = <IT_OCP_BOOST 0>;
295                         };
296
297                         vbus_otg: pwr_sw1 {
298                                 regulator-name = "vbus_otg";
299                                 interrupts = <IT_OCP_OTG 0>;
300                         };
301
302                         vbus_sw: pwr_sw2 {
303                                 regulator-name = "vbus_sw";
304                                 interrupts = <IT_OCP_SWOUT 0>;
305                                 regulator-active-discharge;
306                         };
307                 };
308
309                 onkey {
310                         compatible = "st,stpmic1-onkey";
311                         interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
312                         interrupt-names = "onkey-falling", "onkey-rising";
313                         power-off-time-sec = <10>;
314                         status = "okay";
315                 };
316
317                 watchdog {
318                         compatible = "st,stpmic1-wdt";
319                         status = "disabled";
320                 };
321         };
322
323         touchscreen@49 {
324                 compatible = "ti,tsc2004";
325                 reg = <0x49>;
326                 vio-supply = <&v3v3>;
327                 interrupts-extended = <&gpioh 15 IRQ_TYPE_EDGE_FALLING>;
328         };
329
330         eeprom@50 {
331                 compatible = "atmel,24c02";
332                 reg = <0x50>;
333                 pagesize = <16>;
334         };
335 };
336
337 &ipcc {
338         status = "okay";
339 };
340
341 &iwdg2 {
342         timeout-sec = <32>;
343         status = "okay";
344 };
345
346 &m4_rproc {
347         memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
348                         <&vdev0vring1>, <&vdev0buffer>;
349         mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
350         mbox-names = "vq0", "vq1", "shutdown";
351         interrupt-parent = <&exti>;
352         interrupts = <68 1>;
353         status = "okay";
354 };
355
356 &pwr_regulators {
357         vdd-supply = <&vdd>;
358         vdd_3v3_usbfs-supply = <&vdd_usb>;
359 };
360
361 &qspi {
362         pinctrl-names = "default", "sleep";
363         pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
364         pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
365         reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
366         #address-cells = <1>;
367         #size-cells = <0>;
368         status = "okay";
369
370         flash0: mx66l51235l@0 {
371                 compatible = "jedec,spi-nor";
372                 reg = <0>;
373                 spi-rx-bus-width = <4>;
374                 spi-max-frequency = <108000000>;
375                 #address-cells = <1>;
376                 #size-cells = <1>;
377         };
378 };
379
380 &rng1 {
381         status = "okay";
382 };
383
384 &rtc {
385         status = "okay";
386 };
387
388 &sdmmc1 {
389         pinctrl-names = "default", "opendrain", "sleep";
390         pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
391         pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
392         pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
393         broken-cd;
394         st,sig-dir;
395         st,neg-edge;
396         st,use-ckin;
397         bus-width = <4>;
398         vmmc-supply = <&vdd_sd>;
399         status = "okay";
400 };
401
402 &sdmmc2 {
403         pinctrl-names = "default", "opendrain", "sleep";
404         pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
405         pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
406         pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
407         non-removable;
408         no-sd;
409         no-sdio;
410         st,neg-edge;
411         bus-width = <8>;
412         vmmc-supply = <&v3v3>;
413         vqmmc-supply = <&v3v3>;
414         mmc-ddr-3_3v;
415         status = "okay";
416 };
417
418 &sdmmc3 {
419         pinctrl-names = "default", "opendrain", "sleep";
420         pinctrl-0 = <&sdmmc3_b4_pins_a>;
421         pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
422         pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
423         broken-cd;
424         st,neg-edge;
425         bus-width = <4>;
426         vmmc-supply = <&v3v3>;
427         vqmmc-supply = <&v3v3>;
428         mmc-ddr-3_3v;
429         status = "okay";
430 };
431
432 &uart4 {
433         pinctrl-names = "default";
434         pinctrl-0 = <&uart4_pins_a>;
435         status = "okay";
436 };