xref: /linux/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
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&usart2 {
297	pinctrl-names = "default", "idle", "sleep";
298	pinctrl-0 = <&usart2_pins_a>;
299	pinctrl-1 = <&usart2_idle_pins_a>;
300	pinctrl-2 = <&usart2_sleep_pins_a>;
301	/delete-property/dmas;
302	/delete-property/dma-names;
303	status = "okay";
304};
305
306&usart6 {
307	pinctrl-names = "default", "idle", "sleep";
308	pinctrl-0 = <&usart6_pins_a>;
309	pinctrl-1 = <&usart6_idle_pins_a>;
310	pinctrl-2 = <&usart6_sleep_pins_a>;
311	uart-has-rtscts;
312	status = "disabled";
313};
314