bd5909ffb3dc0ba8694867ec1b6bef070f32cdc3
[platform/kernel/linux-starfive.git] / arch / arm64 / boot / dts / qcom / sc7180-trogdor.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Google Trogdor device tree source (common between revisions)
4  *
5  * Copyright 2019 Google LLC.
6  */
7
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/input/gpio-keys.h>
10 #include <dt-bindings/input/input.h>
11 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
12 #include <dt-bindings/sound/sc7180-lpass.h>
13
14 /* PMICs depend on spmi_bus label and so must come after SoC */
15 #include "pm6150.dtsi"
16 #include "pm6150l.dtsi"
17
18 / {
19         thermal-zones {
20                 charger_thermal: charger-thermal {
21                         polling-delay-passive = <0>;
22                         polling-delay = <0>;
23
24                         thermal-sensors = <&pm6150_adc_tm 0>;
25
26                         trips {
27                                 charger-crit {
28                                         temperature = <125000>;
29                                         hysteresis = <1000>;
30                                         type = "critical";
31                                 };
32                         };
33                 };
34         };
35 };
36
37 /*
38  * Reserved memory changes
39  *
40  * Delete all unused memory nodes and define the peripheral memory regions
41  * required by the board dts.
42  */
43
44 /delete-node/ &hyp_mem;
45 /delete-node/ &xbl_mem;
46 /delete-node/ &aop_mem;
47 /delete-node/ &sec_apps_mem;
48 /delete-node/ &tz_mem;
49
50 /* Increase the size from 2MB to 8MB */
51 &rmtfs_mem {
52         reg = <0x0 0x94600000 0x0 0x800000>;
53 };
54
55 / {
56         reserved-memory {
57                 atf_mem: memory@80b00000 {
58                         reg = <0x0 0x80b00000 0x0 0x100000>;
59                         no-map;
60                 };
61
62                 mpss_mem: memory@86000000 {
63                         reg = <0x0 0x86000000 0x0 0x2000000>;
64                         no-map;
65                 };
66
67                 venus_mem: memory@8f600000 {
68                         reg = <0 0x8f600000 0 0x500000>;
69                         no-map;
70                 };
71
72                 wlan_mem: memory@94100000 {
73                         reg = <0x0 0x94100000 0x0 0x200000>;
74                         no-map;
75                 };
76
77                 mba_mem: memory@94400000 {
78                         reg = <0x0 0x94400000 0x0 0x200000>;
79                         no-map;
80                 };
81         };
82
83         aliases {
84                 bluetooth0 = &bluetooth;
85                 hsuart0 = &uart3;
86                 serial0 = &uart8;
87                 wifi0 = &wifi;
88         };
89
90         chosen {
91                 stdout-path = "serial0:115200n8";
92         };
93
94         /* FIXED REGULATORS - parents above children */
95
96         /* This is the top level supply and variable voltage */
97         ppvar_sys: ppvar-sys-regulator {
98                 compatible = "regulator-fixed";
99                 regulator-name = "ppvar_sys";
100                 regulator-always-on;
101                 regulator-boot-on;
102         };
103
104         /* This divides ppvar_sys by 2, so voltage is variable */
105         src_vph_pwr: src-vph-pwr-regulator {
106                 compatible = "regulator-fixed";
107                 regulator-name = "src_vph_pwr";
108
109                 /* EC turns on with switchcap_on; always on for AP */
110                 regulator-always-on;
111                 regulator-boot-on;
112
113                 vin-supply = <&ppvar_sys>;
114         };
115
116         pp5000_a: pp5000-a-regulator {
117                 compatible = "regulator-fixed";
118                 regulator-name = "pp5000_a";
119
120                 /* EC turns on with en_pp5000_a; always on for AP */
121                 regulator-always-on;
122                 regulator-boot-on;
123                 regulator-min-microvolt = <5000000>;
124                 regulator-max-microvolt = <5000000>;
125
126                 vin-supply = <&ppvar_sys>;
127         };
128
129         pp3300_a: pp3300-a-regulator {
130                 compatible = "regulator-fixed";
131                 regulator-name = "pp3300_a";
132
133                 /* EC turns on with en_pp3300_a; always on for AP */
134                 regulator-always-on;
135                 regulator-boot-on;
136                 regulator-min-microvolt = <3300000>;
137                 regulator-max-microvolt = <3300000>;
138
139                 /*
140                  * Actually should be pp3300 but that's practically an alias for
141                  * pp3300_a so we use pp3300's vin-supply here to avoid one more
142                  * node.
143                  */
144                 vin-supply = <&ppvar_sys>;
145         };
146
147         pp3300_audio:
148         pp3300_codec: pp3300-codec-regulator {
149                 compatible = "regulator-fixed";
150                 regulator-name = "pp3300_codec";
151
152                 regulator-min-microvolt = <3300000>;
153                 regulator-max-microvolt = <3300000>;
154
155                 gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
156                 enable-active-high;
157                 pinctrl-names = "default";
158                 pinctrl-0 = <&en_pp3300_codec>;
159
160                 vin-supply = <&pp3300_a>;
161         };
162
163         pp3300_dx_edp:
164         pp3300_ts: pp3300-dx-edp-regulator {
165                 compatible = "regulator-fixed";
166                 regulator-name = "pp3300_dx_edp";
167
168                 regulator-min-microvolt = <3300000>;
169                 regulator-max-microvolt = <3300000>;
170
171                 gpio = <&tlmm 30 GPIO_ACTIVE_HIGH>;
172                 enable-active-high;
173                 pinctrl-names = "default";
174                 pinctrl-0 = <&en_pp3300_dx_edp>;
175
176                 vin-supply = <&pp3300_a>;
177         };
178
179         pp3300_fp_tp: pp3300-fp-tp-regulator {
180                 compatible = "regulator-fixed";
181                 regulator-name = "pp3300_fp_tp";
182
183                 regulator-min-microvolt = <3300000>;
184                 regulator-max-microvolt = <3300000>;
185
186                 /* AP turns on with PP1800_VIO_OUT; always on for AP */
187                 regulator-always-on;
188                 regulator-boot-on;
189
190                 vin-supply = <&pp3300_a>;
191         };
192
193         pp3300_hub: pp3300-hub {
194                 compatible = "regulator-fixed";
195                 regulator-name = "pp3300_hub";
196
197                 regulator-min-microvolt = <3300000>;
198                 regulator-max-microvolt = <3300000>;
199
200                 gpio = <&tlmm 84 GPIO_ACTIVE_HIGH>;
201                 enable-active-high;
202                 pinctrl-names = "default";
203                 pinctrl-0 = <&en_pp3300_hub>;
204
205                 regulator-always-on;
206                 regulator-boot-on;
207
208                 vin-supply = <&pp3300_a>;
209         };
210
211         /* BOARD-SPECIFIC TOP LEVEL NODES */
212
213         backlight: backlight {
214                 compatible = "pwm-backlight";
215
216                 /* The panels don't seem to like anything below ~ 5% */
217                 brightness-levels = <
218                         196 256 324 400 484 576 676 784 900 1024 1156 1296
219                         1444 1600 1764 1936 2116 2304 2500 2704 2916 3136
220                         3364 3600 3844 4096
221                 >;
222                 num-interpolated-steps = <64>;
223                 default-brightness-level = <951>;
224
225                 pwms = <&cros_ec_pwm 1>;
226                 enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
227                 power-supply = <&ppvar_sys>;
228                 pinctrl-names = "default";
229                 pinctrl-0 = <&ap_edp_bklten>;
230         };
231
232         gpio_keys: gpio-keys {
233                 compatible = "gpio-keys";
234                 status = "disabled";
235                 pinctrl-names = "default";
236                 pinctrl-0 = <&pen_pdct_l>;
237
238                 pen_insert: pen-insert {
239                         label = "Pen Insert";
240
241                         /* Insert = low, eject = high */
242                         gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
243                         linux,code = <SW_PEN_INSERTED>;
244                         linux,input-type = <EV_SW>;
245                         wakeup-event-action = <EV_ACT_DEASSERTED>;
246                         wakeup-source;
247                 };
248         };
249
250         max98360a: audio-codec-0 {
251                 compatible = "maxim,max98360a";
252                 pinctrl-names = "default";
253                 pinctrl-0 = <&amp_en>;
254                 sdmode-gpios = <&tlmm 23 GPIO_ACTIVE_HIGH>;
255                 #sound-dai-cells = <0>;
256         };
257
258         pwmleds {
259                 compatible = "pwm-leds";
260                 keyboard_backlight: keyboard-backlight {
261                         status = "disabled";
262                         label = "cros_ec::kbd_backlight";
263                         pwms = <&cros_ec_pwm 0>;
264                         max-brightness = <1023>;
265                 };
266         };
267
268         sound: sound {
269                 compatible = "google,sc7180-trogdor";
270                 model = "sc7180-rt5682-max98357a-1mic";
271
272                 audio-routing =
273                         "Headphone Jack", "HPOL",
274                         "Headphone Jack", "HPOR";
275
276                 #address-cells = <1>;
277                 #size-cells = <0>;
278
279                 dai-link@0 {
280                         link-name = "MultiMedia0";
281                         reg = <MI2S_PRIMARY>;
282                         cpu {
283                                 sound-dai = <&lpass_cpu MI2S_PRIMARY>;
284                         };
285
286                         sound_multimedia0_codec: codec {
287                                 sound-dai = <&alc5682 0 /* aif1 */>;
288                         };
289                 };
290
291                 dai-link@1 {
292                         link-name = "MultiMedia1";
293                         reg = <MI2S_SECONDARY>;
294                         cpu {
295                                 sound-dai = <&lpass_cpu MI2S_SECONDARY>;
296                         };
297
298                         sound_multimedia1_codec: codec {
299                                 sound-dai = <&max98360a>;
300                         };
301                 };
302
303                 dai-link@5 {
304                         link-name = "MultiMedia2";
305                         reg = <LPASS_DP_RX>;
306                         cpu {
307                                 sound-dai = <&lpass_cpu LPASS_DP_RX>;
308                         };
309
310                         codec {
311                                 sound-dai = <&mdss_dp>;
312                         };
313                 };
314         };
315 };
316
317 &qfprom {
318         vcc-supply = <&pp1800_l11a>;
319 };
320
321 &qspi {
322         status = "okay";
323         pinctrl-names = "default";
324         pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data01>;
325
326         flash@0 {
327                 compatible = "jedec,spi-nor";
328                 reg = <0>;
329
330                 spi-max-frequency = <37500000>;
331                 spi-tx-bus-width = <2>;
332                 spi-rx-bus-width = <2>;
333         };
334 };
335
336 &apps_rsc {
337         pm6150-rpmh-regulators {
338                 compatible = "qcom,pm6150-rpmh-regulators";
339                 qcom,pmic-id = "a";
340
341                 vddpx_1:
342                 vdd2:
343                 pp1125_s1a: smps1 {
344                         regulator-min-microvolt = <1128000>;
345                         regulator-max-microvolt = <1128000>;
346                 };
347
348                 vdd_qlink_lv:
349                 vdd_qlink_lv_ck:
350                 vdd_qusb_hs0_core:
351                 vdd_ufs1_core:
352                 vdda_mipi_csi0_0p9:
353                 vdda_mipi_csi1_0p9:
354                 vdda_mipi_csi2_0p9:
355                 vdda_mipi_csi3_0p9:
356                 vdda_mipi_dsi0_pll:
357                 vdda_pll_cc_ebi01:
358                 vdda_qrefs_0p9:
359                 vdda_usb_ss_dp_core:
360                 pp900_l4a: ldo4 {
361                         regulator-min-microvolt = <824000>;
362                         regulator-max-microvolt = <928000>;
363                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
364                 };
365
366                 vdd_cx_wlan:
367                 pp800_l9a: ldo9 {
368                         regulator-min-microvolt = <488000>;
369                         regulator-max-microvolt = <800000>;
370                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
371                 };
372
373                 vdd1:
374                 vddpx_3:
375                 vddpx_7:
376                 vio_in:
377                 pp1800_l10a: ldo10 {
378                         regulator-min-microvolt = <1800000>;
379                         regulator-max-microvolt = <1800000>;
380                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
381                 };
382
383                 vdd_qfprom:
384                 vdda_apc1_cs_1p8:
385                 vdda_qrefs_1p8:
386                 vdda_qusb_hs0_1p8:
387                 vddpx_11:
388                 vreg_bb_clk:
389                 pp1800_l11a: ldo11 {
390                         regulator-min-microvolt = <1800000>;
391                         regulator-max-microvolt = <1800000>;
392                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
393                 };
394
395                 mcp_vccq:
396                 pp1800_l12a_r: ldo12 {
397                         regulator-min-microvolt = <1800000>;
398                         regulator-max-microvolt = <1800000>;
399                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
400                 };
401
402                 /*
403                  * On trogdor this needs to match l10a since we use it to
404                  * give power to things like SPI flash which communicate back
405                  * on lines powered by l10a.  Thus we force to 1.8V.
406                  */
407                 pp1800_l13a: ldo13 {
408                         regulator-min-microvolt = <1800000>;
409                         regulator-max-microvolt = <1800000>;
410                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
411                 };
412
413                 pp1800_prox:
414                 pp1800_l14a: ldo14 {
415                         regulator-min-microvolt = <1800000>;
416                         regulator-max-microvolt = <1800000>;
417                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
418                 };
419
420                 pp1800_alc5682:
421                 pp1800_l15a: ldo15 {
422                         regulator-min-microvolt = <1800000>;
423                         regulator-max-microvolt = <1800000>;
424                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
425                 };
426
427                 vdda_qusb_hs0_3p1:
428                 vdd_pdphy:
429                 pp3100_l17a: ldo17 {
430                         regulator-min-microvolt = <2920000>;
431                         regulator-max-microvolt = <3232000>;
432                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
433                 };
434
435                 pp1800_pen:
436                 pp1800_l18a: ldo18 {
437                         regulator-min-microvolt = <1800000>;
438                         regulator-max-microvolt = <1800000>;
439                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
440                 };
441
442                 mcp_vcc:
443                 pp2850_l19a: ldo19 {
444                         regulator-min-microvolt = <2960000>;
445                         regulator-max-microvolt = <2960000>;
446                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
447                 };
448         };
449
450         pm6150l-rpmh-regulators {
451                 compatible = "qcom,pm6150l-rpmh-regulators";
452                 qcom,pmic-id = "c";
453
454                 pp1300_s8c: smps8 {
455                         regulator-min-microvolt = <1120000>;
456                         regulator-max-microvolt = <1408000>;
457                 };
458
459                 pp1800_l1c: ldo1 {
460                         regulator-min-microvolt = <1616000>;
461                         regulator-max-microvolt = <1984000>;
462                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
463                 };
464
465                 vdd_wcss_adc_dac:
466                 pp1300_l2c: ldo2 {
467                         regulator-min-microvolt = <1168000>;
468                         regulator-max-microvolt = <1304000>;
469                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
470                 };
471
472                 pp1200_brij:
473                 vdd_ufs1_1p2:
474                 vdda_csi0_1p25:
475                 vdda_csi1_1p25:
476                 vdda_csi2_1p25:
477                 vdda_csi3_1p25:
478                 vdda_hv_ebi0:
479                 vdda_mipi_dsi0_1p2:
480                 vdda_usb_ss_dp_1p2:
481                 vddpx_10:
482                 pp1200_l3c: ldo3 {
483                         regulator-min-microvolt = <1200000>;
484                         regulator-max-microvolt = <1200000>;
485                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
486                 };
487
488                 vddpx_2:
489                 ppvar_l6c: ldo6 {
490                         regulator-min-microvolt = <1800000>;
491                         regulator-max-microvolt = <2952000>;
492                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
493                 };
494
495                 pp3300_l7c: ldo7 {
496                         regulator-min-microvolt = <3304000>;
497                         regulator-max-microvolt = <3304000>;
498                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
499                 };
500
501                 pp1800_brij_vccio:
502                 pp1800_edp_vpll:
503                 pp1800_l8c: ldo8 {
504                         regulator-min-microvolt = <1800000>;
505                         regulator-max-microvolt = <1800000>;
506                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
507                 };
508
509                 pp2950_l9c: ldo9 {
510                         regulator-min-microvolt = <2952000>;
511                         regulator-max-microvolt = <2952000>;
512                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
513                 };
514
515                 pp3300_l10c: ldo10 {
516                         regulator-min-microvolt = <3000000>;
517                         regulator-max-microvolt = <3400000>;
518                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
519                 };
520
521                 pp3300_l11c: ldo11 {
522                         regulator-min-microvolt = <3000000>;
523                         regulator-max-microvolt = <3400000>;
524                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
525                 };
526
527                 src_vreg_bob: bob {
528                         regulator-min-microvolt = <3008000>;
529                         regulator-max-microvolt = <3960000>;
530                         regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
531                 };
532         };
533 };
534
535 &ap_ec_spi {
536         status = "okay";
537         cros_ec: ec@0 {
538                 compatible = "google,cros-ec-spi";
539                 reg = <0>;
540                 interrupt-parent = <&tlmm>;
541                 interrupts = <94 IRQ_TYPE_LEVEL_LOW>;
542                 pinctrl-names = "default";
543                 pinctrl-0 = <&ap_ec_int_l>;
544                 spi-max-frequency = <3000000>;
545
546                 cros_ec_pwm: ec-pwm {
547                         compatible = "google,cros-ec-pwm";
548                         #pwm-cells = <1>;
549                 };
550
551                 i2c_tunnel: i2c-tunnel {
552                         compatible = "google,cros-ec-i2c-tunnel";
553                         google,remote-bus = <0>;
554                         #address-cells = <1>;
555                         #size-cells = <0>;
556                 };
557
558                 typec {
559                         compatible = "google,cros-ec-typec";
560                         #address-cells = <1>;
561                         #size-cells = <0>;
562
563                         usb_c0: connector@0 {
564                                 compatible = "usb-c-connector";
565                                 reg = <0>;
566                                 label = "left";
567                                 power-role = "dual";
568                                 data-role = "host";
569                                 try-power-role = "source";
570                         };
571
572                         usb_c1: connector@1 {
573                                 compatible = "usb-c-connector";
574                                 reg = <1>;
575                                 label = "right";
576                                 power-role = "dual";
577                                 data-role = "host";
578                                 try-power-role = "source";
579                         };
580                 };
581         };
582 };
583
584 &ap_h1_spi {
585         status = "okay";
586         cr50: tpm@0 {
587                 compatible = "google,cr50";
588                 reg = <0>;
589                 pinctrl-names = "default";
590                 pinctrl-0 = <&h1_ap_int_odl>;
591                 spi-max-frequency = <800000>;
592                 interrupt-parent = <&tlmm>;
593                 interrupts = <42 IRQ_TYPE_EDGE_RISING>;
594         };
595 };
596
597 &camcc {
598         status = "disabled";
599 };
600
601 &dsi0 {
602         status = "okay";
603         vdda-supply = <&vdda_mipi_dsi0_1p2>;
604 };
605
606 &dsi0_out {
607         data-lanes = <0 1 2 3>;
608 };
609
610 &dsi_phy {
611         status = "okay";
612         vdds-supply = <&vdda_mipi_dsi0_pll>;
613 };
614
615 ap_sar_sensor_i2c: &i2c5 {
616         clock-frequency = <400000>;
617
618         ap_sar_sensor: proximity@28 {
619                 compatible = "semtech,sx9310";
620                 reg = <0x28>;
621                 #io-channel-cells = <1>;
622                 pinctrl-names = "default";
623                 pinctrl-0 = <&p_sensor_int_l>;
624
625                 interrupt-parent = <&tlmm>;
626                 interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
627
628                 vdd-supply = <&pp3300_a>;
629                 svdd-supply = <&pp1800_prox>;
630
631                 status = "disabled";
632                 label = "proximity-wifi";
633         };
634 };
635
636 ap_tp_i2c: &i2c7 {
637         status = "okay";
638         clock-frequency = <400000>;
639
640         trackpad: trackpad@15 {
641                 compatible = "elan,ekth3000";
642                 reg = <0x15>;
643                 pinctrl-names = "default";
644                 pinctrl-0 = <&tp_int_odl>;
645
646                 interrupt-parent = <&tlmm>;
647                 interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
648
649                 vcc-supply = <&pp3300_fp_tp>;
650
651                 wakeup-source;
652         };
653 };
654
655 hp_i2c: &i2c9 {
656         status = "okay";
657         clock-frequency = <400000>;
658
659         alc5682: codec@1a {
660                 compatible = "realtek,rt5682i";
661                 reg = <0x1a>;
662                 pinctrl-names = "default";
663                 pinctrl-0 = <&hp_irq>;
664
665                 #sound-dai-cells = <1>;
666
667                 interrupt-parent = <&tlmm>;
668                 /*
669                  * This will get ignored because the interrupt type
670                  * is set in rt5682.c.
671                  */
672                 interrupts = <28 IRQ_TYPE_EDGE_BOTH>;
673
674                 AVDD-supply = <&pp1800_alc5682>;
675                 MICVDD-supply = <&pp3300_codec>;
676                 VBAT-supply = <&pp3300_audio>;
677
678                 realtek,dmic1-data-pin = <1>;
679                 realtek,dmic1-clk-pin = <1>;
680                 realtek,jd-src = <1>;
681         };
682 };
683
684 &lpass_cpu {
685         status = "okay";
686
687         pinctrl-names = "default";
688         pinctrl-0 = <&sec_mi2s_active>, <&pri_mi2s_active>, <&pri_mi2s_mclk_active>;
689
690         #address-cells = <1>;
691         #size-cells = <0>;
692
693         mi2s@0 {
694                 reg = <MI2S_PRIMARY>;
695                 qcom,playback-sd-lines = <1>;
696                 qcom,capture-sd-lines = <0>;
697         };
698
699         secondary_mi2s: mi2s@1 {
700                 reg = <MI2S_SECONDARY>;
701                 qcom,playback-sd-lines = <0>;
702         };
703
704         hdmi@5 {
705                 reg = <LPASS_DP_RX>;
706         };
707 };
708
709 &mdp {
710         status = "okay";
711 };
712
713 &mdss {
714         status = "okay";
715 };
716
717 &mdss_dp {
718         status = "okay";
719         pinctrl-names = "default";
720         pinctrl-0 = <&dp_hot_plug_det>;
721         data-lanes = <0 1>;
722         vdda-1p2-supply = <&vdda_usb_ss_dp_1p2>;
723         vdda-0p9-supply = <&vdda_usb_ss_dp_core>;
724 };
725
726 &pm6150_adc {
727         charger-thermistor@4f {
728                 reg = <ADC5_AMUX_THM3_100K_PU>;
729                 qcom,ratiometric;
730                 qcom,hw-settle-time = <200>;
731         };
732 };
733
734 &pm6150_adc_tm {
735         status = "okay";
736
737         charger-thermistor@0 {
738                 reg = <0>;
739                 io-channels = <&pm6150_adc ADC5_AMUX_THM3_100K_PU>;
740                 qcom,ratiometric;
741                 qcom,hw-settle-time-us = <200>;
742         };
743 };
744
745 &pm6150_pon {
746         status = "disabled";
747 };
748
749 &qupv3_id_0 {
750         status = "okay";
751 };
752
753 &qupv3_id_1 {
754         status = "okay";
755 };
756
757 &remoteproc_mpss {
758         status = "okay";
759         compatible = "qcom,sc7180-mss-pil";
760         iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
761         memory-region = <&mba_mem &mpss_mem>;
762
763         /* This gets overridden for SKUs with LTE support. */
764         firmware-name = "qcom/sc7180-trogdor/modem-nolte/mba.mbn",
765                         "qcom/sc7180-trogdor/modem-nolte/qdsp6sw.mbn";
766 };
767
768 &sdhc_1 {
769         status = "okay";
770
771         pinctrl-names = "default", "sleep";
772         pinctrl-0 = <&sdc1_on>;
773         pinctrl-1 = <&sdc1_off>;
774         vmmc-supply = <&mcp_vcc>;
775         vqmmc-supply = <&mcp_vccq>;
776 };
777
778 &sdhc_2 {
779         pinctrl-names = "default", "sleep";
780         pinctrl-0 = <&sdc2_on>;
781         pinctrl-1 = <&sdc2_off>;
782         vmmc-supply = <&pp2950_l9c>;
783         vqmmc-supply = <&ppvar_l6c>;
784
785         cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
786 };
787
788 &spi0 {
789         pinctrl-0 = <&qup_spi0_cs_gpio_init_high>, <&qup_spi0_cs_gpio>;
790         cs-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
791 };
792
793 &spi6 {
794         pinctrl-0 = <&qup_spi6_cs_gpio_init_high>, <&qup_spi6_cs_gpio>;
795         cs-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
796 };
797
798 ap_spi_fp: &spi10 {
799         pinctrl-0 = <&qup_spi10_cs_gpio_init_high>, <&qup_spi10_cs_gpio>;
800         cs-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;
801
802         cros_ec_fp: ec@0 {
803                 compatible = "google,cros-ec-spi";
804                 reg = <0>;
805                 interrupt-parent = <&tlmm>;
806                 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
807                 pinctrl-names = "default";
808                 pinctrl-0 = <&fp_to_ap_irq_l>;
809                 spi-max-frequency = <3000000>;
810         };
811 };
812
813 #include <arm/cros-ec-keyboard.dtsi>
814 #include <arm/cros-ec-sbs.dtsi>
815
816 &uart3 {
817         status = "okay";
818
819         /delete-property/interrupts;
820         interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
821                                 <&tlmm 41 IRQ_TYPE_EDGE_FALLING>;
822
823         pinctrl-names = "default", "sleep";
824         pinctrl-1 = <&qup_uart3_sleep>;
825
826         bluetooth: bluetooth {
827                 compatible = "qcom,wcn3991-bt";
828                 vddio-supply = <&pp1800_l10a>;
829                 vddxo-supply = <&pp1800_l1c>;
830                 vddrf-supply = <&pp1300_l2c>;
831                 vddch0-supply = <&pp3300_l10c>;
832                 max-speed = <3200000>;
833         };
834 };
835
836 &uart8 {
837         status = "okay";
838 };
839
840 &usb_1 {
841         status = "okay";
842 };
843
844 &usb_1_dwc3 {
845         dr_mode = "host";
846 };
847
848 &usb_1_hsphy {
849         status = "okay";
850         vdd-supply = <&vdd_qusb_hs0_core>;
851         vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
852         vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
853         qcom,imp-res-offset-value = <8>;
854         qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>;
855         qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
856         qcom,bias-ctrl-value = <0x22>;
857         qcom,charge-ctrl-value = <3>;
858         qcom,hsdisc-trim-value = <0>;
859 };
860
861 &usb_1_qmpphy {
862         status = "okay";
863         vdda-phy-supply = <&vdda_usb_ss_dp_1p2>;
864         vdda-pll-supply = <&vdda_usb_ss_dp_core>;
865 };
866
867 &venus {
868         video-firmware {
869                 iommus = <&apps_smmu 0x0c42 0x0>;
870         };
871 };
872
873 &wifi {
874         status = "okay";
875         vdd-0.8-cx-mx-supply = <&vdd_cx_wlan>;
876         vdd-1.8-xo-supply = <&pp1800_l1c>;
877         vdd-1.3-rfa-supply = <&pp1300_l2c>;
878         vdd-3.3-ch0-supply = <&pp3300_l10c>;
879         vdd-3.3-ch1-supply = <&pp3300_l11c>;
880
881         wifi-firmware {
882                 iommus = <&apps_smmu 0xc2 0x1>;
883         };
884 };
885
886 /* PINCTRL - additions to nodes defined in sc7180.dtsi */
887
888 &dp_hot_plug_det {
889         pinconf {
890                 pins = "gpio117";
891                 bias-disable;
892         };
893 };
894
895 &pri_mi2s_active {
896         pinconf {
897                 pins = "gpio53", "gpio54", "gpio55", "gpio56";
898                 drive-strength = <2>;
899                 bias-pull-down;
900         };
901 };
902
903 &pri_mi2s_mclk_active {
904         pinconf {
905                 pins = "gpio57";
906                 drive-strength = <2>;
907                 bias-pull-down;
908         };
909 };
910
911 &qspi_cs0 {
912         pinconf {
913                 pins = "gpio68";
914                 bias-disable;
915         };
916 };
917
918 &qspi_clk {
919         pinconf {
920                 pins = "gpio63";
921                 drive-strength = <8>;
922                 bias-disable;
923         };
924 };
925
926 &qspi_data01 {
927         pinconf {
928                 pins = "gpio64", "gpio65";
929
930                 /* High-Z when no transfers; nice to park the lines */
931                 bias-pull-up;
932         };
933 };
934
935 &qup_i2c2_default {
936         pinconf {
937                 pins = "gpio15", "gpio16";
938                 drive-strength = <2>;
939
940                 /* Has external pullup */
941                 bias-disable;
942         };
943 };
944
945 &qup_i2c4_default {
946         pinconf {
947                 pins = "gpio115", "gpio116";
948                 drive-strength = <2>;
949
950                 /* Has external pullup */
951                 bias-disable;
952         };
953 };
954
955 &qup_i2c5_default {
956         pinconf {
957                 pins = "gpio25", "gpio26";
958                 drive-strength = <2>;
959
960                 /* Has external pullup */
961                 bias-disable;
962         };
963 };
964
965 &qup_i2c7_default {
966         pinconf {
967                 pins = "gpio6", "gpio7";
968                 drive-strength = <2>;
969
970                 /* Has external pullup */
971                 bias-disable;
972         };
973 };
974
975 &qup_i2c9_default {
976         pinconf {
977                 pins = "gpio46", "gpio47";
978                 drive-strength = <2>;
979
980                 /* Has external pullup */
981                 bias-disable;
982         };
983 };
984
985 &qup_spi0_cs_gpio {
986         pinconf {
987                 pins = "gpio34", "gpio35", "gpio36", "gpio37";
988                 drive-strength = <2>;
989                 bias-disable;
990         };
991 };
992
993 &qup_spi6_cs_gpio {
994         pinconf {
995                 pins = "gpio59", "gpio60", "gpio61", "gpio62";
996                 drive-strength = <2>;
997                 bias-disable;
998         };
999 };
1000
1001 &qup_spi10_cs_gpio {
1002         pinconf {
1003                 pins = "gpio86", "gpio87", "gpio88", "gpio89";
1004                 drive-strength = <2>;
1005                 bias-disable;
1006         };
1007 };
1008
1009 &qup_uart3_default {
1010         pinconf-cts {
1011                 /*
1012                  * Configure a pull-down on CTS to match the pull of
1013                  * the Bluetooth module.
1014                  */
1015                 pins = "gpio38";
1016                 bias-pull-down;
1017         };
1018
1019         pinconf-rts-tx {
1020                 /* We'll drive RTS and TX, so no pull */
1021                 pins = "gpio39", "gpio40";
1022                 drive-strength = <2>;
1023                 bias-disable;
1024         };
1025
1026         pinconf-rx {
1027                 /*
1028                  * Configure a pull-up on RX. This is needed to avoid
1029                  * garbage data when the TX pin of the Bluetooth module is
1030                  * in tri-state (module powered off or not driving the
1031                  * signal yet).
1032                  */
1033                 pins = "gpio41";
1034                 bias-pull-up;
1035         };
1036 };
1037
1038 &qup_uart8_default {
1039         pinconf-tx {
1040                 pins = "gpio44";
1041                 drive-strength = <2>;
1042                 bias-disable;
1043         };
1044
1045         pinconf-rx {
1046                 pins = "gpio45";
1047                 drive-strength = <2>;
1048                 bias-pull-up;
1049         };
1050 };
1051
1052 &sec_mi2s_active {
1053         pinconf {
1054                 pins = "gpio49", "gpio50", "gpio51";
1055                 drive-strength = <2>;
1056                 bias-pull-down;
1057         };
1058 };
1059
1060 /* PINCTRL - board-specific pinctrl */
1061
1062 &pm6150_gpio {
1063         status = "disabled"; /* No GPIOs are connected */
1064 };
1065
1066 &pm6150l_gpio {
1067         gpio-line-names = "AP_SUSPEND",
1068                           "",
1069                           "",
1070                           "",
1071                           "",
1072                           "",
1073                           "",
1074                           "",
1075                           "",
1076                           "",
1077                           "",
1078                           "";
1079 };
1080
1081 &tlmm {
1082         /*
1083          * pinctrl settings for pins that have no real owners.
1084          */
1085         pinctrl-names = "default";
1086         pinctrl-0 = <&bios_flash_wp_l>, <&ap_suspend_l_neuter>;
1087
1088         amp_en: amp-en {
1089                 pinmux {
1090                         pins = "gpio23";
1091                         function = "gpio";
1092                 };
1093
1094                 pinconf {
1095                         pins = "gpio23";
1096                         bias-pull-down;
1097                 };
1098         };
1099
1100         ap_ec_int_l: ap-ec-int-l {
1101                 pinmux {
1102                         pins = "gpio94";
1103                         function = "gpio";
1104                         input-enable;
1105                 };
1106
1107                 pinconf {
1108                         pins = "gpio94";
1109                         bias-pull-up;
1110                 };
1111         };
1112
1113         ap_edp_bklten: ap-edp-bklten {
1114                 pinmux {
1115                         pins = "gpio12";
1116                         function = "gpio";
1117                 };
1118
1119                 pinconf {
1120                         pins = "gpio12";
1121                         drive-strength = <2>;
1122                         bias-disable;
1123
1124                         /* Force backlight to be disabled to match state at boot. */
1125                         output-low;
1126                 };
1127         };
1128
1129         ap_suspend_l_neuter: ap-suspend-l-neuter {
1130                 pinmux  {
1131                         pins = "gpio27";
1132                         function = "gpio";
1133                 };
1134
1135                 pinconf {
1136                         pins = "gpio27";
1137                         bias-disable;
1138                 };
1139         };
1140
1141         bios_flash_wp_l: bios-flash-wp-l {
1142                 pinmux {
1143                         pins = "gpio66";
1144                         function = "gpio";
1145                         input-enable;
1146                 };
1147
1148                 pinconf {
1149                         pins = "gpio66";
1150                         bias-disable;
1151                 };
1152         };
1153
1154         edp_brij_en: edp-brij-en {
1155                 pinmux {
1156                         pins = "gpio104";
1157                         function = "gpio";
1158                 };
1159
1160                 pinconf {
1161                         pins = "gpio104";
1162                         drive-strength = <2>;
1163                         bias-disable;
1164                 };
1165         };
1166
1167         en_pp3300_codec: en-pp3300-codec {
1168                 pinmux {
1169                         pins = "gpio83";
1170                         function = "gpio";
1171                 };
1172
1173                 pinconf {
1174                         pins = "gpio83";
1175                         drive-strength = <2>;
1176                         bias-disable;
1177                 };
1178         };
1179
1180         en_pp3300_dx_edp: en-pp3300-dx-edp {
1181                 pinmux {
1182                         pins = "gpio30";
1183                         function = "gpio";
1184                 };
1185
1186                 pinconf {
1187                         pins = "gpio30";
1188                         drive-strength = <2>;
1189                         bias-disable;
1190                 };
1191         };
1192
1193         en_pp3300_hub: en-pp3300-hub {
1194                 pinmux {
1195                         pins = "gpio84";
1196                         function = "gpio";
1197                 };
1198
1199                 pinconf {
1200                         pins = "gpio84";
1201                         drive-strength = <2>;
1202                         bias-disable;
1203                 };
1204         };
1205
1206         fp_to_ap_irq_l: fp-to-ap-irq-l {
1207                 pinmux {
1208                         pins = "gpio4";
1209                         function = "gpio";
1210                         input-enable;
1211                 };
1212
1213                 pinconf {
1214                         pins = "gpio4";
1215
1216                         /* Has external pullup */
1217                         bias-disable;
1218                 };
1219         };
1220
1221         h1_ap_int_odl: h1-ap-int-odl {
1222                 pinmux {
1223                         pins = "gpio42";
1224                         function = "gpio";
1225                         input-enable;
1226                 };
1227
1228                 pinconf {
1229                         pins = "gpio42";
1230                         bias-pull-up;
1231                 };
1232         };
1233
1234         hp_irq: hp-irq {
1235                 pinmux {
1236                         pins = "gpio28";
1237                         function = "gpio";
1238                 };
1239
1240                 pinconf {
1241                         pins = "gpio28";
1242                         bias-pull-up;
1243                 };
1244         };
1245
1246         pen_irq_l: pen-irq-l {
1247                 pinmux {
1248                         pins = "gpio21";
1249                         function = "gpio";
1250                 };
1251
1252                 pinconf {
1253                         pins = "gpio21";
1254
1255                         /* Has external pullup */
1256                         bias-disable;
1257                 };
1258         };
1259
1260         pen_pdct_l: pen-pdct-l {
1261                 pinmux {
1262                         pins = "gpio52";
1263                         function = "gpio";
1264                 };
1265
1266                 pinconf {
1267                         pins = "gpio52";
1268
1269                         /* Has external pullup */
1270                         bias-disable;
1271                 };
1272         };
1273
1274         pen_rst_odl: pen-rst-odl {
1275                 pinmux  {
1276                         pins = "gpio18";
1277                         function = "gpio";
1278                 };
1279
1280                 pinconf {
1281                         pins = "gpio18";
1282                         bias-disable;
1283                         drive-strength = <2>;
1284
1285                         /*
1286                          * The pen driver doesn't currently support
1287                          * driving this reset line.  By specifying
1288                          * output-high here we're relying on the fact
1289                          * that this pin has a default pulldown at boot
1290                          * (which makes sure the pen was in reset if it
1291                          * was powered) and then we set it high here to
1292                          * take it out of reset.  Better would be if the
1293                          * pen driver could control this and we could
1294                          * remove "output-high" here.
1295                          */
1296                         output-high; /* TODO: Remove this? */
1297                 };
1298         };
1299
1300         p_sensor_int_l: p-sensor-int-l {
1301                 pinmux {
1302                         pins = "gpio24";
1303                         function = "gpio";
1304                         input-enable;
1305                 };
1306
1307                 pinconf {
1308                         pins = "gpio24";
1309                         /* Has external pullup */
1310                         bias-disable;
1311                 };
1312         };
1313
1314         qup_spi0_cs_gpio_init_high: qup-spi0-cs-gpio-init-high {
1315                 pinconf {
1316                         pins = "gpio37";
1317                         output-high;
1318                 };
1319         };
1320
1321         qup_spi6_cs_gpio_init_high: qup-spi6-cs-gpio-init-high {
1322                 pinconf {
1323                         pins = "gpio62";
1324                         output-high;
1325                 };
1326         };
1327
1328         qup_spi10_cs_gpio_init_high: qup-spi10-cs-gpio-init-high {
1329                 pinconf {
1330                         pins = "gpio89";
1331                         output-high;
1332                 };
1333         };
1334
1335         qup_uart3_sleep: qup-uart3-sleep {
1336                 pinmux {
1337                         pins = "gpio38", "gpio39",
1338                                "gpio40", "gpio41";
1339                         function = "gpio";
1340                 };
1341
1342                 pinconf-cts {
1343                         /*
1344                          * Configure a pull-down on CTS to match the pull of
1345                          * the Bluetooth module.
1346                          */
1347                         pins = "gpio38";
1348                         bias-pull-down;
1349                 };
1350
1351                 pinconf-rts {
1352                         /*
1353                          * Configure pull-down on RTS. As RTS is active low
1354                          * signal, pull it low to indicate the BT SoC that it
1355                          * can wakeup the system anytime from suspend state by
1356                          * pulling RX low (by sending wakeup bytes).
1357                          */
1358                          pins = "gpio39";
1359                          bias-pull-down;
1360                 };
1361
1362                 pinconf-tx {
1363                         /*
1364                          * Configure pull-up on TX when it isn't actively driven
1365                          * to prevent BT SoC from receiving garbage during sleep.
1366                          */
1367                         pins = "gpio40";
1368                         bias-pull-up;
1369                 };
1370
1371                 pinconf-rx {
1372                         /*
1373                          * Configure a pull-up on RX. This is needed to avoid
1374                          * garbage data when the TX pin of the Bluetooth module
1375                          * is floating which may cause spurious wakeups.
1376                          */
1377                         pins = "gpio41";
1378                         bias-pull-up;
1379                 };
1380         };
1381
1382         /* Named trackpad_int_1v8_odl on earlier revision schematics */
1383         trackpad_int_1v8_odl:
1384         tp_int_odl: tp-int-odl {
1385                 pinmux {
1386                         pins = "gpio0";
1387                         function = "gpio";
1388                 };
1389
1390                 pinconf {
1391                         pins = "gpio0";
1392
1393                         /* Has external pullup */
1394                         bias-disable;
1395                 };
1396         };
1397
1398         ts_int_l: ts-int-l {
1399                 pinmux  {
1400                         pins = "gpio9";
1401                         function = "gpio";
1402                 };
1403
1404                 pinconf {
1405                         pins = "gpio9";
1406                         bias-pull-up;
1407                 };
1408         };
1409
1410         ts_reset_l: ts-reset-l {
1411                 pinmux  {
1412                         pins = "gpio8";
1413                         function = "gpio";
1414                 };
1415
1416                 pinconf {
1417                         pins = "gpio8";
1418                         bias-disable;
1419                         drive-strength = <2>;
1420                 };
1421         };
1422
1423         sdc1_on: sdc1-on {
1424                 pinconf-clk {
1425                         pins = "sdc1_clk";
1426                         bias-disable;
1427                         drive-strength = <16>;
1428                 };
1429
1430                 pinconf-cmd {
1431                         pins = "sdc1_cmd";
1432                         bias-pull-up;
1433                         drive-strength = <16>;
1434                 };
1435
1436                 pinconf-data {
1437                         pins = "sdc1_data";
1438                         bias-pull-up;
1439                         drive-strength = <16>;
1440                 };
1441
1442                 pinconf-rclk {
1443                         pins = "sdc1_rclk";
1444                         bias-pull-down;
1445                 };
1446         };
1447
1448         sdc1_off: sdc1-off {
1449                 pinconf-clk {
1450                         pins = "sdc1_clk";
1451                         bias-disable;
1452                         drive-strength = <2>;
1453                 };
1454
1455                 pinconf-cmd {
1456                         pins = "sdc1_cmd";
1457                         bias-pull-up;
1458                         drive-strength = <2>;
1459                 };
1460
1461                 pinconf-data {
1462                         pins = "sdc1_data";
1463                         bias-pull-up;
1464                         drive-strength = <2>;
1465                 };
1466
1467                 pinconf-rclk {
1468                         pins = "sdc1_rclk";
1469                         bias-pull-down;
1470                 };
1471         };
1472
1473         sdc2_on: sdc2-on {
1474                 pinconf-clk {
1475                         pins = "sdc2_clk";
1476                         bias-disable;
1477                         drive-strength = <16>;
1478                 };
1479
1480                 pinconf-cmd {
1481                         pins = "sdc2_cmd";
1482                         bias-pull-up;
1483                         drive-strength = <10>;
1484                 };
1485
1486                 pinconf-data {
1487                         pins = "sdc2_data";
1488                         bias-pull-up;
1489                         drive-strength = <10>;
1490                 };
1491
1492                 pinconf-sd-cd {
1493                         pins = "gpio69";
1494                         bias-pull-up;
1495                         drive-strength = <2>;
1496                 };
1497         };
1498
1499         sdc2_off: sdc2-off {
1500                 pinconf-clk {
1501                         pins = "sdc2_clk";
1502                         bias-disable;
1503                         drive-strength = <2>;
1504                 };
1505
1506                 pinconf-cmd {
1507                         pins = "sdc2_cmd";
1508                         bias-pull-up;
1509                         drive-strength = <2>;
1510                 };
1511
1512                 pinconf-data {
1513                         pins = "sdc2_data";
1514                         bias-pull-up;
1515                         drive-strength = <2>;
1516                 };
1517
1518                 pinconf-sd-cd {
1519                         pins = "gpio69";
1520                         bias-pull-up;
1521                         drive-strength = <2>;
1522                 };
1523         };
1524 };