Merge tag 'block-5.14-2021-08-07' of git://git.kernel.dk/linux-block
[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                                 interrupts = <IT_CURLIM_LDO4 0>;
177                         };
178
179                         vdda: ldo5 {
180                                 regulator-name = "vdda";
181                                 regulator-min-microvolt = <2900000>;
182                                 regulator-max-microvolt = <2900000>;
183                                 interrupts = <IT_CURLIM_LDO5 0>;
184                                 regulator-boot-on;
185                         };
186
187                         v1v2_hdmi: ldo6 {
188                                 regulator-name = "v1v2_hdmi";
189                                 regulator-min-microvolt = <1200000>;
190                                 regulator-max-microvolt = <1200000>;
191                                 regulator-always-on;
192                                 interrupts = <IT_CURLIM_LDO6 0>;
193                         };
194
195                         vref_ddr: vref_ddr {
196                                 regulator-name = "vref_ddr";
197                                 regulator-always-on;
198                         };
199
200                          bst_out: boost {
201                                 regulator-name = "bst_out";
202                                 interrupts = <IT_OCP_BOOST 0>;
203                          };
204
205                         vbus_otg: pwr_sw1 {
206                                 regulator-name = "vbus_otg";
207                                 interrupts = <IT_OCP_OTG 0>;
208                          };
209
210                          vbus_sw: pwr_sw2 {
211                                 regulator-name = "vbus_sw";
212                                 interrupts = <IT_OCP_SWOUT 0>;
213                                 regulator-active-discharge = <1>;
214                          };
215                 };
216
217                 onkey {
218                         compatible = "st,stpmic1-onkey";
219                         interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
220                         interrupt-names = "onkey-falling", "onkey-rising";
221                         power-off-time-sec = <10>;
222                 };
223
224                 watchdog {
225                         compatible = "st,stpmic1-wdt";
226                         status = "disabled";
227                 };
228         };
229 };
230
231 &ipcc {
232         status = "okay";
233 };
234
235 &iwdg2 {
236         timeout-sec = <32>;
237         status = "okay";
238 };
239
240 &m4_rproc {
241         memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
242                         <&vdev0vring1>, <&vdev0buffer>;
243         mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
244         mbox-names = "vq0", "vq1", "shutdown";
245         interrupt-parent = <&exti>;
246         interrupts = <68 1>;
247         status = "okay";
248 };
249
250 &rng1 {
251         status = "okay";
252 };
253
254 &rtc {
255         status = "okay";
256 };
257
258 &sdmmc2 {
259         pinctrl-names = "default", "opendrain", "sleep";
260         pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_d>;
261         pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_d>;
262         pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_d>;
263         non-removable;
264         no-sd;
265         no-sdio;
266         st,neg-edge;
267         bus-width = <8>;
268         vmmc-supply = <&v3v3>;
269         vqmmc-supply = <&vdd>;
270         mmc-ddr-3_3v;
271         status = "okay";
272 };
273