1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * SDM845 OnePlus 6(T) (enchilada / fajita) co 4 * 5 * Copyright (c) 2020, The Linux Foundation. A 6 */ 7 8 /dts-v1/; 9 10 #include <dt-bindings/input/linux-event-codes. 11 #include <dt-bindings/leds/common.h> 12 #include <dt-bindings/regulator/qcom,rpmh-regu 13 #include <dt-bindings/sound/qcom,q6afe.h> 14 #include <dt-bindings/sound/qcom,q6asm.h> 15 16 #include "sdm845.dtsi" 17 #include "sdm845-wcd9340.dtsi" 18 #include "pm8998.dtsi" 19 #include "pmi8998.dtsi" 20 21 /delete-node/ &rmtfs_mem; 22 23 / { 24 aliases { 25 serial0 = &uart9; 26 serial1 = &uart6; 27 }; 28 29 chosen { 30 stdout-path = "serial0:115200n 31 }; 32 33 gpio-hall-sensor { 34 compatible = "gpio-keys"; 35 label = "Hall effect sensor"; 36 37 pinctrl-0 = <&hall_sensor_defa 38 pinctrl-names = "default"; 39 40 event-hall-sensor { 41 gpios = <&tlmm 124 GPI 42 label = "Hall Effect S 43 linux,input-type = <EV 44 linux,code = <SW_LID>; 45 linux,can-disable; 46 wakeup-source; 47 }; 48 }; 49 50 gpio-keys { 51 compatible = "gpio-keys"; 52 label = "Volume keys"; 53 autorepeat; 54 55 pinctrl-names = "default"; 56 pinctrl-0 = <&volume_down_gpio 57 58 key-vol-down { 59 label = "Volume down"; 60 linux,code = <KEY_VOLU 61 gpios = <&pm8998_gpios 62 debounce-interval = <1 63 }; 64 65 key-vol-up { 66 label = "Volume up"; 67 linux,code = <KEY_VOLU 68 gpios = <&pm8998_gpios 69 debounce-interval = <1 70 }; 71 }; 72 73 reserved-memory { 74 /* 75 * The rmtfs_mem needs to be g 76 * it is otherwise possible fo 77 * rmtfs_mem region to trigger 78 */ 79 rmtfs_lower_guard: rmtfs-lower 80 no-map; 81 reg = <0 0xf5b00000 0 82 }; 83 /* 84 * The rmtfs memory region in 85 * but given the same address 86 * where the modem firmware ex 87 */ 88 rmtfs_mem: rmtfs-mem@f5b01000 89 compatible = "qcom,rmt 90 reg = <0 0xf5b01000 0 91 no-map; 92 93 qcom,client-id = <1>; 94 qcom,vmid = <QCOM_SCM_ 95 }; 96 rmtfs_upper_guard: rmtfs-upper 97 no-map; 98 reg = <0 0xf5d01000 0 99 }; 100 101 /* 102 * It seems like reserving the 103 * random crashes which are mo 104 */ 105 removed_region: removed-region 106 no-map; 107 reg = <0 0x88f00000 0 108 }; 109 110 ramoops: ramoops@ac300000 { 111 compatible = "ramoops" 112 reg = <0 0xac300000 0 113 record-size = <0x40000 114 console-size = <0x4000 115 ftrace-size = <0x40000 116 pmsg-size = <0x200000> 117 ecc-size = <16>; 118 }; 119 }; 120 121 vph_pwr: vph-pwr-regulator { 122 compatible = "regulator-fixed" 123 regulator-name = "vph_pwr"; 124 regulator-min-microvolt = <370 125 regulator-max-microvolt = <370 126 }; 127 128 /* 129 * Apparently RPMh does not provide su 130 * is always-on; model it as a fixed r 131 */ 132 vreg_s4a_1p8: pm8998-smps4 { 133 compatible = "regulator-fixed" 134 regulator-name = "vreg_s4a_1p8 135 136 regulator-min-microvolt = <180 137 regulator-max-microvolt = <180 138 139 regulator-always-on; 140 regulator-boot-on; 141 142 vin-supply = <&vph_pwr>; 143 }; 144 145 /* 146 * The touchscreen regulator seems to 147 * Model it as a fixed regulator and k 148 * don't know how this is actually wir 149 */ 150 ts_1p8_supply: ts-1p8-regulator { 151 compatible = "regulator-fixed" 152 regulator-name = "ts_1p8_suppl 153 154 regulator-min-microvolt = <180 155 regulator-max-microvolt = <180 156 157 gpio = <&tlmm 88 0>; 158 enable-active-high; 159 regulator-boot-on; 160 }; 161 }; 162 163 &adsp_pas { 164 status = "okay"; 165 firmware-name = "qcom/sdm845/oneplus6/ 166 }; 167 168 &apps_rsc { 169 regulators-0 { 170 compatible = "qcom,pm8998-rpmh 171 qcom,pmic-id = "a"; 172 173 vdd-s1-supply = <&vph_pwr>; 174 vdd-s2-supply = <&vph_pwr>; 175 vdd-s3-supply = <&vph_pwr>; 176 vdd-s4-supply = <&vph_pwr>; 177 vdd-s5-supply = <&vph_pwr>; 178 vdd-s6-supply = <&vph_pwr>; 179 vdd-s7-supply = <&vph_pwr>; 180 vdd-s8-supply = <&vph_pwr>; 181 vdd-s9-supply = <&vph_pwr>; 182 vdd-s10-supply = <&vph_pwr>; 183 vdd-s11-supply = <&vph_pwr>; 184 vdd-s12-supply = <&vph_pwr>; 185 vdd-s13-supply = <&vph_pwr>; 186 vdd-l1-l27-supply = <&vreg_s7a 187 vdd-l2-l8-l17-supply = <&vreg_ 188 vdd-l3-l11-supply = <&vreg_s7a 189 vdd-l4-l5-supply = <&vreg_s7a_ 190 vdd-l6-supply = <&vph_pwr>; 191 vdd-l7-l12-l14-l15-supply = <& 192 vdd-l9-supply = <&vreg_bob>; 193 vdd-l10-l23-l25-supply = <&vre 194 vdd-l13-l19-l21-supply = <&vre 195 vdd-l16-l28-supply = <&vreg_bo 196 vdd-l18-l22-supply = <&vreg_bo 197 vdd-l20-l24-supply = <&vreg_bo 198 vdd-l26-supply = <&vreg_s3a_1p 199 vin-lvs-1-2-supply = <&vreg_s4 200 201 vreg_s3a_1p35: smps3 { 202 regulator-min-microvol 203 regulator-max-microvol 204 }; 205 206 vreg_s5a_2p04: smps5 { 207 regulator-min-microvol 208 regulator-max-microvol 209 }; 210 211 vreg_s7a_1p025: smps7 { 212 regulator-min-microvol 213 regulator-max-microvol 214 }; 215 216 vdda_mipi_dsi0_pll: 217 vdda_qlink_lv: 218 vdda_ufs1_core: 219 vdda_usb1_ss_core: 220 vreg_l1a_0p875: ldo1 { 221 regulator-min-microvol 222 regulator-max-microvol 223 regulator-initial-mode 224 }; 225 226 vreg_l2a_1p2: ldo2 { 227 regulator-min-microvol 228 regulator-max-microvol 229 regulator-initial-mode 230 regulator-always-on; 231 }; 232 233 vreg_l5a_0p8: ldo5 { 234 regulator-min-microvol 235 regulator-max-microvol 236 regulator-initial-mode 237 }; 238 239 vreg_l7a_1p8: ldo7 { 240 regulator-min-microvol 241 regulator-max-microvol 242 regulator-initial-mode 243 }; 244 245 vdda_qusb_hs0_1p8: 246 vreg_l12a_1p8: ldo12 { 247 regulator-min-microvol 248 regulator-max-microvol 249 regulator-initial-mode 250 }; 251 252 vreg_l14a_1p88: ldo14 { 253 regulator-min-microvol 254 regulator-max-microvol 255 regulator-initial-mode 256 regulator-always-on; 257 }; 258 259 vreg_l17a_1p3: ldo17 { 260 regulator-min-microvol 261 regulator-max-microvol 262 regulator-initial-mode 263 }; 264 265 vreg_l20a_2p95: ldo20 { 266 regulator-min-microvol 267 regulator-max-microvol 268 regulator-initial-mode 269 }; 270 271 vreg_l23a_3p3: ldo23 { 272 regulator-min-microvol 273 regulator-max-microvol 274 regulator-initial-mode 275 }; 276 277 vdda_qusb_hs0_3p1: 278 vreg_l24a_3p075: ldo24 { 279 regulator-min-microvol 280 regulator-max-microvol 281 regulator-initial-mode 282 }; 283 284 vreg_l25a_3p3: ldo25 { 285 regulator-min-microvol 286 regulator-max-microvol 287 regulator-initial-mode 288 }; 289 290 vdda_mipi_dsi0_1p2: 291 vdda_ufs1_1p2: 292 vreg_l26a_1p2: ldo26 { 293 regulator-min-microvol 294 regulator-max-microvol 295 regulator-initial-mode 296 }; 297 298 vreg_l28a_3p0: ldo28 { 299 regulator-min-microvol 300 regulator-max-microvol 301 regulator-initial-mode 302 }; 303 }; 304 305 regulators-1 { 306 compatible = "qcom,pmi8998-rpm 307 qcom,pmic-id = "b"; 308 309 vdd-bob-supply = <&vph_pwr>; 310 311 vreg_bob: bob { 312 regulator-min-microvol 313 regulator-max-microvol 314 regulator-initial-mode 315 regulator-allow-bypass 316 }; 317 }; 318 319 regulators-2 { 320 compatible = "qcom,pm8005-rpmh 321 qcom,pmic-id = "c"; 322 323 vdd-s1-supply = <&vph_pwr>; 324 vdd-s2-supply = <&vph_pwr>; 325 vdd-s3-supply = <&vph_pwr>; 326 vdd-s4-supply = <&vph_pwr>; 327 328 vreg_s3c_0p6: smps3 { 329 regulator-min-microvol 330 regulator-max-microvol 331 }; 332 }; 333 }; 334 335 &cdsp_pas { 336 status = "okay"; 337 firmware-name = "qcom/sdm845/oneplus6/ 338 }; 339 340 &gcc { 341 protected-clocks = <GCC_QSPI_CORE_CLK> 342 <GCC_QSPI_CORE 343 <GCC_QSPI_CNOC 344 <GCC_LPASS_Q6_ 345 <GCC_LPASS_SWA 346 }; 347 348 &gmu { 349 status = "okay"; 350 }; 351 352 &gpu { 353 status = "okay"; 354 355 zap-shader { 356 memory-region = <&gpu_mem>; 357 firmware-name = "qcom/sdm845/o 358 }; 359 }; 360 361 &i2c10 { 362 status = "okay"; 363 clock-frequency = <100000>; 364 365 bq27441_fg: bq27441-battery@55 { 366 compatible = "ti,bq27411"; 367 status = "okay"; 368 reg = <0x55>; 369 }; 370 }; 371 372 &i2c12 { 373 status = "okay"; 374 clock-frequency = <400000>; 375 376 synaptics-rmi4-i2c@20 { 377 compatible = "syna,rmi4-i2c"; 378 reg = <0x20>; 379 #address-cells = <1>; 380 #size-cells = <0>; 381 interrupts-extended = <&tlmm 1 382 383 pinctrl-names = "default"; 384 pinctrl-0 = <&ts_default_pins> 385 386 vdd-supply = <&vreg_l28a_3p0>; 387 vio-supply = <&ts_1p8_supply>; 388 389 syna,reset-delay-ms = <200>; 390 syna,startup-delay-ms = <200>; 391 392 rmi4-f01@1 { 393 reg = <0x01>; 394 syna,nosleep-mode = <1 395 }; 396 397 rmi4_f12: rmi4-f12@12 { 398 reg = <0x12>; 399 touchscreen-x-mm = <68 400 touchscreen-y-mm = <14 401 syna,sensor-type = <1> 402 syna,rezero-wait-ms = 403 }; 404 }; 405 }; 406 407 &ipa { 408 qcom,gsi-loader = "self"; 409 memory-region = <&ipa_fw_mem>; 410 firmware-name = "qcom/sdm845/oneplus6/ 411 status = "okay"; 412 }; 413 414 &mdss { 415 status = "okay"; 416 }; 417 418 &mdss_dsi0 { 419 status = "okay"; 420 vdda-supply = <&vdda_mipi_dsi0_1p2>; 421 422 /* 423 * Both devices use different panels b 424 * are common. Compatible line is decl 425 */ 426 display_panel: panel@0 { 427 status = "disabled"; 428 429 reg = <0>; 430 431 vddio-supply = <&vreg_l14a_1p8 432 433 reset-gpios = <&tlmm 6 GPIO_AC 434 435 pinctrl-names = "default"; 436 pinctrl-0 = <&panel_reset_pins 437 438 port { 439 panel_in: endpoint { 440 remote-endpoin 441 }; 442 }; 443 }; 444 }; 445 446 &mdss_dsi0_out { 447 remote-endpoint = <&panel_in>; 448 data-lanes = <0 1 2 3>; 449 }; 450 451 &mdss_dsi0_phy { 452 status = "okay"; 453 vdds-supply = <&vdda_mipi_dsi0_pll>; 454 }; 455 456 /* Modem/wifi */ 457 &mss_pil { 458 status = "okay"; 459 firmware-name = "qcom/sdm845/oneplus6/ 460 }; 461 462 &pm8998_gpios { 463 volume_down_gpio: pm8998-gpio5-state { 464 pinconf { 465 pins = "gpio5"; 466 function = "normal"; 467 input-enable; 468 bias-pull-up; 469 qcom,drive-strength = 470 }; 471 }; 472 473 volume_up_gpio: pm8998-gpio6-state { 474 pinconf { 475 pins = "gpio6"; 476 function = "normal"; 477 input-enable; 478 bias-pull-up; 479 qcom,drive-strength = 480 }; 481 }; 482 }; 483 484 &pmi8998_charger { 485 status = "okay"; 486 }; 487 488 &pmi8998_flash { 489 status = "okay"; 490 491 led-0 { 492 function = LED_FUNCTION_FLASH; 493 color = <LED_COLOR_ID_WHITE>; 494 led-sources = <1>; 495 led-max-microamp = <500000>; 496 flash-max-microamp = <1500000> 497 flash-max-timeout-us = <128000 498 }; 499 500 led-1 { 501 function = LED_FUNCTION_FLASH; 502 color = <LED_COLOR_ID_YELLOW>; 503 led-sources = <2>; 504 led-max-microamp = <500000>; 505 flash-max-microamp = <1500000> 506 flash-max-timeout-us = <128000 507 }; 508 }; 509 510 &q6afedai { 511 dai@22 { 512 reg = <QUATERNARY_MI2S_RX>; 513 qcom,sd-lines = <1>; 514 }; 515 516 dai@23 { 517 reg = <QUATERNARY_MI2S_TX>; 518 qcom,sd-lines = <0>; 519 }; 520 }; 521 522 &q6asmdai { 523 dai@0 { 524 reg = <0>; 525 }; 526 527 dai@1 { 528 reg = <1>; 529 }; 530 531 dai@2 { 532 reg = <2>; 533 }; 534 535 dai@3 { 536 reg = <3>; 537 }; 538 539 dai@4 { 540 reg = <4>; 541 }; 542 543 dai@5 { 544 reg = <5>; 545 }; 546 }; 547 548 &qupv3_id_1 { 549 status = "okay"; 550 }; 551 552 &qupv3_id_0 { 553 status = "okay"; 554 }; 555 556 &qup_i2c10_default { 557 drive-strength = <2>; 558 bias-disable; 559 }; 560 561 &qup_i2c12_default { 562 drive-strength = <2>; 563 bias-disable; 564 }; 565 566 &qup_uart9_rx { 567 drive-strength = <2>; 568 bias-pull-up; 569 }; 570 571 &qup_uart9_tx { 572 drive-strength = <2>; 573 bias-disable; 574 }; 575 576 &slpi_pas { 577 firmware-name = "qcom/sdm845/oneplus6/ 578 status = "okay"; 579 }; 580 581 &sound { 582 compatible = "qcom,sdm845-sndcard"; 583 pinctrl-0 = <&quat_mi2s_active &quat_m 584 pinctrl-names = "default"; 585 status = "okay"; 586 587 mm1-dai-link { 588 link-name = "MultiMedia1"; 589 cpu { 590 sound-dai = <&q6asmdai 591 }; 592 }; 593 594 mm2-dai-link { 595 link-name = "MultiMedia2"; 596 cpu { 597 sound-dai = <&q6asmdai 598 }; 599 }; 600 601 mm3-dai-link { 602 link-name = "MultiMedia3"; 603 cpu { 604 sound-dai = <&q6asmdai 605 }; 606 }; 607 608 mm4-dai-link { 609 link-name = "MultiMedia4"; 610 cpu { 611 sound-dai = <&q6asmdai 612 }; 613 }; 614 615 mm5-dai-link { 616 link-name = "MultiMedia5"; 617 cpu { 618 sound-dai = <&q6asmdai 619 }; 620 }; 621 622 mm6-dai-link { 623 link-name = "MultiMedia6"; 624 cpu { 625 sound-dai = <&q6asmdai 626 }; 627 }; 628 629 speaker_playback_dai: speaker-dai-link 630 link-name = "Speaker Playback" 631 cpu { 632 sound-dai = <&q6afedai 633 }; 634 635 platform { 636 sound-dai = <&q6routin 637 }; 638 }; 639 640 slim-dai-link { 641 link-name = "SLIM Playback 1"; 642 cpu { 643 sound-dai = <&q6afedai 644 }; 645 646 platform { 647 sound-dai = <&q6routin 648 }; 649 650 codec { 651 sound-dai = <&wcd9340 652 }; 653 }; 654 655 slimcap-dai-link { 656 link-name = "SLIM Capture 1"; 657 cpu { 658 sound-dai = <&q6afedai 659 }; 660 661 platform { 662 sound-dai = <&q6routin 663 }; 664 665 codec { 666 sound-dai = <&wcd9340 667 }; 668 }; 669 670 slim2-dai-link { 671 link-name = "SLIM Playback 2"; 672 cpu { 673 sound-dai = <&q6afedai 674 }; 675 676 platform { 677 sound-dai = <&q6routin 678 }; 679 680 codec { 681 sound-dai = <&wcd9340 682 }; 683 }; 684 685 slimcap2-dai-link { 686 link-name = "SLIM Capture 2"; 687 cpu { 688 sound-dai = <&q6afedai 689 }; 690 691 platform { 692 sound-dai = <&q6routin 693 }; 694 695 codec { 696 sound-dai = <&wcd9340 697 }; 698 }; 699 700 slimcap3-dai-link { 701 link-name = "SLIM Capture 3"; 702 cpu { 703 sound-dai = <&q6afedai 704 }; 705 706 platform { 707 sound-dai = <&q6routin 708 }; 709 710 codec { 711 sound-dai = <&wcd9340 712 }; 713 }; 714 }; 715 716 &uart6 { 717 status = "okay"; 718 719 pinctrl-0 = <&qup_uart6_4pin>; 720 721 bluetooth { 722 compatible = "qcom,wcn3990-bt" 723 724 /* 725 * This path is relative to th 726 * subdir under lib/firmware. 727 */ 728 firmware-name = "oneplus6/crnv 729 730 vddio-supply = <&vreg_s4a_1p8> 731 vddxo-supply = <&vreg_l7a_1p8> 732 vddrf-supply = <&vreg_l17a_1p3 733 vddch0-supply = <&vreg_l25a_3p 734 max-speed = <3200000>; 735 }; 736 }; 737 738 &uart9 { 739 label = "LS-UART1"; 740 status = "okay"; 741 }; 742 743 &ufs_mem_hc { 744 status = "okay"; 745 746 reset-gpios = <&tlmm 150 GPIO_ACTIVE_L 747 748 vcc-supply = <&vreg_l20a_2p95>; 749 vcc-max-microamp = <600000>; 750 }; 751 752 &ufs_mem_phy { 753 status = "okay"; 754 755 vdda-phy-supply = <&vdda_ufs1_core>; 756 vdda-pll-supply = <&vdda_ufs1_1p2>; 757 }; 758 759 &usb_1 { 760 status = "okay"; 761 762 /* 763 * disable USB3 clock requirement as t 764 * USB2. 765 */ 766 qcom,select-utmi-as-pipe-clk; 767 }; 768 769 &usb_1_dwc3 { 770 /* 771 * We don't have the capability to swi 772 */ 773 dr_mode = "peripheral"; 774 775 /* fastest mode for USB 2 */ 776 maximum-speed = "high-speed"; 777 778 /* Remove USB3 phy as it's unused on t 779 phys = <&usb_1_hsphy>; 780 phy-names = "usb2-phy"; 781 }; 782 783 &usb_1_hsphy { 784 status = "okay"; 785 786 vdd-supply = <&vdda_usb1_ss_core>; 787 vdda-pll-supply = <&vdda_qusb_hs0_1p8> 788 vdda-phy-dpdm-supply = <&vdda_qusb_hs0 789 790 qcom,imp-res-offset-value = <8>; 791 qcom,hstx-trim-value = <QUSB2_V2_HSTX_ 792 qcom,preemphasis-level = <QUSB2_V2_PRE 793 qcom,preemphasis-width = <QUSB2_V2_PRE 794 }; 795 796 &tlmm { 797 gpio-reserved-ranges = <0 4>, <81 4>; 798 799 hall_sensor_default: hall-sensor-defau 800 pins = "gpio124"; 801 function = "gpio"; 802 drive-strength = <2>; 803 bias-disable; 804 }; 805 806 tri_state_key_default: tri-state-key-d 807 pins = "gpio40", "gpio42", "gp 808 function = "gpio"; 809 drive-strength = <2>; 810 bias-disable; 811 }; 812 813 ts_default_pins: ts-int-state { 814 pins = "gpio99", "gpio125"; 815 function = "gpio"; 816 drive-strength = <16>; 817 bias-pull-up; 818 }; 819 820 panel_reset_pins: panel-reset-state { 821 pins = "gpio6", "gpio25", "gpi 822 function = "gpio"; 823 drive-strength = <8>; 824 bias-disable; 825 }; 826 827 panel_te_pin: panel-te-state { 828 pins = "gpio10"; 829 function = "mdp_vsync"; 830 drive-strength = <2>; 831 bias-disable; 832 }; 833 834 panel_esd_pin: panel-esd-state { 835 pins = "gpio30"; 836 function = "gpio"; 837 drive-strength = <2>; 838 bias-pull-down; 839 }; 840 841 speaker_default: speaker-default-state 842 pins = "gpio69"; 843 function = "gpio"; 844 drive-strength = <16>; 845 bias-pull-up; 846 output-high; 847 }; 848 }; 849 850 &venus { 851 status = "okay"; 852 firmware-name = "qcom/sdm845/oneplus6/ 853 }; 854 855 &wcd9340 { 856 pinctrl-0 = <&wcd_intr_default>; 857 pinctrl-names = "default"; 858 reset-gpios = <&tlmm 64 GPIO_ACTIVE_HI 859 vdd-buck-supply = <&vreg_s4a_1p8>; 860 vdd-buck-sido-supply = <&vreg_s4a_1p8> 861 vdd-tx-supply = <&vreg_s4a_1p8>; 862 vdd-rx-supply = <&vreg_s4a_1p8>; 863 vdd-io-supply = <&vreg_s4a_1p8>; 864 }; 865 866 &wifi { 867 status = "okay"; 868 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8> 869 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 870 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 871 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; 872 vdd-3.3-ch1-supply = <&vreg_l23a_3p3>; 873 874 qcom,snoc-host-cap-8bit-quirk; 875 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.