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