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_uart2;
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_uart2 {
85	status = "okay";
86	pinctrl-names = "default", "sleep";
87	pinctrl-0 = <&blsp2_uart2_2pins_default>;
88	pinctrl-1 = <&blsp2_uart2_2pins_sleep>;
89};
90
91&gpu {
92	status = "okay";
93};
94
95&hdmi {
96	status = "okay";
97};
98
99&hdmi_phy {
100	status = "okay";
101};
102
103&mdss {
104	status = "okay";
105};
106
107&tlmm {
108	sdc2_pins_default: sdc2-pins-default {
109		clk {
110			pins = "sdc2_clk";
111			bias-disable;
112			drive-strength = <16>;
113		};
114
115		cmd {
116			pins = "sdc2_cmd";
117			bias-pull-up;
118			drive-strength = <10>;
119		};
120
121		data {
122			pins = "sdc2_data";
123			bias-pull-up;
124			drive-strength = <10>;
125		};
126
127		cd {
128			pins = "gpio38";
129			function = "gpio";
130
131			bias-pull-up;
132			drive-strength = <16>;
133		};
134	};
135
136	sdc2_pins_sleep: sdc2-pins-sleep {
137		clk {
138			pins = "sdc2_clk";
139			bias-disable;
140			drive-strength = <2>;
141		};
142
143		cmd {
144			pins = "sdc2_cmd";
145			bias-pull-up;
146			drive-strength = <2>;
147		};
148
149		data {
150			pins = "sdc2_data";
151			bias-pull-up;
152			drive-strength = <2>;
153		};
154
155		cd {
156			pins = "gpio38";
157			function = "gpio";
158			bias-pull-up;
159			drive-strength = <2>;
160		};
161	};
162};
163
164&rpm_requests {
165	pm8994-regulators {
166		compatible = "qcom,rpm-pm8994-regulators";
167
168		vdd_s1-supply = <&vph_pwr>;
169		vdd_s2-supply = <&vph_pwr>;
170		vdd_s3-supply = <&vph_pwr>;
171		vdd_s4-supply = <&vph_pwr>;
172		vdd_s5-supply = <&vph_pwr>;
173		vdd_s6-supply = <&vph_pwr>;
174		vdd_s7-supply = <&vph_pwr>;
175		vdd_s8-supply = <&vph_pwr>;
176		vdd_s9-supply = <&vph_pwr>;
177		vdd_s10-supply = <&vph_pwr>;
178		vdd_s11-supply = <&vph_pwr>;
179		vdd_s12-supply = <&vph_pwr>;
180		vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>;
181		vdd_l3_l11-supply = <&vreg_s3a_1p3>;
182		vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>;
183		vdd_l5_l7-supply = <&vreg_s5a_2p15>;
184		vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>;
185		vdd_l8_l16_l30-supply = <&vph_pwr>;
186		vdd_l25-supply = <&vreg_s3a_1p3>;
187		vdd_lvs1_2-supply = <&vreg_s4a_1p8>;
188
189		vreg_s3a_1p3: s3 {
190			regulator-name = "vreg_s3a_1p3";
191			regulator-min-microvolt = <1300000>;
192			regulator-max-microvolt = <1300000>;
193		};
194
195		vreg_s4a_1p8: s4 {
196			regulator-name = "vreg_s4a_1p8";
197			regulator-min-microvolt = <1800000>;
198			regulator-max-microvolt = <1800000>;
199			regulator-always-on;
200		};
201		vreg_s5a_2p15: s5 {
202			regulator-name = "vreg_s5a_2p15";
203			regulator-min-microvolt = <2150000>;
204			regulator-max-microvolt = <2150000>;
205		};
206		vreg_s7a_1p0: s7 {
207			regulator-name = "vreg_s7a_1p0";
208			regulator-min-microvolt = <800000>;
209			regulator-max-microvolt = <800000>;
210		};
211
212		vreg_l1a_1p0: l1 {
213			regulator-name = "vreg_l1a_1p0";
214			regulator-min-microvolt = <1000000>;
215			regulator-max-microvolt = <1000000>;
216		};
217		vreg_l2a_1p25: l2 {
218			regulator-name = "vreg_l2a_1p25";
219			regulator-min-microvolt = <1250000>;
220			regulator-max-microvolt = <1250000>;
221		};
222		vreg_l3a_0p875: l3 {
223			regulator-name = "vreg_l3a_0p875";
224			regulator-min-microvolt = <850000>;
225			regulator-max-microvolt = <850000>;
226		};
227		vreg_l4a_1p225: l4 {
228			regulator-name = "vreg_l4a_1p225";
229			regulator-min-microvolt = <1225000>;
230			regulator-max-microvolt = <1225000>;
231		};
232		vreg_l6a_1p2: l6 {
233			regulator-name = "vreg_l6a_1p2";
234			regulator-min-microvolt = <1200000>;
235			regulator-max-microvolt = <1200000>;
236		};
237		vreg_l8a_1p8: l8 {
238			regulator-name = "vreg_l8a_1p8";
239			regulator-min-microvolt = <1800000>;
240			regulator-max-microvolt = <1800000>;
241		};
242		vreg_l9a_1p8: l9 {
243			regulator-name = "vreg_l9a_1p8";
244			regulator-min-microvolt = <1800000>;
245			regulator-max-microvolt = <1800000>;
246		};
247		vreg_l10a_1p8: l10 {
248			regulator-name = "vreg_l10a_1p8";
249			regulator-min-microvolt = <1800000>;
250			regulator-max-microvolt = <1800000>;
251		};
252		vreg_l11a_1p15: l11 {
253			regulator-name = "vreg_l11a_1p15";
254			regulator-min-microvolt = <1150000>;
255			regulator-max-microvolt = <1150000>;
256		};
257		vreg_l12a_1p8: l12 {
258			regulator-name = "vreg_l12a_1p8";
259			regulator-min-microvolt = <1800000>;
260			regulator-max-microvolt = <1800000>;
261		};
262		vreg_l13a_2p95: l13 {
263			regulator-name = "vreg_l13a_2p95";
264			regulator-min-microvolt = <1800000>;
265			regulator-max-microvolt = <2950000>;
266		};
267		vreg_l14a_1p8: l14 {
268			regulator-name = "vreg_l14a_1p8";
269			regulator-min-microvolt = <1800000>;
270			regulator-max-microvolt = <1800000>;
271		};
272		vreg_l15a_1p8: l15 {
273			regulator-name = "vreg_l15a_1p8";
274			regulator-min-microvolt = <1800000>;
275			regulator-max-microvolt = <1800000>;
276		};
277		vreg_l16a_2p7: l16 {
278			regulator-name = "vreg_l16a_2p7";
279			regulator-min-microvolt = <2700000>;
280			regulator-max-microvolt = <2700000>;
281		};
282		vreg_l17a_2p8: l17 {
283			regulator-name = "vreg_l17a_2p8";
284			regulator-min-microvolt = <2500000>;
285			regulator-max-microvolt = <2500000>;
286		};
287		vreg_l18a_2p85: l18 {
288			regulator-name = "vreg_l18a_2p85";
289			regulator-min-microvolt = <2700000>;
290			regulator-max-microvolt = <2900000>;
291		};
292		vreg_l19a_2p8: l19 {
293			regulator-name = "vreg_l19a_2p8";
294			regulator-min-microvolt = <3000000>;
295			regulator-max-microvolt = <3000000>;
296		};
297		vreg_l20a_2p95: l20 {
298			regulator-name = "vreg_l20a_2p95";
299			regulator-min-microvolt = <2950000>;
300			regulator-max-microvolt = <2950000>;
301			regulator-allow-set-load;
302		};
303		vreg_l21a_2p95: l21 {
304			regulator-name = "vreg_l21a_2p95";
305			regulator-min-microvolt = <2950000>;
306			regulator-max-microvolt = <2950000>;
307		};
308		vreg_l22a_3p0: l22 {
309			regulator-name = "vreg_l22a_3p0";
310			regulator-min-microvolt = <3300000>;
311			regulator-max-microvolt = <3300000>;
312		};
313		vreg_l23a_2p8: l23 {
314			regulator-name = "vreg_l23a_2p8";
315			regulator-min-microvolt = <2800000>;
316			regulator-max-microvolt = <2800000>;
317		};
318		vreg_l24a_3p075: l24 {
319			regulator-name = "vreg_l24a_3p075";
320			regulator-min-microvolt = <3075000>;
321			regulator-max-microvolt = <3075000>;
322		};
323		vreg_l25a_1p2: l25 {
324			regulator-name = "vreg_l25a_1p2";
325			regulator-min-microvolt = <1200000>;
326			regulator-max-microvolt = <1200000>;
327			regulator-allow-set-load;
328		};
329		vreg_l26a_0p8: l27 {
330			regulator-name = "vreg_l26a_0p8";
331			regulator-min-microvolt = <1000000>;
332			regulator-max-microvolt = <1000000>;
333		};
334		vreg_l28a_0p925: l28 {
335			regulator-name = "vreg_l28a_0p925";
336			regulator-min-microvolt = <925000>;
337			regulator-max-microvolt = <925000>;
338			regulator-allow-set-load;
339		};
340		vreg_l29a_2p8: l29 {
341			regulator-name = "vreg_l29a_2p8";
342			regulator-min-microvolt = <2800000>;
343			regulator-max-microvolt = <2800000>;
344		};
345		vreg_l30a_1p8: l30 {
346			regulator-name = "vreg_l30a_1p8";
347			regulator-min-microvolt = <1800000>;
348			regulator-max-microvolt = <1800000>;
349		};
350		vreg_l32a_1p8: l32 {
351			regulator-name = "vreg_l32a_1p8";
352			regulator-min-microvolt = <1800000>;
353			regulator-max-microvolt = <1800000>;
354		};
355
356		vreg_lvs1a_1p8: lvs1 {
357			regulator-name = "vreg_lvs1a_1p8";
358		};
359
360		vreg_lvs2a_1p8: lvs2 {
361			regulator-name = "vreg_lvs2a_1p8";
362		};
363	};
364};
365
366&sdhc2 {
367	status = "okay";
368
369	bus-width = <4>;
370
371	cd-gpios = <&tlmm 38 0x1>;
372
373	vmmc-supply = <&vreg_l21a_2p95>;
374	vqmmc-supply = <&vreg_l13a_2p95>;
375
376	pinctrl-names = "default", "sleep";
377	pinctrl-0 = <&sdc2_pins_default>;
378	pinctrl-1 = <&sdc2_pins_sleep>;
379};
380
381&ufshc {
382	status = "okay";
383
384	vcc-supply = <&vreg_l20a_2p95>;
385	vccq-supply = <&vreg_l25a_1p2>;
386	vccq2-supply = <&vreg_s4a_1p8>;
387
388	vcc-max-microamp = <600000>;
389	vccq-max-microamp = <450000>;
390	vccq2-max-microamp = <450000>;
391};
392
393&ufsphy {
394	status = "okay";
395
396	vdda-phy-supply = <&vreg_l28a_0p925>;
397	vdda-pll-supply = <&vreg_l12a_1p8>;
398
399	vdda-phy-max-microamp = <18380>;
400	vdda-pll-max-microamp = <9440>;
401};
402
403&venus {
404	status = "okay";
405};
406