Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[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 &crc1 {
96         status = "okay";
97 };
98
99 &dac {
100         pinctrl-names = "default";
101         pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
102         vref-supply = <&vdda>;
103         status = "okay";
104
105         dac1: dac@1 {
106                 status = "okay";
107         };
108         dac2: dac@2 {
109                 status = "okay";
110         };
111 };
112
113 &dts {
114         status = "okay";
115 };
116
117 &ethernet0 {
118         status = "okay";
119         pinctrl-0 = <&ethernet0_rmii_pins_a>;
120         pinctrl-1 = <&ethernet0_rmii_sleep_pins_a>;
121         pinctrl-names = "default", "sleep";
122         phy-mode = "rmii";
123         max-speed = <100>;
124         phy-handle = <&phy0>;
125         st,eth-ref-clk-sel;
126         phy-reset-gpios = <&gpioh 3 GPIO_ACTIVE_LOW>;
127
128         mdio0 {
129                 #address-cells = <1>;
130                 #size-cells = <0>;
131                 compatible = "snps,dwmac-mdio";
132
133                 phy0: ethernet-phy@1 {
134                         reg = <1>;
135                         interrupt-parent = <&gpioi>;
136                         interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
137                 };
138         };
139 };
140
141 &fmc {
142         pinctrl-names = "default", "sleep";
143         pinctrl-0 = <&fmc_pins_b>;
144         pinctrl-1 = <&fmc_sleep_pins_b>;
145         status = "okay";
146
147         ksz8851: ks8851mll@1,0 {
148                 compatible = "micrel,ks8851-mll";
149                 reg = <1 0x0 0x2>, <1 0x2 0x20000>;
150                 interrupt-parent = <&gpioc>;
151                 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
152                 bank-width = <2>;
153
154                 /* Timing values are in nS */
155                 st,fmc2-ebi-cs-mux-enable;
156                 st,fmc2-ebi-cs-transaction-type = <4>;
157                 st,fmc2-ebi-cs-buswidth = <16>;
158                 st,fmc2-ebi-cs-address-setup-ns = <5>;
159                 st,fmc2-ebi-cs-address-hold-ns = <5>;
160                 st,fmc2-ebi-cs-bus-turnaround-ns = <5>;
161                 st,fmc2-ebi-cs-data-setup-ns = <45>;
162                 st,fmc2-ebi-cs-data-hold-ns = <1>;
163                 st,fmc2-ebi-cs-write-address-setup-ns = <5>;
164                 st,fmc2-ebi-cs-write-address-hold-ns = <5>;
165                 st,fmc2-ebi-cs-write-bus-turnaround-ns = <5>;
166                 st,fmc2-ebi-cs-write-data-setup-ns = <45>;
167                 st,fmc2-ebi-cs-write-data-hold-ns = <1>;
168         };
169 };
170
171 &gpioa {
172         gpio-line-names = "", "", "", "",
173                           "", "", "DHCOM-K", "",
174                           "", "", "", "",
175                           "", "", "", "";
176 };
177
178 &gpiob {
179         gpio-line-names = "", "", "", "",
180                           "", "", "", "",
181                           "DHCOM-Q", "", "", "",
182                           "", "", "", "";
183 };
184
185 &gpioc {
186         gpio-line-names = "", "", "", "",
187                           "", "", "DHCOM-E", "",
188                           "", "", "", "",
189                           "", "", "", "";
190         status = "okay";
191 };
192
193 &gpiod {
194         gpio-line-names = "", "", "", "",
195                           "", "", "DHCOM-B", "",
196                           "", "", "", "DHCOM-F",
197                           "DHCOM-D", "", "", "";
198 };
199
200 &gpioe {
201         gpio-line-names = "", "", "", "",
202                           "", "", "DHCOM-P", "",
203                           "", "", "", "",
204                           "", "", "", "";
205 };
206
207 &gpiof {
208         gpio-line-names = "", "", "", "DHCOM-A",
209                           "", "", "", "",
210                           "", "", "", "",
211                           "", "", "", "";
212 };
213
214 &gpiog {
215         gpio-line-names = "DHCOM-C", "", "", "",
216                           "", "", "", "",
217                           "DHCOM-L", "", "", "",
218                           "", "", "", "";
219 };
220
221 &gpioh {
222         gpio-line-names = "", "", "", "",
223                           "", "", "", "DHCOM-N",
224                           "DHCOM-J", "DHCOM-W", "DHCOM-V", "DHCOM-U",
225                           "DHCOM-T", "", "DHCOM-S", "";
226 };
227
228 &gpioi {
229         gpio-line-names = "DHCOM-G", "DHCOM-O", "DHCOM-H", "DHCOM-I",
230                           "DHCOM-R", "DHCOM-M", "", "",
231                           "", "", "", "",
232                           "", "", "", "";
233 };
234
235 &i2c4 {
236         pinctrl-names = "default";
237         pinctrl-0 = <&i2c4_pins_a>;
238         i2c-scl-rising-time-ns = <185>;
239         i2c-scl-falling-time-ns = <20>;
240         status = "okay";
241         /* spare dmas for other usage */
242         /delete-property/dmas;
243         /delete-property/dma-names;
244
245         rtc@32 {
246                 compatible = "microcrystal,rv8803";
247                 reg = <0x32>;
248         };
249
250         pmic: stpmic@33 {
251                 compatible = "st,stpmic1";
252                 reg = <0x33>;
253                 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
254                 interrupt-controller;
255                 #interrupt-cells = <2>;
256                 status = "okay";
257
258                 regulators {
259                         compatible = "st,stpmic1-regulators";
260                         ldo1-supply = <&v3v3>;
261                         ldo2-supply = <&v3v3>;
262                         ldo3-supply = <&vdd_ddr>;
263                         ldo5-supply = <&v3v3>;
264                         ldo6-supply = <&v3v3>;
265                         pwr_sw1-supply = <&bst_out>;
266                         pwr_sw2-supply = <&bst_out>;
267
268                         vddcore: buck1 {
269                                 regulator-name = "vddcore";
270                                 regulator-min-microvolt = <800000>;
271                                 regulator-max-microvolt = <1350000>;
272                                 regulator-always-on;
273                                 regulator-initial-mode = <0>;
274                                 regulator-over-current-protection;
275                         };
276
277                         vdd_ddr: buck2 {
278                                 regulator-name = "vdd_ddr";
279                                 regulator-min-microvolt = <1350000>;
280                                 regulator-max-microvolt = <1350000>;
281                                 regulator-always-on;
282                                 regulator-initial-mode = <0>;
283                                 regulator-over-current-protection;
284                         };
285
286                         vdd: buck3 {
287                                 regulator-name = "vdd";
288                                 regulator-min-microvolt = <3300000>;
289                                 regulator-max-microvolt = <3300000>;
290                                 regulator-always-on;
291                                 st,mask-reset;
292                                 regulator-initial-mode = <0>;
293                                 regulator-over-current-protection;
294                         };
295
296                         v3v3: buck4 {
297                                 regulator-name = "v3v3";
298                                 regulator-min-microvolt = <3300000>;
299                                 regulator-max-microvolt = <3300000>;
300                                 regulator-always-on;
301                                 regulator-over-current-protection;
302                                 regulator-initial-mode = <0>;
303                         };
304
305                         vdda: ldo1 {
306                                 regulator-name = "vdda";
307                                 regulator-always-on;
308                                 regulator-min-microvolt = <2900000>;
309                                 regulator-max-microvolt = <2900000>;
310                                 interrupts = <IT_CURLIM_LDO1 0>;
311                         };
312
313                         v2v8: ldo2 {
314                                 regulator-name = "v2v8";
315                                 regulator-min-microvolt = <2800000>;
316                                 regulator-max-microvolt = <2800000>;
317                                 interrupts = <IT_CURLIM_LDO2 0>;
318                         };
319
320                         vtt_ddr: ldo3 {
321                                 regulator-name = "vtt_ddr";
322                                 regulator-min-microvolt = <500000>;
323                                 regulator-max-microvolt = <750000>;
324                                 regulator-always-on;
325                                 regulator-over-current-protection;
326                         };
327
328                         vdd_usb: ldo4 {
329                                 regulator-name = "vdd_usb";
330                                 regulator-min-microvolt = <3300000>;
331                                 regulator-max-microvolt = <3300000>;
332                                 interrupts = <IT_CURLIM_LDO4 0>;
333                         };
334
335                         vdd_sd: ldo5 {
336                                 regulator-name = "vdd_sd";
337                                 regulator-min-microvolt = <2900000>;
338                                 regulator-max-microvolt = <2900000>;
339                                 interrupts = <IT_CURLIM_LDO5 0>;
340                                 regulator-boot-on;
341                         };
342
343                         v1v8: ldo6 {
344                                 regulator-name = "v1v8";
345                                 regulator-min-microvolt = <1800000>;
346                                 regulator-max-microvolt = <1800000>;
347                                 interrupts = <IT_CURLIM_LDO6 0>;
348                         };
349
350                         vref_ddr: vref_ddr {
351                                 regulator-name = "vref_ddr";
352                                 regulator-always-on;
353                                 regulator-over-current-protection;
354                         };
355
356                         bst_out: boost {
357                                 regulator-name = "bst_out";
358                                 interrupts = <IT_OCP_BOOST 0>;
359                         };
360
361                         vbus_otg: pwr_sw1 {
362                                 regulator-name = "vbus_otg";
363                                 interrupts = <IT_OCP_OTG 0>;
364                         };
365
366                         vbus_sw: pwr_sw2 {
367                                 regulator-name = "vbus_sw";
368                                 interrupts = <IT_OCP_SWOUT 0>;
369                                 regulator-active-discharge;
370                         };
371                 };
372
373                 onkey {
374                         compatible = "st,stpmic1-onkey";
375                         interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
376                         interrupt-names = "onkey-falling", "onkey-rising";
377                         power-off-time-sec = <10>;
378                         status = "okay";
379                 };
380
381                 watchdog {
382                         compatible = "st,stpmic1-wdt";
383                         status = "disabled";
384                 };
385         };
386
387         touchscreen@49 {
388                 compatible = "ti,tsc2004";
389                 reg = <0x49>;
390                 vio-supply = <&v3v3>;
391                 interrupts-extended = <&gpioh 15 IRQ_TYPE_EDGE_FALLING>;
392         };
393
394         eeprom@50 {
395                 compatible = "atmel,24c02";
396                 reg = <0x50>;
397                 pagesize = <16>;
398         };
399 };
400
401 &ipcc {
402         status = "okay";
403 };
404
405 &iwdg2 {
406         timeout-sec = <32>;
407         status = "okay";
408 };
409
410 &m4_rproc {
411         memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
412                         <&vdev0vring1>, <&vdev0buffer>;
413         mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
414         mbox-names = "vq0", "vq1", "shutdown";
415         interrupt-parent = <&exti>;
416         interrupts = <68 1>;
417         status = "okay";
418 };
419
420 &pwr_regulators {
421         vdd-supply = <&vdd>;
422         vdd_3v3_usbfs-supply = <&vdd_usb>;
423 };
424
425 &qspi {
426         pinctrl-names = "default", "sleep";
427         pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
428         pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
429         reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
430         #address-cells = <1>;
431         #size-cells = <0>;
432         status = "okay";
433
434         flash0: mx66l51235l@0 {
435                 compatible = "jedec,spi-nor";
436                 reg = <0>;
437                 spi-rx-bus-width = <4>;
438                 spi-max-frequency = <108000000>;
439                 #address-cells = <1>;
440                 #size-cells = <1>;
441         };
442 };
443
444 &rng1 {
445         status = "okay";
446 };
447
448 &rtc {
449         status = "okay";
450 };
451
452 &sdmmc1 {
453         pinctrl-names = "default", "opendrain", "sleep", "init";
454         pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
455         pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
456         pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
457         pinctrl-3 = <&sdmmc1_b4_init_pins_a &sdmmc1_dir_init_pins_a>;
458         cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
459         disable-wp;
460         st,sig-dir;
461         st,neg-edge;
462         st,use-ckin;
463         st,cmd-gpios = <&gpiod 2 0>;
464         st,ck-gpios = <&gpioc 12 0>;
465         st,ckin-gpios = <&gpioe 4 0>;
466         bus-width = <4>;
467         vmmc-supply = <&vdd_sd>;
468         status = "okay";
469 };
470
471 &sdmmc1_b4_pins_a {
472         /*
473          * SD bus pull-up resistors:
474          * - optional on SoMs with SD voltage translator
475          * - mandatory on SoMs without SD voltage translator
476          */
477         pins1 {
478                 bias-pull-up;
479         };
480         pins2 {
481                 bias-pull-up;
482         };
483 };
484
485 &sdmmc2 {
486         pinctrl-names = "default", "opendrain", "sleep";
487         pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
488         pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
489         pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
490         non-removable;
491         no-sd;
492         no-sdio;
493         st,neg-edge;
494         bus-width = <8>;
495         vmmc-supply = <&v3v3>;
496         vqmmc-supply = <&v3v3>;
497         mmc-ddr-3_3v;
498         status = "okay";
499 };
500
501 &sdmmc3 {
502         pinctrl-names = "default", "opendrain", "sleep";
503         pinctrl-0 = <&sdmmc3_b4_pins_a>;
504         pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
505         pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
506         broken-cd;
507         st,neg-edge;
508         bus-width = <4>;
509         vmmc-supply = <&v3v3>;
510         vqmmc-supply = <&v3v3>;
511         mmc-ddr-3_3v;
512         status = "okay";
513 };
514
515 &uart4 {
516         pinctrl-names = "default";
517         pinctrl-0 = <&uart4_pins_a>;
518         status = "okay";
519 };