1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/gpio/gpio.h>
3#include <dt-bindings/input/input.h>
4#include <dt-bindings/leds/common.h>
5#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
6#include "qcom-msm8974.dtsi"
7#include "pm8841.dtsi"
8#include "pm8941.dtsi"
9
10/delete-node/ &mpss_region;
11
12/ {
13	model = "Qualcomm APQ8074 Dragonboard";
14	compatible = "qcom,apq8074-dragonboard", "qcom,apq8074";
15
16	aliases {
17		serial0 = &blsp1_uart2;
18		usid0 = &pm8941_0;
19		usid4 = &pm8841_0;
20	};
21
22	chosen {
23		stdout-path = "serial0:115200n8";
24	};
25
26	gpio-keys {
27		compatible = "gpio-keys";
28		autorepeat;
29
30		pinctrl-0 = <&msm_keys_default>;
31		pinctrl-names = "default";
32
33		button-volup {
34			label = "Volume Up";
35			linux,code = <KEY_VOLUMEUP>;
36			gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
37		};
38
39		button-general {
40			label = "General";
41			linux,code = <KEY_PROG1>;
42			gpios = <&pm8941_gpios 23 GPIO_ACTIVE_LOW>;
43		};
44	};
45
46	reserved-memory {
47		mpss_region: mpss@ac00000 {
48			reg = <0x0ac00000 0x2500000>;
49			no-map;
50		};
51	};
52
53	vreg_boost: vreg-boost {
54		compatible = "regulator-fixed";
55
56		regulator-name = "vreg-boost";
57		regulator-min-microvolt = <3150000>;
58		regulator-max-microvolt = <3150000>;
59
60		regulator-always-on;
61		regulator-boot-on;
62
63		gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
64		enable-active-high;
65
66		pinctrl-names = "default";
67		pinctrl-0 = <&boost_bypass_n_pin>;
68	};
69
70	vreg_vph_pwr: vreg-vph-pwr {
71		compatible = "regulator-fixed";
72		regulator-name = "vph-pwr";
73
74		regulator-min-microvolt = <3600000>;
75		regulator-max-microvolt = <3600000>;
76
77		regulator-always-on;
78	};
79};
80
81&blsp1_uart2 {
82	status = "okay";
83};
84
85&blsp2_dma {
86	qcom,controlled-remotely;
87};
88
89&blsp2_i2c5 {
90	status = "okay";
91	clock-frequency = <200000>;
92
93	eeprom: eeprom@52 {
94		compatible = "atmel,24c128";
95		reg = <0x52>;
96		pagesize = <32>;
97		read-only;
98	};
99};
100
101&gpu {
102	status = "okay";
103};
104
105&mdss {
106	status = "okay";
107};
108
109&mdss_dsi0 {
110	vdda-supply = <&pm8941_l2>;
111	vdd-supply = <&pm8941_l22>;
112	vddio-supply = <&pm8941_l12>;
113
114	status = "okay";
115
116	panel: panel@0 {
117		compatible = "sharp,ls043t1le01-qhd";
118		reg = <0>;
119
120		avdd-supply = <&pm8941_l22>;
121		backlight = <&pm8941_wled>;
122		reset-gpios = <&pm8941_gpios 19 GPIO_ACTIVE_HIGH>;
123
124		port {
125			panel_in: endpoint {
126				remote-endpoint = <&mdss_dsi0_out>;
127			};
128		};
129	};
130};
131
132&mdss_dsi0_out {
133	remote-endpoint = <&panel_in>;
134	data-lanes = <0 1 2 3>;
135};
136
137&mdss_dsi0_phy {
138	status = "okay";
139
140	vddio-supply = <&pm8941_l12>;
141};
142
143&gpu {
144	status = "okay";
145};
146
147&mdss {
148	status = "okay";
149};
150
151&pm8941_gpios {
152        msm_keys_default: pm8941-gpio-keys-state {
153		pins = "gpio5", "gpio23";
154		function = "normal";
155		input-enable;
156		drive-push-pull;
157		bias-pull-up;
158		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
159		power-source = <PM8941_GPIO_S3>; /* 1.8V */
160        };
161};
162
163&pm8941_lpg {
164	qcom,power-source = <1>;
165	status = "okay";
166
167	led@5 {
168		reg = <5>;
169		color = <LED_COLOR_ID_BLUE>;
170		function = LED_FUNCTION_INDICATOR;
171	};
172
173	led@6 {
174		reg = <6>;
175		color = <LED_COLOR_ID_GREEN>;
176		function = LED_FUNCTION_INDICATOR;
177	};
178
179	led@7 {
180		reg = <7>;
181		color = <LED_COLOR_ID_RED>;
182		function = LED_FUNCTION_INDICATOR;
183	};
184};
185
186&pm8941_resin {
187	linux,code = <KEY_VOLUMEDOWN>;
188	status = "okay";
189};
190
191&pm8941_wled {
192	qcom,cs-out;
193	qcom,switching-freq = <3200>;
194	qcom,ovp = <32>;
195	qcom,num-strings = <1>;
196
197	status = "okay";
198};
199
200&remoteproc_adsp {
201	cx-supply = <&pm8841_s2>;
202
203	firmware-name = "qcom/apq8074/adsp.mbn";
204
205	status = "okay";
206};
207
208&remoteproc_mss {
209	cx-supply = <&pm8841_s2>;
210	mss-supply = <&pm8841_s3>;
211	mx-supply = <&pm8841_s1>;
212	pll-supply = <&pm8941_l12>;
213
214	firmware-name = "qcom/apq8074/mba.mbn", "qcom/apq8074/modem.mbn";
215
216	status = "okay";
217};
218
219&rpm_requests {
220	regulators-0 {
221		compatible = "qcom,rpm-pm8841-regulators";
222
223		pm8841_s1: s1 {
224			regulator-min-microvolt = <675000>;
225			regulator-max-microvolt = <1050000>;
226		};
227
228		pm8841_s2: s2 {
229			regulator-min-microvolt = <500000>;
230			regulator-max-microvolt = <1050000>;
231		};
232
233		pm8841_s3: s3 {
234			regulator-min-microvolt = <500000>;
235			regulator-max-microvolt = <1050000>;
236		};
237
238		pm8841_s4: s4 {
239			regulator-min-microvolt = <500000>;
240			regulator-max-microvolt = <1050000>;
241		};
242	};
243
244	regulators-1 {
245		compatible = "qcom,rpm-pm8941-regulators";
246
247		vdd_l1_l3-supply = <&pm8941_s1>;
248		vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
249		vdd_l4_l11-supply = <&pm8941_s1>;
250		vdd_l5_l7-supply = <&pm8941_s2>;
251		vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
252		vin_5vs-supply = <&pm8941_5v>;
253
254		pm8941_s1: s1 {
255			regulator-min-microvolt = <1300000>;
256			regulator-max-microvolt = <1300000>;
257			regulator-always-on;
258			regulator-boot-on;
259		};
260
261		pm8941_s2: s2 {
262			regulator-min-microvolt = <2150000>;
263			regulator-max-microvolt = <2150000>;
264			regulator-boot-on;
265		};
266
267		pm8941_s3: s3 {
268			regulator-min-microvolt = <1800000>;
269			regulator-max-microvolt = <1800000>;
270			regulator-always-on;
271			regulator-boot-on;
272		};
273
274		pm8941_l1: l1 {
275			regulator-min-microvolt = <1225000>;
276			regulator-max-microvolt = <1225000>;
277			regulator-always-on;
278			regulator-boot-on;
279		};
280
281		pm8941_l2: l2 {
282			regulator-min-microvolt = <1200000>;
283			regulator-max-microvolt = <1200000>;
284		};
285
286		pm8941_l3: l3 {
287			regulator-min-microvolt = <1225000>;
288			regulator-max-microvolt = <1225000>;
289		};
290
291		pm8941_l4: l4 {
292			regulator-min-microvolt = <1225000>;
293			regulator-max-microvolt = <1225000>;
294		};
295
296		pm8941_l5: l5 {
297			regulator-min-microvolt = <1800000>;
298			regulator-max-microvolt = <1800000>;
299		};
300
301		pm8941_l6: l6 {
302			regulator-min-microvolt = <1800000>;
303			regulator-max-microvolt = <1800000>;
304			regulator-boot-on;
305		};
306
307		pm8941_l7: l7 {
308			regulator-min-microvolt = <1800000>;
309			regulator-max-microvolt = <1800000>;
310			regulator-boot-on;
311		};
312
313		pm8941_l8: l8 {
314			regulator-min-microvolt = <1800000>;
315			regulator-max-microvolt = <1800000>;
316		};
317
318		pm8941_l9: l9 {
319			regulator-min-microvolt = <1800000>;
320			regulator-max-microvolt = <2950000>;
321		};
322
323		pm8941_l10: l10 {
324			regulator-min-microvolt = <1800000>;
325			regulator-max-microvolt = <1800000>;
326			regulator-always-on;
327		};
328
329		pm8941_l11: l11 {
330			regulator-min-microvolt = <1300000>;
331			regulator-max-microvolt = <1300000>;
332		};
333
334		pm8941_l12: l12 {
335			regulator-min-microvolt = <1800000>;
336			regulator-max-microvolt = <1800000>;
337			regulator-always-on;
338			regulator-boot-on;
339		};
340
341		pm8941_l13: l13 {
342			regulator-min-microvolt = <1800000>;
343			regulator-max-microvolt = <2950000>;
344			regulator-boot-on;
345		};
346
347		pm8941_l14: l14 {
348			regulator-min-microvolt = <1800000>;
349			regulator-max-microvolt = <1800000>;
350		};
351
352		pm8941_l15: l15 {
353			regulator-min-microvolt = <2050000>;
354			regulator-max-microvolt = <2050000>;
355		};
356
357		pm8941_l16: l16 {
358			regulator-min-microvolt = <2700000>;
359			regulator-max-microvolt = <2700000>;
360		};
361
362		pm8941_l17: l17 {
363			regulator-min-microvolt = <2700000>;
364			regulator-max-microvolt = <2700000>;
365		};
366
367		pm8941_l18: l18 {
368			regulator-min-microvolt = <2850000>;
369			regulator-max-microvolt = <2850000>;
370		};
371
372		pm8941_l19: l19 {
373			regulator-min-microvolt = <3300000>;
374			regulator-max-microvolt = <3300000>;
375			regulator-always-on;
376		};
377
378		pm8941_l20: l20 {
379			regulator-min-microvolt = <2950000>;
380			regulator-max-microvolt = <2950000>;
381			regulator-system-load = <200000>;
382			regulator-allow-set-load;
383			regulator-boot-on;
384		};
385
386		pm8941_l21: l21 {
387			regulator-min-microvolt = <2950000>;
388			regulator-max-microvolt = <2950000>;
389			regulator-boot-on;
390		};
391
392		pm8941_l22: l22 {
393			regulator-min-microvolt = <3000000>;
394			regulator-max-microvolt = <3000000>;
395		};
396
397		pm8941_l23: l23 {
398			regulator-min-microvolt = <3000000>;
399			regulator-max-microvolt = <3000000>;
400		};
401
402		pm8941_l24: l24 {
403			regulator-min-microvolt = <3075000>;
404			regulator-max-microvolt = <3075000>;
405			regulator-boot-on;
406		};
407	};
408};
409
410&sdhc_1 {
411	status = "okay";
412
413	vmmc-supply = <&pm8941_l20>;
414	vqmmc-supply = <&pm8941_s3>;
415
416	pinctrl-names = "default", "sleep";
417	pinctrl-0 = <&sdc1_on>;
418	pinctrl-1 = <&sdc1_off>;
419};
420
421&sdhc_2 {
422	status = "okay";
423
424	cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
425	vmmc-supply = <&pm8941_l21>;
426	vqmmc-supply = <&pm8941_l13>;
427
428	pinctrl-names = "default", "sleep";
429	pinctrl-0 = <&sdc2_on>;
430	pinctrl-1 = <&sdc2_off>;
431};
432
433&smbb {
434	status = "okay";
435};
436
437&tlmm {
438	sdc1_on: sdc1-on-state {
439		clk-pins {
440			pins = "sdc1_clk";
441			drive-strength = <16>;
442			bias-disable;
443		};
444
445		cmd-data-pins {
446			pins = "sdc1_cmd", "sdc1_data";
447			drive-strength = <10>;
448			bias-pull-up;
449		};
450	};
451
452	sdc2_on: sdc2-on-state {
453		clk-pins {
454			pins = "sdc2_clk";
455			drive-strength = <10>;
456			bias-disable;
457		};
458
459		cmd-data-pins {
460			pins = "sdc2_cmd", "sdc2_data";
461			drive-strength = <6>;
462			bias-pull-up;
463		};
464
465		cd-pins {
466			pins = "gpio62";
467			function = "gpio";
468			drive-strength = <2>;
469			bias-disable;
470		};
471	};
472};
473
474&usb {
475	status = "okay";
476
477	phys = <&usb_hs2_phy>;
478	phy-select = <&tcsr 0xb000 1>;
479	extcon = <&smbb>, <&usb_id>;
480	vbus-supply = <&chg_otg>;
481	hnp-disable;
482	srp-disable;
483	adp-disable;
484};
485
486&usb_hs2_phy {
487	status = "okay";
488	v3p3-supply = <&pm8941_l24>;
489	v1p8-supply = <&pm8941_l6>;
490	extcon = <&smbb>;
491	qcom,init-seq = /bits/ 8 <0x1 0x63>;
492};
493