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