1// SPDX-License-Identifier: BSD-3-Clause
2
3/dts-v1/;
4
5#include "msm8996.dtsi"
6#include "pm8994.dtsi"
7#include "pmi8994.dtsi"
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/input/input.h>
10#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
11
12/ {
13	model = "Inforce 6640 Single Board Computer";
14	compatible = "inforce,ifc6640", "qcom,apq8096-sbc", "qcom,apq8096";
15
16	qcom,msm-id = <291 0x00030001>;
17	qcom,board-id = <0x00010018 0>;
18
19	aliases {
20		serial0 = &blsp2_uart1;
21	};
22
23	chosen {
24		stdout-path = "serial0:115200n8";
25	};
26
27	v1p05: v1p05-regulator {
28		compatible = "regulator-fixed";
29		reglator-name = "v1p05";
30		regulator-always-on;
31		regulator-boot-on;
32
33		regulator-min-microvolt = <1050000>;
34		regulator-max-microvolt = <1050000>;
35
36		vin-supply = <&v5p0>;
37	};
38
39	v12_poe: v12-poe-regulator {
40		compatible = "regulator-fixed";
41		reglator-name = "v12_poe";
42		regulator-always-on;
43		regulator-boot-on;
44
45		regulator-min-microvolt = <12000000>;
46		regulator-max-microvolt = <12000000>;
47	};
48
49	v3p3: v3p3-regulator {
50		compatible = "regulator-fixed";
51		regulator-name = "v3p3";
52		regulator-always-on;
53		regulator-boot-on;
54
55		regulator-min-microvolt = <3300000>;
56		regulator-max-microvolt = <3300000>;
57
58		vin-supply = <&v12_poe>;
59	};
60
61	v5p0: v5p0-regulator {
62		compatible = "regulator-fixed";
63		regulator-name = "v5p0";
64		regulator-always-on;
65		regulator-boot-on;
66
67		regulator-min-microvolt = <5000000>;
68		regulator-max-microvolt = <5000000>;
69
70		vin-supply = <&v12_poe>;
71	};
72
73	vph_pwr: vph-pwr-regulator {
74		compatible = "regulator-fixed";
75		regulator-name = "vph_pwr";
76		regulator-always-on;
77		regulator-boot-on;
78
79		regulator-min-microvolt = <3800000>;
80		regulator-max-microvolt = <3800000>;
81	};
82};
83
84&blsp2_uart1 {
85	status = "okay";
86	pinctrl-names = "default", "sleep";
87	pinctrl-0 = <&blsp2_uart1_2pins_default>;
88	pinctrl-1 = <&blsp2_uart1_2pins_sleep>;
89};
90
91&msmgpio {
92	sdc2_pins_default: sdc2-pins-default {
93		clk {
94			pins = "sdc2_clk";
95			bias-disable;
96			drive-strength = <16>;
97		};
98
99		cmd {
100			pins = "sdc2_cmd";
101			bias-pull-up;
102			drive-strength = <10>;
103		};
104
105		data {
106			pins = "sdc2_data";
107			bias-pull-up;
108			drive-strength = <10>;
109		};
110
111		cd {
112			pins = "gpio38";
113			function = "gpio";
114
115			bias-pull-up;
116			drive-strength = <16>;
117		};
118	};
119
120	sdc2_pins_sleep: sdc2-pins-sleep {
121		clk {
122			pins = "sdc2_clk";
123			bias-disable;
124			drive-strength = <2>;
125		};
126
127		cmd {
128			pins = "sdc2_cmd";
129			bias-pull-up;
130			drive-strength = <2>;
131		};
132
133		data {
134			pins = "sdc2_data";
135			bias-pull-up;
136			drive-strength = <2>;
137		};
138
139		cd {
140			pins = "gpio38";
141			function = "gpio";
142			bias-pull-up;
143			drive-strength = <2>;
144		};
145	};
146};
147
148&rpm_requests {
149	pm8994-regulators {
150		compatible = "qcom,rpm-pm8994-regulators";
151
152		vdd_s1-supply = <&vph_pwr>;
153		vdd_s2-supply = <&vph_pwr>;
154		vdd_s3-supply = <&vph_pwr>;
155		vdd_s4-supply = <&vph_pwr>;
156		vdd_s5-supply = <&vph_pwr>;
157		vdd_s6-supply = <&vph_pwr>;
158		vdd_s7-supply = <&vph_pwr>;
159		vdd_s8-supply = <&vph_pwr>;
160		vdd_s9-supply = <&vph_pwr>;
161		vdd_s10-supply = <&vph_pwr>;
162		vdd_s11-supply = <&vph_pwr>;
163		vdd_s12-supply = <&vph_pwr>;
164		vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>;
165		vdd_l3_l11-supply = <&vreg_s3a_1p3>;
166		vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>;
167		vdd_l5_l7-supply = <&vreg_s5a_2p15>;
168		vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>;
169		vdd_l8_l16_l30-supply = <&vph_pwr>;
170		vdd_l25-supply = <&vreg_s3a_1p3>;
171		vdd_lvs1_2-supply = <&vreg_s4a_1p8>;
172
173		vreg_s3a_1p3: s3 {
174			regulator-name = "vreg_s3a_1p3";
175			regulator-min-microvolt = <1300000>;
176			regulator-max-microvolt = <1300000>;
177		};
178
179		vreg_s4a_1p8: s4 {
180			regulator-name = "vreg_s4a_1p8";
181			regulator-min-microvolt = <1800000>;
182			regulator-max-microvolt = <1800000>;
183			regulator-always-on;
184		};
185		vreg_s5a_2p15: s5 {
186			regulator-name = "vreg_s5a_2p15";
187			regulator-min-microvolt = <2150000>;
188			regulator-max-microvolt = <2150000>;
189		};
190		vreg_s7a_1p0: s7 {
191			regulator-name = "vreg_s7a_1p0";
192			regulator-min-microvolt = <800000>;
193			regulator-max-microvolt = <800000>;
194		};
195
196		vreg_l1a_1p0: l1 {
197			regulator-name = "vreg_l1a_1p0";
198			regulator-min-microvolt = <1000000>;
199			regulator-max-microvolt = <1000000>;
200		};
201		vreg_l2a_1p25: l2 {
202			regulator-name = "vreg_l2a_1p25";
203			regulator-min-microvolt = <1250000>;
204			regulator-max-microvolt = <1250000>;
205		};
206		vreg_l3a_0p875: l3 {
207			regulator-name = "vreg_l3a_0p875";
208			regulator-min-microvolt = <850000>;
209			regulator-max-microvolt = <850000>;
210		};
211		vreg_l4a_1p225: l4 {
212			regulator-name = "vreg_l4a_1p225";
213			regulator-min-microvolt = <1225000>;
214			regulator-max-microvolt = <1225000>;
215		};
216		vreg_l6a_1p2: l6 {
217			regulator-name = "vreg_l6a_1p2";
218			regulator-min-microvolt = <1200000>;
219			regulator-max-microvolt = <1200000>;
220		};
221		vreg_l8a_1p8: l8 {
222			regulator-name = "vreg_l8a_1p8";
223			regulator-min-microvolt = <1800000>;
224			regulator-max-microvolt = <1800000>;
225		};
226		vreg_l9a_1p8: l9 {
227			regulator-name = "vreg_l9a_1p8";
228			regulator-min-microvolt = <1800000>;
229			regulator-max-microvolt = <1800000>;
230		};
231		vreg_l10a_1p8: l10 {
232			regulator-name = "vreg_l10a_1p8";
233			regulator-min-microvolt = <1800000>;
234			regulator-max-microvolt = <1800000>;
235		};
236		vreg_l11a_1p15: l11 {
237			regulator-name = "vreg_l11a_1p15";
238			regulator-min-microvolt = <1150000>;
239			regulator-max-microvolt = <1150000>;
240		};
241		vreg_l12a_1p8: l12 {
242			regulator-name = "vreg_l12a_1p8";
243			regulator-min-microvolt = <1800000>;
244			regulator-max-microvolt = <1800000>;
245		};
246		vreg_l13a_2p95: l13 {
247			regulator-name = "vreg_l13a_2p95";
248			regulator-min-microvolt = <1800000>;
249			regulator-max-microvolt = <2950000>;
250		};
251		vreg_l14a_1p8: l14 {
252			regulator-name = "vreg_l14a_1p8";
253			regulator-min-microvolt = <1800000>;
254			regulator-max-microvolt = <1800000>;
255		};
256		vreg_l15a_1p8: l15 {
257			regulator-name = "vreg_l15a_1p8";
258			regulator-min-microvolt = <1800000>;
259			regulator-max-microvolt = <1800000>;
260		};
261		vreg_l16a_2p7: l16 {
262			regulator-name = "vreg_l16a_2p7";
263			regulator-min-microvolt = <2700000>;
264			regulator-max-microvolt = <2700000>;
265		};
266		vreg_l17a_2p8: l17 {
267			regulator-name = "vreg_l17a_2p8";
268			regulator-min-microvolt = <2500000>;
269			regulator-max-microvolt = <2500000>;
270		};
271		vreg_l18a_2p85: l18 {
272			regulator-name = "vreg_l18a_2p85";
273			regulator-min-microvolt = <2700000>;
274			regulator-max-microvolt = <2900000>;
275		};
276		vreg_l19a_2p8: l19 {
277			regulator-name = "vreg_l19a_2p8";
278			regulator-min-microvolt = <3000000>;
279			regulator-max-microvolt = <3000000>;
280		};
281		vreg_l20a_2p95: l20 {
282			regulator-name = "vreg_l20a_2p95";
283			regulator-min-microvolt = <2950000>;
284			regulator-max-microvolt = <2950000>;
285			regulator-allow-set-load;
286		};
287		vreg_l21a_2p95: l21 {
288			regulator-name = "vreg_l21a_2p95";
289			regulator-min-microvolt = <2950000>;
290			regulator-max-microvolt = <2950000>;
291		};
292		vreg_l22a_3p0: l22 {
293			regulator-name = "vreg_l22a_3p0";
294			regulator-min-microvolt = <3300000>;
295			regulator-max-microvolt = <3300000>;
296		};
297		vreg_l23a_2p8: l23 {
298			regulator-name = "vreg_l23a_2p8";
299			regulator-min-microvolt = <2800000>;
300			regulator-max-microvolt = <2800000>;
301		};
302		vreg_l24a_3p075: l24 {
303			regulator-name = "vreg_l24a_3p075";
304			regulator-min-microvolt = <3075000>;
305			regulator-max-microvolt = <3075000>;
306		};
307		vreg_l25a_1p2: l25 {
308			regulator-name = "vreg_l25a_1p2";
309			regulator-min-microvolt = <1200000>;
310			regulator-max-microvolt = <1200000>;
311			regulator-allow-set-load;
312		};
313		vreg_l26a_0p8: l27 {
314			regulator-name = "vreg_l26a_0p8";
315			regulator-min-microvolt = <1000000>;
316			regulator-max-microvolt = <1000000>;
317		};
318		vreg_l28a_0p925: l28 {
319			regulator-name = "vreg_l28a_0p925";
320			regulator-min-microvolt = <925000>;
321			regulator-max-microvolt = <925000>;
322			regulator-allow-set-load;
323		};
324		vreg_l29a_2p8: l29 {
325			regulator-name = "vreg_l29a_2p8";
326			regulator-min-microvolt = <2800000>;
327			regulator-max-microvolt = <2800000>;
328		};
329		vreg_l30a_1p8: l30 {
330			regulator-name = "vreg_l30a_1p8";
331			regulator-min-microvolt = <1800000>;
332			regulator-max-microvolt = <1800000>;
333		};
334		vreg_l32a_1p8: l32 {
335			regulator-name = "vreg_l32a_1p8";
336			regulator-min-microvolt = <1800000>;
337			regulator-max-microvolt = <1800000>;
338		};
339
340		vreg_lvs1a_1p8: lvs1 {
341			regulator-name = "vreg_lvs1a_1p8";
342		};
343
344		vreg_lvs2a_1p8: lvs2 {
345			regulator-name = "vreg_lvs2a_1p8";
346		};
347	};
348};
349
350&sdhc2 {
351	status = "okay";
352
353	bus-width = <4>;
354
355	cd-gpios = <&msmgpio 38 0x1>;
356
357	vmmc-supply = <&vreg_l21a_2p95>;
358	vqmmc-supply = <&vreg_l13a_2p95>;
359
360	pinctrl-names = "default", "sleep";
361	pinctrl-0 = <&sdc2_pins_default>;
362	pinctrl-1 = <&sdc2_pins_sleep>;
363};
364
365&ufshc {
366	status = "okay";
367
368	vcc-supply = <&vreg_l20a_2p95>;
369	vccq-supply = <&vreg_l25a_1p2>;
370	vccq2-supply = <&vreg_s4a_1p8>;
371
372	vcc-max-microamp = <600000>;
373	vccq-max-microamp = <450000>;
374	vccq2-max-microamp = <450000>;
375};
376
377&ufsphy {
378	status = "okay";
379
380	vdda-phy-supply = <&vreg_l28a_0p925>;
381	vdda-pll-supply = <&vreg_l12a_1p8>;
382
383	vdda-phy-max-microamp = <18380>;
384	vdda-pll-max-microamp = <9440>;
385};
386