Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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