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