GNU Linux-libre 6.1.90-gnu
[releases.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
67         led {
68                 compatible = "gpio-leds";
69                 led-blue {
70                         color = <LED_COLOR_ID_BLUE>;
71                         function = LED_FUNCTION_HEARTBEAT;
72                         gpios = <&gpiog 3 GPIO_ACTIVE_HIGH>;
73                         linux,default-trigger = "heartbeat";
74                 };
75         };
76 };
77
78 &i2c2 {
79         pinctrl-names = "default";
80         pinctrl-0 = <&i2c2_pins_a>;
81         i2c-scl-rising-time-ns = <185>;
82         i2c-scl-falling-time-ns = <20>;
83         status = "okay";
84         /* spare dmas for other usage */
85         /delete-property/dmas;
86         /delete-property/dma-names;
87
88         pmic: stpmic@33 {
89                 compatible = "st,stpmic1";
90                 reg = <0x33>;
91                 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
92                 interrupt-controller;
93                 #interrupt-cells = <2>;
94
95                 regulators {
96                         compatible = "st,stpmic1-regulators";
97                         ldo1-supply = <&v3v3>;
98                         ldo3-supply = <&vdd_ddr>;
99                         ldo6-supply = <&v3v3>;
100                         pwr_sw1-supply = <&bst_out>;
101                         pwr_sw2-supply = <&bst_out>;
102
103                         vddcore: buck1 {
104                                 regulator-name = "vddcore";
105                                 regulator-min-microvolt = <800000>;
106                                 regulator-max-microvolt = <1350000>;
107                                 regulator-always-on;
108                                 regulator-initial-mode = <0>;
109                                 regulator-over-current-protection;
110                         };
111
112                         vdd_ddr: buck2 {
113                                 regulator-name = "vdd_ddr";
114                                 regulator-min-microvolt = <1350000>;
115                                 regulator-max-microvolt = <1350000>;
116                                 regulator-always-on;
117                                 regulator-initial-mode = <0>;
118                                 regulator-over-current-protection;
119                         };
120
121                         vdd: buck3 {
122                                 regulator-name = "vdd";
123                                 regulator-min-microvolt = <3300000>;
124                                 regulator-max-microvolt = <3300000>;
125                                 regulator-always-on;
126                                 st,mask-reset;
127                                 regulator-initial-mode = <0>;
128                                 regulator-over-current-protection;
129                         };
130
131                         v3v3: buck4 {
132                                 regulator-name = "v3v3";
133                                 regulator-min-microvolt = <3300000>;
134                                 regulator-max-microvolt = <3300000>;
135                                 regulator-always-on;
136                                 regulator-over-current-protection;
137                                 regulator-initial-mode = <0>;
138                         };
139
140                         v1v8_audio: ldo1 {
141                                 regulator-name = "v1v8_audio";
142                                 regulator-min-microvolt = <1800000>;
143                                 regulator-max-microvolt = <1800000>;
144                                 regulator-always-on;
145                                 interrupts = <IT_CURLIM_LDO1 0>;
146                         };
147
148                         v3v3_hdmi: ldo2 {
149                                 regulator-name = "v3v3_hdmi";
150                                 regulator-min-microvolt = <3300000>;
151                                 regulator-max-microvolt = <3300000>;
152                                 regulator-always-on;
153                                 interrupts = <IT_CURLIM_LDO2 0>;
154                         };
155
156                         vtt_ddr: ldo3 {
157                                 regulator-name = "vtt_ddr";
158                                 regulator-min-microvolt = <500000>;
159                                 regulator-max-microvolt = <750000>;
160                                 regulator-always-on;
161                                 regulator-over-current-protection;
162                         };
163
164                         vdd_usb: ldo4 {
165                                 regulator-name = "vdd_usb";
166                                 interrupts = <IT_CURLIM_LDO4 0>;
167                         };
168
169                         vdda: ldo5 {
170                                 regulator-name = "vdda";
171                                 regulator-min-microvolt = <2900000>;
172                                 regulator-max-microvolt = <2900000>;
173                                 interrupts = <IT_CURLIM_LDO5 0>;
174                                 regulator-boot-on;
175                         };
176
177                         v1v2_hdmi: ldo6 {
178                                 regulator-name = "v1v2_hdmi";
179                                 regulator-min-microvolt = <1200000>;
180                                 regulator-max-microvolt = <1200000>;
181                                 regulator-always-on;
182                                 interrupts = <IT_CURLIM_LDO6 0>;
183                         };
184
185                         vref_ddr: vref_ddr {
186                                 regulator-name = "vref_ddr";
187                                 regulator-always-on;
188                         };
189
190                          bst_out: boost {
191                                 regulator-name = "bst_out";
192                                 interrupts = <IT_OCP_BOOST 0>;
193                          };
194
195                         vbus_otg: pwr_sw1 {
196                                 regulator-name = "vbus_otg";
197                                 interrupts = <IT_OCP_OTG 0>;
198                          };
199
200                          vbus_sw: pwr_sw2 {
201                                 regulator-name = "vbus_sw";
202                                 interrupts = <IT_OCP_SWOUT 0>;
203                                 regulator-active-discharge = <1>;
204                          };
205                 };
206
207                 onkey {
208                         compatible = "st,stpmic1-onkey";
209                         interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
210                         interrupt-names = "onkey-falling", "onkey-rising";
211                         power-off-time-sec = <10>;
212                 };
213
214                 watchdog {
215                         compatible = "st,stpmic1-wdt";
216                         status = "disabled";
217                 };
218         };
219 };
220
221 &ipcc {
222         status = "okay";
223 };
224
225 &iwdg2 {
226         timeout-sec = <32>;
227         status = "okay";
228 };
229
230 &m4_rproc {
231         memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
232                         <&vdev0vring1>, <&vdev0buffer>;
233         mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
234         mbox-names = "vq0", "vq1", "shutdown", "detach";
235         interrupt-parent = <&exti>;
236         interrupts = <68 1>;
237         status = "okay";
238 };
239
240 &rng1 {
241         status = "okay";
242 };
243
244 &rtc {
245         status = "okay";
246 };
247
248 &sdmmc2 {
249         pinctrl-names = "default", "opendrain", "sleep";
250         pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_d>;
251         pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_d>;
252         pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_d>;
253         non-removable;
254         no-sd;
255         no-sdio;
256         st,neg-edge;
257         bus-width = <8>;
258         vmmc-supply = <&v3v3>;
259         vqmmc-supply = <&vdd>;
260         mmc-ddr-3_3v;
261         status = "okay";
262 };
263