1// SPDX-License-Identifier: GPL-2.0-only 2 3/dts-v1/; 4 5#include <dt-bindings/arm/qcom,ids.h> 6#include <dt-bindings/dma/qcom-gpi.h> 7#include <dt-bindings/input/linux-event-codes.h> 8#include <dt-bindings/interrupt-controller/irq.h> 9#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 10 11#include "sdm845.dtsi" 12#include "pm8998.dtsi" 13#include "pmi8998.dtsi" 14 15/delete-node/ &mpss_region; 16/delete-node/ &venus_mem; 17/delete-node/ &cdsp_mem; 18/delete-node/ &mba_region; 19/delete-node/ &slpi_mem; 20/delete-node/ &spss_mem; 21/delete-node/ &rmtfs_mem; 22 23/ { 24 chassis-type = "handset"; 25 qcom,board-id = <0x00021505 0>; 26 qcom,msm-id = <QCOM_ID_SDM845 0x20001>; 27 28 aliases { 29 serial0 = &uart9; 30 serial1 = &uart6; 31 }; 32 33 battery: battery { 34 compatible = "simple-battery"; 35 }; 36 37 chosen { 38 #address-cells = <2>; 39 #size-cells = <2>; 40 ranges; 41 42 stdout-path = "serial0:115200n8"; 43 44 /* Use display framebuffer as setup by bootloader */ 45 framebuffer0: framebuffer-0 { 46 compatible = "simple-framebuffer"; 47 memory-region = <&cont_splash_mem>; 48 49 format = "a8r8g8b8"; 50 }; 51 }; 52 53 reserved-memory { 54 cont_splash_mem: splash@9d400000 { 55 reg = <0 0x9d400000 0 0x02400000>; 56 no-map; 57 }; 58 59 mpss_region: memory@8e000000 { 60 reg = <0 0x8e000000 0 0x9800000>; 61 no-map; 62 }; 63 64 venus_mem: venus@97800000 { 65 reg = <0 0x97800000 0 0x500000>; 66 no-map; 67 }; 68 69 cdsp_mem: cdsp-mem@97D00000 { 70 reg = <0 0x97D00000 0 0x800000>; 71 no-map; 72 }; 73 74 mba_region: mba@98500000 { 75 reg = <0 0x98500000 0 0x200000>; 76 no-map; 77 }; 78 79 slpi_mem: slpi@98700000 { 80 reg = <0 0x98700000 0 0x1400000>; 81 no-map; 82 }; 83 84 spss_mem: spss@99B00000 { 85 reg = <0 0x99B00000 0 0x100000>; 86 no-map; 87 }; 88 89 rmtfs_mem: rmtfs-region@f2700000 { 90 compatible = "qcom,rmtfs-mem"; 91 reg = <0 0xf2700000 0 0x202000>; 92 qcom,use-guard-pages; 93 no-map; 94 95 qcom,client-id = <1>; 96 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>; 97 }; 98 }; 99 100 gpio-keys { 101 compatible = "gpio-keys"; 102 label = "Volume keys"; 103 autorepeat; 104 105 pinctrl-0 = <&volume_up_gpio>; 106 pinctrl-names = "default"; 107 108 key-vol-up { 109 label = "Volume Up"; 110 linux,code = <KEY_VOLUMEUP>; 111 gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>; 112 debounce-interval = <15>; 113 }; 114 }; 115 116 vph_pwr: regulator-vph-pwr { 117 compatible = "regulator-fixed"; 118 regulator-name = "vph_pwr"; 119 regulator-min-microvolt = <3700000>; 120 regulator-max-microvolt = <3700000>; 121 }; 122 123 vreg_s4a_1p8: regulator-vreg-s4a-1p8 { 124 compatible = "regulator-fixed"; 125 regulator-name = "vreg_s4a_1p8"; 126 127 regulator-min-microvolt = <1800000>; 128 regulator-max-microvolt = <1800000>; 129 regulator-always-on; 130 regulator-boot-on; 131 132 vin-supply = <&vph_pwr>; 133 }; 134}; 135 136&adsp_pas { 137 firmware-name = "qcom/sdm845/Google/blueline/adsp.mbn"; 138 139 status = "okay"; 140}; 141 142&apps_rsc { 143 regulators-0 { 144 compatible = "qcom,pm8998-rpmh-regulators"; 145 qcom,pmic-id = "a"; 146 147 vdd-s1-supply = <&vph_pwr>; 148 vdd-s2-supply = <&vph_pwr>; 149 vdd-s3-supply = <&vph_pwr>; 150 vdd-s4-supply = <&vph_pwr>; 151 vdd-s5-supply = <&vph_pwr>; 152 vdd-s6-supply = <&vph_pwr>; 153 vdd-s7-supply = <&vph_pwr>; 154 vdd-s8-supply = <&vph_pwr>; 155 vdd-s9-supply = <&vph_pwr>; 156 vdd-s10-supply = <&vph_pwr>; 157 vdd-s11-supply = <&vph_pwr>; 158 vdd-s12-supply = <&vph_pwr>; 159 vdd-s13-supply = <&vph_pwr>; 160 vdd-l1-l27-supply = <&vreg_s7a_1p025>; 161 vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>; 162 vdd-l3-l11-supply = <&vreg_s7a_1p025>; 163 vdd-l4-l5-supply = <&vreg_s7a_1p025>; 164 vdd-l6-supply = <&vph_pwr>; 165 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>; 166 vdd-l9-supply = <&vreg_bob>; 167 vdd-l10-l23-l25-supply = <&vreg_bob>; 168 vdd-l13-l19-l21-supply = <&vreg_bob>; 169 vdd-l16-l28-supply = <&vreg_bob>; 170 vdd-l18-l22-supply = <&vreg_bob>; 171 vdd-l20-l24-supply = <&vreg_bob>; 172 vdd-l26-supply = <&vreg_s3a_1p35>; 173 vin-lvs-1-2-supply = <&vreg_s4a_1p8>; 174 175 vreg_s3a_1p35: smps3 { 176 regulator-min-microvolt = <1352000>; 177 regulator-max-microvolt = <1352000>; 178 }; 179 180 vreg_s5a_2p04: smps5 { 181 regulator-min-microvolt = <1904000>; 182 regulator-max-microvolt = <2040000>; 183 }; 184 185 vreg_s7a_1p025: smps7 { 186 regulator-min-microvolt = <900000>; 187 regulator-max-microvolt = <1028000>; 188 }; 189 190 vdda_mipi_dsi0_pll: 191 vreg_l1a_0p875: ldo1 { 192 regulator-min-microvolt = <880000>; 193 regulator-max-microvolt = <880000>; 194 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 195 regulator-boot-on; 196 }; 197 198 vreg_l5a_0p8: ldo5 { 199 regulator-min-microvolt = <800000>; 200 regulator-max-microvolt = <800000>; 201 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 202 }; 203 204 vreg_l12a_1p8: ldo12 { 205 regulator-min-microvolt = <1800000>; 206 regulator-max-microvolt = <1800000>; 207 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 208 }; 209 210 vreg_l7a_1p8: ldo7 { 211 regulator-min-microvolt = <1800000>; 212 regulator-max-microvolt = <1800000>; 213 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 214 }; 215 216 vreg_l13a_2p95: ldo13 { 217 regulator-min-microvolt = <1800000>; 218 regulator-max-microvolt = <2960000>; 219 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 220 }; 221 222 vreg_l14a_1p8: ldo14 { 223 regulator-min-microvolt = <1800000>; 224 regulator-max-microvolt = <1800000>; 225 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 226 regulator-boot-on; 227 /* 228 * We can't properly bring the panel back if it gets turned off 229 * so keep it's regulators always on for now. 230 */ 231 regulator-always-on; 232 }; 233 234 vreg_l17a_1p3: ldo17 { 235 regulator-min-microvolt = <1304000>; 236 regulator-max-microvolt = <1304000>; 237 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 238 }; 239 240 vreg_l19a_3p3: ldo19 { 241 regulator-min-microvolt = <3300000>; 242 regulator-max-microvolt = <3312000>; 243 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 244 /* 245 * The touchscreen needs this to be 3.3v, which is apparently 246 * quite close to the hardware limit for this LDO (3.312v) 247 * It must be kept in high power mode to prevent TS brownouts 248 */ 249 regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 250 }; 251 252 vreg_l20a_2p95: ldo20 { 253 regulator-min-microvolt = <2960000>; 254 regulator-max-microvolt = <2968000>; 255 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 256 }; 257 258 vreg_l21a_2p95: ldo21 { 259 regulator-min-microvolt = <2960000>; 260 regulator-max-microvolt = <2968000>; 261 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 262 }; 263 264 vreg_l24a_3p075: ldo24 { 265 regulator-min-microvolt = <3088000>; 266 regulator-max-microvolt = <3088000>; 267 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 268 }; 269 270 vreg_l25a_3p3: ldo25 { 271 regulator-min-microvolt = <3300000>; 272 regulator-max-microvolt = <3312000>; 273 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 274 }; 275 276 vdda_mipi_dsi0_1p2: 277 vreg_l26a_1p2: ldo26 { 278 regulator-min-microvolt = <1200000>; 279 regulator-max-microvolt = <1200000>; 280 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 281 regulator-boot-on; 282 }; 283 284 vreg_l28a_3p0: ldo28 { 285 regulator-min-microvolt = <2856000>; 286 regulator-max-microvolt = <3008000>; 287 regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; 288 regulator-boot-on; 289 /* 290 * We can't properly bring the panel back if it gets turned off 291 * so keep it's regulators always on for now. 292 */ 293 regulator-always-on; 294 }; 295 }; 296 297 regulators-1 { 298 compatible = "qcom,pmi8998-rpmh-regulators"; 299 qcom,pmic-id = "b"; 300 301 vdd-bob-supply = <&vph_pwr>; 302 303 vreg_bob: bob { 304 regulator-min-microvolt = <3312000>; 305 regulator-max-microvolt = <3600000>; 306 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 307 regulator-allow-bypass; 308 }; 309 }; 310 311 regulators-2 { 312 compatible = "qcom,pm8005-rpmh-regulators"; 313 qcom,pmic-id = "c"; 314 315 vdd-s1-supply = <&vph_pwr>; 316 vdd-s2-supply = <&vph_pwr>; 317 vdd-s3-supply = <&vph_pwr>; 318 vdd-s4-supply = <&vph_pwr>; 319 320 vreg_s3c_0p6: smps3 { 321 regulator-min-microvolt = <600000>; 322 regulator-max-microvolt = <600000>; 323 }; 324 }; 325}; 326 327&cci { 328 status = "okay"; 329}; 330 331&cci_i2c1 { 332 /* actuator @0c */ 333 334 /* front camera, imx355 @1a */ 335 336 /* eeprom @50, at24 driver says 8K */ 337}; 338 339&cdsp_pas { 340 firmware-name = "qcom/sdm845/Google/blueline/cdsp.mbn"; 341 342 status = "okay"; 343}; 344 345&gcc { 346 protected-clocks = <GCC_QSPI_CORE_CLK>, 347 <GCC_QSPI_CORE_CLK_SRC>, 348 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>; 349}; 350 351&gpi_dma0 { 352 status = "okay"; 353}; 354 355&gpi_dma1 { 356 status = "okay"; 357}; 358 359&gpu { 360 status = "okay"; 361}; 362 363&gpu_zap_shader { 364 firmware-name = "qcom/sdm845/Google/blueline/a630_zap.mbn"; 365}; 366 367&i2c12 { 368 /* Bottom spkr (right) CS35L36 @ 40 */ 369 370 /* Top spkr (left) CS35L36 @ 41 */ 371}; 372 373&ipa { 374 firmware-name = "qcom/sdm845/Google/blueline/ipa_fws.mbn"; 375 memory-region = <&ipa_fw_mem>; 376 377 status = "okay"; 378}; 379 380&mdss { 381 status = "okay"; 382}; 383 384&mss_pil { 385 firmware-name = "qcom/sdm845/Google/blueline/mba.mbn", 386 "qcom/sdm845/Google/blueline/modem.mbn"; 387 388 status = "okay"; 389}; 390 391&pm8998_gpios { 392 volume_up_gpio: vol-up-active-state { 393 pins = "gpio6"; 394 function = "normal"; 395 input-enable; 396 bias-pull-up; 397 qcom,drive-strength = <0>; 398 }; 399}; 400 401&pm8998_resin { 402 linux,code = <KEY_VOLUMEDOWN>; 403 404 status = "okay"; 405}; 406 407&pmi8998_charger { 408 monitored-battery = <&battery>; 409 410 status = "okay"; 411}; 412 413&qupv3_id_0 { 414 status = "okay"; 415}; 416 417&qupv3_id_1 { 418 status = "okay"; 419}; 420 421&qup_uart9_rx { 422 drive-strength = <2>; 423 bias-pull-up; 424}; 425 426&qup_uart9_tx { 427 drive-strength = <2>; 428 bias-disable; 429}; 430 431&tlmm { 432 gpio-reserved-ranges = < 0 4>, /* SPI (Intel MNH Pixel Visual Core) */ 433 <81 4>; /* SPI (most likely Fingerprint Cards FPC1075) */ 434 435 touchscreen_reset: ts-reset-state { 436 pins = "gpio99"; 437 function = "gpio"; 438 drive-strength = <8>; 439 bias-pull-up; 440 }; 441 442 touchscreen_pins: ts-pins-gpio-state { 443 pins = "gpio125"; 444 function = "gpio"; 445 drive-strength = <2>; 446 bias-disable; 447 }; 448 449 touchscreen_i2c_pins: qup-i2c2-gpio-state { 450 pins = "gpio27", "gpio28"; 451 function = "gpio"; 452 drive-strength = <2>; 453 bias-disable; 454 }; 455}; 456 457&uart6 { 458 pinctrl-0 = <&qup_uart6_4pin>; 459 460 status = "okay"; 461 462 bluetooth { 463 compatible = "qcom,wcn3990-bt"; 464 465 vddio-supply = <&vreg_s4a_1p8>; 466 vddxo-supply = <&vreg_l7a_1p8>; 467 vddrf-supply = <&vreg_l17a_1p3>; 468 vddch0-supply = <&vreg_l25a_3p3>; 469 max-speed = <3200000>; 470 }; 471}; 472 473&uart9 { 474 status = "okay"; 475}; 476 477&ufs_mem_hc { 478 reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>; 479 480 vcc-supply = <&vreg_l20a_2p95>; 481 vcc-max-microamp = <800000>; 482 483 status = "okay"; 484}; 485 486&ufs_mem_phy { 487 vdda-phy-supply = <&vreg_l1a_0p875>; 488 vdda-pll-supply = <&vreg_l26a_1p2>; 489 490 status = "okay"; 491}; 492 493&usb_1 { 494 status = "okay"; 495}; 496 497&usb_1_dwc3 { 498 dr_mode = "peripheral"; 499}; 500 501&usb_1_hsphy { 502 vdd-supply = <&vreg_l1a_0p875>; 503 vdda-pll-supply = <&vreg_l12a_1p8>; 504 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; 505 506 qcom,imp-res-offset-value = <8>; 507 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>; 508 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>; 509 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>; 510 511 status = "okay"; 512}; 513 514&usb_1_qmpphy { 515 vdda-phy-supply = <&vreg_l26a_1p2>; 516 vdda-pll-supply = <&vreg_l1a_0p875>; 517 518 status = "okay"; 519}; 520 521&venus { 522 firmware-name = "qcom/sdm845/Google/blueline/venus.mbn"; 523 524 status = "okay"; 525}; 526 527&wifi { 528 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>; 529 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 530 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 531 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; 532 533 qcom,snoc-host-cap-8bit-quirk; 534 535 status = "okay"; 536}; 537