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