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 <[email protected]> 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};
85
86&arm_wdt {
87	timeout-sec = <32>;
88	status = "okay";
89};
90
91&combophy {
92	clocks = <&rcc CK_BUS_USB3PCIEPHY>, <&rcc CK_KER_USB3PCIEPHY>, <&pad_clk>;
93	clock-names = "apb", "ker", "pad";
94	status = "okay";
95};
96
97&csi {
98	vdd-supply =  <&scmi_vddcore>;
99	vdda18-supply = <&scmi_v1v8>;
100	status = "okay";
101	ports {
102		#address-cells = <1>;
103		#size-cells = <0>;
104		port@0 {
105			reg = <0>;
106			csi_sink: endpoint {
107				remote-endpoint = <&imx335_ep>;
108				data-lanes = <1 2>;
109				bus-type = <4>;
110			};
111		};
112		port@1 {
113			reg = <1>;
114			csi_source: endpoint {
115				remote-endpoint = <&dcmipp_0>;
116			};
117		};
118	};
119};
120
121&dcmipp {
122	status = "okay";
123	port {
124		dcmipp_0: endpoint {
125			remote-endpoint = <&csi_source>;
126			bus-type = <4>;
127		};
128	};
129};
130
131&ethernet2 {
132	pinctrl-names = "default", "sleep";
133	pinctrl-0 = <&eth2_rgmii_pins_a>;
134	pinctrl-1 = <&eth2_rgmii_sleep_pins_a>;
135	max-speed = <1000>;
136	phy-handle = <&phy0_eth2>;
137	phy-mode = "rgmii-id";
138	status = "okay";
139
140	mdio {
141		#address-cells = <1>;
142		#size-cells = <0>;
143		compatible = "snps,dwmac-mdio";
144		phy0_eth2: ethernet-phy@1 {
145			compatible = "ethernet-phy-id001c.c916";
146			reg = <1>;
147			reset-assert-us = <10000>;
148			reset-deassert-us = <300>;
149			reset-gpios =  <&gpiog 6 GPIO_ACTIVE_LOW>;
150		};
151	};
152};
153
154&i2c2 {
155	pinctrl-names = "default", "sleep";
156	pinctrl-0 = <&i2c2_pins_a>;
157	pinctrl-1 = <&i2c2_sleep_pins_a>;
158	i2c-scl-rising-time-ns = <100>;
159	i2c-scl-falling-time-ns = <13>;
160	clock-frequency = <400000>;
161	status = "okay";
162
163	imx335: camera@1a {
164		compatible = "sony,imx335";
165		reg = <0x1a>;
166		clocks = <&clk_ext_camera>;
167		avdd-supply = <&imx335_2v9>;
168		ovdd-supply = <&imx335_1v8>;
169		dvdd-supply = <&imx335_1v2>;
170		reset-gpios = <&gpioi 7 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
171
172		port {
173			imx335_ep: endpoint {
174				remote-endpoint = <&csi_sink>;
175				clock-lanes = <0>;
176				data-lanes = <1 2>;
177				link-frequencies = /bits/ 64 <594000000>;
178			};
179		};
180	};
181};
182
183&i2c8 {
184	pinctrl-names = "default", "sleep";
185	pinctrl-0 = <&i2c8_pins_a>;
186	pinctrl-1 = <&i2c8_sleep_pins_a>;
187	i2c-scl-rising-time-ns = <57>;
188	i2c-scl-falling-time-ns = <7>;
189	clock-frequency = <400000>;
190	status = "disabled";
191};
192
193&rtc {
194	status = "okay";
195};
196
197&scmi_regu {
198	scmi_vddio1: regulator@0 {
199		regulator-min-microvolt = <1800000>;
200		regulator-max-microvolt = <3300000>;
201	};
202	scmi_vddcore: regulator@11  {
203		reg = <VOLTD_SCMI_STPMIC2_BUCK2>;
204		regulator-name = "vddcore";
205	};
206	scmi_v1v8: regulator@14  {
207		reg = <VOLTD_SCMI_STPMIC2_BUCK5>;
208		regulator-name = "v1v8";
209	};
210	scmi_v3v3: regulator@16 {
211		reg = <VOLTD_SCMI_STPMIC2_BUCK7>;
212		regulator-name = "v3v3";
213	};
214	scmi_vdd_emmc: regulator@18 {
215		reg = <VOLTD_SCMI_STPMIC2_LDO2>;
216		regulator-name = "vdd_emmc";
217	};
218	scmi_vdd3v3_usb: regulator@20 {
219		reg = <VOLTD_SCMI_STPMIC2_LDO4>;
220		regulator-name = "vdd3v3_usb";
221	};
222	scmi_vdd_sdcard: regulator@23 {
223		reg = <VOLTD_SCMI_STPMIC2_LDO7>;
224		regulator-name = "vdd_sdcard";
225	};
226};
227
228&sdmmc1 {
229	pinctrl-names = "default", "opendrain", "sleep";
230	pinctrl-0 = <&sdmmc1_b4_pins_a>;
231	pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
232	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
233	cd-gpios = <&gpiod 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
234	disable-wp;
235	st,neg-edge;
236	bus-width = <4>;
237	vmmc-supply = <&scmi_vdd_sdcard>;
238	vqmmc-supply = <&scmi_vddio1>;
239	status = "okay";
240};
241
242&spi3 {
243	pinctrl-names = "default", "sleep";
244	pinctrl-0 = <&spi3_pins_a>;
245	pinctrl-1 = <&spi3_sleep_pins_a>;
246	status = "disabled";
247};
248
249&spi8 {
250	pinctrl-names = "default", "sleep";
251	pinctrl-0 = <&spi8_pins_a>;
252	pinctrl-1 = <&spi8_sleep_pins_a>;
253	status = "disabled";
254};
255
256&usart2 {
257	pinctrl-names = "default", "idle", "sleep";
258	pinctrl-0 = <&usart2_pins_a>;
259	pinctrl-1 = <&usart2_idle_pins_a>;
260	pinctrl-2 = <&usart2_sleep_pins_a>;
261	/delete-property/dmas;
262	/delete-property/dma-names;
263	status = "okay";
264};
265
266&usart6 {
267	pinctrl-names = "default", "idle", "sleep";
268	pinctrl-0 = <&usart6_pins_a>;
269	pinctrl-1 = <&usart6_idle_pins_a>;
270	pinctrl-2 = <&usart6_sleep_pins_a>;
271	uart-has-rtscts;
272	status = "disabled";
273};
274