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 / stm32mp157c-odyssey-som.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2 /*
3  * Copyright (C) 2020 Marcin Sloniewski <marcin.sloniewski@gmail.com>.
4  */
5
6 /dts-v1/;
7
8 #include "stm32mp157.dtsi"
9 #include "stm32mp15xc.dtsi"
10 #include "stm32mp15-pinctrl.dtsi"
11 #include "stm32mp15xxac-pinctrl.dtsi"
12 #include <dt-bindings/gpio/gpio.h>
13 #include <dt-bindings/leds/common.h>
14 #include <dt-bindings/mfd/st,stpmic1.h>
15
16 / {
17         model = "Seeed Studio Odyssey-STM32MP157C SOM";
18         compatible = "seeed,stm32mp157c-odyssey-som", "st,stm32mp157";
19
20         memory@c0000000 {
21                 device_type = "memory";
22                 reg = <0xc0000000 0x20000000>;
23         };
24
25         reserved-memory {
26                 #address-cells = <1>;
27                 #size-cells = <1>;
28                 ranges;
29
30                 mcuram2: mcuram2@10000000 {
31                         compatible = "shared-dma-pool";
32                         reg = <0x10000000 0x40000>;
33                         no-map;
34                 };
35
36                 vdev0vring0: vdev0vring0@10040000 {
37                         compatible = "shared-dma-pool";
38                         reg = <0x10040000 0x1000>;
39                         no-map;
40                 };
41
42                 vdev0vring1: vdev0vring1@10041000 {
43                         compatible = "shared-dma-pool";
44                         reg = <0x10041000 0x1000>;
45                         no-map;
46                 };
47
48                 vdev0buffer: vdev0buffer@10042000 {
49                         compatible = "shared-dma-pool";
50                         reg = <0x10042000 0x4000>;
51                         no-map;
52                 };
53
54                 mcuram: mcuram@30000000 {
55                         compatible = "shared-dma-pool";
56                         reg = <0x30000000 0x40000>;
57                         no-map;
58                 };
59
60                 retram: retram@38000000 {
61                         compatible = "shared-dma-pool";
62                         reg = <0x38000000 0x10000>;
63                         no-map;
64                 };
65
66                 gpu_reserved: gpu@d4000000 {
67                         reg = <0xd4000000 0x4000000>;
68                         no-map;
69                 };
70         };
71
72         led {
73                 compatible = "gpio-leds";
74                 led-blue {
75                         color = <LED_COLOR_ID_BLUE>;
76                         function = LED_FUNCTION_HEARTBEAT;
77                         gpios = <&gpiog 3 GPIO_ACTIVE_HIGH>;
78                         linux,default-trigger = "heartbeat";
79                 };
80         };
81 };
82
83 &gpu {
84         contiguous-area = <&gpu_reserved>;
85         status = "okay";
86 };
87
88 &i2c2 {
89         pinctrl-names = "default";
90         pinctrl-0 = <&i2c2_pins_a>;
91         i2c-scl-rising-time-ns = <185>;
92         i2c-scl-falling-time-ns = <20>;
93         status = "okay";
94         /* spare dmas for other usage */
95         /delete-property/dmas;
96         /delete-property/dma-names;
97
98         pmic: stpmic@33 {
99                 compatible = "st,stpmic1";
100                 reg = <0x33>;
101                 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
102                 interrupt-controller;
103                 #interrupt-cells = <2>;
104
105                 regulators {
106                         compatible = "st,stpmic1-regulators";
107                         ldo1-supply = <&v3v3>;
108                         ldo3-supply = <&vdd_ddr>;
109                         ldo6-supply = <&v3v3>;
110                         pwr_sw1-supply = <&bst_out>;
111                         pwr_sw2-supply = <&bst_out>;
112
113                         vddcore: buck1 {
114                                 regulator-name = "vddcore";
115                                 regulator-min-microvolt = <800000>;
116                                 regulator-max-microvolt = <1350000>;
117                                 regulator-always-on;
118                                 regulator-initial-mode = <0>;
119                                 regulator-over-current-protection;
120                         };
121
122                         vdd_ddr: buck2 {
123                                 regulator-name = "vdd_ddr";
124                                 regulator-min-microvolt = <1350000>;
125                                 regulator-max-microvolt = <1350000>;
126                                 regulator-always-on;
127                                 regulator-initial-mode = <0>;
128                                 regulator-over-current-protection;
129                         };
130
131                         vdd: buck3 {
132                                 regulator-name = "vdd";
133                                 regulator-min-microvolt = <3300000>;
134                                 regulator-max-microvolt = <3300000>;
135                                 regulator-always-on;
136                                 st,mask-reset;
137                                 regulator-initial-mode = <0>;
138                                 regulator-over-current-protection;
139                         };
140
141                         v3v3: buck4 {
142                                 regulator-name = "v3v3";
143                                 regulator-min-microvolt = <3300000>;
144                                 regulator-max-microvolt = <3300000>;
145                                 regulator-always-on;
146                                 regulator-over-current-protection;
147                                 regulator-initial-mode = <0>;
148                         };
149
150                         v1v8_audio: ldo1 {
151                                 regulator-name = "v1v8_audio";
152                                 regulator-min-microvolt = <1800000>;
153                                 regulator-max-microvolt = <1800000>;
154                                 regulator-always-on;
155                                 interrupts = <IT_CURLIM_LDO1 0>;
156                         };
157
158                         v3v3_hdmi: ldo2 {
159                                 regulator-name = "v3v3_hdmi";
160                                 regulator-min-microvolt = <3300000>;
161                                 regulator-max-microvolt = <3300000>;
162                                 regulator-always-on;
163                                 interrupts = <IT_CURLIM_LDO2 0>;
164                         };
165
166                         vtt_ddr: ldo3 {
167                                 regulator-name = "vtt_ddr";
168                                 regulator-min-microvolt = <500000>;
169                                 regulator-max-microvolt = <750000>;
170                                 regulator-always-on;
171                                 regulator-over-current-protection;
172                         };
173
174                         vdd_usb: ldo4 {
175                                 regulator-name = "vdd_usb";
176                                 regulator-min-microvolt = <3300000>;
177                                 regulator-max-microvolt = <3300000>;
178                                 interrupts = <IT_CURLIM_LDO4 0>;
179                         };
180
181                         vdda: ldo5 {
182                                 regulator-name = "vdda";
183                                 regulator-min-microvolt = <2900000>;
184                                 regulator-max-microvolt = <2900000>;
185                                 interrupts = <IT_CURLIM_LDO5 0>;
186                                 regulator-boot-on;
187                         };
188
189                         v1v2_hdmi: ldo6 {
190                                 regulator-name = "v1v2_hdmi";
191                                 regulator-min-microvolt = <1200000>;
192                                 regulator-max-microvolt = <1200000>;
193                                 regulator-always-on;
194                                 interrupts = <IT_CURLIM_LDO6 0>;
195                         };
196
197                         vref_ddr: vref_ddr {
198                                 regulator-name = "vref_ddr";
199                                 regulator-always-on;
200                                 regulator-over-current-protection;
201                         };
202
203                          bst_out: boost {
204                                 regulator-name = "bst_out";
205                                 interrupts = <IT_OCP_BOOST 0>;
206                          };
207
208                         vbus_otg: pwr_sw1 {
209                                 regulator-name = "vbus_otg";
210                                 interrupts = <IT_OCP_OTG 0>;
211                          };
212
213                          vbus_sw: pwr_sw2 {
214                                 regulator-name = "vbus_sw";
215                                 interrupts = <IT_OCP_SWOUT 0>;
216                                 regulator-active-discharge;
217                          };
218                 };
219
220                 onkey {
221                         compatible = "st,stpmic1-onkey";
222                         interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
223                         interrupt-names = "onkey-falling", "onkey-rising";
224                         power-off-time-sec = <10>;
225                 };
226
227                 watchdog {
228                         compatible = "st,stpmic1-wdt";
229                         status = "disabled";
230                 };
231         };
232 };
233
234 &ipcc {
235         status = "okay";
236 };
237
238 &iwdg2 {
239         timeout-sec = <32>;
240         status = "okay";
241 };
242
243 &m4_rproc {
244         memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
245                         <&vdev0vring1>, <&vdev0buffer>;
246         mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
247         mbox-names = "vq0", "vq1", "shutdown";
248         interrupt-parent = <&exti>;
249         interrupts = <68 1>;
250         status = "okay";
251 };
252
253 &rng1 {
254         status = "okay";
255 };
256
257 &rtc {
258         status = "okay";
259 };
260
261 &sdmmc2 {
262         pinctrl-names = "default", "opendrain", "sleep";
263         pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_d>;
264         pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_d>;
265         pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_d>;
266         non-removable;
267         no-sd;
268         no-sdio;
269         st,neg-edge;
270         bus-width = <8>;
271         vmmc-supply = <&v3v3>;
272         vqmmc-supply = <&v3v3>;
273         mmc-ddr-3_3v;
274         status = "okay";
275 };
276