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