xref: /freebsd-src/sys/contrib/device-tree/src/arm/st/stm32mp15xx-osd32.dtsi (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1f126890aSEmmanuel Vadot/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) */
2f126890aSEmmanuel Vadot/*
3f126890aSEmmanuel Vadot * Copyright (C) 2020 STMicroelectronics - All Rights Reserved
4f126890aSEmmanuel Vadot * Copyright (C) 2020 Ahmad Fatoum, Pengutronix
5f126890aSEmmanuel Vadot */
6f126890aSEmmanuel Vadot
7f126890aSEmmanuel Vadot#include "stm32mp15-pinctrl.dtsi"
8f126890aSEmmanuel Vadot
9f126890aSEmmanuel Vadot#include <dt-bindings/mfd/st,stpmic1.h>
10f126890aSEmmanuel Vadot
11f126890aSEmmanuel Vadot/ {
12f126890aSEmmanuel Vadot	reserved-memory {
13f126890aSEmmanuel Vadot		#address-cells = <1>;
14f126890aSEmmanuel Vadot		#size-cells = <1>;
15f126890aSEmmanuel Vadot		ranges;
16f126890aSEmmanuel Vadot
17f126890aSEmmanuel Vadot		mcuram2: mcuram2@10000000 {
18f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
19f126890aSEmmanuel Vadot			reg = <0x10000000 0x40000>;
20f126890aSEmmanuel Vadot			no-map;
21f126890aSEmmanuel Vadot		};
22f126890aSEmmanuel Vadot
23f126890aSEmmanuel Vadot		vdev0vring0: vdev0vring0@10040000 {
24f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
25f126890aSEmmanuel Vadot			reg = <0x10040000 0x1000>;
26f126890aSEmmanuel Vadot			no-map;
27f126890aSEmmanuel Vadot		};
28f126890aSEmmanuel Vadot
29f126890aSEmmanuel Vadot		vdev0vring1: vdev0vring1@10041000 {
30f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
31f126890aSEmmanuel Vadot			reg = <0x10041000 0x1000>;
32f126890aSEmmanuel Vadot			no-map;
33f126890aSEmmanuel Vadot		};
34f126890aSEmmanuel Vadot
35f126890aSEmmanuel Vadot		vdev0buffer: vdev0buffer@10042000 {
36f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
37f126890aSEmmanuel Vadot			reg = <0x10042000 0x4000>;
38f126890aSEmmanuel Vadot			no-map;
39f126890aSEmmanuel Vadot		};
40f126890aSEmmanuel Vadot
41f126890aSEmmanuel Vadot		mcuram: mcuram@30000000 {
42f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
43f126890aSEmmanuel Vadot			reg = <0x30000000 0x40000>;
44f126890aSEmmanuel Vadot			no-map;
45f126890aSEmmanuel Vadot		};
46f126890aSEmmanuel Vadot
47f126890aSEmmanuel Vadot		retram: retram@38000000 {
48f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
49f126890aSEmmanuel Vadot			reg = <0x38000000 0x10000>;
50f126890aSEmmanuel Vadot			no-map;
51f126890aSEmmanuel Vadot		};
52f126890aSEmmanuel Vadot	};
53f126890aSEmmanuel Vadot};
54f126890aSEmmanuel Vadot
55f126890aSEmmanuel Vadot&i2c4 {
56f126890aSEmmanuel Vadot	pinctrl-names = "default", "sleep";
57f126890aSEmmanuel Vadot	pinctrl-0 = <&i2c4_pins_a>;
58f126890aSEmmanuel Vadot	pinctrl-1 = <&i2c4_sleep_pins_a>;
59f126890aSEmmanuel Vadot	clock-frequency = <400000>;
60f126890aSEmmanuel Vadot	i2c-scl-rising-time-ns = <185>;
61f126890aSEmmanuel Vadot	i2c-scl-falling-time-ns = <20>;
62f126890aSEmmanuel Vadot	status = "okay";
63f126890aSEmmanuel Vadot
64f126890aSEmmanuel Vadot	pmic: stpmic@33 {
65f126890aSEmmanuel Vadot		compatible = "st,stpmic1";
66f126890aSEmmanuel Vadot		reg = <0x33>;
67f126890aSEmmanuel Vadot		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
68f126890aSEmmanuel Vadot		interrupt-controller;
69f126890aSEmmanuel Vadot		#interrupt-cells = <2>;
70f126890aSEmmanuel Vadot
71f126890aSEmmanuel Vadot		regulators {
72f126890aSEmmanuel Vadot			compatible = "st,stpmic1-regulators";
73f126890aSEmmanuel Vadot
74f126890aSEmmanuel Vadot			ldo1-supply = <&v3v3>;
75f126890aSEmmanuel Vadot			ldo3-supply = <&vdd_ddr>;
76f126890aSEmmanuel Vadot			ldo6-supply = <&v3v3>;
77f126890aSEmmanuel Vadot			pwr_sw1-supply = <&bst_out>;
78f126890aSEmmanuel Vadot
79f126890aSEmmanuel Vadot			vddcore: buck1 {
80f126890aSEmmanuel Vadot				regulator-name = "vddcore";
81f126890aSEmmanuel Vadot				regulator-min-microvolt = <1200000>;
82f126890aSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
83f126890aSEmmanuel Vadot				regulator-always-on;
84f126890aSEmmanuel Vadot				regulator-initial-mode = <0>;
85f126890aSEmmanuel Vadot				regulator-over-current-protection;
86f126890aSEmmanuel Vadot			};
87f126890aSEmmanuel Vadot
88f126890aSEmmanuel Vadot			vdd_ddr: buck2 {
89f126890aSEmmanuel Vadot				regulator-name = "vdd_ddr";
90f126890aSEmmanuel Vadot				regulator-min-microvolt = <1350000>;
91f126890aSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
92f126890aSEmmanuel Vadot				regulator-always-on;
93f126890aSEmmanuel Vadot				regulator-initial-mode = <0>;
94f126890aSEmmanuel Vadot				regulator-over-current-protection;
95f126890aSEmmanuel Vadot			};
96f126890aSEmmanuel Vadot
97f126890aSEmmanuel Vadot			vdd: buck3 {
98f126890aSEmmanuel Vadot				regulator-name = "vdd";
99f126890aSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
100f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
101f126890aSEmmanuel Vadot				regulator-always-on;
102f126890aSEmmanuel Vadot				st,mask-reset;
103f126890aSEmmanuel Vadot				regulator-initial-mode = <0>;
104f126890aSEmmanuel Vadot				regulator-over-current-protection;
105f126890aSEmmanuel Vadot			};
106f126890aSEmmanuel Vadot
107f126890aSEmmanuel Vadot			v3v3: buck4 {
108f126890aSEmmanuel Vadot				regulator-name = "v3v3";
109f126890aSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
110f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
111f126890aSEmmanuel Vadot				regulator-always-on;
112f126890aSEmmanuel Vadot				regulator-over-current-protection;
113f126890aSEmmanuel Vadot				regulator-initial-mode = <0>;
114f126890aSEmmanuel Vadot			};
115f126890aSEmmanuel Vadot
116f126890aSEmmanuel Vadot			v1v8_audio: ldo1 {
117f126890aSEmmanuel Vadot				regulator-name = "v1v8_audio";
118f126890aSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
119f126890aSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
120f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO1 0>;
121f126890aSEmmanuel Vadot			};
122f126890aSEmmanuel Vadot
123f126890aSEmmanuel Vadot			v3v3_hdmi: ldo2 {
124f126890aSEmmanuel Vadot				regulator-name = "v3v3_hdmi";
125f126890aSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
126f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
127f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO2 0>;
128f126890aSEmmanuel Vadot			};
129f126890aSEmmanuel Vadot
130f126890aSEmmanuel Vadot			vtt_ddr: ldo3 {
131f126890aSEmmanuel Vadot				regulator-name = "vtt_ddr";
132f126890aSEmmanuel Vadot				regulator-min-microvolt = <500000>;
133f126890aSEmmanuel Vadot				regulator-max-microvolt = <750000>;
134f126890aSEmmanuel Vadot				regulator-always-on;
135f126890aSEmmanuel Vadot				regulator-over-current-protection;
136f126890aSEmmanuel Vadot			};
137f126890aSEmmanuel Vadot
138f126890aSEmmanuel Vadot			vdd_usb: ldo4 {
139f126890aSEmmanuel Vadot				regulator-name = "vdd_usb";
140f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO4 0>;
141f126890aSEmmanuel Vadot			};
142f126890aSEmmanuel Vadot
143f126890aSEmmanuel Vadot			vdda: ldo5 {
144f126890aSEmmanuel Vadot				regulator-name = "vdda";
145f126890aSEmmanuel Vadot				regulator-min-microvolt = <2900000>;
146f126890aSEmmanuel Vadot				regulator-max-microvolt = <2900000>;
147f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO5 0>;
148f126890aSEmmanuel Vadot				regulator-boot-on;
149f126890aSEmmanuel Vadot			};
150f126890aSEmmanuel Vadot
151f126890aSEmmanuel Vadot			v1v2_hdmi: ldo6 {
152f126890aSEmmanuel Vadot				regulator-name = "v1v2_hdmi";
153f126890aSEmmanuel Vadot				regulator-min-microvolt = <1200000>;
154f126890aSEmmanuel Vadot				regulator-max-microvolt = <1200000>;
155f126890aSEmmanuel Vadot				interrupts = <IT_CURLIM_LDO6 0>;
156f126890aSEmmanuel Vadot			};
157f126890aSEmmanuel Vadot
158f126890aSEmmanuel Vadot			vref_ddr: vref_ddr {
159f126890aSEmmanuel Vadot				regulator-name = "vref_ddr";
160f126890aSEmmanuel Vadot				regulator-always-on;
161f126890aSEmmanuel Vadot			};
162f126890aSEmmanuel Vadot
163f126890aSEmmanuel Vadot			bst_out: boost {
164f126890aSEmmanuel Vadot				regulator-name = "bst_out";
165f126890aSEmmanuel Vadot				interrupts = <IT_OCP_BOOST 0>;
166f126890aSEmmanuel Vadot			};
167f126890aSEmmanuel Vadot
168f126890aSEmmanuel Vadot			vbus_otg: pwr_sw1 {
169f126890aSEmmanuel Vadot				regulator-name = "vbus_otg";
170f126890aSEmmanuel Vadot				interrupts = <IT_OCP_OTG 0>;
171f126890aSEmmanuel Vadot				regulator-active-discharge = <1>;
172f126890aSEmmanuel Vadot			};
173f126890aSEmmanuel Vadot
174f126890aSEmmanuel Vadot			vbus_sw: pwr_sw2 {
175f126890aSEmmanuel Vadot				regulator-name = "vbus_sw";
176f126890aSEmmanuel Vadot				interrupts = <IT_OCP_SWOUT 0>;
177f126890aSEmmanuel Vadot				regulator-active-discharge = <1>;
178f126890aSEmmanuel Vadot			};
179f126890aSEmmanuel Vadot		};
180f126890aSEmmanuel Vadot
181f126890aSEmmanuel Vadot		onkey {
182f126890aSEmmanuel Vadot			compatible = "st,stpmic1-onkey";
183f126890aSEmmanuel Vadot			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
184f126890aSEmmanuel Vadot			interrupt-names = "onkey-falling", "onkey-rising";
185f126890aSEmmanuel Vadot		};
186f126890aSEmmanuel Vadot
187f126890aSEmmanuel Vadot		pmic_watchdog: watchdog {
188f126890aSEmmanuel Vadot			compatible = "st,stpmic1-wdt";
189f126890aSEmmanuel Vadot			status = "disabled";
190f126890aSEmmanuel Vadot		};
191f126890aSEmmanuel Vadot	};
192f126890aSEmmanuel Vadot
193f126890aSEmmanuel Vadot	sip_eeprom: eeprom@50 {
194f126890aSEmmanuel Vadot		compatible = "atmel,24c32";
195f126890aSEmmanuel Vadot		vcc-supply = <&vdd>;
196f126890aSEmmanuel Vadot		reg = <0x50>;
197f126890aSEmmanuel Vadot	};
198f126890aSEmmanuel Vadot};
199f126890aSEmmanuel Vadot
200f126890aSEmmanuel Vadot&ipcc {
201f126890aSEmmanuel Vadot	status = "okay";
202f126890aSEmmanuel Vadot};
203f126890aSEmmanuel Vadot
204f126890aSEmmanuel Vadot&m4_rproc {
205f126890aSEmmanuel Vadot	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
206f126890aSEmmanuel Vadot			<&vdev0vring1>, <&vdev0buffer>;
207f126890aSEmmanuel Vadot	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
208f126890aSEmmanuel Vadot	mbox-names = "vq0", "vq1", "shutdown", "detach";
209f126890aSEmmanuel Vadot	interrupt-parent = <&exti>;
210f126890aSEmmanuel Vadot	interrupts = <68 1>;
211f126890aSEmmanuel Vadot	status = "okay";
212f126890aSEmmanuel Vadot};
213f126890aSEmmanuel Vadot
214f126890aSEmmanuel Vadot&rng1 {
215f126890aSEmmanuel Vadot	status = "okay";
216f126890aSEmmanuel Vadot};
217*0e8011faSEmmanuel Vadot
218*0e8011faSEmmanuel Vadot&pwr_regulators {
219*0e8011faSEmmanuel Vadot	vdd-supply = <&vdd>;
220*0e8011faSEmmanuel Vadot	vdd_3v3_usbfs-supply = <&vdd_usb>;
221*0e8011faSEmmanuel Vadot};
222*0e8011faSEmmanuel Vadot
223*0e8011faSEmmanuel Vadot&usbphyc_port0 {
224*0e8011faSEmmanuel Vadot	phy-supply = <&vdd_usb>;
225*0e8011faSEmmanuel Vadot};
226*0e8011faSEmmanuel Vadot
227*0e8011faSEmmanuel Vadot&usbphyc_port1 {
228*0e8011faSEmmanuel Vadot	phy-supply = <&vdd_usb>;
229*0e8011faSEmmanuel Vadot};
230