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