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