xref: /freebsd-src/sys/contrib/device-tree/src/arm/st/stm32mp15xx-dhcor-som.dtsi (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
2f126890aSEmmanuel Vadot/*
3f126890aSEmmanuel Vadot * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
4f126890aSEmmanuel Vadot * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
5f126890aSEmmanuel Vadot * Copyright (C) 2020 Marek Vasut <marex@denx.de>
6f126890aSEmmanuel Vadot */
7f126890aSEmmanuel Vadot
8f126890aSEmmanuel Vadot#include "stm32mp15-pinctrl.dtsi"
9f126890aSEmmanuel Vadot#include "stm32mp15xxac-pinctrl.dtsi"
10f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
11f126890aSEmmanuel Vadot#include <dt-bindings/mfd/st,stpmic1.h>
12f126890aSEmmanuel Vadot
13f126890aSEmmanuel Vadot/ {
14f126890aSEmmanuel Vadot	aliases {
15f126890aSEmmanuel Vadot		spi0 = &qspi;
16f126890aSEmmanuel Vadot	};
17f126890aSEmmanuel Vadot
18f126890aSEmmanuel Vadot	memory@c0000000 {
19f126890aSEmmanuel Vadot		device_type = "memory";
20f126890aSEmmanuel Vadot		reg = <0xc0000000 0x40000000>;
21f126890aSEmmanuel Vadot	};
22f126890aSEmmanuel Vadot
23f126890aSEmmanuel Vadot	reserved-memory {
24f126890aSEmmanuel Vadot		#address-cells = <1>;
25f126890aSEmmanuel Vadot		#size-cells = <1>;
26f126890aSEmmanuel Vadot		ranges;
27f126890aSEmmanuel Vadot
28f126890aSEmmanuel Vadot		mcuram2: mcuram2@10000000 {
29f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
30f126890aSEmmanuel Vadot			reg = <0x10000000 0x40000>;
31f126890aSEmmanuel Vadot			no-map;
32f126890aSEmmanuel Vadot		};
33f126890aSEmmanuel Vadot
34f126890aSEmmanuel Vadot		vdev0vring0: vdev0vring0@10040000 {
35f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
36f126890aSEmmanuel Vadot			reg = <0x10040000 0x1000>;
37f126890aSEmmanuel Vadot			no-map;
38f126890aSEmmanuel Vadot		};
39f126890aSEmmanuel Vadot
40f126890aSEmmanuel Vadot		vdev0vring1: vdev0vring1@10041000 {
41f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
42f126890aSEmmanuel Vadot			reg = <0x10041000 0x1000>;
43f126890aSEmmanuel Vadot			no-map;
44f126890aSEmmanuel Vadot		};
45f126890aSEmmanuel Vadot
46f126890aSEmmanuel Vadot		vdev0buffer: vdev0buffer@10042000 {
47f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
48f126890aSEmmanuel Vadot			reg = <0x10042000 0x4000>;
49f126890aSEmmanuel Vadot			no-map;
50f126890aSEmmanuel Vadot		};
51f126890aSEmmanuel Vadot
52f126890aSEmmanuel Vadot		mcuram: mcuram@30000000 {
53f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
54f126890aSEmmanuel Vadot			reg = <0x30000000 0x40000>;
55f126890aSEmmanuel Vadot			no-map;
56f126890aSEmmanuel Vadot		};
57f126890aSEmmanuel Vadot
58f126890aSEmmanuel Vadot		retram: retram@38000000 {
59f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
60f126890aSEmmanuel Vadot			reg = <0x38000000 0x10000>;
61f126890aSEmmanuel Vadot			no-map;
62f126890aSEmmanuel Vadot		};
63f126890aSEmmanuel Vadot	};
64f126890aSEmmanuel Vadot};
65f126890aSEmmanuel Vadot
66f126890aSEmmanuel Vadot&crc1 {
67f126890aSEmmanuel Vadot	status = "okay";
68f126890aSEmmanuel Vadot};
69f126890aSEmmanuel Vadot
70f126890aSEmmanuel Vadot&dts {
71f126890aSEmmanuel Vadot	status = "okay";
72f126890aSEmmanuel Vadot};
73f126890aSEmmanuel Vadot
74f126890aSEmmanuel Vadot&i2c4 {
75f126890aSEmmanuel Vadot	pinctrl-names = "default";
76f126890aSEmmanuel Vadot	pinctrl-0 = <&i2c4_pins_a>;
77f126890aSEmmanuel Vadot	i2c-scl-rising-time-ns = <185>;
78f126890aSEmmanuel Vadot	i2c-scl-falling-time-ns = <20>;
79f126890aSEmmanuel Vadot	status = "okay";
80f126890aSEmmanuel Vadot	/delete-property/dmas;
81f126890aSEmmanuel Vadot	/delete-property/dma-names;
82f126890aSEmmanuel Vadot
83f126890aSEmmanuel Vadot	pmic: stpmic@33 {
84f126890aSEmmanuel Vadot		compatible = "st,stpmic1";
85f126890aSEmmanuel Vadot		reg = <0x33>;
86f126890aSEmmanuel Vadot		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
87f126890aSEmmanuel Vadot		interrupt-controller;
88f126890aSEmmanuel Vadot		#interrupt-cells = <2>;
89f126890aSEmmanuel Vadot		status = "okay";
90f126890aSEmmanuel Vadot
91f126890aSEmmanuel Vadot		regulators {
92f126890aSEmmanuel Vadot			compatible = "st,stpmic1-regulators";
93f126890aSEmmanuel Vadot
94f126890aSEmmanuel Vadot			ldo1-supply = <&v3v3>;
95f126890aSEmmanuel Vadot			ldo2-supply = <&v3v3>;
96f126890aSEmmanuel Vadot			ldo3-supply = <&vdd_ddr>;
97f126890aSEmmanuel Vadot			ldo5-supply = <&v3v3>;
98f126890aSEmmanuel Vadot			ldo6-supply = <&v3v3>;
99f126890aSEmmanuel Vadot			pwr_sw1-supply = <&bst_out>;
100f126890aSEmmanuel Vadot			pwr_sw2-supply = <&bst_out>;
101f126890aSEmmanuel Vadot
102f126890aSEmmanuel Vadot			vddcore: buck1 {
103f126890aSEmmanuel Vadot				regulator-name = "vddcore";
104f126890aSEmmanuel Vadot				regulator-min-microvolt = <1200000>;
105f126890aSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
106f126890aSEmmanuel Vadot				regulator-always-on;
107f126890aSEmmanuel Vadot				regulator-initial-mode = <0>;
108f126890aSEmmanuel Vadot				regulator-over-current-protection;
109f126890aSEmmanuel Vadot			};
110f126890aSEmmanuel Vadot
111f126890aSEmmanuel Vadot			vdd_ddr: buck2 {
112f126890aSEmmanuel Vadot				regulator-name = "vdd_ddr";
113f126890aSEmmanuel Vadot				regulator-min-microvolt = <1350000>;
114f126890aSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
115f126890aSEmmanuel Vadot				regulator-always-on;
116f126890aSEmmanuel Vadot				regulator-initial-mode = <0>;
117f126890aSEmmanuel Vadot				regulator-over-current-protection;
118f126890aSEmmanuel Vadot			};
119f126890aSEmmanuel Vadot
120f126890aSEmmanuel Vadot			vdd: buck3 {
121f126890aSEmmanuel Vadot				regulator-name = "vdd";
122f126890aSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
123f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
124f126890aSEmmanuel Vadot				regulator-always-on;
125f126890aSEmmanuel Vadot				regulator-initial-mode = <0>;
126f126890aSEmmanuel Vadot				regulator-over-current-protection;
127f126890aSEmmanuel Vadot			};
128f126890aSEmmanuel Vadot
129f126890aSEmmanuel Vadot			v3v3: buck4 {
130f126890aSEmmanuel Vadot				regulator-name = "v3v3";
131f126890aSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
132f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
133f126890aSEmmanuel Vadot				regulator-always-on;
134f126890aSEmmanuel Vadot				regulator-over-current-protection;
135f126890aSEmmanuel Vadot				regulator-initial-mode = <0>;
136f126890aSEmmanuel Vadot			};
137f126890aSEmmanuel Vadot
138f126890aSEmmanuel Vadot			vdda: ldo1 {
139f126890aSEmmanuel Vadot				regulator-name = "vdda";
140f126890aSEmmanuel Vadot				regulator-min-microvolt = <2900000>;
141f126890aSEmmanuel Vadot				regulator-max-microvolt = <2900000>;
142f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO1 0>;
143f126890aSEmmanuel Vadot			};
144f126890aSEmmanuel Vadot
145f126890aSEmmanuel Vadot			v2v8: ldo2 {
146f126890aSEmmanuel Vadot				regulator-name = "v2v8";
147f126890aSEmmanuel Vadot				regulator-min-microvolt = <2800000>;
148f126890aSEmmanuel Vadot				regulator-max-microvolt = <2800000>;
149f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO2 0>;
150f126890aSEmmanuel Vadot			};
151f126890aSEmmanuel Vadot
152f126890aSEmmanuel Vadot			vtt_ddr: ldo3 {
153f126890aSEmmanuel Vadot				regulator-name = "vtt_ddr";
154f126890aSEmmanuel Vadot				regulator-min-microvolt = <500000>;
155f126890aSEmmanuel Vadot				regulator-max-microvolt = <750000>;
156f126890aSEmmanuel Vadot				regulator-always-on;
157f126890aSEmmanuel Vadot				regulator-over-current-protection;
158f126890aSEmmanuel Vadot			};
159f126890aSEmmanuel Vadot
160f126890aSEmmanuel Vadot			vdd_usb: ldo4 {
161f126890aSEmmanuel Vadot				regulator-name = "vdd_usb";
162f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO4 0>;
163f126890aSEmmanuel Vadot			};
164f126890aSEmmanuel Vadot
165f126890aSEmmanuel Vadot			vdd_sd: ldo5 {
166f126890aSEmmanuel Vadot				regulator-name = "vdd_sd";
167f126890aSEmmanuel Vadot				regulator-min-microvolt = <2900000>;
168f126890aSEmmanuel Vadot				regulator-max-microvolt = <2900000>;
169f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO5 0>;
170f126890aSEmmanuel Vadot				regulator-boot-on;
171f126890aSEmmanuel Vadot			};
172f126890aSEmmanuel Vadot
173f126890aSEmmanuel Vadot			v1v8: ldo6 {
174f126890aSEmmanuel Vadot				regulator-name = "v1v8";
175f126890aSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
176f126890aSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
177f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO6 0>;
178f126890aSEmmanuel Vadot				regulator-enable-ramp-delay = <300000>;
179f126890aSEmmanuel Vadot			};
180f126890aSEmmanuel Vadot
181f126890aSEmmanuel Vadot			vref_ddr: vref_ddr {
182f126890aSEmmanuel Vadot				regulator-name = "vref_ddr";
183f126890aSEmmanuel Vadot				regulator-always-on;
184f126890aSEmmanuel Vadot			};
185f126890aSEmmanuel Vadot
186f126890aSEmmanuel Vadot			bst_out: boost {
187f126890aSEmmanuel Vadot				regulator-name = "bst_out";
188f126890aSEmmanuel Vadot				interrupts = <IT_OCP_BOOST 0>;
189f126890aSEmmanuel Vadot			};
190f126890aSEmmanuel Vadot
191f126890aSEmmanuel Vadot			vbus_otg: pwr_sw1 {
192f126890aSEmmanuel Vadot				regulator-name = "vbus_otg";
193f126890aSEmmanuel Vadot				interrupts = <IT_OCP_OTG 0>;
194f126890aSEmmanuel Vadot				regulator-active-discharge = <1>;
195f126890aSEmmanuel Vadot			};
196f126890aSEmmanuel Vadot
197f126890aSEmmanuel Vadot			vbus_sw: pwr_sw2 {
198f126890aSEmmanuel Vadot				regulator-name = "vbus_sw";
199f126890aSEmmanuel Vadot				interrupts = <IT_OCP_SWOUT 0>;
200f126890aSEmmanuel Vadot				regulator-active-discharge = <1>;
201f126890aSEmmanuel Vadot			};
202f126890aSEmmanuel Vadot		};
203f126890aSEmmanuel Vadot
204f126890aSEmmanuel Vadot		onkey {
205f126890aSEmmanuel Vadot			compatible = "st,stpmic1-onkey";
206f126890aSEmmanuel Vadot			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
207f126890aSEmmanuel Vadot			interrupt-names = "onkey-falling", "onkey-rising";
208f126890aSEmmanuel Vadot			status = "okay";
209f126890aSEmmanuel Vadot		};
210f126890aSEmmanuel Vadot
211f126890aSEmmanuel Vadot		watchdog {
212f126890aSEmmanuel Vadot			compatible = "st,stpmic1-wdt";
213f126890aSEmmanuel Vadot			status = "disabled";
214f126890aSEmmanuel Vadot		};
215f126890aSEmmanuel Vadot	};
216f126890aSEmmanuel Vadot};
217f126890aSEmmanuel Vadot
218f126890aSEmmanuel Vadot&ipcc {
219f126890aSEmmanuel Vadot	status = "okay";
220f126890aSEmmanuel Vadot};
221f126890aSEmmanuel Vadot
222f126890aSEmmanuel Vadot&iwdg2 {
223f126890aSEmmanuel Vadot	timeout-sec = <32>;
224f126890aSEmmanuel Vadot	status = "okay";
225f126890aSEmmanuel Vadot};
226f126890aSEmmanuel Vadot
227f126890aSEmmanuel Vadot&m4_rproc {
228f126890aSEmmanuel Vadot	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
229f126890aSEmmanuel Vadot			<&vdev0vring1>, <&vdev0buffer>;
230*aa1a8ff2SEmmanuel Vadot	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
231*aa1a8ff2SEmmanuel Vadot	mbox-names = "vq0", "vq1", "shutdown", "detach";
232f126890aSEmmanuel Vadot	interrupt-parent = <&exti>;
233f126890aSEmmanuel Vadot	interrupts = <68 1>;
234f126890aSEmmanuel Vadot	status = "okay";
235f126890aSEmmanuel Vadot};
236f126890aSEmmanuel Vadot
237f126890aSEmmanuel Vadot&pwr_regulators {
238f126890aSEmmanuel Vadot	vdd-supply = <&vdd>;
239f126890aSEmmanuel Vadot	vdd_3v3_usbfs-supply = <&vdd_usb>;
240f126890aSEmmanuel Vadot};
241f126890aSEmmanuel Vadot
242f126890aSEmmanuel Vadot&qspi {
243f126890aSEmmanuel Vadot	pinctrl-names = "default", "sleep";
244f126890aSEmmanuel Vadot	pinctrl-0 = <&qspi_clk_pins_a
245f126890aSEmmanuel Vadot		     &qspi_bk1_pins_a
246f126890aSEmmanuel Vadot		     &qspi_cs1_pins_a>;
247f126890aSEmmanuel Vadot	pinctrl-1 = <&qspi_clk_sleep_pins_a
248f126890aSEmmanuel Vadot		     &qspi_bk1_sleep_pins_a
249f126890aSEmmanuel Vadot		     &qspi_cs1_sleep_pins_a>;
250f126890aSEmmanuel Vadot	reg = <0x58003000 0x1000>, <0x70000000 0x200000>;
251f126890aSEmmanuel Vadot	#address-cells = <1>;
252f126890aSEmmanuel Vadot	#size-cells = <0>;
253f126890aSEmmanuel Vadot	status = "okay";
254f126890aSEmmanuel Vadot
255f126890aSEmmanuel Vadot	flash0: flash@0 {
256f126890aSEmmanuel Vadot		compatible = "jedec,spi-nor";
257f126890aSEmmanuel Vadot		reg = <0>;
258f126890aSEmmanuel Vadot		spi-rx-bus-width = <4>;
259f126890aSEmmanuel Vadot		spi-max-frequency = <50000000>;
260f126890aSEmmanuel Vadot		#address-cells = <1>;
261f126890aSEmmanuel Vadot		#size-cells = <1>;
262f126890aSEmmanuel Vadot	};
263f126890aSEmmanuel Vadot};
264f126890aSEmmanuel Vadot
265f126890aSEmmanuel Vadot&rng1 {
266f126890aSEmmanuel Vadot	status = "okay";
267f126890aSEmmanuel Vadot};
268f126890aSEmmanuel Vadot
269f126890aSEmmanuel Vadot&rtc {
270f126890aSEmmanuel Vadot	status = "okay";
271f126890aSEmmanuel Vadot};
272