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 = <&_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 #sound-dai-cells = <0>; 277 #address-cells = <1>; 278 #size-cells = <0>; 279 280 dai-link@0 { 281 link-name = "MultiMedia0"; 282 reg = <MI2S_PRIMARY>; 283 cpu { 284 sound-dai = <&lpass_cpu MI2S_PRIMARY>; 285 }; 286 287 sound_multimedia0_codec: codec { 288 sound-dai = <&alc5682 0 /* aif1 */>; 289 }; 290 }; 291 292 dai-link@1 { 293 link-name = "MultiMedia1"; 294 reg = <MI2S_SECONDARY>; 295 cpu { 296 sound-dai = <&lpass_cpu MI2S_SECONDARY>; 297 }; 298 299 sound_multimedia1_codec: codec { 300 sound-dai = <&max98360a>; 301 }; 302 }; 303 304 dai-link@2 { 305 link-name = "MultiMedia2"; 306 reg = <2>; 307 cpu { 308 sound-dai = <&lpass_cpu 2>; 309 }; 310 311 codec { 312 sound-dai = <&mdss_dp>; 313 }; 314 }; 315 }; 316}; 317 318&qfprom { 319 vcc-supply = <&pp1800_l11a>; 320}; 321 322&qspi { 323 status = "okay"; 324 pinctrl-names = "default"; 325 pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data01>; 326 327 flash@0 { 328 compatible = "jedec,spi-nor"; 329 reg = <0>; 330 331 spi-max-frequency = <37500000>; 332 spi-tx-bus-width = <2>; 333 spi-rx-bus-width = <2>; 334 }; 335}; 336 337&apps_rsc { 338 pm6150-rpmh-regulators { 339 compatible = "qcom,pm6150-rpmh-regulators"; 340 qcom,pmic-id = "a"; 341 342 vddpx_1: 343 vdd2: 344 pp1125_s1a: smps1 { 345 regulator-min-microvolt = <1128000>; 346 regulator-max-microvolt = <1128000>; 347 }; 348 349 vdd_qlink_lv: 350 vdd_qlink_lv_ck: 351 vdd_qusb_hs0_core: 352 vdd_ufs1_core: 353 vdda_mipi_csi0_0p9: 354 vdda_mipi_csi1_0p9: 355 vdda_mipi_csi2_0p9: 356 vdda_mipi_csi3_0p9: 357 vdda_mipi_dsi0_pll: 358 vdda_pll_cc_ebi01: 359 vdda_qrefs_0p9: 360 vdda_usb_ss_dp_core: 361 pp900_l4a: ldo4 { 362 regulator-min-microvolt = <824000>; 363 regulator-max-microvolt = <928000>; 364 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 365 }; 366 367 vdd_cx_wlan: 368 pp800_l9a: ldo9 { 369 regulator-min-microvolt = <488000>; 370 regulator-max-microvolt = <800000>; 371 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 372 }; 373 374 vdd1: 375 vddpx_3: 376 vddpx_7: 377 vio_in: 378 pp1800_l10a: ldo10 { 379 regulator-min-microvolt = <1800000>; 380 regulator-max-microvolt = <1800000>; 381 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 382 }; 383 384 vdd_qfprom: 385 vdda_apc1_cs_1p8: 386 vdda_qrefs_1p8: 387 vdda_qusb_hs0_1p8: 388 vddpx_11: 389 vreg_bb_clk: 390 pp1800_l11a: ldo11 { 391 regulator-min-microvolt = <1800000>; 392 regulator-max-microvolt = <1800000>; 393 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 394 }; 395 396 mcp_vccq: 397 pp1800_l12a_r: ldo12 { 398 regulator-min-microvolt = <1800000>; 399 regulator-max-microvolt = <1800000>; 400 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 401 }; 402 403 /* 404 * On trogdor this needs to match l10a since we use it to 405 * give power to things like SPI flash which communicate back 406 * on lines powered by l10a. Thus we force to 1.8V. 407 */ 408 pp1800_l13a: ldo13 { 409 regulator-min-microvolt = <1800000>; 410 regulator-max-microvolt = <1800000>; 411 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 412 }; 413 414 pp1800_prox: 415 pp1800_l14a: ldo14 { 416 regulator-min-microvolt = <1800000>; 417 regulator-max-microvolt = <1800000>; 418 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 419 }; 420 421 pp1800_alc5682: 422 pp1800_l15a: ldo15 { 423 regulator-min-microvolt = <1800000>; 424 regulator-max-microvolt = <1800000>; 425 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 426 }; 427 428 vdda_qusb_hs0_3p1: 429 vdd_pdphy: 430 pp3100_l17a: ldo17 { 431 regulator-min-microvolt = <2920000>; 432 regulator-max-microvolt = <3232000>; 433 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 434 }; 435 436 pp1800_pen: 437 pp1800_l18a: ldo18 { 438 regulator-min-microvolt = <1800000>; 439 regulator-max-microvolt = <1800000>; 440 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 441 }; 442 443 mcp_vcc: 444 pp2850_l19a: ldo19 { 445 regulator-min-microvolt = <2960000>; 446 regulator-max-microvolt = <2960000>; 447 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 448 }; 449 }; 450 451 pm6150l-rpmh-regulators { 452 compatible = "qcom,pm6150l-rpmh-regulators"; 453 qcom,pmic-id = "c"; 454 455 pp1300_s8c: smps8 { 456 regulator-min-microvolt = <1120000>; 457 regulator-max-microvolt = <1408000>; 458 }; 459 460 pp1800_l1c: ldo1 { 461 regulator-min-microvolt = <1616000>; 462 regulator-max-microvolt = <1984000>; 463 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 464 }; 465 466 vdd_wcss_adc_dac: 467 pp1300_l2c: ldo2 { 468 regulator-min-microvolt = <1168000>; 469 regulator-max-microvolt = <1304000>; 470 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 471 }; 472 473 pp1200_brij: 474 vdd_ufs1_1p2: 475 vdda_csi0_1p25: 476 vdda_csi1_1p25: 477 vdda_csi2_1p25: 478 vdda_csi3_1p25: 479 vdda_hv_ebi0: 480 vdda_mipi_dsi0_1p2: 481 vdda_usb_ss_dp_1p2: 482 vddpx_10: 483 pp1200_l3c: ldo3 { 484 regulator-min-microvolt = <1200000>; 485 regulator-max-microvolt = <1200000>; 486 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 487 }; 488 489 vddpx_2: 490 ppvar_l6c: ldo6 { 491 regulator-min-microvolt = <1800000>; 492 regulator-max-microvolt = <2952000>; 493 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 494 }; 495 496 pp3300_l7c: ldo7 { 497 regulator-min-microvolt = <3304000>; 498 regulator-max-microvolt = <3304000>; 499 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 500 }; 501 502 pp1800_brij_vccio: 503 pp1800_edp_vpll: 504 pp1800_l8c: ldo8 { 505 regulator-min-microvolt = <1800000>; 506 regulator-max-microvolt = <1800000>; 507 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 508 }; 509 510 pp2950_l9c: ldo9 { 511 regulator-min-microvolt = <2952000>; 512 regulator-max-microvolt = <2952000>; 513 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 514 }; 515 516 pp3300_l10c: ldo10 { 517 regulator-min-microvolt = <3000000>; 518 regulator-max-microvolt = <3400000>; 519 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 520 }; 521 522 pp3300_l11c: ldo11 { 523 regulator-min-microvolt = <3000000>; 524 regulator-max-microvolt = <3400000>; 525 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 526 }; 527 528 src_vreg_bob: bob { 529 regulator-min-microvolt = <3008000>; 530 regulator-max-microvolt = <3960000>; 531 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 532 }; 533 }; 534}; 535 536&ap_ec_spi { 537 status = "okay"; 538 cros_ec: ec@0 { 539 compatible = "google,cros-ec-spi"; 540 reg = <0>; 541 interrupt-parent = <&tlmm>; 542 interrupts = <94 IRQ_TYPE_LEVEL_LOW>; 543 pinctrl-names = "default"; 544 pinctrl-0 = <&ap_ec_int_l>; 545 spi-max-frequency = <3000000>; 546 547 cros_ec_pwm: ec-pwm { 548 compatible = "google,cros-ec-pwm"; 549 #pwm-cells = <1>; 550 }; 551 552 i2c_tunnel: i2c-tunnel { 553 compatible = "google,cros-ec-i2c-tunnel"; 554 google,remote-bus = <0>; 555 #address-cells = <1>; 556 #size-cells = <0>; 557 }; 558 559 typec { 560 compatible = "google,cros-ec-typec"; 561 #address-cells = <1>; 562 #size-cells = <0>; 563 564 usb_c0: connector@0 { 565 compatible = "usb-c-connector"; 566 reg = <0>; 567 label = "left"; 568 power-role = "dual"; 569 data-role = "host"; 570 try-power-role = "source"; 571 }; 572 573 usb_c1: connector@1 { 574 compatible = "usb-c-connector"; 575 reg = <1>; 576 label = "right"; 577 power-role = "dual"; 578 data-role = "host"; 579 try-power-role = "source"; 580 }; 581 }; 582 }; 583}; 584 585&ap_h1_spi { 586 status = "okay"; 587 cr50: tpm@0 { 588 compatible = "google,cr50"; 589 reg = <0>; 590 pinctrl-names = "default"; 591 pinctrl-0 = <&h1_ap_int_odl>; 592 spi-max-frequency = <800000>; 593 interrupt-parent = <&tlmm>; 594 interrupts = <42 IRQ_TYPE_EDGE_RISING>; 595 }; 596}; 597 598&camcc { 599 status = "disabled"; 600}; 601 602&dsi0 { 603 status = "okay"; 604 vdda-supply = <&vdda_mipi_dsi0_1p2>; 605 606 ports { 607 port@1 { 608 endpoint { 609 remote-endpoint = <&sn65dsi86_in>; 610 data-lanes = <0 1 2 3>; 611 }; 612 }; 613 }; 614}; 615 616&dsi_phy { 617 status = "okay"; 618 vdds-supply = <&vdda_mipi_dsi0_pll>; 619}; 620 621edp_brij_i2c: &i2c2 { 622 status = "okay"; 623 clock-frequency = <400000>; 624 625 sn65dsi86_bridge: bridge@2d { 626 compatible = "ti,sn65dsi86"; 627 reg = <0x2d>; 628 pinctrl-names = "default"; 629 pinctrl-0 = <&edp_brij_en>, <&edp_brij_irq>; 630 gpio-controller; 631 #gpio-cells = <2>; 632 633 interrupt-parent = <&tlmm>; 634 interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; 635 636 enable-gpios = <&tlmm 104 GPIO_ACTIVE_HIGH>; 637 638 vpll-supply = <&pp1800_edp_vpll>; 639 vccio-supply = <&pp1800_brij_vccio>; 640 vcca-supply = <&pp1200_brij>; 641 vcc-supply = <&pp1200_brij>; 642 643 clocks = <&rpmhcc RPMH_LN_BB_CLK3>; 644 clock-names = "refclk"; 645 646 no-hpd; 647 648 ports { 649 #address-cells = <1>; 650 #size-cells = <0>; 651 652 port@0 { 653 reg = <0>; 654 sn65dsi86_in: endpoint { 655 remote-endpoint = <&dsi0_out>; 656 }; 657 }; 658 659 port@1 { 660 reg = <1>; 661 sn65dsi86_out: endpoint { 662 data-lanes = <0 1>; 663 remote-endpoint = <&panel_in_edp>; 664 }; 665 }; 666 }; 667 668 aux-bus { 669 panel: panel { 670 /* Compatible will be filled in per-board */ 671 power-supply = <&pp3300_dx_edp>; 672 backlight = <&backlight>; 673 hpd-gpios = <&sn65dsi86_bridge 2 GPIO_ACTIVE_HIGH>; 674 675 port { 676 panel_in_edp: endpoint { 677 remote-endpoint = <&sn65dsi86_out>; 678 }; 679 }; 680 }; 681 }; 682 }; 683}; 684 685ap_sar_sensor_i2c: &i2c5 { 686 clock-frequency = <400000>; 687 688 ap_sar_sensor: proximity@28 { 689 compatible = "semtech,sx9310"; 690 reg = <0x28>; 691 #io-channel-cells = <1>; 692 pinctrl-names = "default"; 693 pinctrl-0 = <&p_sensor_int_l>; 694 695 interrupt-parent = <&tlmm>; 696 interrupts = <24 IRQ_TYPE_LEVEL_LOW>; 697 698 vdd-supply = <&pp3300_a>; 699 svdd-supply = <&pp1800_prox>; 700 701 status = "disabled"; 702 label = "proximity-wifi"; 703 }; 704}; 705 706ap_tp_i2c: &i2c7 { 707 status = "okay"; 708 clock-frequency = <400000>; 709 710 trackpad: trackpad@15 { 711 compatible = "elan,ekth3000"; 712 reg = <0x15>; 713 pinctrl-names = "default"; 714 pinctrl-0 = <&tp_int_odl>; 715 716 interrupt-parent = <&tlmm>; 717 interrupts = <0 IRQ_TYPE_EDGE_FALLING>; 718 719 vcc-supply = <&pp3300_fp_tp>; 720 721 wakeup-source; 722 }; 723}; 724 725hp_i2c: &i2c9 { 726 status = "okay"; 727 clock-frequency = <400000>; 728 729 alc5682: codec@1a { 730 compatible = "realtek,rt5682i"; 731 reg = <0x1a>; 732 pinctrl-names = "default"; 733 pinctrl-0 = <&hp_irq>; 734 735 #sound-dai-cells = <1>; 736 737 interrupt-parent = <&tlmm>; 738 /* 739 * This will get ignored because the interrupt type 740 * is set in rt5682.c. 741 */ 742 interrupts = <28 IRQ_TYPE_EDGE_BOTH>; 743 744 AVDD-supply = <&pp1800_alc5682>; 745 MICVDD-supply = <&pp3300_codec>; 746 VBAT-supply = <&pp3300_audio>; 747 748 realtek,dmic1-data-pin = <1>; 749 realtek,dmic1-clk-pin = <1>; 750 realtek,jd-src = <1>; 751 }; 752}; 753 754&ipa { 755 status = "okay"; 756 757 /* 758 * Trogdor doesn't have QHEE (Qualcomm's EL2 blob), so the 759 * modem needs to cover certain init steps (GSI init), and 760 * the AP needs to wait for it. 761 */ 762 modem-init; 763}; 764 765&lpass_cpu { 766 status = "okay"; 767 768 pinctrl-names = "default"; 769 pinctrl-0 = <&sec_mi2s_active>, <&pri_mi2s_active>, <&pri_mi2s_mclk_active>; 770 771 #address-cells = <1>; 772 #size-cells = <0>; 773 774 mi2s@0 { 775 reg = <MI2S_PRIMARY>; 776 qcom,playback-sd-lines = <1>; 777 qcom,capture-sd-lines = <0>; 778 }; 779 780 secondary_mi2s: mi2s@1 { 781 reg = <MI2S_SECONDARY>; 782 qcom,playback-sd-lines = <0>; 783 }; 784 785 hdmi-primary@0 { 786 reg = <LPASS_DP_RX>; 787 }; 788}; 789 790&mdp { 791 status = "okay"; 792}; 793 794&mdss { 795 status = "okay"; 796}; 797 798&mdss_dp { 799 status = "okay"; 800 pinctrl-names = "default"; 801 pinctrl-0 = <&dp_hot_plug_det>; 802 data-lanes = <0 1>; 803 vdda-1p2-supply = <&vdda_usb_ss_dp_1p2>; 804 vdda-0p9-supply = <&vdda_usb_ss_dp_core>; 805}; 806 807&pm6150_adc { 808 charger-thermistor@4f { 809 reg = <ADC5_AMUX_THM3_100K_PU>; 810 qcom,ratiometric; 811 qcom,hw-settle-time = <200>; 812 }; 813}; 814 815&pm6150_adc_tm { 816 status = "okay"; 817 818 charger-thermistor@0 { 819 reg = <0>; 820 io-channels = <&pm6150_adc ADC5_AMUX_THM3_100K_PU>; 821 qcom,ratiometric; 822 qcom,hw-settle-time-us = <200>; 823 }; 824}; 825 826&pm6150_pon { 827 status = "disabled"; 828}; 829 830&qupv3_id_0 { 831 status = "okay"; 832}; 833 834&qupv3_id_1 { 835 status = "okay"; 836}; 837 838&remoteproc_mpss { 839 status = "okay"; 840 compatible = "qcom,sc7180-mss-pil"; 841 iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>; 842 memory-region = <&mba_mem &mpss_mem>; 843 844 /* This gets overridden for SKUs with LTE support. */ 845 firmware-name = "qcom/sc7180-trogdor/modem-nolte/mba.mbn", 846 "qcom/sc7180-trogdor/modem-nolte/qdsp6sw.mbn"; 847}; 848 849&sdhc_1 { 850 status = "okay"; 851 852 pinctrl-names = "default", "sleep"; 853 pinctrl-0 = <&sdc1_on>; 854 pinctrl-1 = <&sdc1_off>; 855 vmmc-supply = <&mcp_vcc>; 856 vqmmc-supply = <&mcp_vccq>; 857}; 858 859&sdhc_2 { 860 pinctrl-names = "default", "sleep"; 861 pinctrl-0 = <&sdc2_on>; 862 pinctrl-1 = <&sdc2_off>; 863 vmmc-supply = <&pp2950_l9c>; 864 vqmmc-supply = <&ppvar_l6c>; 865 866 cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>; 867}; 868 869&spi0 { 870 pinctrl-0 = <&qup_spi0_cs_gpio_init_high>, <&qup_spi0_cs_gpio>; 871 cs-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; 872}; 873 874&spi6 { 875 pinctrl-0 = <&qup_spi6_cs_gpio_init_high>, <&qup_spi6_cs_gpio>; 876 cs-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>; 877}; 878 879ap_spi_fp: &spi10 { 880 pinctrl-0 = <&qup_spi10_cs_gpio_init_high>, <&qup_spi10_cs_gpio>; 881 cs-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>; 882 883 cros_ec_fp: ec@0 { 884 compatible = "google,cros-ec-spi"; 885 reg = <0>; 886 interrupt-parent = <&tlmm>; 887 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 888 pinctrl-names = "default"; 889 pinctrl-0 = <&fp_to_ap_irq_l>; 890 spi-max-frequency = <3000000>; 891 }; 892}; 893 894#include <arm/cros-ec-keyboard.dtsi> 895#include <arm/cros-ec-sbs.dtsi> 896 897&uart3 { 898 status = "okay"; 899 900 /delete-property/interrupts; 901 interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>, 902 <&tlmm 41 IRQ_TYPE_EDGE_FALLING>; 903 904 pinctrl-names = "default", "sleep"; 905 pinctrl-1 = <&qup_uart3_sleep>; 906 907 bluetooth: bluetooth { 908 compatible = "qcom,wcn3991-bt"; 909 vddio-supply = <&pp1800_l10a>; 910 vddxo-supply = <&pp1800_l1c>; 911 vddrf-supply = <&pp1300_l2c>; 912 vddch0-supply = <&pp3300_l10c>; 913 max-speed = <3200000>; 914 }; 915}; 916 917&uart8 { 918 status = "okay"; 919}; 920 921&usb_1 { 922 status = "okay"; 923}; 924 925&usb_1_dwc3 { 926 dr_mode = "host"; 927}; 928 929&usb_1_hsphy { 930 status = "okay"; 931 vdd-supply = <&vdd_qusb_hs0_core>; 932 vdda-pll-supply = <&vdda_qusb_hs0_1p8>; 933 vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>; 934 qcom,imp-res-offset-value = <8>; 935 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>; 936 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>; 937 qcom,bias-ctrl-value = <0x22>; 938 qcom,charge-ctrl-value = <3>; 939 qcom,hsdisc-trim-value = <0>; 940}; 941 942&usb_1_qmpphy { 943 status = "okay"; 944 vdda-phy-supply = <&vdda_usb_ss_dp_1p2>; 945 vdda-pll-supply = <&vdda_usb_ss_dp_core>; 946}; 947 948&venus { 949 video-firmware { 950 iommus = <&apps_smmu 0x0c42 0x0>; 951 }; 952}; 953 954&wifi { 955 status = "okay"; 956 vdd-0.8-cx-mx-supply = <&vdd_cx_wlan>; 957 vdd-1.8-xo-supply = <&pp1800_l1c>; 958 vdd-1.3-rfa-supply = <&pp1300_l2c>; 959 vdd-3.3-ch0-supply = <&pp3300_l10c>; 960 vdd-3.3-ch1-supply = <&pp3300_l11c>; 961 962 wifi-firmware { 963 iommus = <&apps_smmu 0xc2 0x1>; 964 }; 965}; 966 967/* PINCTRL - additions to nodes defined in sc7180.dtsi */ 968 969&dp_hot_plug_det { 970 pinconf { 971 pins = "gpio117"; 972 bias-disable; 973 }; 974}; 975 976&pri_mi2s_active { 977 pinconf { 978 pins = "gpio53", "gpio54", "gpio55", "gpio56"; 979 drive-strength = <2>; 980 bias-pull-down; 981 }; 982}; 983 984&pri_mi2s_mclk_active { 985 pinconf { 986 pins = "gpio57"; 987 drive-strength = <2>; 988 bias-pull-down; 989 }; 990}; 991 992&qspi_cs0 { 993 pinconf { 994 pins = "gpio68"; 995 bias-disable; 996 }; 997}; 998 999&qspi_clk { 1000 pinconf { 1001 pins = "gpio63"; 1002 drive-strength = <8>; 1003 bias-disable; 1004 }; 1005}; 1006 1007&qspi_data01 { 1008 pinconf { 1009 pins = "gpio64", "gpio65"; 1010 1011 /* High-Z when no transfers; nice to park the lines */ 1012 bias-pull-up; 1013 }; 1014}; 1015 1016&qup_i2c2_default { 1017 pinconf { 1018 pins = "gpio15", "gpio16"; 1019 drive-strength = <2>; 1020 1021 /* Has external pullup */ 1022 bias-disable; 1023 }; 1024}; 1025 1026&qup_i2c4_default { 1027 pinconf { 1028 pins = "gpio115", "gpio116"; 1029 drive-strength = <2>; 1030 1031 /* Has external pullup */ 1032 bias-disable; 1033 }; 1034}; 1035 1036&qup_i2c5_default { 1037 pinconf { 1038 pins = "gpio25", "gpio26"; 1039 drive-strength = <2>; 1040 1041 /* Has external pullup */ 1042 bias-disable; 1043 }; 1044}; 1045 1046&qup_i2c7_default { 1047 pinconf { 1048 pins = "gpio6", "gpio7"; 1049 drive-strength = <2>; 1050 1051 /* Has external pullup */ 1052 bias-disable; 1053 }; 1054}; 1055 1056&qup_i2c9_default { 1057 pinconf { 1058 pins = "gpio46", "gpio47"; 1059 drive-strength = <2>; 1060 1061 /* Has external pullup */ 1062 bias-disable; 1063 }; 1064}; 1065 1066&qup_spi0_cs_gpio { 1067 pinconf { 1068 pins = "gpio34", "gpio35", "gpio36", "gpio37"; 1069 drive-strength = <2>; 1070 bias-disable; 1071 }; 1072}; 1073 1074&qup_spi6_cs_gpio { 1075 pinconf { 1076 pins = "gpio59", "gpio60", "gpio61", "gpio62"; 1077 drive-strength = <2>; 1078 bias-disable; 1079 }; 1080}; 1081 1082&qup_spi10_cs_gpio { 1083 pinconf { 1084 pins = "gpio86", "gpio87", "gpio88", "gpio89"; 1085 drive-strength = <2>; 1086 bias-disable; 1087 }; 1088}; 1089 1090&qup_uart3_default { 1091 pinconf-cts { 1092 /* 1093 * Configure a pull-down on CTS to match the pull of 1094 * the Bluetooth module. 1095 */ 1096 pins = "gpio38"; 1097 bias-pull-down; 1098 }; 1099 1100 pinconf-rts-tx { 1101 /* We'll drive RTS and TX, so no pull */ 1102 pins = "gpio39", "gpio40"; 1103 drive-strength = <2>; 1104 bias-disable; 1105 }; 1106 1107 pinconf-rx { 1108 /* 1109 * Configure a pull-up on RX. This is needed to avoid 1110 * garbage data when the TX pin of the Bluetooth module is 1111 * in tri-state (module powered off or not driving the 1112 * signal yet). 1113 */ 1114 pins = "gpio41"; 1115 bias-pull-up; 1116 }; 1117}; 1118 1119&qup_uart8_default { 1120 pinconf-tx { 1121 pins = "gpio44"; 1122 drive-strength = <2>; 1123 bias-disable; 1124 }; 1125 1126 pinconf-rx { 1127 pins = "gpio45"; 1128 drive-strength = <2>; 1129 bias-pull-up; 1130 }; 1131}; 1132 1133&sec_mi2s_active { 1134 pinconf { 1135 pins = "gpio49", "gpio50", "gpio51"; 1136 drive-strength = <2>; 1137 bias-pull-down; 1138 }; 1139}; 1140 1141/* PINCTRL - board-specific pinctrl */ 1142 1143&pm6150_gpio { 1144 status = "disabled"; /* No GPIOs are connected */ 1145}; 1146 1147&pm6150l_gpio { 1148 gpio-line-names = "AP_SUSPEND", 1149 "", 1150 "", 1151 "", 1152 "", 1153 "", 1154 "", 1155 "", 1156 "", 1157 "", 1158 "", 1159 ""; 1160}; 1161 1162&tlmm { 1163 /* 1164 * pinctrl settings for pins that have no real owners. 1165 */ 1166 pinctrl-names = "default"; 1167 pinctrl-0 = <&bios_flash_wp_l>, <&ap_suspend_l_neuter>; 1168 1169 amp_en: amp-en { 1170 pinmux { 1171 pins = "gpio23"; 1172 function = "gpio"; 1173 }; 1174 1175 pinconf { 1176 pins = "gpio23"; 1177 bias-pull-down; 1178 }; 1179 }; 1180 1181 ap_ec_int_l: ap-ec-int-l { 1182 pinmux { 1183 pins = "gpio94"; 1184 function = "gpio"; 1185 input-enable; 1186 }; 1187 1188 pinconf { 1189 pins = "gpio94"; 1190 bias-pull-up; 1191 }; 1192 }; 1193 1194 ap_edp_bklten: ap-edp-bklten { 1195 pinmux { 1196 pins = "gpio12"; 1197 function = "gpio"; 1198 }; 1199 1200 pinconf { 1201 pins = "gpio12"; 1202 drive-strength = <2>; 1203 bias-disable; 1204 1205 /* Force backlight to be disabled to match state at boot. */ 1206 output-low; 1207 }; 1208 }; 1209 1210 ap_suspend_l_neuter: ap-suspend-l-neuter { 1211 pinmux { 1212 pins = "gpio27"; 1213 function = "gpio"; 1214 }; 1215 1216 pinconf { 1217 pins = "gpio27"; 1218 bias-disable; 1219 }; 1220 }; 1221 1222 bios_flash_wp_l: bios-flash-wp-l { 1223 pinmux { 1224 pins = "gpio66"; 1225 function = "gpio"; 1226 input-enable; 1227 }; 1228 1229 pinconf { 1230 pins = "gpio66"; 1231 bias-disable; 1232 }; 1233 }; 1234 1235 edp_brij_en: edp-brij-en { 1236 pinmux { 1237 pins = "gpio104"; 1238 function = "gpio"; 1239 }; 1240 1241 pinconf { 1242 pins = "gpio104"; 1243 drive-strength = <2>; 1244 bias-disable; 1245 }; 1246 }; 1247 1248 edp_brij_irq: edp-brij-irq { 1249 pinmux { 1250 pins = "gpio11"; 1251 function = "gpio"; 1252 }; 1253 1254 pinconf { 1255 pins = "gpio11"; 1256 drive-strength = <2>; 1257 bias-pull-down; 1258 }; 1259 }; 1260 1261 en_pp3300_codec: en-pp3300-codec { 1262 pinmux { 1263 pins = "gpio83"; 1264 function = "gpio"; 1265 }; 1266 1267 pinconf { 1268 pins = "gpio83"; 1269 drive-strength = <2>; 1270 bias-disable; 1271 }; 1272 }; 1273 1274 en_pp3300_dx_edp: en-pp3300-dx-edp { 1275 pinmux { 1276 pins = "gpio30"; 1277 function = "gpio"; 1278 }; 1279 1280 pinconf { 1281 pins = "gpio30"; 1282 drive-strength = <2>; 1283 bias-disable; 1284 }; 1285 }; 1286 1287 en_pp3300_hub: en-pp3300-hub { 1288 pinmux { 1289 pins = "gpio84"; 1290 function = "gpio"; 1291 }; 1292 1293 pinconf { 1294 pins = "gpio84"; 1295 drive-strength = <2>; 1296 bias-disable; 1297 }; 1298 }; 1299 1300 fp_to_ap_irq_l: fp-to-ap-irq-l { 1301 pinmux { 1302 pins = "gpio4"; 1303 function = "gpio"; 1304 input-enable; 1305 }; 1306 1307 pinconf { 1308 pins = "gpio4"; 1309 1310 /* Has external pullup */ 1311 bias-disable; 1312 }; 1313 }; 1314 1315 h1_ap_int_odl: h1-ap-int-odl { 1316 pinmux { 1317 pins = "gpio42"; 1318 function = "gpio"; 1319 input-enable; 1320 }; 1321 1322 pinconf { 1323 pins = "gpio42"; 1324 bias-pull-up; 1325 }; 1326 }; 1327 1328 hp_irq: hp-irq { 1329 pinmux { 1330 pins = "gpio28"; 1331 function = "gpio"; 1332 }; 1333 1334 pinconf { 1335 pins = "gpio28"; 1336 bias-pull-up; 1337 }; 1338 }; 1339 1340 pen_irq_l: pen-irq-l { 1341 pinmux { 1342 pins = "gpio21"; 1343 function = "gpio"; 1344 }; 1345 1346 pinconf { 1347 pins = "gpio21"; 1348 1349 /* Has external pullup */ 1350 bias-disable; 1351 }; 1352 }; 1353 1354 pen_pdct_l: pen-pdct-l { 1355 pinmux { 1356 pins = "gpio52"; 1357 function = "gpio"; 1358 }; 1359 1360 pinconf { 1361 pins = "gpio52"; 1362 1363 /* Has external pullup */ 1364 bias-disable; 1365 }; 1366 }; 1367 1368 pen_rst_odl: pen-rst-odl { 1369 pinmux { 1370 pins = "gpio18"; 1371 function = "gpio"; 1372 }; 1373 1374 pinconf { 1375 pins = "gpio18"; 1376 bias-disable; 1377 drive-strength = <2>; 1378 1379 /* 1380 * The pen driver doesn't currently support 1381 * driving this reset line. By specifying 1382 * output-high here we're relying on the fact 1383 * that this pin has a default pulldown at boot 1384 * (which makes sure the pen was in reset if it 1385 * was powered) and then we set it high here to 1386 * take it out of reset. Better would be if the 1387 * pen driver could control this and we could 1388 * remove "output-high" here. 1389 */ 1390 output-high; /* TODO: Remove this? */ 1391 }; 1392 }; 1393 1394 p_sensor_int_l: p-sensor-int-l { 1395 pinmux { 1396 pins = "gpio24"; 1397 function = "gpio"; 1398 input-enable; 1399 }; 1400 1401 pinconf { 1402 pins = "gpio24"; 1403 /* Has external pullup */ 1404 bias-disable; 1405 }; 1406 }; 1407 1408 qup_spi0_cs_gpio_init_high: qup-spi0-cs-gpio-init-high { 1409 pinconf { 1410 pins = "gpio37"; 1411 output-high; 1412 }; 1413 }; 1414 1415 qup_spi6_cs_gpio_init_high: qup-spi6-cs-gpio-init-high { 1416 pinconf { 1417 pins = "gpio62"; 1418 output-high; 1419 }; 1420 }; 1421 1422 qup_spi10_cs_gpio_init_high: qup-spi10-cs-gpio-init-high { 1423 pinconf { 1424 pins = "gpio89"; 1425 output-high; 1426 }; 1427 }; 1428 1429 qup_uart3_sleep: qup-uart3-sleep { 1430 pinmux { 1431 pins = "gpio38", "gpio39", 1432 "gpio40", "gpio41"; 1433 function = "gpio"; 1434 }; 1435 1436 pinconf-cts { 1437 /* 1438 * Configure a pull-down on CTS to match the pull of 1439 * the Bluetooth module. 1440 */ 1441 pins = "gpio38"; 1442 bias-pull-down; 1443 }; 1444 1445 pinconf-rts { 1446 /* 1447 * Configure pull-down on RTS. As RTS is active low 1448 * signal, pull it low to indicate the BT SoC that it 1449 * can wakeup the system anytime from suspend state by 1450 * pulling RX low (by sending wakeup bytes). 1451 */ 1452 pins = "gpio39"; 1453 bias-pull-down; 1454 }; 1455 1456 pinconf-tx { 1457 /* 1458 * Configure pull-up on TX when it isn't actively driven 1459 * to prevent BT SoC from receiving garbage during sleep. 1460 */ 1461 pins = "gpio40"; 1462 bias-pull-up; 1463 }; 1464 1465 pinconf-rx { 1466 /* 1467 * Configure a pull-up on RX. This is needed to avoid 1468 * garbage data when the TX pin of the Bluetooth module 1469 * is floating which may cause spurious wakeups. 1470 */ 1471 pins = "gpio41"; 1472 bias-pull-up; 1473 }; 1474 }; 1475 1476 /* Named trackpad_int_1v8_odl on earlier revision schematics */ 1477 trackpad_int_1v8_odl: 1478 tp_int_odl: tp-int-odl { 1479 pinmux { 1480 pins = "gpio0"; 1481 function = "gpio"; 1482 }; 1483 1484 pinconf { 1485 pins = "gpio0"; 1486 1487 /* Has external pullup */ 1488 bias-disable; 1489 }; 1490 }; 1491 1492 ts_int_l: ts-int-l { 1493 pinmux { 1494 pins = "gpio9"; 1495 function = "gpio"; 1496 }; 1497 1498 pinconf { 1499 pins = "gpio9"; 1500 bias-pull-up; 1501 }; 1502 }; 1503 1504 ts_reset_l: ts-reset-l { 1505 pinmux { 1506 pins = "gpio8"; 1507 function = "gpio"; 1508 }; 1509 1510 pinconf { 1511 pins = "gpio8"; 1512 bias-disable; 1513 drive-strength = <2>; 1514 }; 1515 }; 1516 1517 sdc1_on: sdc1-on { 1518 pinconf-clk { 1519 pins = "sdc1_clk"; 1520 bias-disable; 1521 drive-strength = <16>; 1522 }; 1523 1524 pinconf-cmd { 1525 pins = "sdc1_cmd"; 1526 bias-pull-up; 1527 drive-strength = <10>; 1528 }; 1529 1530 pinconf-data { 1531 pins = "sdc1_data"; 1532 bias-pull-up; 1533 drive-strength = <10>; 1534 }; 1535 1536 pinconf-rclk { 1537 pins = "sdc1_rclk"; 1538 bias-pull-down; 1539 }; 1540 }; 1541 1542 sdc1_off: sdc1-off { 1543 pinconf-clk { 1544 pins = "sdc1_clk"; 1545 bias-disable; 1546 drive-strength = <2>; 1547 }; 1548 1549 pinconf-cmd { 1550 pins = "sdc1_cmd"; 1551 bias-pull-up; 1552 drive-strength = <2>; 1553 }; 1554 1555 pinconf-data { 1556 pins = "sdc1_data"; 1557 bias-pull-up; 1558 drive-strength = <2>; 1559 }; 1560 1561 pinconf-rclk { 1562 pins = "sdc1_rclk"; 1563 bias-pull-down; 1564 }; 1565 }; 1566 1567 sdc2_on: sdc2-on { 1568 pinconf-clk { 1569 pins = "sdc2_clk"; 1570 bias-disable; 1571 drive-strength = <16>; 1572 }; 1573 1574 pinconf-cmd { 1575 pins = "sdc2_cmd"; 1576 bias-pull-up; 1577 drive-strength = <10>; 1578 }; 1579 1580 pinconf-data { 1581 pins = "sdc2_data"; 1582 bias-pull-up; 1583 drive-strength = <10>; 1584 }; 1585 1586 pinconf-sd-cd { 1587 pins = "gpio69"; 1588 bias-pull-up; 1589 drive-strength = <2>; 1590 }; 1591 }; 1592 1593 sdc2_off: sdc2-off { 1594 pinconf-clk { 1595 pins = "sdc2_clk"; 1596 bias-disable; 1597 drive-strength = <2>; 1598 }; 1599 1600 pinconf-cmd { 1601 pins = "sdc2_cmd"; 1602 bias-pull-up; 1603 drive-strength = <2>; 1604 }; 1605 1606 pinconf-data { 1607 pins = "sdc2_data"; 1608 bias-pull-up; 1609 drive-strength = <2>; 1610 }; 1611 1612 pinconf-sd-cd { 1613 pins = "gpio69"; 1614 bias-pull-up; 1615 drive-strength = <2>; 1616 }; 1617 }; 1618}; 1619