1// SPDX-License-Identifier: GPL-2.0 2 3/dts-v1/; 4 5#include <dt-bindings/gpio/gpio.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 "pm8998.dtsi" 12#include "pmi8998.dtsi" 13 14/* 15 * Delete following upstream (sdm845.dtsi) reserved 16 * memory mappings which are different in this device. 17 */ 18/delete-node/ &tz_mem; 19/delete-node/ &adsp_mem; 20/delete-node/ &wlan_msa_mem; 21/delete-node/ &mpss_region; 22/delete-node/ &venus_mem; 23/delete-node/ &cdsp_mem; 24/delete-node/ &mba_region; 25/delete-node/ &slpi_mem; 26/delete-node/ &spss_mem; 27/delete-node/ &rmtfs_mem; 28 29/ { 30 model = "Xiaomi Pocophone F1"; 31 compatible = "xiaomi,beryllium", "qcom,sdm845"; 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 hsuart0 = &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 vol-up { 49 label = "Volume Up"; 50 linux,code = <KEY_VOLUMEUP>; 51 gpios = <&pm8998_gpio 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 rmtfs_mem: memory@f6301000 { 103 compatible = "qcom,rmtfs-mem"; 104 reg = <0 0xf6301000 0 0x200000>; 105 no-map; 106 107 qcom,client-id = <1>; 108 qcom,vmid = <15>; 109 }; 110 }; 111 112 vreg_s4a_1p8: vreg-s4a-1p8 { 113 compatible = "regulator-fixed"; 114 regulator-name = "vreg_s4a_1p8"; 115 116 regulator-min-microvolt = <1800000>; 117 regulator-max-microvolt = <1800000>; 118 regulator-always-on; 119 }; 120}; 121 122&adsp_pas { 123 status = "okay"; 124 firmware-name = "qcom/sdm845/adsp.mdt"; 125}; 126 127&apps_rsc { 128 pm8998-rpmh-regulators { 129 compatible = "qcom,pm8998-rpmh-regulators"; 130 qcom,pmic-id = "a"; 131 132 vreg_l1a_0p875: ldo1 { 133 regulator-min-microvolt = <880000>; 134 regulator-max-microvolt = <880000>; 135 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 136 }; 137 138 vreg_l5a_0p8: ldo5 { 139 regulator-min-microvolt = <800000>; 140 regulator-max-microvolt = <800000>; 141 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 142 }; 143 144 vreg_l7a_1p8: ldo7 { 145 regulator-min-microvolt = <1800000>; 146 regulator-max-microvolt = <1800000>; 147 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 148 }; 149 150 vreg_l12a_1p8: ldo12 { 151 regulator-min-microvolt = <1800000>; 152 regulator-max-microvolt = <1800000>; 153 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 154 }; 155 156 vreg_l13a_2p95: ldo13 { 157 regulator-min-microvolt = <1800000>; 158 regulator-max-microvolt = <2960000>; 159 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 160 }; 161 162 vreg_l14a_1p8: ldo14 { 163 regulator-min-microvolt = <1800000>; 164 regulator-max-microvolt = <1800000>; 165 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 166 regulator-boot-on; 167 regulator-always-on; 168 }; 169 170 vreg_l17a_1p3: ldo17 { 171 regulator-min-microvolt = <1304000>; 172 regulator-max-microvolt = <1304000>; 173 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 174 }; 175 176 vreg_l20a_2p95: ldo20 { 177 regulator-min-microvolt = <2960000>; 178 regulator-max-microvolt = <2968000>; 179 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 180 }; 181 182 vreg_l21a_2p95: ldo21 { 183 regulator-min-microvolt = <2960000>; 184 regulator-max-microvolt = <2968000>; 185 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 186 }; 187 188 vreg_l24a_3p075: ldo24 { 189 regulator-min-microvolt = <3088000>; 190 regulator-max-microvolt = <3088000>; 191 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 192 }; 193 194 vreg_l25a_3p3: ldo25 { 195 regulator-min-microvolt = <3300000>; 196 regulator-max-microvolt = <3312000>; 197 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 198 }; 199 200 vreg_l26a_1p2: ldo26 { 201 regulator-min-microvolt = <1200000>; 202 regulator-max-microvolt = <1200000>; 203 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 204 regulator-boot-on; 205 }; 206 }; 207}; 208 209&cdsp_pas { 210 status = "okay"; 211 firmware-name = "qcom/sdm845/cdsp.mdt"; 212}; 213 214&dsi0 { 215 status = "okay"; 216 vdda-supply = <&vreg_l26a_1p2>; 217 218 #address-cells = <1>; 219 #size-cells = <0>; 220 221 panel@0 { 222 compatible = "tianma,fhd-video"; 223 reg = <0>; 224 vddi0-supply = <&vreg_l14a_1p8>; 225 vddpos-supply = <&lab>; 226 vddneg-supply = <&ibb>; 227 228 #address-cells = <1>; 229 #size-cells = <0>; 230 231 reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>; 232 233 port { 234 tianma_nt36672a_in_0: endpoint { 235 remote-endpoint = <&dsi0_out>; 236 }; 237 }; 238 }; 239}; 240 241&dsi0_out { 242 remote-endpoint = <&tianma_nt36672a_in_0>; 243 data-lanes = <0 1 2 3>; 244}; 245 246&dsi0_phy { 247 status = "okay"; 248 vdds-supply = <&vreg_l1a_0p875>; 249}; 250 251&gcc { 252 protected-clocks = <GCC_QSPI_CORE_CLK>, 253 <GCC_QSPI_CORE_CLK_SRC>, 254 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>, 255 <GCC_LPASS_Q6_AXI_CLK>, 256 <GCC_LPASS_SWAY_CLK>; 257}; 258 259&gpu { 260 zap-shader { 261 memory-region = <&gpu_mem>; 262 firmware-name = "qcom/sdm845/a630_zap.mbn"; 263 }; 264}; 265 266&ibb { 267 regulator-min-microvolt = <4600000>; 268 regulator-max-microvolt = <6000000>; 269 regulator-over-current-protection; 270 regulator-pull-down; 271 regulator-soft-start; 272 qcom,discharge-resistor-kohms = <300>; 273}; 274 275&lab { 276 regulator-min-microvolt = <4600000>; 277 regulator-max-microvolt = <6000000>; 278 regulator-over-current-protection; 279 regulator-pull-down; 280 regulator-soft-start; 281}; 282 283&mdss { 284 status = "okay"; 285}; 286 287&mdss_mdp { 288 status = "okay"; 289}; 290 291&mss_pil { 292 status = "okay"; 293 firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mdt"; 294}; 295 296&pm8998_gpio { 297 vol_up_pin_a: vol-up-active { 298 pins = "gpio6"; 299 function = "normal"; 300 input-enable; 301 bias-pull-up; 302 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>; 303 }; 304}; 305 306&pm8998_pon { 307 resin { 308 compatible = "qcom,pm8941-resin"; 309 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>; 310 debounce = <15625>; 311 bias-pull-up; 312 linux,code = <KEY_VOLUMEDOWN>; 313 }; 314}; 315 316/* QUAT I2S Uses 1 I2S SD Line for audio on TAS2559/60 amplifiers */ 317&q6afedai { 318 qi2s@22 { 319 reg = <22>; 320 qcom,sd-lines = <0>; 321 }; 322}; 323 324&q6asmdai { 325 dai@0 { 326 reg = <0>; 327 }; 328 329 dai@1 { 330 reg = <1>; 331 }; 332 333 dai@2 { 334 reg = <2>; 335 }; 336}; 337 338&qupv3_id_0 { 339 status = "okay"; 340}; 341 342&sdhc_2 { 343 status = "okay"; 344 345 pinctrl-names = "default"; 346 pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>; 347 348 vmmc-supply = <&vreg_l21a_2p95>; 349 vqmmc-supply = <&vreg_l13a_2p95>; 350 351 bus-width = <4>; 352 cd-gpios = <&tlmm 126 GPIO_ACTIVE_HIGH>; 353}; 354 355&sound { 356 compatible = "qcom,db845c-sndcard"; 357 pinctrl-0 = <&quat_mi2s_active 358 &quat_mi2s_sd0_active>; 359 pinctrl-names = "default"; 360 model = "Xiaomi Poco F1"; 361 audio-routing = 362 "RX_BIAS", "MCLK", 363 "AMIC1", "MIC BIAS1", 364 "AMIC2", "MIC BIAS2", 365 "AMIC3", "MIC BIAS3"; 366 367 mm1-dai-link { 368 link-name = "MultiMedia1"; 369 cpu { 370 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; 371 }; 372 }; 373 374 mm2-dai-link { 375 link-name = "MultiMedia2"; 376 cpu { 377 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>; 378 }; 379 }; 380 381 mm3-dai-link { 382 link-name = "MultiMedia3"; 383 cpu { 384 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>; 385 }; 386 }; 387 388 slim-dai-link { 389 link-name = "SLIM Playback"; 390 cpu { 391 sound-dai = <&q6afedai SLIMBUS_0_RX>; 392 }; 393 394 platform { 395 sound-dai = <&q6routing>; 396 }; 397 398 codec { 399 sound-dai = <&wcd9340 0>; 400 }; 401 }; 402 403 slimcap-dai-link { 404 link-name = "SLIM Capture"; 405 cpu { 406 sound-dai = <&q6afedai SLIMBUS_0_TX>; 407 }; 408 409 platform { 410 sound-dai = <&q6routing>; 411 }; 412 413 codec { 414 sound-dai = <&wcd9340 1>; 415 }; 416 }; 417}; 418 419&tlmm { 420 gpio-reserved-ranges = <0 4>, <81 4>; 421 422 sdc2_default_state: sdc2-default { 423 clk { 424 pins = "sdc2_clk"; 425 bias-disable; 426 drive-strength = <16>; 427 }; 428 429 cmd { 430 pins = "sdc2_cmd"; 431 bias-pull-up; 432 drive-strength = <10>; 433 }; 434 435 data { 436 pins = "sdc2_data"; 437 bias-pull-up; 438 drive-strength = <10>; 439 }; 440 }; 441 442 sdc2_card_det_n: sd-card-det-n { 443 pins = "gpio126"; 444 function = "gpio"; 445 bias-pull-up; 446 }; 447 448 wcd_intr_default: wcd_intr_default { 449 pins = <54>; 450 function = "gpio"; 451 452 input-enable; 453 bias-pull-down; 454 drive-strength = <2>; 455 }; 456}; 457 458&uart6 { 459 status = "okay"; 460 461 bluetooth { 462 compatible = "qcom,wcn3990-bt"; 463 464 vddio-supply = <&vreg_s4a_1p8>; 465 vddxo-supply = <&vreg_l7a_1p8>; 466 vddrf-supply = <&vreg_l17a_1p3>; 467 vddch0-supply = <&vreg_l25a_3p3>; 468 max-speed = <3200000>; 469 }; 470}; 471 472&ufs_mem_hc { 473 status = "okay"; 474 475 reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>; 476 477 vcc-supply = <&vreg_l20a_2p95>; 478 vcc-max-microamp = <800000>; 479}; 480 481&ufs_mem_phy { 482 status = "okay"; 483 484 vdda-phy-supply = <&vreg_l1a_0p875>; 485 vdda-pll-supply = <&vreg_l26a_1p2>; 486}; 487 488&usb_1 { 489 status = "okay"; 490}; 491 492&usb_1_dwc3 { 493 dr_mode = "peripheral"; 494}; 495 496&usb_1_hsphy { 497 status = "okay"; 498 499 vdd-supply = <&vreg_l1a_0p875>; 500 vdda-pll-supply = <&vreg_l12a_1p8>; 501 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; 502 503 qcom,imp-res-offset-value = <8>; 504 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>; 505 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>; 506 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>; 507}; 508 509&usb_1_qmpphy { 510 status = "okay"; 511 512 vdda-phy-supply = <&vreg_l26a_1p2>; 513 vdda-pll-supply = <&vreg_l1a_0p875>; 514}; 515 516&wcd9340{ 517 pinctrl-0 = <&wcd_intr_default>; 518 pinctrl-names = "default"; 519 clock-names = "extclk"; 520 clocks = <&rpmhcc RPMH_LN_BB_CLK2>; 521 reset-gpios = <&tlmm 64 0>; 522 vdd-buck-supply = <&vreg_s4a_1p8>; 523 vdd-buck-sido-supply = <&vreg_s4a_1p8>; 524 vdd-tx-supply = <&vreg_s4a_1p8>; 525 vdd-rx-supply = <&vreg_s4a_1p8>; 526 vdd-io-supply = <&vreg_s4a_1p8>; 527 qcom,micbias1-microvolt = <2700000>; 528 qcom,micbias2-microvolt = <1800000>; 529 qcom,micbias3-microvolt = <2700000>; 530 qcom,micbias4-microvolt = <2700000>; 531}; 532 533&wifi { 534 status = "okay"; 535 536 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>; 537 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 538 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 539 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; 540}; 541 542/* PINCTRL - additions to nodes defined in sdm845.dtsi */ 543 544&qup_uart6_default { 545 pinmux { 546 pins = "gpio45", "gpio46", "gpio47", "gpio48"; 547 function = "qup6"; 548 }; 549 550 cts { 551 pins = "gpio45"; 552 bias-disable; 553 }; 554 555 rts-tx { 556 pins = "gpio46", "gpio47"; 557 drive-strength = <2>; 558 bias-disable; 559 }; 560 561 rx { 562 pins = "gpio48"; 563 bias-pull-up; 564 }; 565}; 566