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 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