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