xref: /freebsd/sys/contrib/device-tree/src/arm/st/stm32mp15xx-dhcom-som.dtsi (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2f126890aSEmmanuel Vadot/*
3f126890aSEmmanuel Vadot * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de>
4f126890aSEmmanuel Vadot */
5f126890aSEmmanuel Vadot
6f126890aSEmmanuel Vadot#include "stm32mp15-pinctrl.dtsi"
7f126890aSEmmanuel Vadot#include "stm32mp15xxaa-pinctrl.dtsi"
8f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
9f126890aSEmmanuel Vadot#include <dt-bindings/mfd/st,stpmic1.h>
10f126890aSEmmanuel Vadot
11f126890aSEmmanuel Vadot/ {
12f126890aSEmmanuel Vadot	aliases {
13f126890aSEmmanuel Vadot		ethernet0 = &ethernet0;
14f126890aSEmmanuel Vadot		ethernet1 = &ksz8851;
15f126890aSEmmanuel Vadot		rtc0 = &hwrtc;
16f126890aSEmmanuel Vadot		rtc1 = &rtc;
17f126890aSEmmanuel Vadot	};
18f126890aSEmmanuel Vadot
19f126890aSEmmanuel Vadot	memory@c0000000 {
20f126890aSEmmanuel Vadot		device_type = "memory";
21f126890aSEmmanuel Vadot		reg = <0xC0000000 0x40000000>;
22f126890aSEmmanuel Vadot	};
23f126890aSEmmanuel Vadot
24f126890aSEmmanuel Vadot	reserved-memory {
25f126890aSEmmanuel Vadot		#address-cells = <1>;
26f126890aSEmmanuel Vadot		#size-cells = <1>;
27f126890aSEmmanuel Vadot		ranges;
28f126890aSEmmanuel Vadot
29f126890aSEmmanuel Vadot		mcuram2: mcuram2@10000000 {
30f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
31f126890aSEmmanuel Vadot			reg = <0x10000000 0x40000>;
32f126890aSEmmanuel Vadot			no-map;
33f126890aSEmmanuel Vadot		};
34f126890aSEmmanuel Vadot
35f126890aSEmmanuel Vadot		vdev0vring0: vdev0vring0@10040000 {
36f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
37f126890aSEmmanuel Vadot			reg = <0x10040000 0x1000>;
38f126890aSEmmanuel Vadot			no-map;
39f126890aSEmmanuel Vadot		};
40f126890aSEmmanuel Vadot
41f126890aSEmmanuel Vadot		vdev0vring1: vdev0vring1@10041000 {
42f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
43f126890aSEmmanuel Vadot			reg = <0x10041000 0x1000>;
44f126890aSEmmanuel Vadot			no-map;
45f126890aSEmmanuel Vadot		};
46f126890aSEmmanuel Vadot
47f126890aSEmmanuel Vadot		vdev0buffer: vdev0buffer@10042000 {
48f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
49f126890aSEmmanuel Vadot			reg = <0x10042000 0x4000>;
50f126890aSEmmanuel Vadot			no-map;
51f126890aSEmmanuel Vadot		};
52f126890aSEmmanuel Vadot
53f126890aSEmmanuel Vadot		mcuram: mcuram@30000000 {
54f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
55f126890aSEmmanuel Vadot			reg = <0x30000000 0x40000>;
56f126890aSEmmanuel Vadot			no-map;
57f126890aSEmmanuel Vadot		};
58f126890aSEmmanuel Vadot
59f126890aSEmmanuel Vadot		retram: retram@38000000 {
60f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
61f126890aSEmmanuel Vadot			reg = <0x38000000 0x10000>;
62f126890aSEmmanuel Vadot			no-map;
63f126890aSEmmanuel Vadot		};
64f126890aSEmmanuel Vadot	};
65f126890aSEmmanuel Vadot
66f126890aSEmmanuel Vadot	ethernet_vio: vioregulator {
67f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
68f126890aSEmmanuel Vadot		regulator-name = "vio";
69f126890aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
70f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
71f126890aSEmmanuel Vadot		gpio = <&gpiog 3 GPIO_ACTIVE_LOW>;
72f126890aSEmmanuel Vadot		regulator-always-on;
73f126890aSEmmanuel Vadot		regulator-boot-on;
74f126890aSEmmanuel Vadot		vin-supply = <&vdd>;
75f126890aSEmmanuel Vadot	};
76f126890aSEmmanuel Vadot};
77f126890aSEmmanuel Vadot
78f126890aSEmmanuel Vadot&adc {
79f126890aSEmmanuel Vadot	vdd-supply = <&vdd>;
80f126890aSEmmanuel Vadot	vdda-supply = <&vdda>;
81f126890aSEmmanuel Vadot	vref-supply = <&vdda>;
82f126890aSEmmanuel Vadot	status = "okay";
83f126890aSEmmanuel Vadot};
84f126890aSEmmanuel Vadot
85f126890aSEmmanuel Vadot&adc1 {
86f126890aSEmmanuel Vadot	channel@0 {
87f126890aSEmmanuel Vadot		reg = <0>;
88f126890aSEmmanuel Vadot		st,min-sample-time-ns = <5000>;
89f126890aSEmmanuel Vadot	};
90f126890aSEmmanuel Vadot};
91f126890aSEmmanuel Vadot
92f126890aSEmmanuel Vadot&adc2 {
93f126890aSEmmanuel Vadot	channel@1 {
94f126890aSEmmanuel Vadot		reg = <1>;
95f126890aSEmmanuel Vadot		st,min-sample-time-ns = <5000>;
96f126890aSEmmanuel Vadot	};
97f126890aSEmmanuel Vadot};
98f126890aSEmmanuel Vadot
99f126890aSEmmanuel Vadot&crc1 {
100f126890aSEmmanuel Vadot	status = "okay";
101f126890aSEmmanuel Vadot};
102f126890aSEmmanuel Vadot
103f126890aSEmmanuel Vadot&dac {
104f126890aSEmmanuel Vadot	pinctrl-names = "default";
105f126890aSEmmanuel Vadot	pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
106f126890aSEmmanuel Vadot	vref-supply = <&vdda>;
107f126890aSEmmanuel Vadot	status = "okay";
108f126890aSEmmanuel Vadot
109f126890aSEmmanuel Vadot	dac1: dac@1 {
110f126890aSEmmanuel Vadot		status = "okay";
111f126890aSEmmanuel Vadot	};
112f126890aSEmmanuel Vadot	dac2: dac@2 {
113f126890aSEmmanuel Vadot		status = "okay";
114f126890aSEmmanuel Vadot	};
115f126890aSEmmanuel Vadot};
116f126890aSEmmanuel Vadot
117f126890aSEmmanuel Vadot&dts {
118f126890aSEmmanuel Vadot	status = "okay";
119f126890aSEmmanuel Vadot};
120f126890aSEmmanuel Vadot
121f126890aSEmmanuel Vadot&ethernet0 {
122f126890aSEmmanuel Vadot	status = "okay";
123f126890aSEmmanuel Vadot	pinctrl-0 = <&ethernet0_rmii_pins_c &mco2_pins_a>;
124f126890aSEmmanuel Vadot	pinctrl-1 = <&ethernet0_rmii_sleep_pins_c &mco2_sleep_pins_a>;
125f126890aSEmmanuel Vadot	pinctrl-names = "default", "sleep";
126f126890aSEmmanuel Vadot	phy-mode = "rmii";
127f126890aSEmmanuel Vadot	max-speed = <100>;
128f126890aSEmmanuel Vadot	phy-handle = <&phy0>;
129f126890aSEmmanuel Vadot
130f126890aSEmmanuel Vadot	mdio {
131f126890aSEmmanuel Vadot		#address-cells = <1>;
132f126890aSEmmanuel Vadot		#size-cells = <0>;
133f126890aSEmmanuel Vadot		compatible = "snps,dwmac-mdio";
134f126890aSEmmanuel Vadot
135f126890aSEmmanuel Vadot		phy0: ethernet-phy@1 {
136f126890aSEmmanuel Vadot			reg = <1>;
137f126890aSEmmanuel Vadot			/* LAN8710Ai */
138f126890aSEmmanuel Vadot			compatible = "ethernet-phy-id0007.c0f0",
139f126890aSEmmanuel Vadot				     "ethernet-phy-ieee802.3-c22";
140f126890aSEmmanuel Vadot			clocks = <&rcc CK_MCO2>;
141f126890aSEmmanuel Vadot			reset-gpios = <&gpioh 3 GPIO_ACTIVE_LOW>;
142f126890aSEmmanuel Vadot			reset-assert-us = <500>;
143f126890aSEmmanuel Vadot			reset-deassert-us = <500>;
144f126890aSEmmanuel Vadot			smsc,disable-energy-detect;
145f126890aSEmmanuel Vadot			interrupt-parent = <&gpioi>;
146f126890aSEmmanuel Vadot			interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
147f126890aSEmmanuel Vadot		};
148f126890aSEmmanuel Vadot	};
149f126890aSEmmanuel Vadot};
150f126890aSEmmanuel Vadot
151f126890aSEmmanuel Vadot&fmc {
152f126890aSEmmanuel Vadot	pinctrl-names = "default", "sleep";
153f126890aSEmmanuel Vadot	pinctrl-0 = <&fmc_pins_b>;
154f126890aSEmmanuel Vadot	pinctrl-1 = <&fmc_sleep_pins_b>;
155f126890aSEmmanuel Vadot	status = "okay";
156f126890aSEmmanuel Vadot
157f126890aSEmmanuel Vadot	ksz8851: ethernet@1,0 {
158f126890aSEmmanuel Vadot		compatible = "micrel,ks8851-mll";
159f126890aSEmmanuel Vadot		reg = <1 0x0 0x2>, <1 0x2 0x20000>;
160f126890aSEmmanuel Vadot		interrupt-parent = <&gpioc>;
161f126890aSEmmanuel Vadot		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
162f126890aSEmmanuel Vadot		bank-width = <2>;
163f126890aSEmmanuel Vadot
164f126890aSEmmanuel Vadot		/* Timing values are in nS */
165f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-mux-enable;
166f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-transaction-type = <4>;
167f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-buswidth = <16>;
168f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-address-setup-ns = <5>;
169f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-address-hold-ns = <5>;
170f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-bus-turnaround-ns = <5>;
171f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-data-setup-ns = <45>;
172f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-data-hold-ns = <1>;
173f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-write-address-setup-ns = <5>;
174f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-write-address-hold-ns = <5>;
175f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-write-bus-turnaround-ns = <5>;
176f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-write-data-setup-ns = <45>;
177f126890aSEmmanuel Vadot		st,fmc2-ebi-cs-write-data-hold-ns = <1>;
178f126890aSEmmanuel Vadot	};
179f126890aSEmmanuel Vadot};
180f126890aSEmmanuel Vadot
181f126890aSEmmanuel Vadot&gpioa {
182f126890aSEmmanuel Vadot	gpio-line-names = "", "", "", "",
183f126890aSEmmanuel Vadot			  "", "", "DHCOM-K", "",
184f126890aSEmmanuel Vadot			  "", "", "", "",
185f126890aSEmmanuel Vadot			  "", "", "", "";
186f126890aSEmmanuel Vadot};
187f126890aSEmmanuel Vadot
188f126890aSEmmanuel Vadot&gpiob {
189f126890aSEmmanuel Vadot	gpio-line-names = "", "", "", "",
190f126890aSEmmanuel Vadot			  "", "", "", "",
191f126890aSEmmanuel Vadot			  "DHCOM-Q", "", "", "",
192f126890aSEmmanuel Vadot			  "", "", "", "";
193f126890aSEmmanuel Vadot};
194f126890aSEmmanuel Vadot
195f126890aSEmmanuel Vadot&gpioc {
196f126890aSEmmanuel Vadot	gpio-line-names = "", "", "", "",
197f126890aSEmmanuel Vadot			  "", "", "DHCOM-E", "",
198f126890aSEmmanuel Vadot			  "", "", "", "",
199f126890aSEmmanuel Vadot			  "", "", "", "";
200f126890aSEmmanuel Vadot};
201f126890aSEmmanuel Vadot
202f126890aSEmmanuel Vadot&gpiod {
203f126890aSEmmanuel Vadot	gpio-line-names = "", "", "", "",
204f126890aSEmmanuel Vadot			  "", "", "DHCOM-B", "",
205f126890aSEmmanuel Vadot			  "", "", "", "DHCOM-F",
206f126890aSEmmanuel Vadot			  "DHCOM-D", "", "", "";
207f126890aSEmmanuel Vadot};
208f126890aSEmmanuel Vadot
209f126890aSEmmanuel Vadot&gpioe {
210f126890aSEmmanuel Vadot	gpio-line-names = "", "", "", "",
211f126890aSEmmanuel Vadot			  "", "", "DHCOM-P", "",
212f126890aSEmmanuel Vadot			  "", "", "", "",
213f126890aSEmmanuel Vadot			  "", "", "", "";
214f126890aSEmmanuel Vadot};
215f126890aSEmmanuel Vadot
216f126890aSEmmanuel Vadot&gpiof {
217f126890aSEmmanuel Vadot	gpio-line-names = "", "", "", "DHCOM-A",
218f126890aSEmmanuel Vadot			  "", "", "", "",
219f126890aSEmmanuel Vadot			  "", "", "", "",
220f126890aSEmmanuel Vadot			  "", "", "", "";
221f126890aSEmmanuel Vadot};
222f126890aSEmmanuel Vadot
223f126890aSEmmanuel Vadot&gpiog {
224f126890aSEmmanuel Vadot	gpio-line-names = "DHCOM-C", "", "", "",
225f126890aSEmmanuel Vadot			  "", "", "", "",
226f126890aSEmmanuel Vadot			  "DHCOM-L", "", "", "",
227f126890aSEmmanuel Vadot			  "", "", "", "";
228f126890aSEmmanuel Vadot};
229f126890aSEmmanuel Vadot
230f126890aSEmmanuel Vadot&gpioh {
231f126890aSEmmanuel Vadot	gpio-line-names = "", "", "", "",
232f126890aSEmmanuel Vadot			  "", "", "", "DHCOM-N",
233f126890aSEmmanuel Vadot			  "DHCOM-J", "DHCOM-W", "DHCOM-V", "DHCOM-U",
234f126890aSEmmanuel Vadot			  "DHCOM-T", "", "DHCOM-S", "";
235f126890aSEmmanuel Vadot};
236f126890aSEmmanuel Vadot
237f126890aSEmmanuel Vadot&gpioi {
238f126890aSEmmanuel Vadot	gpio-line-names = "DHCOM-G", "DHCOM-O", "DHCOM-H", "DHCOM-I",
239f126890aSEmmanuel Vadot			  "DHCOM-R", "DHCOM-M", "", "",
240f126890aSEmmanuel Vadot			  "", "", "", "",
241f126890aSEmmanuel Vadot			  "", "", "", "";
242f126890aSEmmanuel Vadot};
243f126890aSEmmanuel Vadot
244f126890aSEmmanuel Vadot&i2c4 {
245f126890aSEmmanuel Vadot	pinctrl-names = "default";
246f126890aSEmmanuel Vadot	pinctrl-0 = <&i2c4_pins_a>;
247f126890aSEmmanuel Vadot	i2c-scl-rising-time-ns = <185>;
248f126890aSEmmanuel Vadot	i2c-scl-falling-time-ns = <20>;
249f126890aSEmmanuel Vadot	status = "okay";
250f126890aSEmmanuel Vadot	/* spare dmas for other usage */
251f126890aSEmmanuel Vadot	/delete-property/dmas;
252f126890aSEmmanuel Vadot	/delete-property/dma-names;
253f126890aSEmmanuel Vadot
254f126890aSEmmanuel Vadot	hwrtc: rtc@32 {
255f126890aSEmmanuel Vadot		compatible = "microcrystal,rv8803";
256f126890aSEmmanuel Vadot		reg = <0x32>;
257f126890aSEmmanuel Vadot	};
258f126890aSEmmanuel Vadot
259f126890aSEmmanuel Vadot	pmic: stpmic@33 {
260f126890aSEmmanuel Vadot		compatible = "st,stpmic1";
261f126890aSEmmanuel Vadot		reg = <0x33>;
262f126890aSEmmanuel Vadot		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
263f126890aSEmmanuel Vadot		interrupt-controller;
264f126890aSEmmanuel Vadot		#interrupt-cells = <2>;
265f126890aSEmmanuel Vadot		status = "okay";
266f126890aSEmmanuel Vadot
267f126890aSEmmanuel Vadot		regulators {
268f126890aSEmmanuel Vadot			compatible = "st,stpmic1-regulators";
269f126890aSEmmanuel Vadot			ldo1-supply = <&v3v3>;
270f126890aSEmmanuel Vadot			ldo2-supply = <&v3v3>;
271f126890aSEmmanuel Vadot			ldo3-supply = <&vdd_ddr>;
272f126890aSEmmanuel Vadot			ldo5-supply = <&v3v3>;
273f126890aSEmmanuel Vadot			ldo6-supply = <&v3v3>;
274f126890aSEmmanuel Vadot			pwr_sw1-supply = <&bst_out>;
275f126890aSEmmanuel Vadot			pwr_sw2-supply = <&bst_out>;
276f126890aSEmmanuel Vadot
277f126890aSEmmanuel Vadot			vddcore: buck1 {
278f126890aSEmmanuel Vadot				regulator-name = "vddcore";
279f126890aSEmmanuel Vadot				regulator-min-microvolt = <800000>;
280f126890aSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
281f126890aSEmmanuel Vadot				regulator-always-on;
282f126890aSEmmanuel Vadot				regulator-initial-mode = <0>;
283f126890aSEmmanuel Vadot				regulator-over-current-protection;
284f126890aSEmmanuel Vadot			};
285f126890aSEmmanuel Vadot
286f126890aSEmmanuel Vadot			vdd_ddr: buck2 {
287f126890aSEmmanuel Vadot				regulator-name = "vdd_ddr";
288f126890aSEmmanuel Vadot				regulator-min-microvolt = <1350000>;
289f126890aSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
290f126890aSEmmanuel Vadot				regulator-always-on;
291f126890aSEmmanuel Vadot				regulator-initial-mode = <0>;
292f126890aSEmmanuel Vadot				regulator-over-current-protection;
293f126890aSEmmanuel Vadot			};
294f126890aSEmmanuel Vadot
295f126890aSEmmanuel Vadot			vdd: buck3 {
296f126890aSEmmanuel Vadot				regulator-name = "vdd";
297f126890aSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
298f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
299f126890aSEmmanuel Vadot				regulator-always-on;
300f126890aSEmmanuel Vadot				st,mask-reset;
301f126890aSEmmanuel Vadot				regulator-initial-mode = <0>;
302f126890aSEmmanuel Vadot				regulator-over-current-protection;
303f126890aSEmmanuel Vadot			};
304f126890aSEmmanuel Vadot
305f126890aSEmmanuel Vadot			v3v3: buck4 {
306f126890aSEmmanuel Vadot				regulator-name = "v3v3";
307f126890aSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
308f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
309f126890aSEmmanuel Vadot				regulator-always-on;
310f126890aSEmmanuel Vadot				regulator-over-current-protection;
311f126890aSEmmanuel Vadot				regulator-initial-mode = <0>;
312f126890aSEmmanuel Vadot			};
313f126890aSEmmanuel Vadot
314f126890aSEmmanuel Vadot			vdda: ldo1 {
315f126890aSEmmanuel Vadot				regulator-name = "vdda";
316f126890aSEmmanuel Vadot				regulator-always-on;
317f126890aSEmmanuel Vadot				regulator-min-microvolt = <2900000>;
318f126890aSEmmanuel Vadot				regulator-max-microvolt = <2900000>;
319f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO1 0>;
320f126890aSEmmanuel Vadot			};
321f126890aSEmmanuel Vadot
322f126890aSEmmanuel Vadot			v2v8: ldo2 {
323f126890aSEmmanuel Vadot				regulator-name = "v2v8";
324f126890aSEmmanuel Vadot				regulator-min-microvolt = <2800000>;
325f126890aSEmmanuel Vadot				regulator-max-microvolt = <2800000>;
326f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO2 0>;
327f126890aSEmmanuel Vadot			};
328f126890aSEmmanuel Vadot
329f126890aSEmmanuel Vadot			vtt_ddr: ldo3 {
330f126890aSEmmanuel Vadot				regulator-name = "vtt_ddr";
331f126890aSEmmanuel Vadot				regulator-min-microvolt = <500000>;
332f126890aSEmmanuel Vadot				regulator-max-microvolt = <750000>;
333f126890aSEmmanuel Vadot				regulator-always-on;
334f126890aSEmmanuel Vadot				regulator-over-current-protection;
335f126890aSEmmanuel Vadot			};
336f126890aSEmmanuel Vadot
337f126890aSEmmanuel Vadot			vdd_usb: ldo4 {
338f126890aSEmmanuel Vadot				regulator-name = "vdd_usb";
339f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO4 0>;
340f126890aSEmmanuel Vadot			};
341f126890aSEmmanuel Vadot
342f126890aSEmmanuel Vadot			vdd_sd: ldo5 {
343f126890aSEmmanuel Vadot				regulator-name = "vdd_sd";
344f126890aSEmmanuel Vadot				regulator-min-microvolt = <2900000>;
345f126890aSEmmanuel Vadot				regulator-max-microvolt = <2900000>;
346f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO5 0>;
347f126890aSEmmanuel Vadot				regulator-boot-on;
348f126890aSEmmanuel Vadot			};
349f126890aSEmmanuel Vadot
350f126890aSEmmanuel Vadot			v1v8: ldo6 {
351f126890aSEmmanuel Vadot				regulator-name = "v1v8";
352f126890aSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
353f126890aSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
354f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO6 0>;
355f126890aSEmmanuel Vadot			};
356f126890aSEmmanuel Vadot
357f126890aSEmmanuel Vadot			vref_ddr: vref_ddr {
358f126890aSEmmanuel Vadot				regulator-name = "vref_ddr";
359f126890aSEmmanuel Vadot				regulator-always-on;
360f126890aSEmmanuel Vadot			};
361f126890aSEmmanuel Vadot
362f126890aSEmmanuel Vadot			bst_out: boost {
363f126890aSEmmanuel Vadot				regulator-name = "bst_out";
364f126890aSEmmanuel Vadot				interrupts = <IT_OCP_BOOST 0>;
365f126890aSEmmanuel Vadot			};
366f126890aSEmmanuel Vadot
367f126890aSEmmanuel Vadot			vbus_otg: pwr_sw1 {
368f126890aSEmmanuel Vadot				regulator-name = "vbus_otg";
369f126890aSEmmanuel Vadot				interrupts = <IT_OCP_OTG 0>;
370f126890aSEmmanuel Vadot			};
371f126890aSEmmanuel Vadot
372f126890aSEmmanuel Vadot			vbus_sw: pwr_sw2 {
373f126890aSEmmanuel Vadot				regulator-name = "vbus_sw";
374f126890aSEmmanuel Vadot				interrupts = <IT_OCP_SWOUT 0>;
375f126890aSEmmanuel Vadot				regulator-active-discharge = <1>;
376f126890aSEmmanuel Vadot			};
377f126890aSEmmanuel Vadot		};
378f126890aSEmmanuel Vadot
379f126890aSEmmanuel Vadot		onkey {
380f126890aSEmmanuel Vadot			compatible = "st,stpmic1-onkey";
381f126890aSEmmanuel Vadot			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
382f126890aSEmmanuel Vadot			interrupt-names = "onkey-falling", "onkey-rising";
383f126890aSEmmanuel Vadot			power-off-time-sec = <10>;
384f126890aSEmmanuel Vadot			status = "okay";
385f126890aSEmmanuel Vadot		};
386f126890aSEmmanuel Vadot
387f126890aSEmmanuel Vadot		watchdog {
388f126890aSEmmanuel Vadot			compatible = "st,stpmic1-wdt";
389f126890aSEmmanuel Vadot			status = "disabled";
390f126890aSEmmanuel Vadot		};
391f126890aSEmmanuel Vadot	};
392f126890aSEmmanuel Vadot
393f126890aSEmmanuel Vadot	touchscreen@49 {
394f126890aSEmmanuel Vadot		compatible = "ti,tsc2004";
395f126890aSEmmanuel Vadot		reg = <0x49>;
396f126890aSEmmanuel Vadot		vio-supply = <&v3v3>;
397f126890aSEmmanuel Vadot		interrupts-extended = <&gpioh 15 IRQ_TYPE_EDGE_FALLING>;
398f126890aSEmmanuel Vadot	};
399f126890aSEmmanuel Vadot
400f126890aSEmmanuel Vadot	eeprom@50 {
401f126890aSEmmanuel Vadot		compatible = "atmel,24c02";
402f126890aSEmmanuel Vadot		reg = <0x50>;
403f126890aSEmmanuel Vadot		pagesize = <16>;
404f126890aSEmmanuel Vadot	};
405f126890aSEmmanuel Vadot};
406f126890aSEmmanuel Vadot
407f126890aSEmmanuel Vadot&ipcc {
408f126890aSEmmanuel Vadot	status = "okay";
409f126890aSEmmanuel Vadot};
410f126890aSEmmanuel Vadot
411f126890aSEmmanuel Vadot&iwdg2 {
412f126890aSEmmanuel Vadot	timeout-sec = <32>;
413f126890aSEmmanuel Vadot	status = "okay";
414f126890aSEmmanuel Vadot};
415f126890aSEmmanuel Vadot
416f126890aSEmmanuel Vadot&m4_rproc {
417f126890aSEmmanuel Vadot	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
418f126890aSEmmanuel Vadot			<&vdev0vring1>, <&vdev0buffer>;
419*aa1a8ff2SEmmanuel Vadot	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
420*aa1a8ff2SEmmanuel Vadot	mbox-names = "vq0", "vq1", "shutdown", "detach";
421f126890aSEmmanuel Vadot	interrupt-parent = <&exti>;
422f126890aSEmmanuel Vadot	interrupts = <68 1>;
423f126890aSEmmanuel Vadot	status = "okay";
424f126890aSEmmanuel Vadot};
425f126890aSEmmanuel Vadot
426f126890aSEmmanuel Vadot&pwr_regulators {
427f126890aSEmmanuel Vadot	vdd-supply = <&vdd>;
428f126890aSEmmanuel Vadot	vdd_3v3_usbfs-supply = <&vdd_usb>;
429f126890aSEmmanuel Vadot};
430f126890aSEmmanuel Vadot
431f126890aSEmmanuel Vadot&qspi {
432f126890aSEmmanuel Vadot	pinctrl-names = "default", "sleep";
433f126890aSEmmanuel Vadot	pinctrl-0 = <&qspi_clk_pins_a
434f126890aSEmmanuel Vadot		     &qspi_bk1_pins_a
435f126890aSEmmanuel Vadot		     &qspi_cs1_pins_a>;
436f126890aSEmmanuel Vadot	pinctrl-1 = <&qspi_clk_sleep_pins_a
437f126890aSEmmanuel Vadot		     &qspi_bk1_sleep_pins_a
438f126890aSEmmanuel Vadot		     &qspi_cs1_sleep_pins_a>;
439f126890aSEmmanuel Vadot	reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
440f126890aSEmmanuel Vadot	#address-cells = <1>;
441f126890aSEmmanuel Vadot	#size-cells = <0>;
442f126890aSEmmanuel Vadot	status = "okay";
443f126890aSEmmanuel Vadot
444f126890aSEmmanuel Vadot	flash0: flash@0 {
445f126890aSEmmanuel Vadot		compatible = "jedec,spi-nor";
446f126890aSEmmanuel Vadot		reg = <0>;
447f126890aSEmmanuel Vadot		spi-rx-bus-width = <4>;
448f126890aSEmmanuel Vadot		spi-max-frequency = <108000000>;
449f126890aSEmmanuel Vadot		#address-cells = <1>;
450f126890aSEmmanuel Vadot		#size-cells = <1>;
451f126890aSEmmanuel Vadot	};
452f126890aSEmmanuel Vadot};
453f126890aSEmmanuel Vadot
454f126890aSEmmanuel Vadot&rcc {
455f126890aSEmmanuel Vadot	/* Connect MCO2 output to ETH_RX_CLK input via pad-pad connection */
456f126890aSEmmanuel Vadot	clocks = <&rcc CK_MCO2>;
457f126890aSEmmanuel Vadot	clock-names = "ETH_RX_CLK/ETH_REF_CLK";
458f126890aSEmmanuel Vadot
459f126890aSEmmanuel Vadot	/*
460f126890aSEmmanuel Vadot	 * Set PLL4P output to 100 MHz to supply SDMMC with faster clock,
461f126890aSEmmanuel Vadot	 * set MCO2 output to 50 MHz to supply ETHRX clock with PLL4P/2,
462f126890aSEmmanuel Vadot	 * so that MCO2 behaves as a divider for the ETHRX clock here.
463f126890aSEmmanuel Vadot	 */
464f126890aSEmmanuel Vadot	assigned-clocks = <&rcc CK_MCO2>, <&rcc PLL4_P>;
465f126890aSEmmanuel Vadot	assigned-clock-parents = <&rcc PLL4_P>;
466f126890aSEmmanuel Vadot	assigned-clock-rates = <50000000>, <100000000>;
467f126890aSEmmanuel Vadot};
468f126890aSEmmanuel Vadot
469f126890aSEmmanuel Vadot&rng1 {
470f126890aSEmmanuel Vadot	status = "okay";
471f126890aSEmmanuel Vadot};
472f126890aSEmmanuel Vadot
473f126890aSEmmanuel Vadot&rtc {
474f126890aSEmmanuel Vadot	status = "okay";
475f126890aSEmmanuel Vadot};
476f126890aSEmmanuel Vadot
477f126890aSEmmanuel Vadot&sdmmc1 {
478f126890aSEmmanuel Vadot	pinctrl-names = "default", "opendrain", "sleep", "init";
479f126890aSEmmanuel Vadot	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
480f126890aSEmmanuel Vadot	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
481f126890aSEmmanuel Vadot	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
482f126890aSEmmanuel Vadot	pinctrl-3 = <&sdmmc1_b4_init_pins_a &sdmmc1_dir_init_pins_a>;
483f126890aSEmmanuel Vadot	cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
484f126890aSEmmanuel Vadot	disable-wp;
485f126890aSEmmanuel Vadot	st,sig-dir;
486f126890aSEmmanuel Vadot	st,neg-edge;
487f126890aSEmmanuel Vadot	st,use-ckin;
488f126890aSEmmanuel Vadot	st,cmd-gpios = <&gpiod 2 0>;
489f126890aSEmmanuel Vadot	st,ck-gpios = <&gpioc 12 0>;
490f126890aSEmmanuel Vadot	st,ckin-gpios = <&gpioe 4 0>;
491f126890aSEmmanuel Vadot	bus-width = <4>;
492f126890aSEmmanuel Vadot	vmmc-supply = <&vdd_sd>;
493f126890aSEmmanuel Vadot	status = "okay";
494f126890aSEmmanuel Vadot};
495f126890aSEmmanuel Vadot
496f126890aSEmmanuel Vadot&sdmmc1_b4_pins_a {
497f126890aSEmmanuel Vadot	/*
498f126890aSEmmanuel Vadot	 * SD bus pull-up resistors:
499f126890aSEmmanuel Vadot	 * - optional on SoMs with SD voltage translator
500f126890aSEmmanuel Vadot	 * - mandatory on SoMs without SD voltage translator
501f126890aSEmmanuel Vadot	 */
502f126890aSEmmanuel Vadot	pins1 {
503f126890aSEmmanuel Vadot		bias-pull-up;
504f126890aSEmmanuel Vadot	};
505f126890aSEmmanuel Vadot	pins2 {
506f126890aSEmmanuel Vadot		bias-pull-up;
507f126890aSEmmanuel Vadot	};
508f126890aSEmmanuel Vadot};
509f126890aSEmmanuel Vadot
510f126890aSEmmanuel Vadot&sdmmc2 {
511f126890aSEmmanuel Vadot	pinctrl-names = "default", "opendrain", "sleep";
512f126890aSEmmanuel Vadot	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
513f126890aSEmmanuel Vadot	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
514f126890aSEmmanuel Vadot	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
515f126890aSEmmanuel Vadot	non-removable;
516f126890aSEmmanuel Vadot	no-sd;
517f126890aSEmmanuel Vadot	no-sdio;
518f126890aSEmmanuel Vadot	st,neg-edge;
519f126890aSEmmanuel Vadot	bus-width = <8>;
520f126890aSEmmanuel Vadot	vmmc-supply = <&v3v3>;
521f126890aSEmmanuel Vadot	vqmmc-supply = <&v3v3>;
522f126890aSEmmanuel Vadot	mmc-ddr-3_3v;
523f126890aSEmmanuel Vadot	status = "okay";
524f126890aSEmmanuel Vadot};
525f126890aSEmmanuel Vadot
526f126890aSEmmanuel Vadot&sdmmc3 {
527f126890aSEmmanuel Vadot	pinctrl-names = "default", "opendrain", "sleep";
528f126890aSEmmanuel Vadot	pinctrl-0 = <&sdmmc3_b4_pins_a>;
529f126890aSEmmanuel Vadot	pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
530f126890aSEmmanuel Vadot	pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
531f126890aSEmmanuel Vadot	broken-cd;
532f126890aSEmmanuel Vadot	st,neg-edge;
533f126890aSEmmanuel Vadot	bus-width = <4>;
534f126890aSEmmanuel Vadot	vmmc-supply = <&v3v3>;
535f126890aSEmmanuel Vadot	vqmmc-supply = <&v3v3>;
536f126890aSEmmanuel Vadot	mmc-ddr-3_3v;
537f126890aSEmmanuel Vadot	status = "okay";
538f126890aSEmmanuel Vadot};
539f126890aSEmmanuel Vadot
540f126890aSEmmanuel Vadot&uart4 {
541f126890aSEmmanuel Vadot	pinctrl-names = "default";
542f126890aSEmmanuel Vadot	pinctrl-0 = <&uart4_pins_a>;
543f126890aSEmmanuel Vadot	/delete-property/dmas;
544f126890aSEmmanuel Vadot	/delete-property/dma-names;
545f126890aSEmmanuel Vadot	status = "okay";
546f126890aSEmmanuel Vadot};
547