xref: /linux/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts (revision e7e86d7697c6ed1dbbde18d7185c35b6967945ed)
1// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2023 - All Rights Reserved
4 * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
5 */
6
7/dts-v1/;
8
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/regulator/st,stm32mp25-regulator.h>
11#include "stm32mp257.dtsi"
12#include "stm32mp25xf.dtsi"
13#include "stm32mp25-pinctrl.dtsi"
14#include "stm32mp25xxai-pinctrl.dtsi"
15
16/ {
17	model = "STMicroelectronics STM32MP257F-EV1 Evaluation Board";
18	compatible = "st,stm32mp257f-ev1", "st,stm32mp257";
19
20	aliases {
21		ethernet0 = &ethernet2;
22		serial0 = &usart2;
23		serial1 = &usart6;
24	};
25
26	chosen {
27		stdout-path = "serial0:115200n8";
28	};
29
30	clocks {
31		clk_ext_camera: clk-ext-camera {
32			#clock-cells = <0>;
33			compatible = "fixed-clock";
34			clock-frequency = <24000000>;
35		};
36
37		pad_clk: pad-clk {
38			#clock-cells = <0>;
39			compatible = "fixed-clock";
40			clock-frequency = <100000000>;
41		};
42	};
43
44	imx335_2v9: regulator-2v9 {
45		compatible = "regulator-fixed";
46		regulator-name = "imx335-avdd";
47		regulator-min-microvolt = <2900000>;
48		regulator-max-microvolt = <2900000>;
49		regulator-always-on;
50	};
51
52	imx335_1v8: regulator-1v8 {
53		compatible = "regulator-fixed";
54		regulator-name = "imx335-ovdd";
55		regulator-min-microvolt = <1800000>;
56		regulator-max-microvolt = <1800000>;
57		regulator-always-on;
58	};
59
60	imx335_1v2: regulator-1v2 {
61		compatible = "regulator-fixed";
62		regulator-name = "imx335-dvdd";
63		regulator-min-microvolt = <1200000>;
64		regulator-max-microvolt = <1200000>;
65		regulator-always-on;
66	};
67
68	memory@80000000 {
69		device_type = "memory";
70		reg = <0x0 0x80000000 0x1 0x0>;
71	};
72
73	reserved-memory {
74		#address-cells = <2>;
75		#size-cells = <2>;
76		ranges;
77
78		fw@80000000 {
79			compatible = "shared-dma-pool";
80			reg = <0x0 0x80000000 0x0 0x4000000>;
81			no-map;
82		};
83
84		mm_ospi1: mm-ospi@60000000 {
85			reg = <0x0 0x60000000 0x0 0x10000000>;
86			no-map;
87		};
88	};
89};
90
91&arm_wdt {
92	timeout-sec = <32>;
93	status = "okay";
94};
95
96&combophy {
97	clocks = <&rcc CK_BUS_USB3PCIEPHY>, <&rcc CK_KER_USB3PCIEPHY>, <&pad_clk>;
98	clock-names = "apb", "ker", "pad";
99	status = "okay";
100};
101
102&csi {
103	vdd-supply =  <&scmi_vddcore>;
104	vdda18-supply = <&scmi_v1v8>;
105	status = "okay";
106	ports {
107		#address-cells = <1>;
108		#size-cells = <0>;
109		port@0 {
110			reg = <0>;
111			csi_sink: endpoint {
112				remote-endpoint = <&imx335_ep>;
113				data-lanes = <1 2>;
114				bus-type = <4>;
115			};
116		};
117		port@1 {
118			reg = <1>;
119			csi_source: endpoint {
120				remote-endpoint = <&dcmipp_0>;
121			};
122		};
123	};
124};
125
126&dcmipp {
127	status = "okay";
128	port {
129		dcmipp_0: endpoint {
130			remote-endpoint = <&csi_source>;
131			bus-type = <4>;
132		};
133	};
134};
135
136&ethernet2 {
137	pinctrl-names = "default", "sleep";
138	pinctrl-0 = <&eth2_rgmii_pins_a>;
139	pinctrl-1 = <&eth2_rgmii_sleep_pins_a>;
140	max-speed = <1000>;
141	phy-handle = <&phy0_eth2>;
142	phy-mode = "rgmii-id";
143	status = "okay";
144
145	mdio {
146		#address-cells = <1>;
147		#size-cells = <0>;
148		compatible = "snps,dwmac-mdio";
149		phy0_eth2: ethernet-phy@1 {
150			compatible = "ethernet-phy-id001c.c916";
151			reg = <1>;
152			reset-assert-us = <10000>;
153			reset-deassert-us = <300>;
154			reset-gpios =  <&gpiog 6 GPIO_ACTIVE_LOW>;
155		};
156	};
157};
158
159&i2c2 {
160	pinctrl-names = "default", "sleep";
161	pinctrl-0 = <&i2c2_pins_a>;
162	pinctrl-1 = <&i2c2_sleep_pins_a>;
163	i2c-scl-rising-time-ns = <100>;
164	i2c-scl-falling-time-ns = <13>;
165	clock-frequency = <400000>;
166	status = "okay";
167
168	imx335: camera@1a {
169		compatible = "sony,imx335";
170		reg = <0x1a>;
171		clocks = <&clk_ext_camera>;
172		avdd-supply = <&imx335_2v9>;
173		ovdd-supply = <&imx335_1v8>;
174		dvdd-supply = <&imx335_1v2>;
175		reset-gpios = <&gpioi 7 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
176
177		port {
178			imx335_ep: endpoint {
179				remote-endpoint = <&csi_sink>;
180				clock-lanes = <0>;
181				data-lanes = <1 2>;
182				link-frequencies = /bits/ 64 <594000000>;
183			};
184		};
185	};
186};
187
188&i2c8 {
189	pinctrl-names = "default", "sleep";
190	pinctrl-0 = <&i2c8_pins_a>;
191	pinctrl-1 = <&i2c8_sleep_pins_a>;
192	i2c-scl-rising-time-ns = <57>;
193	i2c-scl-falling-time-ns = <7>;
194	clock-frequency = <400000>;
195	status = "disabled";
196};
197
198&ommanager {
199	memory-region = <&mm_ospi1>;
200	pinctrl-0 = <&ospi_port1_clk_pins_a
201		     &ospi_port1_io03_pins_a
202		     &ospi_port1_cs0_pins_a>;
203	pinctrl-1 = <&ospi_port1_clk_sleep_pins_a
204		     &ospi_port1_io03_sleep_pins_a
205		     &ospi_port1_cs0_sleep_pins_a>;
206	pinctrl-names = "default", "sleep";
207	status = "okay";
208
209	spi@0 {
210		#address-cells = <1>;
211		#size-cells = <0>;
212		memory-region = <&mm_ospi1>;
213		status = "okay";
214
215		flash0: flash@0 {
216			compatible = "jedec,spi-nor";
217			reg = <0>;
218			spi-rx-bus-width = <4>;
219			spi-tx-bus-width = <4>;
220			spi-max-frequency = <50000000>;
221		};
222	};
223};
224
225/* use LPTIMER with tick broadcast for suspend mode */
226&lptimer3 {
227	status = "okay";
228	timer {
229		status = "okay";
230	};
231};
232
233&rtc {
234	status = "okay";
235};
236
237&scmi_regu {
238	scmi_vddio1: regulator@0 {
239		regulator-min-microvolt = <1800000>;
240		regulator-max-microvolt = <3300000>;
241	};
242	scmi_vddcore: regulator@11  {
243		reg = <VOLTD_SCMI_STPMIC2_BUCK2>;
244		regulator-name = "vddcore";
245	};
246	scmi_v1v8: regulator@14  {
247		reg = <VOLTD_SCMI_STPMIC2_BUCK5>;
248		regulator-name = "v1v8";
249	};
250	scmi_v3v3: regulator@16 {
251		reg = <VOLTD_SCMI_STPMIC2_BUCK7>;
252		regulator-name = "v3v3";
253	};
254	scmi_vdd_emmc: regulator@18 {
255		reg = <VOLTD_SCMI_STPMIC2_LDO2>;
256		regulator-name = "vdd_emmc";
257	};
258	scmi_vdd3v3_usb: regulator@20 {
259		reg = <VOLTD_SCMI_STPMIC2_LDO4>;
260		regulator-name = "vdd3v3_usb";
261	};
262	scmi_vdd_sdcard: regulator@23 {
263		reg = <VOLTD_SCMI_STPMIC2_LDO7>;
264		regulator-name = "vdd_sdcard";
265	};
266};
267
268&sdmmc1 {
269	pinctrl-names = "default", "opendrain", "sleep";
270	pinctrl-0 = <&sdmmc1_b4_pins_a>;
271	pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
272	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
273	cd-gpios = <&gpiod 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
274	disable-wp;
275	st,neg-edge;
276	bus-width = <4>;
277	vmmc-supply = <&scmi_vdd_sdcard>;
278	vqmmc-supply = <&scmi_vddio1>;
279	status = "okay";
280};
281
282&spi3 {
283	pinctrl-names = "default", "sleep";
284	pinctrl-0 = <&spi3_pins_a>;
285	pinctrl-1 = <&spi3_sleep_pins_a>;
286	status = "disabled";
287};
288
289&spi8 {
290	pinctrl-names = "default", "sleep";
291	pinctrl-0 = <&spi8_pins_a>;
292	pinctrl-1 = <&spi8_sleep_pins_a>;
293	status = "disabled";
294};
295
296&timers3 {
297	status = "disabled";
298	counter {
299		status = "okay";
300	};
301	pwm {
302		pinctrl-0 = <&pwm3_pins_a>;
303		pinctrl-1 = <&pwm3_sleep_pins_a>;
304		pinctrl-names = "default", "sleep";
305		status = "okay";
306	};
307	timer@2 {
308		status = "okay";
309	};
310};
311
312&timers8 {
313	status = "disabled";
314	counter {
315		status = "okay";
316	};
317	pwm {
318		pinctrl-0 = <&pwm8_pins_a>;
319		pinctrl-1 = <&pwm8_sleep_pins_a>;
320		pinctrl-names = "default", "sleep";
321		status = "okay";
322	};
323	timer@7 {
324		status = "okay";
325	};
326};
327
328&timers10 {
329	status = "disabled";
330	counter {
331		pinctrl-0 = <&tim10_counter_pins_a>;
332		pinctrl-1 = <&tim10_counter_sleep_pins_a>;
333		pinctrl-names = "default", "sleep";
334		status = "okay";
335	};
336};
337
338&timers12 {
339	status = "disabled";
340	counter {
341		status = "okay";
342	};
343	pwm {
344		pinctrl-0 = <&pwm12_pins_a>;
345		pinctrl-1 = <&pwm12_sleep_pins_a>;
346		pinctrl-names = "default", "sleep";
347		status = "okay";
348	};
349	timer@11 {
350		status = "okay";
351	};
352};
353
354&usart2 {
355	pinctrl-names = "default", "idle", "sleep";
356	pinctrl-0 = <&usart2_pins_a>;
357	pinctrl-1 = <&usart2_idle_pins_a>;
358	pinctrl-2 = <&usart2_sleep_pins_a>;
359	/delete-property/dmas;
360	/delete-property/dma-names;
361	status = "okay";
362};
363
364&usart6 {
365	pinctrl-names = "default", "idle", "sleep";
366	pinctrl-0 = <&usart6_pins_a>;
367	pinctrl-1 = <&usart6_idle_pins_a>;
368	pinctrl-2 = <&usart6_sleep_pins_a>;
369	uart-has-rtscts;
370	status = "disabled";
371};
372