1724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2724ba675SRob Herring/*
3724ba675SRob Herring * Copyright (C) 2020 Marcin Sloniewski <marcin.sloniewski@gmail.com>.
4724ba675SRob Herring */
5724ba675SRob Herring
6724ba675SRob Herring/dts-v1/;
7724ba675SRob Herring
8724ba675SRob Herring#include "stm32mp157.dtsi"
9724ba675SRob Herring#include "stm32mp15xc.dtsi"
10724ba675SRob Herring#include "stm32mp15-pinctrl.dtsi"
11724ba675SRob Herring#include "stm32mp15xxac-pinctrl.dtsi"
12724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
13724ba675SRob Herring#include <dt-bindings/leds/common.h>
14724ba675SRob Herring#include <dt-bindings/mfd/st,stpmic1.h>
15724ba675SRob Herring
16724ba675SRob Herring/ {
17724ba675SRob Herring	model = "Seeed Studio Odyssey-STM32MP157C SOM";
18724ba675SRob Herring	compatible = "seeed,stm32mp157c-odyssey-som", "st,stm32mp157";
19724ba675SRob Herring
20724ba675SRob Herring	memory@c0000000 {
21724ba675SRob Herring		device_type = "memory";
22724ba675SRob Herring		reg = <0xc0000000 0x20000000>;
23724ba675SRob Herring	};
24724ba675SRob Herring
25724ba675SRob Herring	reserved-memory {
26724ba675SRob Herring		#address-cells = <1>;
27724ba675SRob Herring		#size-cells = <1>;
28724ba675SRob Herring		ranges;
29724ba675SRob Herring
30724ba675SRob Herring		mcuram2: mcuram2@10000000 {
31724ba675SRob Herring			compatible = "shared-dma-pool";
32724ba675SRob Herring			reg = <0x10000000 0x40000>;
33724ba675SRob Herring			no-map;
34724ba675SRob Herring		};
35724ba675SRob Herring
36724ba675SRob Herring		vdev0vring0: vdev0vring0@10040000 {
37724ba675SRob Herring			compatible = "shared-dma-pool";
38724ba675SRob Herring			reg = <0x10040000 0x1000>;
39724ba675SRob Herring			no-map;
40724ba675SRob Herring		};
41724ba675SRob Herring
42724ba675SRob Herring		vdev0vring1: vdev0vring1@10041000 {
43724ba675SRob Herring			compatible = "shared-dma-pool";
44724ba675SRob Herring			reg = <0x10041000 0x1000>;
45724ba675SRob Herring			no-map;
46724ba675SRob Herring		};
47724ba675SRob Herring
48724ba675SRob Herring		vdev0buffer: vdev0buffer@10042000 {
49724ba675SRob Herring			compatible = "shared-dma-pool";
50724ba675SRob Herring			reg = <0x10042000 0x4000>;
51724ba675SRob Herring			no-map;
52724ba675SRob Herring		};
53724ba675SRob Herring
54724ba675SRob Herring		mcuram: mcuram@30000000 {
55724ba675SRob Herring			compatible = "shared-dma-pool";
56724ba675SRob Herring			reg = <0x30000000 0x40000>;
57724ba675SRob Herring			no-map;
58724ba675SRob Herring		};
59724ba675SRob Herring
60724ba675SRob Herring		retram: retram@38000000 {
61724ba675SRob Herring			compatible = "shared-dma-pool";
62724ba675SRob Herring			reg = <0x38000000 0x10000>;
63724ba675SRob Herring			no-map;
64724ba675SRob Herring		};
65724ba675SRob Herring	};
66724ba675SRob Herring
67724ba675SRob Herring	led {
68724ba675SRob Herring		compatible = "gpio-leds";
69724ba675SRob Herring		led-blue {
70724ba675SRob Herring			color = <LED_COLOR_ID_BLUE>;
71724ba675SRob Herring			function = LED_FUNCTION_HEARTBEAT;
72724ba675SRob Herring			gpios = <&gpiog 3 GPIO_ACTIVE_HIGH>;
73724ba675SRob Herring			linux,default-trigger = "heartbeat";
74724ba675SRob Herring		};
75724ba675SRob Herring	};
76724ba675SRob Herring};
77724ba675SRob Herring
78724ba675SRob Herring&i2c2 {
79724ba675SRob Herring	pinctrl-names = "default";
80724ba675SRob Herring	pinctrl-0 = <&i2c2_pins_a>;
81724ba675SRob Herring	i2c-scl-rising-time-ns = <185>;
82724ba675SRob Herring	i2c-scl-falling-time-ns = <20>;
83724ba675SRob Herring	status = "okay";
84724ba675SRob Herring	/* spare dmas for other usage */
85724ba675SRob Herring	/delete-property/dmas;
86724ba675SRob Herring	/delete-property/dma-names;
87724ba675SRob Herring
88724ba675SRob Herring	pmic: stpmic@33 {
89724ba675SRob Herring		compatible = "st,stpmic1";
90724ba675SRob Herring		reg = <0x33>;
91724ba675SRob Herring		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
92724ba675SRob Herring		interrupt-controller;
93724ba675SRob Herring		#interrupt-cells = <2>;
94724ba675SRob Herring
95724ba675SRob Herring		regulators {
96724ba675SRob Herring			compatible = "st,stpmic1-regulators";
97724ba675SRob Herring			ldo1-supply = <&v3v3>;
98724ba675SRob Herring			ldo3-supply = <&vdd_ddr>;
99724ba675SRob Herring			ldo6-supply = <&v3v3>;
100724ba675SRob Herring			pwr_sw1-supply = <&bst_out>;
101724ba675SRob Herring			pwr_sw2-supply = <&bst_out>;
102724ba675SRob Herring
103724ba675SRob Herring			vddcore: buck1 {
104724ba675SRob Herring				regulator-name = "vddcore";
105724ba675SRob Herring				regulator-min-microvolt = <800000>;
106724ba675SRob Herring				regulator-max-microvolt = <1350000>;
107724ba675SRob Herring				regulator-always-on;
108724ba675SRob Herring				regulator-initial-mode = <0>;
109724ba675SRob Herring				regulator-over-current-protection;
110724ba675SRob Herring			};
111724ba675SRob Herring
112724ba675SRob Herring			vdd_ddr: buck2 {
113724ba675SRob Herring				regulator-name = "vdd_ddr";
114724ba675SRob Herring				regulator-min-microvolt = <1350000>;
115724ba675SRob Herring				regulator-max-microvolt = <1350000>;
116724ba675SRob Herring				regulator-always-on;
117724ba675SRob Herring				regulator-initial-mode = <0>;
118724ba675SRob Herring				regulator-over-current-protection;
119724ba675SRob Herring			};
120724ba675SRob Herring
121724ba675SRob Herring			vdd: buck3 {
122724ba675SRob Herring				regulator-name = "vdd";
123724ba675SRob Herring				regulator-min-microvolt = <3300000>;
124724ba675SRob Herring				regulator-max-microvolt = <3300000>;
125724ba675SRob Herring				regulator-always-on;
126724ba675SRob Herring				st,mask-reset;
127724ba675SRob Herring				regulator-initial-mode = <0>;
128724ba675SRob Herring				regulator-over-current-protection;
129724ba675SRob Herring			};
130724ba675SRob Herring
131724ba675SRob Herring			v3v3: buck4 {
132724ba675SRob Herring				regulator-name = "v3v3";
133724ba675SRob Herring				regulator-min-microvolt = <3300000>;
134724ba675SRob Herring				regulator-max-microvolt = <3300000>;
135724ba675SRob Herring				regulator-always-on;
136724ba675SRob Herring				regulator-over-current-protection;
137724ba675SRob Herring				regulator-initial-mode = <0>;
138724ba675SRob Herring			};
139724ba675SRob Herring
140724ba675SRob Herring			v1v8_audio: ldo1 {
141724ba675SRob Herring				regulator-name = "v1v8_audio";
142724ba675SRob Herring				regulator-min-microvolt = <1800000>;
143724ba675SRob Herring				regulator-max-microvolt = <1800000>;
144724ba675SRob Herring				regulator-always-on;
145724ba675SRob Herring				interrupts = <IT_CURLIM_LDO1 0>;
146724ba675SRob Herring			};
147724ba675SRob Herring
148724ba675SRob Herring			v3v3_hdmi: ldo2 {
149724ba675SRob Herring				regulator-name = "v3v3_hdmi";
150724ba675SRob Herring				regulator-min-microvolt = <3300000>;
151724ba675SRob Herring				regulator-max-microvolt = <3300000>;
152724ba675SRob Herring				regulator-always-on;
153724ba675SRob Herring				interrupts = <IT_CURLIM_LDO2 0>;
154724ba675SRob Herring			};
155724ba675SRob Herring
156724ba675SRob Herring			vtt_ddr: ldo3 {
157724ba675SRob Herring				regulator-name = "vtt_ddr";
158724ba675SRob Herring				regulator-min-microvolt = <500000>;
159724ba675SRob Herring				regulator-max-microvolt = <750000>;
160724ba675SRob Herring				regulator-always-on;
161724ba675SRob Herring				regulator-over-current-protection;
162724ba675SRob Herring			};
163724ba675SRob Herring
164724ba675SRob Herring			vdd_usb: ldo4 {
165724ba675SRob Herring				regulator-name = "vdd_usb";
166724ba675SRob Herring				interrupts = <IT_CURLIM_LDO4 0>;
167724ba675SRob Herring			};
168724ba675SRob Herring
169724ba675SRob Herring			vdda: ldo5 {
170724ba675SRob Herring				regulator-name = "vdda";
171724ba675SRob Herring				regulator-min-microvolt = <2900000>;
172724ba675SRob Herring				regulator-max-microvolt = <2900000>;
173724ba675SRob Herring				interrupts = <IT_CURLIM_LDO5 0>;
174724ba675SRob Herring				regulator-boot-on;
175724ba675SRob Herring			};
176724ba675SRob Herring
177724ba675SRob Herring			v1v2_hdmi: ldo6 {
178724ba675SRob Herring				regulator-name = "v1v2_hdmi";
179724ba675SRob Herring				regulator-min-microvolt = <1200000>;
180724ba675SRob Herring				regulator-max-microvolt = <1200000>;
181724ba675SRob Herring				regulator-always-on;
182724ba675SRob Herring				interrupts = <IT_CURLIM_LDO6 0>;
183724ba675SRob Herring			};
184724ba675SRob Herring
185724ba675SRob Herring			vref_ddr: vref_ddr {
186724ba675SRob Herring				regulator-name = "vref_ddr";
187724ba675SRob Herring				regulator-always-on;
188724ba675SRob Herring			};
189724ba675SRob Herring
190724ba675SRob Herring			 bst_out: boost {
191724ba675SRob Herring				regulator-name = "bst_out";
192724ba675SRob Herring				interrupts = <IT_OCP_BOOST 0>;
193724ba675SRob Herring			 };
194724ba675SRob Herring
195724ba675SRob Herring			vbus_otg: pwr_sw1 {
196724ba675SRob Herring				regulator-name = "vbus_otg";
197724ba675SRob Herring				interrupts = <IT_OCP_OTG 0>;
198724ba675SRob Herring			 };
199724ba675SRob Herring
200724ba675SRob Herring			 vbus_sw: pwr_sw2 {
201724ba675SRob Herring				regulator-name = "vbus_sw";
202724ba675SRob Herring				interrupts = <IT_OCP_SWOUT 0>;
203724ba675SRob Herring				regulator-active-discharge = <1>;
204724ba675SRob Herring			 };
205724ba675SRob Herring		};
206724ba675SRob Herring
207724ba675SRob Herring		onkey {
208724ba675SRob Herring			compatible = "st,stpmic1-onkey";
209724ba675SRob Herring			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
210724ba675SRob Herring			interrupt-names = "onkey-falling", "onkey-rising";
211724ba675SRob Herring			power-off-time-sec = <10>;
212724ba675SRob Herring		};
213724ba675SRob Herring
214724ba675SRob Herring		watchdog {
215724ba675SRob Herring			compatible = "st,stpmic1-wdt";
216724ba675SRob Herring			status = "disabled";
217724ba675SRob Herring		};
218724ba675SRob Herring	};
219724ba675SRob Herring};
220724ba675SRob Herring
221724ba675SRob Herring&ipcc {
222724ba675SRob Herring	status = "okay";
223724ba675SRob Herring};
224724ba675SRob Herring
225724ba675SRob Herring&iwdg2 {
226724ba675SRob Herring	timeout-sec = <32>;
227724ba675SRob Herring	status = "okay";
228724ba675SRob Herring};
229724ba675SRob Herring
230724ba675SRob Herring&m4_rproc {
231724ba675SRob Herring	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
232724ba675SRob Herring			<&vdev0vring1>, <&vdev0buffer>;
233*966f04a8SMarek Vasut	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
234*966f04a8SMarek Vasut	mbox-names = "vq0", "vq1", "shutdown", "detach";
235724ba675SRob Herring	interrupt-parent = <&exti>;
236724ba675SRob Herring	interrupts = <68 1>;
237724ba675SRob Herring	status = "okay";
238724ba675SRob Herring};
239724ba675SRob Herring
240724ba675SRob Herring&rng1 {
241724ba675SRob Herring	status = "okay";
242724ba675SRob Herring};
243724ba675SRob Herring
244724ba675SRob Herring&rtc {
245724ba675SRob Herring	status = "okay";
246724ba675SRob Herring};
247724ba675SRob Herring
248724ba675SRob Herring&sdmmc2 {
249724ba675SRob Herring	pinctrl-names = "default", "opendrain", "sleep";
250724ba675SRob Herring	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_d>;
251724ba675SRob Herring	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_d>;
252724ba675SRob Herring	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_d>;
253724ba675SRob Herring	non-removable;
254724ba675SRob Herring	no-sd;
255724ba675SRob Herring	no-sdio;
256724ba675SRob Herring	st,neg-edge;
257724ba675SRob Herring	bus-width = <8>;
258724ba675SRob Herring	vmmc-supply = <&v3v3>;
259724ba675SRob Herring	vqmmc-supply = <&vdd>;
260724ba675SRob Herring	mmc-ddr-3_3v;
261724ba675SRob Herring	status = "okay";
262724ba675SRob Herring};
263724ba675SRob Herring
264