1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2016-2022, AngeloGioacchino Del Regno
4 *                          <angelogioacchino.delregno@somainline.org>
5 * Copyright (c) 2022, Konrad Dybcio <konrad.dybcio@somainline.org>
6 * Copyright (c) 2022, Marijn Suijten <marijn.suijten@somainline.org>
7 */
8
9#include "msm8956.dtsi"
10
11#include "pm8004.dtsi"
12#include "pm8950.dtsi"
13#include "pmi8950.dtsi"
14
15/ {
16	qcom,msm-id = <266 0x10001>; /* MSM8956 v1.1 */
17	qcom,board-id = <8 0>;
18
19	aliases {
20		mmc0 = &sdhc_1; /* SDC1 eMMC slot */
21		mmc1 = &sdhc_2; /* SDC2 SD card slot */
22		mmc2 = &sdhc_3; /* SDC3 SDIO card slot */
23		serial0 = &blsp2_uart2;
24	};
25
26	chosen {
27		stdout-path = "serial0:115200n8";
28	};
29
30	reserved-memory {
31		cont-splash@83000000 {
32			reg = <0x0 0x83000000 0x0 0x2800000>;
33		};
34
35		ramoops@57f00000 {
36			compatible = "ramoops";
37			reg = <0 0x57f00000 0 0x100000>;
38			record-size = <0x20000>;
39			console-size = <0x40000>;
40			ftrace-size = <0x20000>;
41			pmsg-size = <0x20000>;
42			ecc-size = <16>;
43		};
44	};
45
46	usbphy_1p2: regulator-usbphy-1p2 {
47		compatible = "regulator-fixed";
48		regulator-name = "usbphy-1p2";
49		regulator-always-on;
50		regulator-boot-on;
51		regulator-min-microvolt = <1200000>;
52		regulator-max-microvolt = <1200000>;
53		vin-supply = <&vph_pwr>;
54	};
55
56	vph_pwr: regulator-vph-pwr {
57		compatible = "regulator-fixed";
58		regulator-name = "vph-pwr";
59		regulator-always-on;
60		regulator-boot-on;
61	};
62};
63
64&blsp1_i2c4 {
65	status = "okay";
66
67	/* Synaptics RMI4 @ 2c */
68};
69
70&blsp2_uart2 {
71	status = "okay";
72};
73
74&gcc {
75	vdd_gfx-supply = <&pm8004_s5>;
76};
77
78&otg {
79	status = "okay";
80};
81
82&pm8004_spmi_regulators {
83	vdd_s2-supply = <&vph_pwr>;
84	vdd_s5-supply = <&vph_pwr>;
85
86	/* Cluster 1 supply */
87	pm8004_s2: s2 {
88		/* regulator-min-microvolt = <500000>; */
89		/* Set .95V to prevent unstabilities until CPR for this SoC is done */
90		regulator-min-microvolt = <950000>;
91		regulator-max-microvolt = <1165000>;
92		regulator-name = "vdd_apc1";
93		/* Set always on until the CPU PLL is done */
94		regulator-always-on;
95		regulator-boot-on;
96	};
97
98	pm8004_s5: s5 {
99		regulator-min-microvolt = <950000>;
100		regulator-max-microvolt = <1165000>;
101		regulator-enable-ramp-delay = <500>;
102		regulator-name = "vdd_gfx";
103		/* Hack this on until the gpu driver is ready for it */
104		regulator-always-on;
105	};
106};
107
108&pm8950_spmi_regulators {
109	vdd_s5-supply = <&vph_pwr>;
110
111	/* Cluster 0 supply */
112	pm8950_spmi_s5: s5 {
113		/* Set .95V to prevent unstabilities until CPR for this SoC is done */
114		/* regulator-min-microvolt = <790000>; */
115		regulator-min-microvolt = <950000>;
116		regulator-max-microvolt = <1165000>;
117		regulator-name = "vdd_apc0";
118		/* Set always on until the CPU PLL is done */
119		regulator-always-on;
120		regulator-boot-on;
121	};
122};
123
124&rpm_requests {
125	pm8950_regulators: regulators {
126		compatible = "qcom,rpm-pm8950-regulators";
127
128		vdd_s1-supply = <&vph_pwr>;
129		vdd_s2-supply = <&vph_pwr>;
130		vdd_s3-supply = <&vph_pwr>;
131		vdd_s4-supply = <&vph_pwr>;
132		vdd_s6-supply = <&vph_pwr>;
133		vdd_l1_l19-supply = <&pm8950_s3>;
134		vdd_l2_l23-supply = <&pm8950_s3>;
135		vdd_l3-supply = <&pm8950_s3>;
136		vdd_l5_l6_l7_l16-supply = <&pm8950_s4>;
137		vdd_l8_l11_l12_l17_l22-supply = <&vph_pwr>;
138
139		pm8950_s1: s1 {
140			regulator-min-microvolt = <1000000>;
141			regulator-max-microvolt = <1162500>;
142		};
143
144		pm8950_s3: s3 {
145			regulator-min-microvolt = <1325000>;
146			regulator-max-microvolt = <1325000>;
147			regulator-always-on;
148		};
149
150		pm8950_s4: s4 {
151			regulator-min-microvolt = <1800000>;
152			regulator-max-microvolt = <1800000>;
153			regulator-always-on;
154		};
155
156		pm8950_l1: l1 {
157			regulator-min-microvolt = <900000>;
158			regulator-max-microvolt = <1100000>;
159		};
160
161		pm8950_l2: l2 {
162			regulator-min-microvolt = <1200000>;
163			regulator-max-microvolt = <1200000>;
164		};
165
166		pm8950_l3: l3 {
167			regulator-min-microvolt = <1000000>;
168			regulator-max-microvolt = <1200000>;
169		};
170
171		pm8950_l5: l5 {
172			regulator-min-microvolt = <1800000>;
173			regulator-max-microvolt = <1800000>;
174			regulator-system-load = <290000>;
175			regulator-allow-set-load;
176		};
177
178		pm8950_l6: l6 {
179			regulator-min-microvolt = <1800000>;
180			regulator-max-microvolt = <1800000>;
181		};
182
183		pm8950_l7: l7 {
184			regulator-min-microvolt = <1800000>;
185			regulator-max-microvolt = <1800000>;
186		};
187
188		pm8950_l8: l8 {
189			regulator-min-microvolt = <2900000>;
190			regulator-max-microvolt = <2900000>;
191			regulator-system-load = <130000>;
192			regulator-allow-set-load;
193		};
194
195		pm8950_l9: l9 {
196			regulator-min-microvolt = <2000000>;
197			regulator-max-microvolt = <2400000>;
198		};
199
200		pm8950_l10: l10 {
201			regulator-min-microvolt = <2500000>;
202			regulator-max-microvolt = <2900000>;
203		};
204
205		pm8950_l11: l11 {
206			regulator-min-microvolt = <2950000>;
207			regulator-max-microvolt = <2950000>;
208			regulator-system-load = <60000>;
209			regulator-allow-set-load;
210		};
211
212		pm8950_l12: l12 {
213			regulator-min-microvolt = <1800000>;
214			regulator-max-microvolt = <2950000>;
215			regulator-system-load = <100000>;
216			regulator-allow-set-load;
217		};
218
219		pm8950_l13: l13 {
220			regulator-min-microvolt = <3075000>;
221			regulator-max-microvolt = <3075000>;
222		};
223
224		pm8950_l14: l14 {
225			regulator-min-microvolt = <1800000>;
226			regulator-max-microvolt = <3300000>;
227		};
228
229		pm8950_l15: l15 {
230			regulator-min-microvolt = <1800000>;
231			regulator-max-microvolt = <3300000>;
232		};
233
234		pm8950_l16: l16 {
235			regulator-min-microvolt = <1800000>;
236			regulator-max-microvolt = <1800000>;
237		};
238
239		pm8950_l17: l17 {
240			regulator-min-microvolt = <2500000>;
241			regulator-max-microvolt = <2900000>;
242		};
243
244		pm8950_l22: l22 {
245			regulator-min-microvolt = <3000000>;
246			regulator-max-microvolt = <3000000>;
247		};
248
249		pm8950_l23: l23 {
250			regulator-min-microvolt = <1200000>;
251			regulator-max-microvolt = <1200000>;
252		};
253	};
254};
255
256&sdhc_1 {
257	/* Toshiba THGBMHG8C4LBAU7 (032G34) */
258	bus-width = <8>;
259	non-removable;
260	vmmc-supply = <&pm8950_l8>;
261	vqmmc-supply = <&pm8950_l5>;
262	status = "okay";
263};
264
265&sdhc_2 {
266	bus-width = <4>;
267	cd-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH>;
268	vmmc-supply = <&pm8950_l11>;
269	vqmmc-supply = <&pm8950_l12>;
270	status = "okay";
271};
272
273&tlmm {
274	gpio-reserved-ranges = <0 4>;
275};
276
277&usb_hs_phy {
278	vdd-supply = <&usbphy_1p2>;
279	vdda1p8-supply = <&pm8950_l7>;
280	vdda3p3-supply = <&pm8950_l13>;
281	status = "okay";
282};
283