xref: /linux/arch/arm/boot/dts/st/stm32mp157c-ed1.dts (revision 55d0969c451159cff86949b38c39171cab962069)
1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2017 - All Rights Reserved
4 * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics.
5 */
6/dts-v1/;
7
8#include "stm32mp157.dtsi"
9#include "stm32mp15xc.dtsi"
10#include "stm32mp15-pinctrl.dtsi"
11#include "stm32mp15xxaa-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 = "STMicroelectronics STM32MP157C eval daughter";
18	compatible = "st,stm32mp157c-ed1", "st,stm32mp157";
19
20	aliases {
21		serial0 = &uart4;
22	};
23
24	chosen {
25		stdout-path = "serial0:115200n8";
26	};
27
28	memory@c0000000 {
29		device_type = "memory";
30		reg = <0xC0000000 0x40000000>;
31	};
32
33	reserved-memory {
34		#address-cells = <1>;
35		#size-cells = <1>;
36		ranges;
37
38		mcuram2: mcuram2@10000000 {
39			compatible = "shared-dma-pool";
40			reg = <0x10000000 0x40000>;
41			no-map;
42		};
43
44		vdev0vring0: vdev0vring0@10040000 {
45			compatible = "shared-dma-pool";
46			reg = <0x10040000 0x1000>;
47			no-map;
48		};
49
50		vdev0vring1: vdev0vring1@10041000 {
51			compatible = "shared-dma-pool";
52			reg = <0x10041000 0x1000>;
53			no-map;
54		};
55
56		vdev0buffer: vdev0buffer@10042000 {
57			compatible = "shared-dma-pool";
58			reg = <0x10042000 0x4000>;
59			no-map;
60		};
61
62		mcuram: mcuram@30000000 {
63			compatible = "shared-dma-pool";
64			reg = <0x30000000 0x40000>;
65			no-map;
66		};
67
68		retram: retram@38000000 {
69			compatible = "shared-dma-pool";
70			reg = <0x38000000 0x10000>;
71			no-map;
72		};
73	};
74
75	led {
76		compatible = "gpio-leds";
77		led-blue {
78			gpios = <&gpiod 9 GPIO_ACTIVE_HIGH>;
79			linux,default-trigger = "heartbeat";
80			default-state = "off";
81			function = LED_FUNCTION_HEARTBEAT;
82			color = <LED_COLOR_ID_BLUE>;
83		};
84	};
85
86	sd_switch: regulator-sd_switch {
87		compatible = "regulator-gpio";
88		regulator-name = "sd_switch";
89		regulator-min-microvolt = <1800000>;
90		regulator-max-microvolt = <2900000>;
91		regulator-type = "voltage";
92		regulator-always-on;
93
94		gpios = <&gpiof 14 GPIO_ACTIVE_HIGH>;
95		gpios-states = <0>;
96		states = <1800000 0x1>,
97			 <2900000 0x0>;
98	};
99
100	vin: vin {
101		compatible = "regulator-fixed";
102		regulator-name = "vin";
103		regulator-min-microvolt = <5000000>;
104		regulator-max-microvolt = <5000000>;
105		regulator-always-on;
106	};
107};
108
109&adc {
110	/* ANA0, ANA1 are dedicated pins and don't need pinctrl: only in6. */
111	pinctrl-0 = <&adc1_in6_pins_a>;
112	pinctrl-names = "default";
113	vdd-supply = <&vdd>;
114	vdda-supply = <&vdda>;
115	vref-supply = <&vdda>;
116	status = "disabled";
117	adc1: adc@0 {
118		status = "okay";
119		channel@0 {
120			reg = <0>;
121			/* 16.5 ck_cycles sampling time */
122			st,min-sample-time-ns = <400>;
123		};
124		channel@1 {
125			reg = <1>;
126			st,min-sample-time-ns = <400>;
127		};
128		channel@6 {
129			reg = <6>;
130			st,min-sample-time-ns = <400>;
131		};
132	};
133};
134
135&crc1 {
136	status = "okay";
137};
138
139&cryp1 {
140	status = "okay";
141};
142
143&dac {
144	pinctrl-names = "default";
145	pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
146	vref-supply = <&vdda>;
147	status = "disabled";
148	dac1: dac@1 {
149		status = "okay";
150	};
151	dac2: dac@2 {
152		status = "okay";
153	};
154};
155
156&dts {
157	status = "okay";
158};
159
160&hash1 {
161	status = "okay";
162};
163
164&i2c4 {
165	pinctrl-names = "default", "sleep";
166	pinctrl-0 = <&i2c4_pins_a>;
167	pinctrl-1 = <&i2c4_sleep_pins_a>;
168	i2c-scl-rising-time-ns = <185>;
169	i2c-scl-falling-time-ns = <20>;
170	clock-frequency = <400000>;
171	status = "okay";
172	/* spare dmas for other usage */
173	/delete-property/dmas;
174	/delete-property/dma-names;
175
176	pmic: stpmic@33 {
177		compatible = "st,stpmic1";
178		reg = <0x33>;
179		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
180		interrupt-controller;
181		#interrupt-cells = <2>;
182		status = "okay";
183
184		regulators {
185			compatible = "st,stpmic1-regulators";
186			buck1-supply = <&vin>;
187			buck2-supply = <&vin>;
188			buck3-supply = <&vin>;
189			buck4-supply = <&vin>;
190			ldo1-supply = <&v3v3>;
191			ldo2-supply = <&v3v3>;
192			ldo3-supply = <&vdd_ddr>;
193			ldo4-supply = <&vin>;
194			ldo5-supply = <&v3v3>;
195			ldo6-supply = <&v3v3>;
196			vref_ddr-supply = <&vin>;
197			boost-supply = <&vin>;
198			pwr_sw1-supply = <&bst_out>;
199			pwr_sw2-supply = <&bst_out>;
200
201			vddcore: buck1 {
202				regulator-name = "vddcore";
203				regulator-min-microvolt = <1200000>;
204				regulator-max-microvolt = <1350000>;
205				regulator-always-on;
206				regulator-initial-mode = <0>;
207				regulator-over-current-protection;
208			};
209
210			vdd_ddr: buck2 {
211				regulator-name = "vdd_ddr";
212				regulator-min-microvolt = <1350000>;
213				regulator-max-microvolt = <1350000>;
214				regulator-always-on;
215				regulator-initial-mode = <0>;
216				regulator-over-current-protection;
217			};
218
219			vdd: buck3 {
220				regulator-name = "vdd";
221				regulator-min-microvolt = <3300000>;
222				regulator-max-microvolt = <3300000>;
223				regulator-always-on;
224				st,mask-reset;
225				regulator-initial-mode = <0>;
226				regulator-over-current-protection;
227			};
228
229			v3v3: buck4 {
230				regulator-name = "v3v3";
231				regulator-min-microvolt = <3300000>;
232				regulator-max-microvolt = <3300000>;
233				regulator-always-on;
234				regulator-over-current-protection;
235				regulator-initial-mode = <0>;
236			};
237
238			vdda: ldo1 {
239				regulator-name = "vdda";
240				regulator-min-microvolt = <2900000>;
241				regulator-max-microvolt = <2900000>;
242				interrupts = <IT_CURLIM_LDO1 0>;
243			};
244
245			v2v8: ldo2 {
246				regulator-name = "v2v8";
247				regulator-min-microvolt = <2800000>;
248				regulator-max-microvolt = <2800000>;
249				interrupts = <IT_CURLIM_LDO2 0>;
250			};
251
252			vtt_ddr: ldo3 {
253				regulator-name = "vtt_ddr";
254				regulator-min-microvolt = <500000>;
255				regulator-max-microvolt = <750000>;
256				regulator-always-on;
257				regulator-over-current-protection;
258			};
259
260			vdd_usb: ldo4 {
261				regulator-name = "vdd_usb";
262				interrupts = <IT_CURLIM_LDO4 0>;
263			};
264
265			vdd_sd: ldo5 {
266				regulator-name = "vdd_sd";
267				regulator-min-microvolt = <2900000>;
268				regulator-max-microvolt = <2900000>;
269				interrupts = <IT_CURLIM_LDO5 0>;
270				regulator-boot-on;
271			};
272
273			v1v8: ldo6 {
274				regulator-name = "v1v8";
275				regulator-min-microvolt = <1800000>;
276				regulator-max-microvolt = <1800000>;
277				interrupts = <IT_CURLIM_LDO6 0>;
278			};
279
280			vref_ddr: vref_ddr {
281				regulator-name = "vref_ddr";
282				regulator-always-on;
283			};
284
285			bst_out: boost {
286				regulator-name = "bst_out";
287				interrupts = <IT_OCP_BOOST 0>;
288			};
289
290			vbus_otg: pwr_sw1 {
291				regulator-name = "vbus_otg";
292				interrupts = <IT_OCP_OTG 0>;
293			 };
294
295			 vbus_sw: pwr_sw2 {
296				regulator-name = "vbus_sw";
297				interrupts = <IT_OCP_SWOUT 0>;
298				regulator-active-discharge = <1>;
299			 };
300		};
301
302		onkey {
303			compatible = "st,stpmic1-onkey";
304			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
305			interrupt-names = "onkey-falling", "onkey-rising";
306			power-off-time-sec = <10>;
307			status = "okay";
308		};
309
310		watchdog {
311			compatible = "st,stpmic1-wdt";
312			status = "disabled";
313		};
314	};
315};
316
317&ipcc {
318	status = "okay";
319};
320
321&iwdg2 {
322	timeout-sec = <32>;
323	status = "okay";
324};
325
326&m4_rproc {
327	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
328			<&vdev0vring1>, <&vdev0buffer>;
329	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
330	mbox-names = "vq0", "vq1", "shutdown", "detach";
331	interrupt-parent = <&exti>;
332	interrupts = <68 1>;
333	status = "okay";
334};
335
336&pwr_regulators {
337	vdd-supply = <&vdd>;
338	vdd_3v3_usbfs-supply = <&vdd_usb>;
339};
340
341&rng1 {
342	status = "okay";
343};
344
345&rtc {
346	status = "okay";
347};
348
349&sdmmc1 {
350	pinctrl-names = "default", "opendrain", "sleep";
351	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
352	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
353	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
354	cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
355	disable-wp;
356	st,sig-dir;
357	st,neg-edge;
358	st,use-ckin;
359	bus-width = <4>;
360	vmmc-supply = <&vdd_sd>;
361	vqmmc-supply = <&sd_switch>;
362	sd-uhs-sdr12;
363	sd-uhs-sdr25;
364	sd-uhs-sdr50;
365	sd-uhs-ddr50;
366	status = "okay";
367};
368
369&sdmmc2 {
370	pinctrl-names = "default", "opendrain", "sleep";
371	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
372	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
373	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
374	non-removable;
375	no-sd;
376	no-sdio;
377	st,neg-edge;
378	bus-width = <8>;
379	vmmc-supply = <&v3v3>;
380	vqmmc-supply = <&vdd>;
381	mmc-ddr-3_3v;
382	status = "okay";
383};
384
385&timers6 {
386	status = "okay";
387	/* spare dmas for other usage */
388	/delete-property/dmas;
389	/delete-property/dma-names;
390	timer@5 {
391		status = "okay";
392	};
393};
394
395&uart4 {
396	pinctrl-names = "default", "sleep", "idle";
397	pinctrl-0 = <&uart4_pins_a>;
398	pinctrl-1 = <&uart4_sleep_pins_a>;
399	pinctrl-2 = <&uart4_idle_pins_a>;
400	/delete-property/dmas;
401	/delete-property/dma-names;
402	status = "okay";
403};
404
405&usbotg_hs {
406	vbus-supply = <&vbus_otg>;
407};
408
409&usbphyc_port0 {
410	phy-supply = <&vdd_usb>;
411};
412
413&usbphyc_port1 {
414	phy-supply = <&vdd_usb>;
415};
416