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