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