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 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/ &gpu_zap_shader; 45/delete-node/ &hyp_mem; 46/delete-node/ &ipa_fw_mem; 47/delete-node/ &xbl_mem; 48/delete-node/ &aop_mem; 49/delete-node/ &sec_apps_mem; 50/delete-node/ &tz_mem; 51 52/* Increase the size from 2MB to 8MB */ 53&rmtfs_mem { 54 reg = <0x0 0x94600000 0x0 0x800000>; 55}; 56 57/ { 58 reserved-memory { 59 atf_mem: memory@80b00000 { 60 reg = <0x0 0x80b00000 0x0 0x100000>; 61 no-map; 62 }; 63 64 mpss_mem: memory@86000000 { 65 reg = <0x0 0x86000000 0x0 0x2000000>; 66 no-map; 67 }; 68 69 venus_mem: memory@8f600000 { 70 reg = <0 0x8f600000 0 0x500000>; 71 no-map; 72 }; 73 74 wlan_mem: memory@94100000 { 75 reg = <0x0 0x94100000 0x0 0x200000>; 76 no-map; 77 }; 78 79 mba_mem: memory@94400000 { 80 reg = <0x0 0x94400000 0x0 0x200000>; 81 no-map; 82 }; 83 84 mdata_mem: mpss-metadata { 85 alloc-ranges = <0x0 0xa0000000 0x0 0x20000000>; 86 size = <0x0 0x4000>; 87 no-map; 88 }; 89 }; 90 91 aliases { 92 bluetooth0 = &bluetooth; 93 hsuart0 = &uart3; 94 serial0 = &uart8; 95 wifi0 = &wifi; 96 }; 97 98 chosen { 99 stdout-path = "serial0:115200n8"; 100 }; 101 102 /* FIXED REGULATORS - parents above children */ 103 104 /* This is the top level supply and variable voltage */ 105 ppvar_sys: ppvar-sys-regulator { 106 compatible = "regulator-fixed"; 107 regulator-name = "ppvar_sys"; 108 regulator-always-on; 109 regulator-boot-on; 110 }; 111 112 /* This divides ppvar_sys by 2, so voltage is variable */ 113 src_vph_pwr: src-vph-pwr-regulator { 114 compatible = "regulator-fixed"; 115 regulator-name = "src_vph_pwr"; 116 117 /* EC turns on with switchcap_on; always on for AP */ 118 regulator-always-on; 119 regulator-boot-on; 120 121 vin-supply = <&ppvar_sys>; 122 }; 123 124 pp5000_a: pp5000-a-regulator { 125 compatible = "regulator-fixed"; 126 regulator-name = "pp5000_a"; 127 128 /* EC turns on with en_pp5000_a; always on for AP */ 129 regulator-always-on; 130 regulator-boot-on; 131 regulator-min-microvolt = <5000000>; 132 regulator-max-microvolt = <5000000>; 133 134 vin-supply = <&ppvar_sys>; 135 }; 136 137 pp3300_a: pp3300-a-regulator { 138 compatible = "regulator-fixed"; 139 regulator-name = "pp3300_a"; 140 141 /* EC turns on with en_pp3300_a; always on for AP */ 142 regulator-always-on; 143 regulator-boot-on; 144 regulator-min-microvolt = <3300000>; 145 regulator-max-microvolt = <3300000>; 146 147 /* 148 * Actually should be pp3300 but that's practically an alias for 149 * pp3300_a so we use pp3300's vin-supply here to avoid one more 150 * node. 151 */ 152 vin-supply = <&ppvar_sys>; 153 }; 154 155 pp1800_ec: 156 pp1800_sensors: 157 pp1800_ldo: pp1800-ldo-regulator { 158 compatible = "regulator-fixed"; 159 regulator-name = "pp1800_ldo"; 160 161 /* EC turns on with hibernate_l; always on for AP */ 162 regulator-always-on; 163 regulator-boot-on; 164 regulator-min-microvolt = <1800000>; 165 regulator-max-microvolt = <1800000>; 166 167 /* 168 * Actually should be pp1800_h1 but we don't have any need to 169 * model that so we use the parent of pp1800_h1. 170 */ 171 vin-supply = <&pp3300_a>; 172 }; 173 174 pp1800_uf_cam: pp1800-uf-cam-regulator { 175 compatible = "regulator-fixed"; 176 regulator-name = "pp1800_uf_cam"; 177 status = "disabled"; 178 179 regulator-min-microvolt = <1800000>; 180 regulator-max-microvolt = <1800000>; 181 182 gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>; 183 enable-active-high; 184 pinctrl-names = "default"; 185 pinctrl-0 = <&uf_cam_en>; 186 187 vin-supply = <&pp1800_ldo>; 188 regulator-enable-ramp-delay = <1000>; 189 }; 190 191 pp1800_wf_cam: pp1800-wf-cam-regulator { 192 compatible = "regulator-fixed"; 193 regulator-name = "pp1800_wf_cam"; 194 status = "disabled"; 195 196 regulator-min-microvolt = <1800000>; 197 regulator-max-microvolt = <1800000>; 198 199 gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>; 200 enable-active-high; 201 pinctrl-names = "default"; 202 pinctrl-0 = <&wf_cam_en>; 203 204 vin-supply = <&pp1800_ldo>; 205 regulator-enable-ramp-delay = <1000>; 206 }; 207 208 pp2800_uf_cam: pp2800-uf-cam-regulator { 209 compatible = "regulator-fixed"; 210 regulator-name = "pp2800_uf_cam"; 211 status = "disabled"; 212 213 regulator-min-microvolt = <2850000>; 214 regulator-max-microvolt = <2850000>; 215 216 gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>; 217 enable-active-high; 218 /* 219 * The pinconf can only be referenced once so we put it on the 220 * first regulator and comment it out here. 221 * pinctrl-names = "default"; 222 * pinctrl-0 = <&uf_cam_en>; 223 */ 224 225 vin-supply = <&pp3300_a>; 226 }; 227 228 pp2800_vcm_wf_cam: 229 pp2800_wf_cam: pp2800-wf-cam-regulator { 230 compatible = "regulator-fixed"; 231 regulator-name = "pp2800_wf_cam"; 232 status = "disabled"; 233 234 regulator-min-microvolt = <2850000>; 235 regulator-max-microvolt = <2850000>; 236 237 gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>; 238 enable-active-high; 239 /* 240 * The pinconf can only be referenced once so we put it on the 241 * first regulator and comment it out here. 242 * pinctrl-names = "default"; 243 * pinctrl-0 = <&wf_cam_en>; 244 */ 245 246 vin-supply = <&pp3300_a>; 247 }; 248 249 pp3300_audio: 250 pp3300_codec: pp3300-codec-regulator { 251 compatible = "regulator-fixed"; 252 regulator-name = "pp3300_codec"; 253 254 regulator-min-microvolt = <3300000>; 255 regulator-max-microvolt = <3300000>; 256 257 gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>; 258 enable-active-high; 259 pinctrl-names = "default"; 260 pinctrl-0 = <&en_pp3300_codec>; 261 262 vin-supply = <&pp3300_a>; 263 }; 264 265 pp3300_dx_edp: 266 pp3300_ts: pp3300-dx-edp-regulator { 267 compatible = "regulator-fixed"; 268 regulator-name = "pp3300_dx_edp"; 269 270 regulator-min-microvolt = <3300000>; 271 regulator-max-microvolt = <3300000>; 272 273 gpio = <&tlmm 30 GPIO_ACTIVE_HIGH>; 274 enable-active-high; 275 pinctrl-names = "default"; 276 pinctrl-0 = <&en_pp3300_dx_edp>; 277 278 vin-supply = <&pp3300_a>; 279 }; 280 281 pp3300_fp_tp: pp3300-fp-tp-regulator { 282 compatible = "regulator-fixed"; 283 regulator-name = "pp3300_fp_tp"; 284 285 regulator-min-microvolt = <3300000>; 286 regulator-max-microvolt = <3300000>; 287 288 /* AP turns on with PP1800_VIO_OUT; always on for AP */ 289 regulator-always-on; 290 regulator-boot-on; 291 292 vin-supply = <&pp3300_a>; 293 }; 294 295 pp3300_hub: pp3300-hub-regulator { 296 compatible = "regulator-fixed"; 297 regulator-name = "pp3300_hub"; 298 299 regulator-min-microvolt = <3300000>; 300 regulator-max-microvolt = <3300000>; 301 302 gpio = <&tlmm 84 GPIO_ACTIVE_HIGH>; 303 enable-active-high; 304 pinctrl-names = "default"; 305 pinctrl-0 = <&en_pp3300_hub>; 306 307 /* The BIOS leaves this regulator on */ 308 regulator-boot-on; 309 310 vin-supply = <&pp3300_a>; 311 }; 312 313 /* BOARD-SPECIFIC TOP LEVEL NODES */ 314 315 backlight: backlight { 316 compatible = "pwm-backlight"; 317 318 /* The panels don't seem to like anything below ~ 5% */ 319 brightness-levels = < 320 196 256 324 400 484 576 676 784 900 1024 1156 1296 321 1444 1600 1764 1936 2116 2304 2500 2704 2916 3136 322 3364 3600 3844 4096 323 >; 324 num-interpolated-steps = <64>; 325 default-brightness-level = <951>; 326 327 pwms = <&cros_ec_pwm 1>; 328 enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; 329 power-supply = <&ppvar_sys>; 330 pinctrl-names = "default"; 331 pinctrl-0 = <&ap_edp_bklten>; 332 }; 333 334 gpio_keys: gpio-keys { 335 compatible = "gpio-keys"; 336 status = "disabled"; 337 pinctrl-names = "default"; 338 pinctrl-0 = <&pen_pdct_l>; 339 340 pen_insert: switch-pen-insert { 341 label = "Pen Insert"; 342 343 /* Insert = low, eject = high */ 344 gpios = <&tlmm 52 GPIO_ACTIVE_LOW>; 345 linux,code = <SW_PEN_INSERTED>; 346 linux,input-type = <EV_SW>; 347 wakeup-event-action = <EV_ACT_DEASSERTED>; 348 wakeup-source; 349 }; 350 }; 351 352 max98360a: audio-codec-0 { 353 compatible = "maxim,max98360a"; 354 pinctrl-names = "default"; 355 pinctrl-0 = <&_en>; 356 sdmode-gpios = <&tlmm 23 GPIO_ACTIVE_HIGH>; 357 #sound-dai-cells = <0>; 358 }; 359 360 pwmleds: pwmleds { 361 compatible = "pwm-leds"; 362 status = "disabled"; 363 364 keyboard_backlight: led-0 { 365 label = "cros_ec::kbd_backlight"; 366 function = LED_FUNCTION_KBD_BACKLIGHT; 367 pwms = <&cros_ec_pwm 0>; 368 max-brightness = <1023>; 369 }; 370 }; 371 372 sound: sound { 373 compatible = "google,sc7180-trogdor"; 374 375 audio-routing = 376 "Headphone Jack", "HPOL", 377 "Headphone Jack", "HPOR"; 378 379 #address-cells = <1>; 380 #size-cells = <0>; 381 382 dai-link@0 { 383 link-name = "MultiMedia0"; 384 reg = <MI2S_PRIMARY>; 385 cpu { 386 sound-dai = <&lpass_cpu MI2S_PRIMARY>; 387 }; 388 389 sound_multimedia0_codec: codec { 390 sound-dai = <&alc5682 0 /* aif1 */>; 391 }; 392 }; 393 394 dai-link@1 { 395 link-name = "MultiMedia1"; 396 reg = <MI2S_SECONDARY>; 397 cpu { 398 sound-dai = <&lpass_cpu MI2S_SECONDARY>; 399 }; 400 401 sound_multimedia1_codec: codec { 402 sound-dai = <&max98360a>; 403 }; 404 }; 405 406 dai-link@5 { 407 link-name = "MultiMedia2"; 408 reg = <LPASS_DP_RX>; 409 cpu { 410 sound-dai = <&lpass_cpu LPASS_DP_RX>; 411 }; 412 413 codec { 414 sound-dai = <&mdss_dp>; 415 }; 416 }; 417 }; 418}; 419 420&qfprom { 421 vcc-supply = <&pp1800_l11a>; 422}; 423 424&qspi { 425 status = "okay"; 426 pinctrl-names = "default", "sleep"; 427 pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data0>, <&qspi_data1>; 428 pinctrl-1 = <&qspi_sleep>; 429 430 flash@0 { 431 compatible = "jedec,spi-nor"; 432 reg = <0>; 433 434 spi-max-frequency = <37500000>; 435 spi-tx-bus-width = <2>; 436 spi-rx-bus-width = <2>; 437 }; 438}; 439 440&apps_rsc { 441 regulators-0 { 442 compatible = "qcom,pm6150-rpmh-regulators"; 443 qcom,pmic-id = "a"; 444 445 vddpx_1: 446 vdd2: 447 pp1125_s1a: smps1 { 448 regulator-min-microvolt = <1128000>; 449 regulator-max-microvolt = <1128000>; 450 }; 451 452 vdd_qlink_lv: 453 vdd_qlink_lv_ck: 454 vdd_qusb_hs0_core: 455 vdd_ufs1_core: 456 vdda_mipi_csi0_0p9: 457 vdda_mipi_csi1_0p9: 458 vdda_mipi_csi2_0p9: 459 vdda_mipi_csi3_0p9: 460 vdda_mipi_dsi0_pll: 461 vdda_pll_cc_ebi01: 462 vdda_qrefs_0p9: 463 vdda_usb_ss_dp_core: 464 pp900_l4a: ldo4 { 465 regulator-min-microvolt = <824000>; 466 regulator-max-microvolt = <928000>; 467 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 468 }; 469 470 vdd_cx_wlan: 471 pp800_l9a: ldo9 { 472 regulator-min-microvolt = <488000>; 473 regulator-max-microvolt = <800000>; 474 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 475 }; 476 477 vdd1: 478 vddpx_3: 479 vddpx_7: 480 vio_in: 481 pp1800_l10a: ldo10 { 482 regulator-min-microvolt = <1800000>; 483 regulator-max-microvolt = <1800000>; 484 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 485 }; 486 487 vdd_qfprom: 488 vdda_apc1_cs_1p8: 489 vdda_qrefs_1p8: 490 vdda_qusb_hs0_1p8: 491 vddpx_11: 492 vreg_bb_clk: 493 pp1800_l11a: ldo11 { 494 regulator-min-microvolt = <1800000>; 495 regulator-max-microvolt = <1800000>; 496 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 497 }; 498 499 mcp_vccq: 500 pp1800_l12a_r: ldo12 { 501 regulator-min-microvolt = <1800000>; 502 regulator-max-microvolt = <1800000>; 503 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 504 }; 505 506 /* 507 * On trogdor this needs to match l10a since we use it to 508 * give power to things like SPI flash which communicate back 509 * on lines powered by l10a. Thus we force to 1.8V. 510 */ 511 pp1800_l13a: ldo13 { 512 regulator-min-microvolt = <1800000>; 513 regulator-max-microvolt = <1800000>; 514 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 515 regulator-always-on; 516 regulator-boot-on; 517 }; 518 519 pp1800_prox: 520 pp1800_l14a: ldo14 { 521 regulator-min-microvolt = <1800000>; 522 regulator-max-microvolt = <1800000>; 523 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 524 }; 525 526 pp1800_alc5682: 527 pp1800_l15a: ldo15 { 528 regulator-min-microvolt = <1800000>; 529 regulator-max-microvolt = <1800000>; 530 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 531 }; 532 533 vdda_qusb_hs0_3p1: 534 vdd_pdphy: 535 pp3100_l17a: ldo17 { 536 regulator-min-microvolt = <2920000>; 537 regulator-max-microvolt = <3232000>; 538 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 539 }; 540 541 pp1800_pen: 542 pp1800_l18a: ldo18 { 543 regulator-min-microvolt = <1800000>; 544 regulator-max-microvolt = <1800000>; 545 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 546 }; 547 548 mcp_vcc: 549 pp2850_l19a: ldo19 { 550 regulator-min-microvolt = <2960000>; 551 regulator-max-microvolt = <2960000>; 552 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 553 }; 554 }; 555 556 regulators-1 { 557 compatible = "qcom,pm6150l-rpmh-regulators"; 558 qcom,pmic-id = "c"; 559 560 pp1300_s8c: smps8 { 561 regulator-min-microvolt = <1120000>; 562 regulator-max-microvolt = <1408000>; 563 }; 564 565 pp1800_l1c: ldo1 { 566 regulator-min-microvolt = <1616000>; 567 regulator-max-microvolt = <1984000>; 568 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 569 }; 570 571 vdd_wcss_adc_dac: 572 pp1300_l2c: ldo2 { 573 regulator-min-microvolt = <1168000>; 574 regulator-max-microvolt = <1304000>; 575 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 576 }; 577 578 pp1200_brij: 579 vdd_ufs1_1p2: 580 vdda_csi0_1p25: 581 vdda_csi1_1p25: 582 vdda_csi2_1p25: 583 vdda_csi3_1p25: 584 vdda_hv_ebi0: 585 vdda_mipi_dsi0_1p2: 586 vdda_usb_ss_dp_1p2: 587 vddpx_10: 588 pp1200_l3c: ldo3 { 589 regulator-min-microvolt = <1200000>; 590 regulator-max-microvolt = <1200000>; 591 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 592 }; 593 594 vddpx_2: 595 ppvar_l6c: ldo6 { 596 regulator-min-microvolt = <1800000>; 597 regulator-max-microvolt = <2952000>; 598 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 599 }; 600 601 pp3300_l7c: ldo7 { 602 regulator-min-microvolt = <3304000>; 603 regulator-max-microvolt = <3304000>; 604 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 605 }; 606 607 pp1800_brij_vccio: 608 pp1800_edp_vpll: 609 pp1800_l8c: ldo8 { 610 regulator-min-microvolt = <1800000>; 611 regulator-max-microvolt = <1800000>; 612 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 613 }; 614 615 pp2950_l9c: ldo9 { 616 regulator-min-microvolt = <2952000>; 617 regulator-max-microvolt = <2952000>; 618 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 619 }; 620 621 pp3300_l10c: ldo10 { 622 regulator-min-microvolt = <3000000>; 623 regulator-max-microvolt = <3400000>; 624 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 625 }; 626 627 pp3300_l11c: ldo11 { 628 regulator-min-microvolt = <3000000>; 629 regulator-max-microvolt = <3400000>; 630 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 631 }; 632 633 src_vreg_bob: bob { 634 regulator-min-microvolt = <3008000>; 635 regulator-max-microvolt = <3960000>; 636 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 637 }; 638 }; 639}; 640 641ap_ec_spi: &spi6 { 642 status = "okay"; 643 cros_ec: ec@0 { 644 compatible = "google,cros-ec-spi"; 645 reg = <0>; 646 interrupt-parent = <&tlmm>; 647 interrupts = <94 IRQ_TYPE_LEVEL_LOW>; 648 pinctrl-names = "default"; 649 pinctrl-0 = <&ap_ec_int_l>; 650 spi-max-frequency = <3000000>; 651 wakeup-source; 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 qcom,local-bd-address-broken; 948 }; 949}; 950 951&uart8 { 952 status = "okay"; 953}; 954 955&usb_1 { 956 status = "okay"; 957}; 958 959&usb_1_dwc3 { 960 dr_mode = "host"; 961 #address-cells = <1>; 962 #size-cells = <0>; 963 964 /* 2.x hub on port 1 */ 965 usb_hub_2_x: hub@1 { 966 compatible = "usbbda,5411"; 967 reg = <1>; 968 vdd-supply = <&pp3300_hub>; 969 peer-hub = <&usb_hub_3_x>; 970 }; 971 972 /* 3.x hub on port 2 */ 973 usb_hub_3_x: hub@2 { 974 compatible = "usbbda,411"; 975 reg = <2>; 976 vdd-supply = <&pp3300_hub>; 977 peer-hub = <&usb_hub_2_x>; 978 }; 979}; 980 981&usb_1_hsphy { 982 status = "okay"; 983 vdd-supply = <&vdd_qusb_hs0_core>; 984 vdda-pll-supply = <&vdda_qusb_hs0_1p8>; 985 vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>; 986 qcom,imp-res-offset-value = <8>; 987 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>; 988 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>; 989 qcom,bias-ctrl-value = <0x22>; 990 qcom,charge-ctrl-value = <3>; 991 qcom,hsdisc-trim-value = <0>; 992}; 993 994&usb_1_qmpphy { 995 status = "okay"; 996 vdda-phy-supply = <&vdda_usb_ss_dp_1p2>; 997 vdda-pll-supply = <&vdda_usb_ss_dp_core>; 998}; 999 1000&venus { 1001 video-firmware { 1002 iommus = <&apps_smmu 0x0c42 0x0>; 1003 }; 1004}; 1005 1006&wifi { 1007 status = "okay"; 1008 vdd-0.8-cx-mx-supply = <&vdd_cx_wlan>; 1009 vdd-1.8-xo-supply = <&pp1800_l1c>; 1010 vdd-1.3-rfa-supply = <&pp1300_l2c>; 1011 vdd-3.3-ch0-supply = <&pp3300_l10c>; 1012 vdd-3.3-ch1-supply = <&pp3300_l11c>; 1013 1014 wifi-firmware { 1015 iommus = <&apps_smmu 0xc2 0x1>; 1016 }; 1017}; 1018 1019/* PINCTRL - additions to nodes defined in sc7180.dtsi */ 1020 1021&dp_hot_plug_det { 1022 bias-disable; 1023}; 1024 1025&pri_mi2s_active { 1026 drive-strength = <2>; 1027 bias-pull-down; 1028}; 1029 1030&pri_mi2s_mclk_active { 1031 drive-strength = <2>; 1032 bias-pull-down; 1033}; 1034 1035&qspi_cs0 { 1036 bias-disable; /* External pullup */ 1037}; 1038 1039&qspi_clk { 1040 drive-strength = <8>; 1041 bias-disable; /* Rely on Cr50 internal pulldown */ 1042}; 1043 1044&qspi_data0 { 1045 bias-disable; /* Rely on Cr50 internal pulldown */ 1046}; 1047 1048&qspi_data1 { 1049 bias-pull-down; 1050}; 1051 1052&qup_i2c2_default { 1053 drive-strength = <2>; 1054 1055 /* Has external pullup */ 1056 bias-disable; 1057}; 1058 1059&qup_i2c4_default { 1060 drive-strength = <2>; 1061 1062 /* Has external pullup */ 1063 bias-disable; 1064}; 1065 1066&qup_i2c5_default { 1067 drive-strength = <2>; 1068 1069 /* Has external pullup */ 1070 bias-disable; 1071}; 1072 1073&qup_i2c7_default { 1074 drive-strength = <2>; 1075 1076 /* Has external pullup */ 1077 bias-disable; 1078}; 1079 1080&qup_i2c9_default { 1081 drive-strength = <2>; 1082 1083 /* Has external pullup */ 1084 bias-disable; 1085}; 1086 1087&qup_spi0_spi { 1088 drive-strength = <2>; 1089 bias-disable; 1090}; 1091 1092&qup_spi0_cs_gpio { 1093 drive-strength = <2>; 1094 bias-disable; 1095}; 1096 1097&qup_spi6_spi { 1098 drive-strength = <2>; 1099 bias-disable; 1100}; 1101 1102&qup_spi6_cs_gpio { 1103 drive-strength = <2>; 1104 bias-disable; 1105}; 1106 1107&qup_spi10_spi { 1108 drive-strength = <2>; 1109 bias-disable; 1110}; 1111 1112&qup_spi10_cs_gpio { 1113 drive-strength = <2>; 1114 bias-disable; 1115}; 1116 1117&qup_uart3_cts { 1118 /* 1119 * Configure a pull-down on CTS to match the pull of 1120 * the Bluetooth module. 1121 */ 1122 bias-pull-down; 1123}; 1124 1125&qup_uart3_rts { 1126 /* We'll drive RTS, so no pull */ 1127 drive-strength = <2>; 1128 bias-disable; 1129}; 1130 1131&qup_uart3_tx { 1132 /* We'll drive TX, so no pull */ 1133 drive-strength = <2>; 1134 bias-disable; 1135}; 1136 1137&qup_uart3_rx { 1138 /* 1139 * Configure a pull-up on RX. This is needed to avoid 1140 * garbage data when the TX pin of the Bluetooth module is 1141 * in tri-state (module powered off or not driving the 1142 * signal yet). 1143 */ 1144 bias-pull-up; 1145}; 1146 1147&qup_uart8_tx { 1148 drive-strength = <2>; 1149 bias-disable; 1150}; 1151 1152&qup_uart8_rx { 1153 drive-strength = <2>; 1154 bias-pull-up; 1155}; 1156 1157&sec_mi2s_active { 1158 drive-strength = <2>; 1159 bias-pull-down; 1160}; 1161 1162/* PINCTRL - board-specific pinctrl */ 1163 1164&pm6150_gpios { 1165 status = "disabled"; /* No GPIOs are connected */ 1166}; 1167 1168&pm6150l_gpios { 1169 status = "disabled"; /* No GPIOs are consumed or configured */ 1170 gpio-line-names = "AP_SUSPEND", 1171 "", 1172 "", 1173 "", 1174 "", 1175 "", 1176 "", 1177 "", 1178 "", 1179 "", 1180 "", 1181 ""; 1182}; 1183 1184&tlmm { 1185 /* 1186 * pinctrl settings for pins that have no real owners. 1187 */ 1188 pinctrl-names = "default"; 1189 pinctrl-0 = <&bios_flash_wp_l>, <&ap_suspend_l_neuter>; 1190 1191 amp_en: amp-en-state { 1192 pins = "gpio23"; 1193 function = "gpio"; 1194 bias-pull-down; 1195 }; 1196 1197 ap_ec_int_l: ap-ec-int-l-state { 1198 pins = "gpio94"; 1199 function = "gpio"; 1200 bias-pull-up; 1201 }; 1202 1203 ap_edp_bklten: ap-edp-bklten-state { 1204 pins = "gpio12"; 1205 function = "gpio"; 1206 drive-strength = <2>; 1207 bias-disable; 1208 1209 /* Force backlight to be disabled to match state at boot. */ 1210 output-low; 1211 }; 1212 1213 ap_suspend_l_neuter: ap-suspend-l-neuter-state { 1214 pins = "gpio27"; 1215 function = "gpio"; 1216 bias-disable; 1217 }; 1218 1219 bios_flash_wp_l: bios-flash-wp-l-state { 1220 pins = "gpio66"; 1221 function = "gpio"; 1222 bias-disable; 1223 }; 1224 1225 edp_brij_en: edp-brij-en-state { 1226 pins = "gpio104"; 1227 function = "gpio"; 1228 drive-strength = <2>; 1229 bias-disable; 1230 }; 1231 1232 en_pp3300_codec: en-pp3300-codec-state { 1233 pins = "gpio83"; 1234 function = "gpio"; 1235 drive-strength = <2>; 1236 bias-disable; 1237 }; 1238 1239 en_pp3300_dx_edp: en-pp3300-dx-edp-state { 1240 pins = "gpio30"; 1241 function = "gpio"; 1242 drive-strength = <2>; 1243 bias-disable; 1244 }; 1245 1246 en_pp3300_hub: en-pp3300-hub-state { 1247 pins = "gpio84"; 1248 function = "gpio"; 1249 drive-strength = <2>; 1250 bias-disable; 1251 }; 1252 1253 fp_rst_l: fp-rst-l-state { 1254 pins = "gpio22"; 1255 function = "gpio"; 1256 bias-disable; 1257 drive-strength = <2>; 1258 }; 1259 1260 fp_to_ap_irq_l: fp-to-ap-irq-l-state { 1261 pins = "gpio4"; 1262 function = "gpio"; 1263 1264 /* Has external pullup */ 1265 bias-disable; 1266 }; 1267 1268 fpmcu_boot0: fpmcu-boot0-state { 1269 pins = "gpio10"; 1270 function = "gpio"; 1271 bias-disable; 1272 }; 1273 1274 h1_ap_int_odl: h1-ap-int-odl-state { 1275 pins = "gpio42"; 1276 function = "gpio"; 1277 bias-pull-up; 1278 }; 1279 1280 hp_irq: hp-irq-state { 1281 pins = "gpio28"; 1282 function = "gpio"; 1283 bias-pull-up; 1284 }; 1285 1286 pen_irq_l: pen-irq-l-state { 1287 pins = "gpio21"; 1288 function = "gpio"; 1289 1290 /* Has external pullup */ 1291 bias-disable; 1292 }; 1293 1294 pen_pdct_l: pen-pdct-l-state-state { 1295 pins = "gpio52"; 1296 function = "gpio"; 1297 1298 /* Has external pullup */ 1299 bias-disable; 1300 }; 1301 1302 pen_rst_odl: pen-rst-odl-state { 1303 pins = "gpio18"; 1304 function = "gpio"; 1305 bias-disable; 1306 drive-strength = <2>; 1307 1308 /* 1309 * The pen driver doesn't currently support 1310 * driving this reset line. By specifying 1311 * output-high here we're relying on the fact 1312 * that this pin has a default pulldown at boot 1313 * (which makes sure the pen was in reset if it 1314 * was powered) and then we set it high here to 1315 * take it out of reset. Better would be if the 1316 * pen driver could control this and we could 1317 * remove "output-high" here. 1318 */ 1319 output-high; /* TODO: Remove this? */ 1320 }; 1321 1322 p_sensor_int_l: p-sensor-int-l-state { 1323 pins = "gpio24"; 1324 function = "gpio"; 1325 1326 /* Has external pullup */ 1327 bias-disable; 1328 }; 1329 1330 qspi_sleep: qspi-sleep-state { 1331 pins = "gpio63", "gpio64", "gpio65", "gpio68"; 1332 1333 /* 1334 * When we're not actively transferring we want pins as GPIOs 1335 * with output disabled so that the quad SPI IP block stops 1336 * driving them. We rely on the normal pulls configured in 1337 * the active state and don't redefine them here. Also note 1338 * that we don't need the reverse (output-enable) in the 1339 * normal mode since the "output-enable" only matters for 1340 * GPIO function. 1341 */ 1342 function = "gpio"; 1343 output-disable; 1344 }; 1345 1346 qup_uart3_sleep: qup-uart3-sleep-state { 1347 cts-pins { 1348 /* 1349 * Configure a pull-down on CTS to match the pull of 1350 * the Bluetooth module. 1351 */ 1352 pins = "gpio38"; 1353 function = "gpio"; 1354 bias-pull-down; 1355 }; 1356 1357 rts-pins { 1358 /* 1359 * Configure pull-down on RTS. As RTS is active low 1360 * signal, pull it low to indicate the BT SoC that it 1361 * can wakeup the system anytime from suspend state by 1362 * pulling RX low (by sending wakeup bytes). 1363 */ 1364 pins = "gpio39"; 1365 function = "gpio"; 1366 bias-pull-down; 1367 }; 1368 1369 tx-pins { 1370 /* 1371 * Configure pull-up on TX when it isn't actively driven 1372 * to prevent BT SoC from receiving garbage during sleep. 1373 */ 1374 pins = "gpio40"; 1375 function = "gpio"; 1376 bias-pull-up; 1377 }; 1378 1379 rx-pins { 1380 /* 1381 * Configure a pull-up on RX. This is needed to avoid 1382 * garbage data when the TX pin of the Bluetooth module 1383 * is floating which may cause spurious wakeups. 1384 */ 1385 pins = "gpio41"; 1386 function = "gpio"; 1387 bias-pull-up; 1388 }; 1389 }; 1390 1391 /* Named trackpad_int_1v8_odl on earlier revision schematics */ 1392 trackpad_int_1v8_odl: 1393 tp_int_odl: tp-int-odl-state { 1394 pins = "gpio0"; 1395 function = "gpio"; 1396 1397 /* Has external pullup */ 1398 bias-disable; 1399 }; 1400 1401 ts_int_l: ts-int-l-state { 1402 pins = "gpio9"; 1403 function = "gpio"; 1404 bias-pull-up; 1405 }; 1406 1407 ts_reset_l: ts-reset-l-state { 1408 pins = "gpio8"; 1409 function = "gpio"; 1410 bias-disable; 1411 1412 /* 1413 * The reset GPIO to the touchscreen takes almost 2ms to drop 1414 * at the default drive strength. When we bump it up to 8mA it 1415 * falls in under 500us. We want this to be fast since the Elan 1416 * datasheet (and any drivers written based on it) talk about using 1417 * a 500 us reset pulse. 1418 */ 1419 drive-strength = <8>; 1420 }; 1421 1422 sdc1_on: sdc1-on-state { 1423 clk-pins { 1424 pins = "sdc1_clk"; 1425 bias-disable; 1426 drive-strength = <16>; 1427 }; 1428 1429 cmd-pins { 1430 pins = "sdc1_cmd"; 1431 bias-pull-up; 1432 drive-strength = <16>; 1433 }; 1434 1435 data-pins { 1436 pins = "sdc1_data"; 1437 bias-pull-up; 1438 drive-strength = <16>; 1439 }; 1440 1441 rclk-pins { 1442 pins = "sdc1_rclk"; 1443 bias-pull-down; 1444 }; 1445 }; 1446 1447 sdc1_off: sdc1-off-state { 1448 clk-pins { 1449 pins = "sdc1_clk"; 1450 bias-disable; 1451 drive-strength = <2>; 1452 }; 1453 1454 cmd-pins { 1455 pins = "sdc1_cmd"; 1456 bias-pull-up; 1457 drive-strength = <2>; 1458 }; 1459 1460 data-pins { 1461 pins = "sdc1_data"; 1462 bias-pull-up; 1463 drive-strength = <2>; 1464 }; 1465 1466 rclk-pins { 1467 pins = "sdc1_rclk"; 1468 bias-pull-down; 1469 }; 1470 }; 1471 1472 sdc2_on: sdc2-on-state { 1473 clk-pins { 1474 pins = "sdc2_clk"; 1475 bias-disable; 1476 drive-strength = <16>; 1477 }; 1478 1479 cmd-pins { 1480 pins = "sdc2_cmd"; 1481 bias-pull-up; 1482 drive-strength = <10>; 1483 }; 1484 1485 data-pins { 1486 pins = "sdc2_data"; 1487 bias-pull-up; 1488 drive-strength = <10>; 1489 }; 1490 1491 sd-cd-pins { 1492 pins = "gpio69"; 1493 function = "gpio"; 1494 bias-pull-up; 1495 drive-strength = <2>; 1496 }; 1497 }; 1498 1499 sdc2_off: sdc2-off-state { 1500 clk-pins { 1501 pins = "sdc2_clk"; 1502 bias-disable; 1503 drive-strength = <2>; 1504 }; 1505 1506 cmd-pins { 1507 pins = "sdc2_cmd"; 1508 bias-pull-up; 1509 drive-strength = <2>; 1510 }; 1511 1512 data-pins { 1513 pins = "sdc2_data"; 1514 bias-pull-up; 1515 drive-strength = <2>; 1516 }; 1517 1518 sd-cd-pins { 1519 pins = "gpio69"; 1520 function = "gpio"; 1521 bias-pull-up; 1522 drive-strength = <2>; 1523 }; 1524 }; 1525 1526 uf_cam_en: uf-cam-en-state { 1527 pins = "gpio6"; 1528 function = "gpio"; 1529 drive-strength = <2>; 1530 1531 /* External pull down */ 1532 bias-disable; 1533 }; 1534 1535 wf_cam_en: wf-cam-en-state { 1536 pins = "gpio7"; 1537 function = "gpio"; 1538 drive-strength = <2>; 1539 1540 /* External pull down */ 1541 bias-disable; 1542 }; 1543}; 1544