1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2019, Linaro Ltd.
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/leds/common.h>
9#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
10#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
11#include <dt-bindings/sound/qcom,q6afe.h>
12#include <dt-bindings/sound/qcom,q6asm.h>
13#include "sdm845.dtsi"
14#include "sdm845-wcd9340.dtsi"
15#include "pm8998.dtsi"
16#include "pmi8998.dtsi"
17
18/ {
19	model = "Thundercomm Dragonboard 845c";
20	compatible = "thundercomm,db845c", "qcom,sdm845";
21	qcom,msm-id = <341 0x20001>;
22	qcom,board-id = <8 0>;
23
24	aliases {
25		serial0 = &uart9;
26		serial1 = &uart6;
27	};
28
29	chosen {
30		stdout-path = "serial0:115200n8";
31	};
32
33	/* Fixed crystal oscillator dedicated to MCP2517FD */
34	clk40M: can-clock {
35		compatible = "fixed-clock";
36		#clock-cells = <0>;
37		clock-frequency = <40000000>;
38	};
39
40	dc12v: dc12v-regulator {
41		compatible = "regulator-fixed";
42		regulator-name = "DC12V";
43		regulator-min-microvolt = <12000000>;
44		regulator-max-microvolt = <12000000>;
45		regulator-always-on;
46	};
47
48	gpio-keys {
49		compatible = "gpio-keys";
50		autorepeat;
51
52		pinctrl-names = "default";
53		pinctrl-0 = <&vol_up_pin_a>;
54
55		key-vol-up {
56			label = "Volume Up";
57			linux,code = <KEY_VOLUMEUP>;
58			gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
59		};
60	};
61
62	leds {
63		compatible = "gpio-leds";
64
65		led-0 {
66			label = "green:user4";
67			function = LED_FUNCTION_INDICATOR;
68			color = <LED_COLOR_ID_GREEN>;
69			gpios = <&pm8998_gpios 13 GPIO_ACTIVE_HIGH>;
70			linux,default-trigger = "panic-indicator";
71			default-state = "off";
72		};
73
74		led-1 {
75			label = "yellow:wlan";
76			function = LED_FUNCTION_WLAN;
77			color = <LED_COLOR_ID_YELLOW>;
78			gpios = <&pm8998_gpios 9 GPIO_ACTIVE_HIGH>;
79			linux,default-trigger = "phy0tx";
80			default-state = "off";
81		};
82
83		led-2 {
84			label = "blue:bt";
85			function = LED_FUNCTION_BLUETOOTH;
86			color = <LED_COLOR_ID_BLUE>;
87			gpios = <&pm8998_gpios 5 GPIO_ACTIVE_HIGH>;
88			linux,default-trigger = "bluetooth-power";
89			default-state = "off";
90		};
91	};
92
93	hdmi-out {
94		compatible = "hdmi-connector";
95		type = "a";
96
97		port {
98			hdmi_con: endpoint {
99				remote-endpoint = <&lt9611_out>;
100			};
101		};
102	};
103
104	lt9611_1v8: lt9611-vdd18-regulator {
105		compatible = "regulator-fixed";
106		regulator-name = "LT9611_1V8";
107
108		vin-supply = <&vdc_5v>;
109		regulator-min-microvolt = <1800000>;
110		regulator-max-microvolt = <1800000>;
111
112		gpio = <&tlmm 89 GPIO_ACTIVE_HIGH>;
113		enable-active-high;
114	};
115
116	lt9611_3v3: lt9611-3v3 {
117		compatible = "regulator-fixed";
118		regulator-name = "LT9611_3V3";
119
120		vin-supply = <&vdc_3v3>;
121		regulator-min-microvolt = <3300000>;
122		regulator-max-microvolt = <3300000>;
123
124		/*
125		 * TODO: make it possible to drive same GPIO from two clients
126		 * gpio = <&tlmm 89 GPIO_ACTIVE_HIGH>;
127		 * enable-active-high;
128		 */
129	};
130
131	pcie0_1p05v: pcie-0-1p05v-regulator {
132		compatible = "regulator-fixed";
133		regulator-name = "PCIE0_1.05V";
134
135		vin-supply = <&vbat>;
136		regulator-min-microvolt = <1050000>;
137		regulator-max-microvolt = <1050000>;
138
139		/*
140		 * TODO: make it possible to drive same GPIO from two clients
141		 * gpio = <&tlmm 90 GPIO_ACTIVE_HIGH>;
142		 * enable-active-high;
143		 */
144	};
145
146	cam0_dvdd_1v2: cam0-dvdd-1v2-regulator {
147		compatible = "regulator-fixed";
148		regulator-name = "CAM0_DVDD_1V2";
149		regulator-min-microvolt = <1200000>;
150		regulator-max-microvolt = <1200000>;
151		enable-active-high;
152		gpio = <&pm8998_gpios 12 GPIO_ACTIVE_HIGH>;
153		pinctrl-names = "default";
154		pinctrl-0 = <&cam0_dvdd_1v2_en_default>;
155		vin-supply = <&vbat>;
156	};
157
158	cam0_avdd_2v8: cam0-avdd-2v8-regulator {
159		compatible = "regulator-fixed";
160		regulator-name = "CAM0_AVDD_2V8";
161		regulator-min-microvolt = <2800000>;
162		regulator-max-microvolt = <2800000>;
163		enable-active-high;
164		gpio = <&pm8998_gpios 10 GPIO_ACTIVE_HIGH>;
165		pinctrl-names = "default";
166		pinctrl-0 = <&cam0_avdd_2v8_en_default>;
167		vin-supply = <&vbat>;
168	};
169
170	/* This regulator is enabled when the VREG_LVS1A_1P8 trace is enabled */
171	cam3_avdd_2v8: cam3-avdd-2v8-regulator {
172		compatible = "regulator-fixed";
173		regulator-name = "CAM3_AVDD_2V8";
174		regulator-min-microvolt = <2800000>;
175		regulator-max-microvolt = <2800000>;
176		regulator-always-on;
177		vin-supply = <&vbat>;
178	};
179
180	pcie0_3p3v_dual: vldo-3v3-regulator {
181		compatible = "regulator-fixed";
182		regulator-name = "VLDO_3V3";
183
184		vin-supply = <&vbat>;
185		regulator-min-microvolt = <3300000>;
186		regulator-max-microvolt = <3300000>;
187
188		gpio = <&tlmm 90 GPIO_ACTIVE_HIGH>;
189		enable-active-high;
190
191		pinctrl-names = "default";
192		pinctrl-0 = <&pcie0_pwren_state>;
193	};
194
195	v5p0_hdmiout: v5p0-hdmiout-regulator {
196		compatible = "regulator-fixed";
197		regulator-name = "V5P0_HDMIOUT";
198
199		vin-supply = <&vdc_5v>;
200		regulator-min-microvolt = <500000>;
201		regulator-max-microvolt = <500000>;
202
203		/*
204		 * TODO: make it possible to drive same GPIO from two clients
205		 * gpio = <&tlmm 89 GPIO_ACTIVE_HIGH>;
206		 * enable-active-high;
207		 */
208	};
209
210	vbat: vbat-regulator {
211		compatible = "regulator-fixed";
212		regulator-name = "VBAT";
213
214		vin-supply = <&dc12v>;
215		regulator-min-microvolt = <4200000>;
216		regulator-max-microvolt = <4200000>;
217		regulator-always-on;
218	};
219
220	vbat_som: vbat-som-regulator {
221		compatible = "regulator-fixed";
222		regulator-name = "VBAT_SOM";
223
224		vin-supply = <&dc12v>;
225		regulator-min-microvolt = <4200000>;
226		regulator-max-microvolt = <4200000>;
227		regulator-always-on;
228	};
229
230	vdc_3v3: vdc-3v3-regulator {
231		compatible = "regulator-fixed";
232		regulator-name = "VDC_3V3";
233		vin-supply = <&dc12v>;
234		regulator-min-microvolt = <3300000>;
235		regulator-max-microvolt = <3300000>;
236		regulator-always-on;
237	};
238
239	vdc_5v: vdc-5v-regulator {
240		compatible = "regulator-fixed";
241		regulator-name = "VDC_5V";
242
243		vin-supply = <&dc12v>;
244		regulator-min-microvolt = <500000>;
245		regulator-max-microvolt = <500000>;
246		regulator-always-on;
247	};
248
249	vreg_s4a_1p8: vreg-s4a-1p8 {
250		compatible = "regulator-fixed";
251		regulator-name = "vreg_s4a_1p8";
252
253		regulator-min-microvolt = <1800000>;
254		regulator-max-microvolt = <1800000>;
255		regulator-always-on;
256	};
257
258	vph_pwr: vph-pwr-regulator {
259		compatible = "regulator-fixed";
260		regulator-name = "vph_pwr";
261
262		vin-supply = <&vbat_som>;
263	};
264};
265
266&adsp_pas {
267	status = "okay";
268
269	firmware-name = "qcom/sdm845/adsp.mbn";
270};
271
272&apps_rsc {
273	regulators-0 {
274		compatible = "qcom,pm8998-rpmh-regulators";
275		qcom,pmic-id = "a";
276		vdd-s1-supply = <&vph_pwr>;
277		vdd-s2-supply = <&vph_pwr>;
278		vdd-s3-supply = <&vph_pwr>;
279		vdd-s4-supply = <&vph_pwr>;
280		vdd-s5-supply = <&vph_pwr>;
281		vdd-s6-supply = <&vph_pwr>;
282		vdd-s7-supply = <&vph_pwr>;
283		vdd-s8-supply = <&vph_pwr>;
284		vdd-s9-supply = <&vph_pwr>;
285		vdd-s10-supply = <&vph_pwr>;
286		vdd-s11-supply = <&vph_pwr>;
287		vdd-s12-supply = <&vph_pwr>;
288		vdd-s13-supply = <&vph_pwr>;
289		vdd-l1-l27-supply = <&vreg_s7a_1p025>;
290		vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
291		vdd-l3-l11-supply = <&vreg_s7a_1p025>;
292		vdd-l4-l5-supply = <&vreg_s7a_1p025>;
293		vdd-l6-supply = <&vph_pwr>;
294		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
295		vdd-l9-supply = <&vreg_bob>;
296		vdd-l10-l23-l25-supply = <&vreg_bob>;
297		vdd-l13-l19-l21-supply = <&vreg_bob>;
298		vdd-l16-l28-supply = <&vreg_bob>;
299		vdd-l18-l22-supply = <&vreg_bob>;
300		vdd-l20-l24-supply = <&vreg_bob>;
301		vdd-l26-supply = <&vreg_s3a_1p35>;
302		vin-lvs-1-2-supply = <&vreg_s4a_1p8>;
303
304		vreg_s3a_1p35: smps3 {
305			regulator-min-microvolt = <1352000>;
306			regulator-max-microvolt = <1352000>;
307		};
308
309		vreg_s5a_2p04: smps5 {
310			regulator-min-microvolt = <1904000>;
311			regulator-max-microvolt = <2040000>;
312		};
313
314		vreg_s7a_1p025: smps7 {
315			regulator-min-microvolt = <900000>;
316			regulator-max-microvolt = <1028000>;
317		};
318
319		vreg_l1a_0p875: ldo1 {
320			regulator-min-microvolt = <880000>;
321			regulator-max-microvolt = <880000>;
322			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
323		};
324
325		vreg_l5a_0p8: ldo5 {
326			regulator-min-microvolt = <800000>;
327			regulator-max-microvolt = <800000>;
328			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
329		};
330
331		vreg_l12a_1p8: ldo12 {
332			regulator-min-microvolt = <1800000>;
333			regulator-max-microvolt = <1800000>;
334			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
335		};
336
337		vreg_l7a_1p8: ldo7 {
338			regulator-min-microvolt = <1800000>;
339			regulator-max-microvolt = <1800000>;
340			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
341		};
342
343		vreg_l13a_2p95: ldo13 {
344			regulator-min-microvolt = <1800000>;
345			regulator-max-microvolt = <2960000>;
346			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
347		};
348
349		vreg_l17a_1p3: ldo17 {
350			regulator-min-microvolt = <1304000>;
351			regulator-max-microvolt = <1304000>;
352			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
353		};
354
355		vreg_l20a_2p95: ldo20 {
356			regulator-min-microvolt = <2960000>;
357			regulator-max-microvolt = <2968000>;
358			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
359		};
360
361		vreg_l21a_2p95: ldo21 {
362			regulator-min-microvolt = <2960000>;
363			regulator-max-microvolt = <2968000>;
364			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
365		};
366
367		vreg_l24a_3p075: ldo24 {
368			regulator-min-microvolt = <3088000>;
369			regulator-max-microvolt = <3088000>;
370			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
371		};
372
373		vreg_l25a_3p3: ldo25 {
374			regulator-min-microvolt = <3300000>;
375			regulator-max-microvolt = <3312000>;
376			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
377		};
378
379		vreg_l26a_1p2: ldo26 {
380			regulator-min-microvolt = <1200000>;
381			regulator-max-microvolt = <1200000>;
382			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
383		};
384
385		vreg_lvs1a_1p8: lvs1 {
386			regulator-min-microvolt = <1800000>;
387			regulator-max-microvolt = <1800000>;
388			regulator-always-on;
389		};
390
391		vreg_lvs2a_1p8: lvs2 {
392			regulator-min-microvolt = <1800000>;
393			regulator-max-microvolt = <1800000>;
394			regulator-always-on;
395		};
396	};
397
398	regulators-1 {
399		compatible = "qcom,pmi8998-rpmh-regulators";
400		qcom,pmic-id = "b";
401
402		vdd-bob-supply = <&vph_pwr>;
403
404		vreg_bob: bob {
405			regulator-min-microvolt = <3312000>;
406			regulator-max-microvolt = <3600000>;
407			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
408			regulator-allow-bypass;
409		};
410	};
411};
412
413&cdsp_pas {
414	status = "okay";
415	firmware-name = "qcom/sdm845/cdsp.mbn";
416};
417
418&dsi0 {
419	status = "okay";
420	vdda-supply = <&vreg_l26a_1p2>;
421
422	qcom,dual-dsi-mode;
423	qcom,master-dsi;
424
425	ports {
426		port@1 {
427			endpoint {
428				remote-endpoint = <&lt9611_a>;
429				data-lanes = <0 1 2 3>;
430			};
431		};
432	};
433};
434
435&dsi0_phy {
436	status = "okay";
437	vdds-supply = <&vreg_l1a_0p875>;
438};
439
440&dsi1 {
441	vdda-supply = <&vreg_l26a_1p2>;
442
443	qcom,dual-dsi-mode;
444
445	/* DSI1 is slave, so use DSI0 clocks */
446	assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
447
448	status = "okay";
449
450	ports {
451		port@1 {
452			endpoint {
453				remote-endpoint = <&lt9611_b>;
454				data-lanes = <0 1 2 3>;
455			};
456		};
457	};
458};
459
460&dsi1_phy {
461	vdds-supply = <&vreg_l1a_0p875>;
462	status = "okay";
463};
464
465&gcc {
466	protected-clocks = <GCC_QSPI_CORE_CLK>,
467			   <GCC_QSPI_CORE_CLK_SRC>,
468			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
469			   <GCC_LPASS_Q6_AXI_CLK>,
470			   <GCC_LPASS_SWAY_CLK>;
471};
472
473&gmu {
474	status = "okay";
475};
476
477&gpi_dma0 {
478	status = "okay";
479};
480
481&gpi_dma1 {
482	status = "okay";
483};
484
485&gpu {
486	status = "okay";
487	zap-shader {
488		memory-region = <&gpu_mem>;
489		firmware-name = "qcom/sdm845/a630_zap.mbn";
490	};
491};
492
493&i2c10 {
494	status = "okay";
495	clock-frequency = <400000>;
496
497	lt9611_codec: hdmi-bridge@3b {
498		compatible = "lontium,lt9611";
499		reg = <0x3b>;
500		#sound-dai-cells = <1>;
501
502		interrupts-extended = <&tlmm 84 IRQ_TYPE_EDGE_FALLING>;
503
504		reset-gpios = <&tlmm 128 GPIO_ACTIVE_HIGH>;
505
506		vdd-supply = <&lt9611_1v8>;
507		vcc-supply = <&lt9611_3v3>;
508
509		pinctrl-names = "default";
510		pinctrl-0 = <&lt9611_irq_pin>, <&dsi_sw_sel>;
511
512		ports {
513			#address-cells = <1>;
514			#size-cells = <0>;
515
516			port@0 {
517				reg = <0>;
518
519				lt9611_a: endpoint {
520					remote-endpoint = <&dsi0_out>;
521				};
522			};
523
524			port@1 {
525				reg = <1>;
526
527				lt9611_b: endpoint {
528					remote-endpoint = <&dsi1_out>;
529				};
530			};
531
532			port@2 {
533				reg = <2>;
534
535				lt9611_out: endpoint {
536					remote-endpoint = <&hdmi_con>;
537				};
538			};
539		};
540	};
541};
542
543&i2c11 {
544	/* On Low speed expansion */
545	clock-frequency = <100000>;
546	status = "okay";
547};
548
549&i2c14 {
550	/* On Low speed expansion */
551	clock-frequency = <100000>;
552	status = "okay";
553};
554
555&mdss {
556	status = "okay";
557};
558
559&mss_pil {
560	status = "okay";
561	firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mbn";
562};
563
564&pcie0 {
565	status = "okay";
566	perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
567	enable-gpio = <&tlmm 134 GPIO_ACTIVE_HIGH>;
568
569	vddpe-3v3-supply = <&pcie0_3p3v_dual>;
570
571	pinctrl-names = "default";
572	pinctrl-0 = <&pcie0_default_state>;
573};
574
575&pcie0_phy {
576	status = "okay";
577
578	vdda-phy-supply = <&vreg_l1a_0p875>;
579	vdda-pll-supply = <&vreg_l26a_1p2>;
580};
581
582&pcie1 {
583	status = "okay";
584	perst-gpios = <&tlmm 102 GPIO_ACTIVE_LOW>;
585
586	pinctrl-names = "default";
587	pinctrl-0 = <&pcie1_default_state>;
588};
589
590&pcie1_phy {
591	status = "okay";
592
593	vdda-phy-supply = <&vreg_l1a_0p875>;
594	vdda-pll-supply = <&vreg_l26a_1p2>;
595};
596
597&pm8998_gpios {
598	gpio-line-names =
599		"NC",
600		"NC",
601		"WLAN_SW_CTRL",
602		"NC",
603		"PM_GPIO5_BLUE_BT_LED",
604		"VOL_UP_N",
605		"NC",
606		"ADC_IN1",
607		"PM_GPIO9_YEL_WIFI_LED",
608		"CAM0_AVDD_EN",
609		"NC",
610		"CAM0_DVDD_EN",
611		"PM_GPIO13_GREEN_U4_LED",
612		"DIV_CLK2",
613		"NC",
614		"NC",
615		"NC",
616		"SMB_STAT",
617		"NC",
618		"NC",
619		"ADC_IN2",
620		"OPTION1",
621		"WCSS_PWR_REQ",
622		"PM845_GPIO24",
623		"OPTION2",
624		"PM845_SLB";
625
626	cam0_dvdd_1v2_en_default: cam0-dvdd-1v2-en-state {
627		pins = "gpio12";
628		function = "normal";
629
630		bias-pull-up;
631		drive-push-pull;
632		qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
633	};
634
635	cam0_avdd_2v8_en_default: cam0-avdd-2v8-en-state {
636		pins = "gpio10";
637		function = "normal";
638
639		bias-pull-up;
640		drive-push-pull;
641		qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
642	};
643
644	vol_up_pin_a: vol-up-active-state {
645		pins = "gpio6";
646		function = "normal";
647		input-enable;
648		bias-pull-up;
649		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
650	};
651};
652
653&pm8998_resin {
654	linux,code = <KEY_VOLUMEDOWN>;
655	status = "okay";
656};
657
658&pmi8998_lpg {
659	status = "okay";
660
661	qcom,power-source = <1>;
662
663	led@3 {
664		reg = <3>;
665		color = <LED_COLOR_ID_GREEN>;
666		function = LED_FUNCTION_HEARTBEAT;
667		function-enumerator = <3>;
668
669		linux,default-trigger = "heartbeat";
670		default-state = "on";
671	};
672
673	led@4 {
674		reg = <4>;
675		color = <LED_COLOR_ID_GREEN>;
676		function = LED_FUNCTION_INDICATOR;
677		function-enumerator = <2>;
678	};
679
680	led@5 {
681		reg = <5>;
682		color = <LED_COLOR_ID_GREEN>;
683		function = LED_FUNCTION_INDICATOR;
684		function-enumerator = <1>;
685	};
686};
687
688&pmi8998_rradc {
689	status = "okay";
690};
691
692/* QUAT I2S Uses 4 I2S SD Lines for audio on LT9611 HDMI Bridge */
693&q6afedai {
694	dai@22 {
695		reg = <QUATERNARY_MI2S_RX>;
696		qcom,sd-lines = <0 1 2 3>;
697	};
698};
699
700&q6asmdai {
701	dai@0 {
702		reg = <0>;
703	};
704
705	dai@1 {
706		reg = <1>;
707	};
708
709	dai@2 {
710		reg = <2>;
711	};
712
713	dai@3 {
714		reg = <3>;
715		direction = <2>;
716		is-compress-dai;
717	};
718};
719
720&qupv3_id_0 {
721	status = "okay";
722};
723
724&qupv3_id_1 {
725	status = "okay";
726};
727
728&sdhc_2 {
729	status = "okay";
730
731	pinctrl-names = "default";
732	pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
733
734	vmmc-supply = <&vreg_l21a_2p95>;
735	vqmmc-supply = <&vreg_l13a_2p95>;
736
737	bus-width = <4>;
738	cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>;
739};
740
741&sound {
742	compatible = "qcom,db845c-sndcard", "qcom,sdm845-sndcard";
743	pinctrl-0 = <&quat_mi2s_active
744			 &quat_mi2s_sd0_active
745			 &quat_mi2s_sd1_active
746			 &quat_mi2s_sd2_active
747			 &quat_mi2s_sd3_active>;
748	pinctrl-names = "default";
749	model = "DB845c";
750	audio-routing =
751		"RX_BIAS", "MCLK",
752		"AMIC1", "MIC BIAS1",
753		"AMIC2", "MIC BIAS2",
754		"DMIC0", "MIC BIAS1",
755		"DMIC1", "MIC BIAS1",
756		"DMIC2", "MIC BIAS3",
757		"DMIC3", "MIC BIAS3",
758		"SpkrLeft IN", "SPK1 OUT",
759		"SpkrRight IN", "SPK2 OUT",
760		"MM_DL1",  "MultiMedia1 Playback",
761		"MM_DL2",  "MultiMedia2 Playback",
762		"MM_DL4",  "MultiMedia4 Playback",
763		"MultiMedia3 Capture", "MM_UL3";
764
765	mm1-dai-link {
766		link-name = "MultiMedia1";
767		cpu {
768			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
769		};
770	};
771
772	mm2-dai-link {
773		link-name = "MultiMedia2";
774		cpu {
775			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
776		};
777	};
778
779	mm3-dai-link {
780		link-name = "MultiMedia3";
781		cpu {
782			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
783		};
784	};
785
786	mm4-dai-link {
787		link-name = "MultiMedia4";
788		cpu {
789			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA4>;
790		};
791	};
792
793	hdmi-dai-link {
794		link-name = "HDMI Playback";
795		cpu {
796			sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
797		};
798
799		platform {
800			sound-dai = <&q6routing>;
801		};
802
803		codec {
804			sound-dai = <&lt9611_codec 0>;
805		};
806	};
807
808	slim-dai-link {
809		link-name = "SLIM Playback";
810		cpu {
811			sound-dai = <&q6afedai SLIMBUS_0_RX>;
812		};
813
814		platform {
815			sound-dai = <&q6routing>;
816		};
817
818		codec {
819			sound-dai = <&left_spkr>, <&right_spkr>, <&swm 0>, <&wcd9340 0>;
820		};
821	};
822
823	slimcap-dai-link {
824		link-name = "SLIM Capture";
825		cpu {
826			sound-dai = <&q6afedai SLIMBUS_0_TX>;
827		};
828
829		platform {
830			sound-dai = <&q6routing>;
831		};
832
833		codec {
834			sound-dai = <&wcd9340 1>;
835		};
836	};
837};
838
839&spi0 {
840	status = "okay";
841	pinctrl-names = "default";
842	pinctrl-0 = <&qup_spi0_default>;
843	cs-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
844
845	can@0 {
846		compatible = "microchip,mcp2517fd";
847		reg = <0>;
848		clocks = <&clk40M>;
849		interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>;
850		spi-max-frequency = <10000000>;
851		vdd-supply = <&vdc_5v>;
852		xceiver-supply = <&vdc_5v>;
853	};
854};
855
856&spi2 {
857	/* On Low speed expansion */
858	status = "okay";
859};
860
861&tlmm {
862	cam0_default: cam0-default-state {
863		rst-pins {
864			pins = "gpio9";
865			function = "gpio";
866
867			drive-strength = <16>;
868			bias-disable;
869		};
870
871		mclk0-pins {
872			pins = "gpio13";
873			function = "cam_mclk";
874
875			drive-strength = <16>;
876			bias-disable;
877		};
878	};
879
880	cam3_default: cam3-default-state {
881		rst-pins {
882			function = "gpio";
883			pins = "gpio21";
884
885			drive-strength = <16>;
886			bias-disable;
887		};
888
889		mclk3-pins {
890			function = "cam_mclk";
891			pins = "gpio16";
892
893			drive-strength = <16>;
894			bias-disable;
895		};
896	};
897
898	dsi_sw_sel: dsi-sw-sel-state {
899		pins = "gpio120";
900		function = "gpio";
901
902		drive-strength = <2>;
903		bias-disable;
904		output-high;
905	};
906
907	lt9611_irq_pin: lt9611-irq-state {
908		pins = "gpio84";
909		function = "gpio";
910		bias-disable;
911	};
912
913	pcie0_default_state: pcie0-default-state {
914		clkreq-pins {
915			pins = "gpio36";
916			function = "pci_e0";
917			bias-pull-up;
918		};
919
920		reset-n-pins {
921			pins = "gpio35";
922			function = "gpio";
923
924			drive-strength = <2>;
925			output-low;
926			bias-pull-down;
927		};
928
929		wake-n-pins {
930			pins = "gpio37";
931			function = "gpio";
932
933			drive-strength = <2>;
934			bias-pull-up;
935		};
936	};
937
938	pcie0_pwren_state: pcie0-pwren-state {
939		pins = "gpio90";
940		function = "gpio";
941
942		drive-strength = <2>;
943		bias-disable;
944	};
945
946	pcie1_default_state: pcie1-default-state {
947		perst-n-pins {
948			pins = "gpio102";
949			function = "gpio";
950
951			drive-strength = <16>;
952			bias-disable;
953		};
954
955		clkreq-pins {
956			pins = "gpio103";
957			function = "pci_e1";
958			bias-pull-up;
959		};
960
961		wake-n-pins {
962			pins = "gpio11";
963			function = "gpio";
964
965			drive-strength = <2>;
966			bias-pull-up;
967		};
968
969		reset-n-pins {
970			pins = "gpio75";
971			function = "gpio";
972
973			drive-strength = <16>;
974			bias-pull-up;
975			output-high;
976		};
977	};
978
979	sdc2_default_state: sdc2-default-state {
980		clk-pins {
981			pins = "sdc2_clk";
982			bias-disable;
983
984			/*
985			 * It seems that mmc_test reports errors if drive
986			 * strength is not 16 on clk, cmd, and data pins.
987			 */
988			drive-strength = <16>;
989		};
990
991		cmd-pins {
992			pins = "sdc2_cmd";
993			bias-pull-up;
994			drive-strength = <10>;
995		};
996
997		data-pins {
998			pins = "sdc2_data";
999			bias-pull-up;
1000			drive-strength = <10>;
1001		};
1002	};
1003
1004	sdc2_card_det_n: sd-card-det-n-state {
1005		pins = "gpio126";
1006		function = "gpio";
1007		bias-pull-up;
1008	};
1009};
1010
1011&uart3 {
1012	label = "LS-UART0";
1013	pinctrl-0 = <&qup_uart3_4pin>;
1014
1015	status = "disabled";
1016};
1017
1018&uart6 {
1019	status = "okay";
1020
1021	pinctrl-0 = <&qup_uart6_4pin>;
1022
1023	bluetooth {
1024		compatible = "qcom,wcn3990-bt";
1025
1026		vddio-supply = <&vreg_s4a_1p8>;
1027		vddxo-supply = <&vreg_l7a_1p8>;
1028		vddrf-supply = <&vreg_l17a_1p3>;
1029		vddch0-supply = <&vreg_l25a_3p3>;
1030		max-speed = <3200000>;
1031	};
1032};
1033
1034&uart9 {
1035	label = "LS-UART1";
1036	status = "okay";
1037};
1038
1039&usb_1 {
1040	status = "okay";
1041};
1042
1043&usb_1_dwc3 {
1044	dr_mode = "peripheral";
1045};
1046
1047&usb_1_hsphy {
1048	status = "okay";
1049
1050	vdd-supply = <&vreg_l1a_0p875>;
1051	vdda-pll-supply = <&vreg_l12a_1p8>;
1052	vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
1053
1054	qcom,imp-res-offset-value = <8>;
1055	qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
1056	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
1057	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
1058};
1059
1060&usb_1_qmpphy {
1061	status = "okay";
1062
1063	vdda-phy-supply = <&vreg_l26a_1p2>;
1064	vdda-pll-supply = <&vreg_l1a_0p875>;
1065};
1066
1067&usb_2 {
1068	status = "okay";
1069};
1070
1071&usb_2_dwc3 {
1072	dr_mode = "host";
1073};
1074
1075&usb_2_hsphy {
1076	status = "okay";
1077
1078	vdd-supply = <&vreg_l1a_0p875>;
1079	vdda-pll-supply = <&vreg_l12a_1p8>;
1080	vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
1081
1082	qcom,imp-res-offset-value = <8>;
1083	qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>;
1084};
1085
1086&usb_2_qmpphy {
1087	status = "okay";
1088
1089	vdda-phy-supply = <&vreg_l26a_1p2>;
1090	vdda-pll-supply = <&vreg_l1a_0p875>;
1091};
1092
1093&ufs_mem_hc {
1094	status = "okay";
1095
1096	reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
1097
1098	vcc-supply = <&vreg_l20a_2p95>;
1099	vcc-max-microamp = <800000>;
1100};
1101
1102&ufs_mem_phy {
1103	status = "okay";
1104
1105	vdda-phy-supply = <&vreg_l1a_0p875>;
1106	vdda-pll-supply = <&vreg_l26a_1p2>;
1107};
1108
1109&venus {
1110	status = "okay";
1111};
1112
1113&wcd9340 {
1114	reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
1115	vdd-buck-supply = <&vreg_s4a_1p8>;
1116	vdd-buck-sido-supply = <&vreg_s4a_1p8>;
1117	vdd-tx-supply = <&vreg_s4a_1p8>;
1118	vdd-rx-supply = <&vreg_s4a_1p8>;
1119	vdd-io-supply = <&vreg_s4a_1p8>;
1120
1121	swm: swm@c85 {
1122		left_spkr: speaker@0,1 {
1123			compatible = "sdw10217201000";
1124			reg = <0 1>;
1125			powerdown-gpios = <&wcdgpio 1 GPIO_ACTIVE_HIGH>;
1126			#thermal-sensor-cells = <0>;
1127			sound-name-prefix = "SpkrLeft";
1128			#sound-dai-cells = <0>;
1129		};
1130
1131		right_spkr: speaker@0,2 {
1132			compatible = "sdw10217201000";
1133			powerdown-gpios = <&wcdgpio 1 GPIO_ACTIVE_HIGH>;
1134			reg = <0 2>;
1135			#thermal-sensor-cells = <0>;
1136			sound-name-prefix = "SpkrRight";
1137			#sound-dai-cells = <0>;
1138		};
1139	};
1140};
1141
1142&wifi {
1143	status = "okay";
1144
1145	vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
1146	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
1147	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
1148	vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
1149
1150	qcom,snoc-host-cap-8bit-quirk;
1151	qcom,ath10k-calibration-variant = "Thundercomm_DB845C";
1152};
1153
1154/* PINCTRL - additions to nodes defined in sdm845.dtsi */
1155&qup_spi2_default {
1156	drive-strength = <16>;
1157};
1158
1159&qup_i2c10_default {
1160	drive-strength = <2>;
1161	bias-disable;
1162};
1163
1164&qup_uart9_rx {
1165	drive-strength = <2>;
1166	bias-pull-up;
1167};
1168
1169&qup_uart9_tx {
1170	drive-strength = <2>;
1171	bias-disable;
1172};
1173
1174/* PINCTRL - additions to nodes defined in sdm845.dtsi */
1175&qup_spi0_default {
1176	drive-strength = <6>;
1177	bias-disable;
1178};
1179