xref: /linux/scripts/dtc/include-prefixes/arm/st/stm32mp15xx-phycore-som.dtsi (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1a620efc8SChristophe Parant// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2a620efc8SChristophe Parant/*
3a620efc8SChristophe Parant * Copyright (C) Phytec GmbH 2019-2020 - All Rights Reserved
4a620efc8SChristophe Parant * Author: Dom VOVARD <dom.vovard@linrt.com>
5a620efc8SChristophe Parant * Copyright (C) 2022-2023 Steffen Trumtrar <kernel@pengutronix.de>
6a620efc8SChristophe Parant * Copyright (C) 2024 PHYTEC Messtechnik GmbH
7a620efc8SChristophe Parant * Author: Christophe Parant <c.parant@phytec.fr>
8a620efc8SChristophe Parant */
9a620efc8SChristophe Parant
10a620efc8SChristophe Parant#include <dt-bindings/gpio/gpio.h>
11a620efc8SChristophe Parant#include <dt-bindings/input/input.h>
12a620efc8SChristophe Parant#include <dt-bindings/mfd/st,stpmic1.h>
13a620efc8SChristophe Parant#include <dt-bindings/net/ti-dp83867.h>
14a620efc8SChristophe Parant#include "stm32mp15-pinctrl.dtsi"
15a620efc8SChristophe Parant#include "stm32mp15xxac-pinctrl.dtsi"
16a620efc8SChristophe Parant
17a620efc8SChristophe Parant/ {
18a620efc8SChristophe Parant
19a620efc8SChristophe Parant	aliases {
20a620efc8SChristophe Parant		ethernet0 = &ethernet0;
21a620efc8SChristophe Parant		rtc0 = &i2c4_rtc;
22a620efc8SChristophe Parant		rtc1 = &rtc;
23a620efc8SChristophe Parant	};
24a620efc8SChristophe Parant
25b95ce919SChristophe Parant	/*
26b95ce919SChristophe Parant	 * Set the minimum memory size here and
27b95ce919SChristophe Parant	 * let the bootloader set the real size.
28b95ce919SChristophe Parant	 */
29b95ce919SChristophe Parant	memory@c0000000 {
30b95ce919SChristophe Parant		device_type = "memory";
31b95ce919SChristophe Parant		reg = <0xc0000000 0x20000000>;
32b95ce919SChristophe Parant	};
33b95ce919SChristophe Parant
34a620efc8SChristophe Parant	reserved-memory {
35a620efc8SChristophe Parant		#address-cells = <1>;
36a620efc8SChristophe Parant		#size-cells = <1>;
37a620efc8SChristophe Parant		ranges;
38a620efc8SChristophe Parant
39a620efc8SChristophe Parant		mcuram2: mcuram2@10000000 {
40a620efc8SChristophe Parant			compatible = "shared-dma-pool";
41a620efc8SChristophe Parant			reg = <0x10000000 0x40000>;
42a620efc8SChristophe Parant			no-map;
43a620efc8SChristophe Parant		};
44a620efc8SChristophe Parant
45a620efc8SChristophe Parant		vdev0vring0: vdev0vring0@10040000 {
46a620efc8SChristophe Parant			compatible = "shared-dma-pool";
47a620efc8SChristophe Parant			reg = <0x10040000 0x1000>;
48a620efc8SChristophe Parant			no-map;
49a620efc8SChristophe Parant		};
50a620efc8SChristophe Parant
51a620efc8SChristophe Parant		vdev0vring1: vdev0vring1@10041000 {
52a620efc8SChristophe Parant			compatible = "shared-dma-pool";
53a620efc8SChristophe Parant			reg = <0x10041000 0x1000>;
54a620efc8SChristophe Parant			no-map;
55a620efc8SChristophe Parant		};
56a620efc8SChristophe Parant
57a620efc8SChristophe Parant		vdev0buffer: vdev0buffer@10042000 {
58a620efc8SChristophe Parant			compatible = "shared-dma-pool";
59a620efc8SChristophe Parant			reg = <0x10042000 0x4000>;
60a620efc8SChristophe Parant			no-map;
61a620efc8SChristophe Parant		};
62c586a772SChristophe Parant
63c586a772SChristophe Parant		mcuram: mcuram@30000000 {
64c586a772SChristophe Parant			compatible = "shared-dma-pool";
65c586a772SChristophe Parant			reg = <0x30000000 0x40000>;
66c586a772SChristophe Parant			no-map;
67c586a772SChristophe Parant		};
68c586a772SChristophe Parant
69c586a772SChristophe Parant		retram: retram@38000000 {
70c586a772SChristophe Parant			compatible = "shared-dma-pool";
71c586a772SChristophe Parant			reg = <0x38000000 0x10000>;
72c586a772SChristophe Parant			no-map;
73c586a772SChristophe Parant		};
74a620efc8SChristophe Parant	};
75a620efc8SChristophe Parant
76a620efc8SChristophe Parant	regulator_vin: regulator {
77a620efc8SChristophe Parant		compatible = "regulator-fixed";
78c586a772SChristophe Parant		regulator-name = "VIN";
79a620efc8SChristophe Parant		regulator-min-microvolt = <5000000>;
80a620efc8SChristophe Parant		regulator-max-microvolt = <5000000>;
81a620efc8SChristophe Parant		regulator-always-on;
82a620efc8SChristophe Parant	};
83a620efc8SChristophe Parant};
84a620efc8SChristophe Parant
85a620efc8SChristophe Parant&ethernet0 {
86a620efc8SChristophe Parant	pinctrl-0 = <&ethernet0_rgmii_pins_d>;
87a620efc8SChristophe Parant	pinctrl-1 = <&ethernet0_rgmii_sleep_pins_d>;
88a620efc8SChristophe Parant	pinctrl-names = "default", "sleep";
89a620efc8SChristophe Parant	phy-mode = "rgmii-id";
90a620efc8SChristophe Parant	max-speed = <1000>;
91a620efc8SChristophe Parant	phy-handle = <&phy0>;
92a620efc8SChristophe Parant	st,eth-clk-sel;
93a620efc8SChristophe Parant	status = "okay";
94a620efc8SChristophe Parant
95a620efc8SChristophe Parant	mdio {
96a620efc8SChristophe Parant		#address-cells = <1>;
97a620efc8SChristophe Parant		#size-cells = <0>;
98a620efc8SChristophe Parant		compatible = "snps,dwmac-mdio";
99a620efc8SChristophe Parant
100a620efc8SChristophe Parant		phy0: ethernet-phy@1 {
101a620efc8SChristophe Parant			compatible = "ethernet-phy-ieee802.3-c22";
102a620efc8SChristophe Parant			reg = <1>;
103a620efc8SChristophe Parant			interrupt-parent = <&gpiog>;
104a620efc8SChristophe Parant			interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
105c586a772SChristophe Parant			enet-phy-lane-no-swap;
106a620efc8SChristophe Parant			ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
107a620efc8SChristophe Parant			ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
108a620efc8SChristophe Parant			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
109a620efc8SChristophe Parant			ti,min-output-impedance;
110a620efc8SChristophe Parant			ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
111a620efc8SChristophe Parant		};
112a620efc8SChristophe Parant	};
113a620efc8SChristophe Parant};
114a620efc8SChristophe Parant
115*1dd44972SChristophe Parant&fmc {
116*1dd44972SChristophe Parant	pinctrl-names = "default", "sleep";
117*1dd44972SChristophe Parant	pinctrl-0 = <&fmc_pins_a>;
118*1dd44972SChristophe Parant	pinctrl-1 = <&fmc_sleep_pins_a>;
119*1dd44972SChristophe Parant	status = "disabled";
120*1dd44972SChristophe Parant
121*1dd44972SChristophe Parant	nand-controller@4,0 {
122*1dd44972SChristophe Parant		nand0: nand@0 {
123*1dd44972SChristophe Parant			reg = <0>;
124*1dd44972SChristophe Parant			nand-on-flash-bbt;
125*1dd44972SChristophe Parant			nand-ecc-strength = <4>;
126*1dd44972SChristophe Parant			nand-ecc-step-size = <512>;
127*1dd44972SChristophe Parant		};
128*1dd44972SChristophe Parant	};
129*1dd44972SChristophe Parant};
130*1dd44972SChristophe Parant
131a620efc8SChristophe Parant&i2c4 {
132a620efc8SChristophe Parant	pinctrl-names = "default", "sleep";
133a620efc8SChristophe Parant	pinctrl-0 = <&i2c4_pins_a>;
134a620efc8SChristophe Parant	pinctrl-1 = <&i2c4_sleep_pins_a>;
135a620efc8SChristophe Parant	i2c-scl-rising-time-ns = <185>;
136a620efc8SChristophe Parant	i2c-scl-falling-time-ns = <20>;
137a620efc8SChristophe Parant	status = "okay";
138a620efc8SChristophe Parant
139a620efc8SChristophe Parant	pmic@33 {
140a620efc8SChristophe Parant		compatible = "st,stpmic1";
141a620efc8SChristophe Parant		reg = <0x33>;
142a620efc8SChristophe Parant		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
143a620efc8SChristophe Parant		interrupt-controller;
144a620efc8SChristophe Parant		#interrupt-cells = <2>;
145a620efc8SChristophe Parant
146a620efc8SChristophe Parant		regulators {
147a620efc8SChristophe Parant			compatible = "st,stpmic1-regulators";
148a620efc8SChristophe Parant			buck1-supply = <&regulator_vin>;
149a620efc8SChristophe Parant			buck2-supply = <&regulator_vin>;
150a620efc8SChristophe Parant			buck3-supply = <&regulator_vin>;
151a620efc8SChristophe Parant			buck4-supply = <&regulator_vin>;
152a620efc8SChristophe Parant			ldo1-supply = <&v3v3>;
153a620efc8SChristophe Parant			ldo2-supply = <&v3v3>;
154a620efc8SChristophe Parant			ldo3-supply = <&vdd_ddr>;
155a620efc8SChristophe Parant			ldo4-supply = <&regulator_vin>;
156a620efc8SChristophe Parant			ldo5-supply = <&v3v3>;
157a620efc8SChristophe Parant			ldo6-supply = <&v3v3>;
158a620efc8SChristophe Parant			boost-supply = <&regulator_vin>;
159a620efc8SChristophe Parant			pwr_sw1-supply = <&bst_out>;
160a620efc8SChristophe Parant			pwr_sw2-supply = <&bst_out>;
161a620efc8SChristophe Parant
162a620efc8SChristophe Parant			vddcore: buck1 {
163c586a772SChristophe Parant				regulator-name = "VDD_CORE";
164a620efc8SChristophe Parant				regulator-min-microvolt = <1200000>;
165a620efc8SChristophe Parant				regulator-max-microvolt = <1350000>;
166a620efc8SChristophe Parant				regulator-always-on;
167a620efc8SChristophe Parant				regulator-initial-mode = <0>;
168a620efc8SChristophe Parant			};
169a620efc8SChristophe Parant
170a620efc8SChristophe Parant			vdd_ddr: buck2 {
171c586a772SChristophe Parant				regulator-name = "VDD_DDR";
172a620efc8SChristophe Parant				regulator-min-microvolt = <1350000>;
173a620efc8SChristophe Parant				regulator-max-microvolt = <1350000>;
174a620efc8SChristophe Parant				regulator-always-on;
175a620efc8SChristophe Parant				regulator-initial-mode = <0>;
176a620efc8SChristophe Parant			};
177a620efc8SChristophe Parant
178a620efc8SChristophe Parant			vdd: buck3 {
179c586a772SChristophe Parant				regulator-name = "VDD";
180a620efc8SChristophe Parant				regulator-min-microvolt = <3300000>;
181a620efc8SChristophe Parant				regulator-max-microvolt = <3300000>;
182a620efc8SChristophe Parant				regulator-always-on;
183a620efc8SChristophe Parant				st,mask-reset;
184a620efc8SChristophe Parant				regulator-initial-mode = <0>;
185a620efc8SChristophe Parant			};
186a620efc8SChristophe Parant
187a620efc8SChristophe Parant			v3v3: buck4 {
188c586a772SChristophe Parant				regulator-name = "VDD_BUCK4";
189a620efc8SChristophe Parant				regulator-min-microvolt = <3300000>;
190a620efc8SChristophe Parant				regulator-max-microvolt = <3300000>;
191a620efc8SChristophe Parant				regulator-always-on;
192a620efc8SChristophe Parant				regulator-initial-mode = <0>;
193a620efc8SChristophe Parant			};
194a620efc8SChristophe Parant
195a620efc8SChristophe Parant			v1v8_audio: ldo1 {
196c586a772SChristophe Parant				regulator-name = "VDD_LDO1";
197a620efc8SChristophe Parant				regulator-min-microvolt = <1800000>;
198a620efc8SChristophe Parant				regulator-max-microvolt = <1800000>;
199a620efc8SChristophe Parant				regulator-always-on;
200a620efc8SChristophe Parant				interrupts = <IT_CURLIM_LDO1 0>;
201a620efc8SChristophe Parant
202a620efc8SChristophe Parant			};
203a620efc8SChristophe Parant
204a620efc8SChristophe Parant			vdd_eth_2v5: ldo2 {
205c586a772SChristophe Parant				regulator-name = "VDD_ETH_2V5";
206a620efc8SChristophe Parant				regulator-min-microvolt = <2500000>;
207a620efc8SChristophe Parant				regulator-max-microvolt = <2500000>;
208a620efc8SChristophe Parant				regulator-always-on;
209a620efc8SChristophe Parant				interrupts = <IT_CURLIM_LDO2 0>;
210a620efc8SChristophe Parant
211a620efc8SChristophe Parant			};
212a620efc8SChristophe Parant
213a620efc8SChristophe Parant			vtt_ddr: ldo3 {
214c586a772SChristophe Parant				regulator-name = "VTT_DDR";
215a620efc8SChristophe Parant				regulator-min-microvolt = <500000>;
216a620efc8SChristophe Parant				regulator-max-microvolt = <750000>;
217a620efc8SChristophe Parant				regulator-always-on;
218a620efc8SChristophe Parant				regulator-over-current-protection;
219a620efc8SChristophe Parant			};
220a620efc8SChristophe Parant
221a620efc8SChristophe Parant			vdd_usb: ldo4 {
222c586a772SChristophe Parant				regulator-name = "VDD_USB";
223a620efc8SChristophe Parant				interrupts = <IT_CURLIM_LDO4 0>;
224a620efc8SChristophe Parant			};
225a620efc8SChristophe Parant
226a620efc8SChristophe Parant			vdda: ldo5 {
227c586a772SChristophe Parant				regulator-name = "VDDA";
228a620efc8SChristophe Parant				regulator-min-microvolt = <2900000>;
229a620efc8SChristophe Parant				regulator-max-microvolt = <2900000>;
230a620efc8SChristophe Parant				interrupts = <IT_CURLIM_LDO5 0>;
231a620efc8SChristophe Parant				regulator-boot-on;
232a620efc8SChristophe Parant			};
233a620efc8SChristophe Parant
234a620efc8SChristophe Parant			vdd_eth_1v0: ldo6 {
235c586a772SChristophe Parant				regulator-name = "VDD_ETH_1V0";
236a620efc8SChristophe Parant				regulator-min-microvolt = <1000000>;
237a620efc8SChristophe Parant				regulator-max-microvolt = <1000000>;
238a620efc8SChristophe Parant				regulator-always-on;
239a620efc8SChristophe Parant				interrupts = <IT_CURLIM_LDO6 0>;
240a620efc8SChristophe Parant
241a620efc8SChristophe Parant			};
242a620efc8SChristophe Parant
243a620efc8SChristophe Parant			vref_ddr: vref_ddr {
244c586a772SChristophe Parant				regulator-name = "VDD_REFDDR";
245a620efc8SChristophe Parant				regulator-always-on;
246a620efc8SChristophe Parant			};
247a620efc8SChristophe Parant
248a620efc8SChristophe Parant			bst_out: boost {
249c586a772SChristophe Parant				regulator-name = "BST_OUT";
250a620efc8SChristophe Parant				interrupts = <IT_OCP_BOOST 0>;
251a620efc8SChristophe Parant			};
252a620efc8SChristophe Parant
253a620efc8SChristophe Parant			vbus_otg: pwr_sw1 {
254c586a772SChristophe Parant				regulator-name = "VBUS_OTG";
255a620efc8SChristophe Parant				interrupts = <IT_OCP_OTG 0>;
256a620efc8SChristophe Parant				regulator-active-discharge = <1>;
257a620efc8SChristophe Parant			};
258a620efc8SChristophe Parant
259a620efc8SChristophe Parant			vbus_sw: pwr_sw2 {
260c586a772SChristophe Parant				regulator-name = "VBUS_SW";
261a620efc8SChristophe Parant				interrupts = <IT_OCP_SWOUT 0>;
262a620efc8SChristophe Parant				regulator-active-discharge = <1>;
263a620efc8SChristophe Parant			};
264a620efc8SChristophe Parant		};
265a620efc8SChristophe Parant
266a620efc8SChristophe Parant		onkey {
267a620efc8SChristophe Parant			compatible = "st,stpmic1-onkey";
268a620efc8SChristophe Parant			interrupts = <IT_PONKEY_F 0>,
269a620efc8SChristophe Parant				     <IT_PONKEY_R 0>;
270a620efc8SChristophe Parant			interrupt-names = "onkey-falling",
271a620efc8SChristophe Parant					  "onkey-rising";
272a620efc8SChristophe Parant			power-off-time-sec = <10>;
273a620efc8SChristophe Parant		};
274a620efc8SChristophe Parant
275a620efc8SChristophe Parant		watchdog {
276a620efc8SChristophe Parant			compatible = "st,stpmic1-wdt";
277a620efc8SChristophe Parant		};
278a620efc8SChristophe Parant	};
279a620efc8SChristophe Parant
280a620efc8SChristophe Parant	i2c4_eeprom: eeprom@50 {
281c586a772SChristophe Parant		compatible = "atmel,24c32";
282a620efc8SChristophe Parant		reg = <0x50>;
283e4c9cc73SChristophe Parant		status = "disabled";
284a620efc8SChristophe Parant	};
285a620efc8SChristophe Parant
286a620efc8SChristophe Parant	i2c4_rtc: rtc@52 {
287a620efc8SChristophe Parant		compatible = "microcrystal,rv3028";
288a620efc8SChristophe Parant		reg = <0x52>;
289e4c9cc73SChristophe Parant		status = "disabled";
290a620efc8SChristophe Parant	};
291a620efc8SChristophe Parant};
292a620efc8SChristophe Parant
293a620efc8SChristophe Parant&ipcc {
294a620efc8SChristophe Parant	status = "okay";
295a620efc8SChristophe Parant};
296a620efc8SChristophe Parant
297a620efc8SChristophe Parant&iwdg2 {
298a620efc8SChristophe Parant	timeout-sec = <32>;
299a620efc8SChristophe Parant	status = "okay";
300a620efc8SChristophe Parant};
301a620efc8SChristophe Parant
302a620efc8SChristophe Parant&m4_rproc {
303a620efc8SChristophe Parant	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
304a620efc8SChristophe Parant			<&vdev0vring1>, <&vdev0buffer>;
305a620efc8SChristophe Parant	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
306a620efc8SChristophe Parant	mbox-names = "vq0", "vq1", "shutdown", "detach";
307a620efc8SChristophe Parant	interrupt-parent = <&exti>;
308a620efc8SChristophe Parant	interrupts = <68 1>;
309a620efc8SChristophe Parant	status = "okay";
310a620efc8SChristophe Parant};
311a620efc8SChristophe Parant
312a620efc8SChristophe Parant&pwr_regulators {
313a620efc8SChristophe Parant	vdd-supply = <&vdd>;
314a620efc8SChristophe Parant	vdd_3v3_usbfs-supply = <&vdd_usb>;
315a620efc8SChristophe Parant};
316a620efc8SChristophe Parant
317a620efc8SChristophe Parant&qspi {
318a620efc8SChristophe Parant	pinctrl-names = "default", "sleep";
31939920625SChristophe Parant	pinctrl-0 = <&qspi_clk_pins_a
32039920625SChristophe Parant		     &qspi_bk1_pins_a
32139920625SChristophe Parant		     &qspi_cs1_pins_a>;
32239920625SChristophe Parant	pinctrl-1 = <&qspi_clk_sleep_pins_a
32339920625SChristophe Parant		     &qspi_bk1_sleep_pins_a
32439920625SChristophe Parant		     &qspi_cs1_sleep_pins_a>;
32539920625SChristophe Parant	reg = <0x58003000 0x1000>,
32639920625SChristophe Parant	      <0x70000000 0x1000000>;
327e4c9cc73SChristophe Parant	status = "disabled";
328a620efc8SChristophe Parant
329a620efc8SChristophe Parant	flash0: flash@0 {
330c586a772SChristophe Parant		compatible = "jedec,spi-nor";
331a620efc8SChristophe Parant		reg = <0>;
332a620efc8SChristophe Parant		spi-rx-bus-width = <4>;
333a620efc8SChristophe Parant		spi-max-frequency = <50000000>;
334a620efc8SChristophe Parant		m25p,fast-read;
335a620efc8SChristophe Parant	};
336a620efc8SChristophe Parant};
337a620efc8SChristophe Parant
338a620efc8SChristophe Parant&rng1 {
339a620efc8SChristophe Parant	status = "okay";
340a620efc8SChristophe Parant};
341a620efc8SChristophe Parant
342a620efc8SChristophe Parant&rtc {
343a620efc8SChristophe Parant	status = "okay";
344a620efc8SChristophe Parant};
345a620efc8SChristophe Parant
346e4c9cc73SChristophe Parant&dts {
347e4c9cc73SChristophe Parant	status = "okay";
348e4c9cc73SChristophe Parant};
349e4c9cc73SChristophe Parant
350a620efc8SChristophe Parant&sdmmc2 {
351a620efc8SChristophe Parant	pinctrl-names = "default", "opendrain", "sleep";
352a620efc8SChristophe Parant	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_e>;
353a620efc8SChristophe Parant	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_e>;
354a620efc8SChristophe Parant	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_e>;
355a620efc8SChristophe Parant	non-removable;
356a620efc8SChristophe Parant	no-sd;
357a620efc8SChristophe Parant	no-sdio;
358a620efc8SChristophe Parant	bus-width = <8>;
359a620efc8SChristophe Parant	vmmc-supply = <&v3v3>;
360a620efc8SChristophe Parant	vqmmc-supply = <&v3v3>;
361a620efc8SChristophe Parant	mmc-ddr-3_3v;
362c586a772SChristophe Parant	st,neg-edge;
363e4c9cc73SChristophe Parant	status = "disabled";
364a620efc8SChristophe Parant};
365