1// SPDX-License-Identifier: GPL-2.0 2 3/dts-v1/; 4 5#include <dt-bindings/leds/common.h> 6#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 7#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 8#include <dt-bindings/sound/qcom,q6afe.h> 9#include <dt-bindings/sound/qcom,q6asm.h> 10#include "sdm845.dtsi" 11#include "sdm845-wcd9340.dtsi" 12#include "pm8998.dtsi" 13#include "pmi8998.dtsi" 14 15/* 16 * Delete following upstream (sdm845.dtsi) reserved 17 * memory mappings which are different in this device. 18 */ 19/delete-node/ &tz_mem; 20/delete-node/ &adsp_mem; 21/delete-node/ &wlan_msa_mem; 22/delete-node/ &mpss_region; 23/delete-node/ &venus_mem; 24/delete-node/ &cdsp_mem; 25/delete-node/ &mba_region; 26/delete-node/ &slpi_mem; 27/delete-node/ &spss_mem; 28/delete-node/ &rmtfs_mem; 29 30/ { 31 chassis-type = "handset"; 32 33 /* required for bootloader to select correct board */ 34 qcom,board-id = <69 0>; 35 qcom,msm-id = <321 0x20001>; 36 37 aliases { 38 serial1 = &uart6; 39 }; 40 41 gpio-keys { 42 compatible = "gpio-keys"; 43 autorepeat; 44 45 pinctrl-names = "default"; 46 pinctrl-0 = <&vol_up_pin_a>; 47 48 key-vol-up { 49 label = "Volume Up"; 50 linux,code = <KEY_VOLUMEUP>; 51 gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>; 52 }; 53 }; 54 55 /* Reserved memory changes from downstream */ 56 reserved-memory { 57 tz_mem: memory@86200000 { 58 reg = <0 0x86200000 0 0x4900000>; 59 no-map; 60 }; 61 62 adsp_mem: memory@8c500000 { 63 reg = <0 0x8c500000 0 0x1e00000>; 64 no-map; 65 }; 66 67 wlan_msa_mem: memory@8e300000 { 68 reg = <0 0x8e300000 0 0x100000>; 69 no-map; 70 }; 71 72 mpss_region: memory@8e400000 { 73 reg = <0 0x8e400000 0 0x7800000>; 74 no-map; 75 }; 76 77 venus_mem: memory@95c00000 { 78 reg = <0 0x95c00000 0 0x500000>; 79 no-map; 80 }; 81 82 cdsp_mem: memory@96100000 { 83 reg = <0 0x96100000 0 0x800000>; 84 no-map; 85 }; 86 87 mba_region: memory@96900000 { 88 reg = <0 0x96900000 0 0x200000>; 89 no-map; 90 }; 91 92 slpi_mem: memory@96b00000 { 93 reg = <0 0x96b00000 0 0x1400000>; 94 no-map; 95 }; 96 97 spss_mem: memory@97f00000 { 98 reg = <0 0x97f00000 0 0x100000>; 99 no-map; 100 }; 101 102 /* Cont splash region set up by the bootloader */ 103 cont_splash_mem: framebuffer@9d400000 { 104 reg = <0 0x9d400000 0 0x2400000>; 105 no-map; 106 }; 107 108 rmtfs_mem: memory@f6301000 { 109 compatible = "qcom,rmtfs-mem"; 110 reg = <0 0xf6301000 0 0x200000>; 111 no-map; 112 113 qcom,client-id = <1>; 114 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>; 115 }; 116 }; 117 118 battery: battery { 119 compatible = "simple-battery"; 120 121 charge-full-design-microamp-hours = <4000000>; 122 voltage-min-design-microvolt = <3400000>; 123 voltage-max-design-microvolt = <4400000>; 124 }; 125 126 vreg_s4a_1p8: vreg-s4a-1p8 { 127 compatible = "regulator-fixed"; 128 regulator-name = "vreg_s4a_1p8"; 129 130 regulator-min-microvolt = <1800000>; 131 regulator-max-microvolt = <1800000>; 132 regulator-always-on; 133 }; 134}; 135 136&adsp_pas { 137 status = "okay"; 138 firmware-name = "qcom/sdm845/beryllium/adsp.mbn"; 139}; 140 141&apps_rsc { 142 regulators-0 { 143 compatible = "qcom,pm8998-rpmh-regulators"; 144 qcom,pmic-id = "a"; 145 146 vreg_l1a_0p875: ldo1 { 147 regulator-min-microvolt = <880000>; 148 regulator-max-microvolt = <880000>; 149 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 150 }; 151 152 vreg_l5a_0p8: ldo5 { 153 regulator-min-microvolt = <800000>; 154 regulator-max-microvolt = <800000>; 155 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 156 }; 157 158 vreg_l7a_1p8: ldo7 { 159 regulator-min-microvolt = <1800000>; 160 regulator-max-microvolt = <1800000>; 161 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 162 }; 163 164 vreg_l12a_1p8: ldo12 { 165 regulator-min-microvolt = <1800000>; 166 regulator-max-microvolt = <1800000>; 167 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 168 }; 169 170 vreg_l13a_2p95: ldo13 { 171 regulator-min-microvolt = <1800000>; 172 regulator-max-microvolt = <2960000>; 173 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 174 }; 175 176 vreg_l14a_1p8: ldo14 { 177 regulator-min-microvolt = <1800000>; 178 regulator-max-microvolt = <1800000>; 179 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 180 regulator-boot-on; 181 regulator-always-on; 182 }; 183 184 vreg_l17a_1p3: ldo17 { 185 regulator-min-microvolt = <1304000>; 186 regulator-max-microvolt = <1304000>; 187 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 188 }; 189 190 vreg_l20a_2p95: ldo20 { 191 regulator-min-microvolt = <2960000>; 192 regulator-max-microvolt = <2968000>; 193 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 194 }; 195 196 vreg_l21a_2p95: ldo21 { 197 regulator-min-microvolt = <2960000>; 198 regulator-max-microvolt = <2968000>; 199 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 200 }; 201 202 vreg_l23a_3p3: ldo23 { 203 regulator-min-microvolt = <3300000>; 204 regulator-max-microvolt = <3312000>; 205 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 206 }; 207 208 vreg_l24a_3p075: ldo24 { 209 regulator-min-microvolt = <3088000>; 210 regulator-max-microvolt = <3088000>; 211 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 212 }; 213 214 vreg_l25a_3p3: ldo25 { 215 regulator-min-microvolt = <3300000>; 216 regulator-max-microvolt = <3312000>; 217 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 218 }; 219 220 vreg_l26a_1p2: ldo26 { 221 regulator-min-microvolt = <1200000>; 222 regulator-max-microvolt = <1200000>; 223 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 224 regulator-boot-on; 225 }; 226 }; 227}; 228 229&cdsp_pas { 230 status = "okay"; 231 firmware-name = "qcom/sdm845/beryllium/cdsp.mbn"; 232}; 233 234&gcc { 235 protected-clocks = <GCC_QSPI_CORE_CLK>, 236 <GCC_QSPI_CORE_CLK_SRC>, 237 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>, 238 <GCC_LPASS_Q6_AXI_CLK>, 239 <GCC_LPASS_SWAY_CLK>; 240}; 241 242&gmu { 243 status = "okay"; 244}; 245 246&gpu { 247 status = "okay"; 248 249 zap-shader { 250 memory-region = <&gpu_mem>; 251 firmware-name = "qcom/sdm845/beryllium/a630_zap.mbn"; 252 }; 253}; 254 255&ibb { 256 regulator-min-microvolt = <4600000>; 257 regulator-max-microvolt = <6000000>; 258 regulator-over-current-protection; 259 regulator-pull-down; 260 regulator-soft-start; 261 qcom,discharge-resistor-kohms = <300>; 262}; 263 264&lab { 265 regulator-min-microvolt = <4600000>; 266 regulator-max-microvolt = <6000000>; 267 regulator-over-current-protection; 268 regulator-pull-down; 269 regulator-soft-start; 270}; 271 272&mdss { 273 status = "okay"; 274}; 275 276&mdss_dsi0 { 277 status = "okay"; 278 vdda-supply = <&vreg_l26a_1p2>; 279 280 display_panel: panel@0 { 281 reg = <0>; 282 vddio-supply = <&vreg_l14a_1p8>; 283 vddpos-supply = <&lab>; 284 vddneg-supply = <&ibb>; 285 286 backlight = <&pmi8998_wled>; 287 reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>; 288 289 status = "disabled"; 290 291 port { 292 panel_in_0: endpoint { 293 remote-endpoint = <&mdss_dsi0_out>; 294 }; 295 }; 296 }; 297}; 298 299&mdss_dsi0_out { 300 remote-endpoint = <&panel_in_0>; 301 data-lanes = <0 1 2 3>; 302}; 303 304&mdss_dsi0_phy { 305 status = "okay"; 306 vdds-supply = <&vreg_l1a_0p875>; 307}; 308 309&mss_pil { 310 status = "okay"; 311 firmware-name = "qcom/sdm845/beryllium/mba.mbn", "qcom/sdm845/beryllium/modem.mbn"; 312}; 313 314&ipa { 315 qcom,gsi-loader = "self"; 316 memory-region = <&ipa_fw_mem>; 317 firmware-name = "qcom/sdm845/beryllium/ipa_fws.mbn"; 318 status = "okay"; 319}; 320 321&pm8998_gpios { 322 vol_up_pin_a: vol-up-active-state { 323 pins = "gpio6"; 324 function = "normal"; 325 input-enable; 326 bias-pull-up; 327 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>; 328 }; 329}; 330 331&pmi8998_lpg { 332 status = "okay"; 333 334 led@5 { 335 reg = <5>; 336 color = <LED_COLOR_ID_WHITE>; 337 function = LED_FUNCTION_STATUS; 338 }; 339}; 340 341&pmi8998_wled { 342 status = "okay"; 343 qcom,current-boost-limit = <970>; 344 qcom,ovp-millivolt = <29600>; 345 qcom,current-limit-microamp = <20000>; 346 qcom,num-strings = <2>; 347 qcom,switching-freq = <600>; 348 qcom,external-pfet; 349 qcom,cabc; 350}; 351 352&pmi8998_charger { 353 monitored-battery = <&battery>; 354 355 status = "okay"; 356}; 357 358&pmi8998_flash { 359 status = "okay"; 360 361 led-0 { 362 function = LED_FUNCTION_FLASH; 363 color = <LED_COLOR_ID_WHITE>; 364 led-sources = <1>; 365 led-max-microamp = <500000>; 366 flash-max-microamp = <1500000>; 367 flash-max-timeout-us = <1280000>; 368 }; 369 370 led-1 { 371 function = LED_FUNCTION_FLASH; 372 color = <LED_COLOR_ID_YELLOW>; 373 led-sources = <2>; 374 led-max-microamp = <500000>; 375 flash-max-microamp = <1500000>; 376 flash-max-timeout-us = <1280000>; 377 }; 378}; 379 380&pm8998_resin { 381 linux,code = <KEY_VOLUMEDOWN>; 382 status = "okay"; 383}; 384 385/* QUAT I2S Uses 1 I2S SD Line for audio on TAS2559/60 amplifiers */ 386&q6afedai { 387 dai@22 { 388 reg = <QUATERNARY_MI2S_RX>; 389 qcom,sd-lines = <0>; 390 }; 391}; 392 393&q6asmdai { 394 dai@0 { 395 reg = <0>; 396 }; 397 398 dai@1 { 399 reg = <1>; 400 }; 401 402 dai@2 { 403 reg = <2>; 404 }; 405}; 406 407&qupv3_id_0 { 408 status = "okay"; 409}; 410 411&sdhc_2 { 412 status = "okay"; 413 414 pinctrl-names = "default"; 415 pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>; 416 417 vmmc-supply = <&vreg_l21a_2p95>; 418 vqmmc-supply = <&vreg_l13a_2p95>; 419 420 bus-width = <4>; 421 cd-gpios = <&tlmm 126 GPIO_ACTIVE_HIGH>; 422}; 423 424&sound { 425 compatible = "qcom,db845c-sndcard", "qcom,sdm845-sndcard"; 426 pinctrl-0 = <&quat_mi2s_active 427 &quat_mi2s_sd0_active>; 428 pinctrl-names = "default"; 429 model = "Xiaomi Poco F1"; 430 audio-routing = 431 "RX_BIAS", "MCLK", 432 "AMIC1", "MIC BIAS1", 433 "AMIC2", "MIC BIAS2", 434 "AMIC3", "MIC BIAS3"; 435 436 mm1-dai-link { 437 link-name = "MultiMedia1"; 438 cpu { 439 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; 440 }; 441 }; 442 443 mm2-dai-link { 444 link-name = "MultiMedia2"; 445 cpu { 446 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>; 447 }; 448 }; 449 450 mm3-dai-link { 451 link-name = "MultiMedia3"; 452 cpu { 453 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>; 454 }; 455 }; 456 457 slim-dai-link { 458 link-name = "SLIM Playback"; 459 cpu { 460 sound-dai = <&q6afedai SLIMBUS_0_RX>; 461 }; 462 463 platform { 464 sound-dai = <&q6routing>; 465 }; 466 467 codec { 468 sound-dai = <&wcd9340 0>; 469 }; 470 }; 471 472 slimcap-dai-link { 473 link-name = "SLIM Capture"; 474 cpu { 475 sound-dai = <&q6afedai SLIMBUS_0_TX>; 476 }; 477 478 platform { 479 sound-dai = <&q6routing>; 480 }; 481 482 codec { 483 sound-dai = <&wcd9340 1>; 484 }; 485 }; 486}; 487 488&tlmm { 489 gpio-reserved-ranges = <0 4>, <81 4>; 490 491 sdc2_default_state: sdc2-default-state { 492 clk-pins { 493 pins = "sdc2_clk"; 494 bias-disable; 495 drive-strength = <16>; 496 }; 497 498 cmd-pins { 499 pins = "sdc2_cmd"; 500 bias-pull-up; 501 drive-strength = <10>; 502 }; 503 504 data-pins { 505 pins = "sdc2_data"; 506 bias-pull-up; 507 drive-strength = <10>; 508 }; 509 }; 510 511 sdc2_card_det_n: sd-card-det-n-state { 512 pins = "gpio126"; 513 function = "gpio"; 514 bias-pull-up; 515 }; 516}; 517 518&uart6 { 519 status = "okay"; 520 521 pinctrl-0 = <&qup_uart6_4pin>; 522 523 bluetooth { 524 compatible = "qcom,wcn3990-bt"; 525 526 vddio-supply = <&vreg_s4a_1p8>; 527 vddxo-supply = <&vreg_l7a_1p8>; 528 vddrf-supply = <&vreg_l17a_1p3>; 529 vddch0-supply = <&vreg_l25a_3p3>; 530 max-speed = <3200000>; 531 }; 532}; 533 534&ufs_mem_hc { 535 status = "okay"; 536 537 reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>; 538 539 vcc-supply = <&vreg_l20a_2p95>; 540 vcc-max-microamp = <800000>; 541}; 542 543&ufs_mem_phy { 544 status = "okay"; 545 546 vdda-phy-supply = <&vreg_l1a_0p875>; 547 vdda-pll-supply = <&vreg_l26a_1p2>; 548}; 549 550&usb_1 { 551 status = "okay"; 552}; 553 554&usb_1_dwc3 { 555 dr_mode = "peripheral"; 556}; 557 558&usb_1_hsphy { 559 status = "okay"; 560 561 vdd-supply = <&vreg_l1a_0p875>; 562 vdda-pll-supply = <&vreg_l12a_1p8>; 563 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; 564 565 qcom,imp-res-offset-value = <8>; 566 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>; 567 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>; 568 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>; 569}; 570 571&usb_1_qmpphy { 572 status = "okay"; 573 574 vdda-phy-supply = <&vreg_l26a_1p2>; 575 vdda-pll-supply = <&vreg_l1a_0p875>; 576}; 577 578&venus { 579 status = "okay"; 580 firmware-name = "qcom/sdm845/beryllium/venus.mbn"; 581}; 582 583&wcd9340 { 584 reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>; 585 vdd-buck-supply = <&vreg_s4a_1p8>; 586 vdd-buck-sido-supply = <&vreg_s4a_1p8>; 587 vdd-tx-supply = <&vreg_s4a_1p8>; 588 vdd-rx-supply = <&vreg_s4a_1p8>; 589 vdd-io-supply = <&vreg_s4a_1p8>; 590 qcom,micbias1-microvolt = <2700000>; 591 qcom,micbias2-microvolt = <1800000>; 592 qcom,micbias3-microvolt = <2700000>; 593 qcom,micbias4-microvolt = <2700000>; 594}; 595 596&wifi { 597 status = "okay"; 598 599 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>; 600 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 601 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 602 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; 603 vdd-3.3-ch1-supply = <&vreg_l23a_3p3>; 604}; 605