1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2022, Konrad Dybcio <konrad.dybcio@somainline.org> 4 */ 5 6#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 7#include "sm8450.dtsi" 8#include "pm8350.dtsi" 9#include "pm8350b.dtsi" 10#include "pm8350c.dtsi" 11#include "pm8450.dtsi" 12#include "pmk8350.dtsi" 13#include "pmr735a.dtsi" 14 15/delete-node/ &adsp_mem; 16/delete-node/ &rmtfs_mem; 17/delete-node/ &video_mem; 18 19/ { 20 chassis-type = "handset"; 21 22 aliases { 23 serial0 = &uart7; 24 }; 25 26 chosen { 27 stdout-path = "serial0:115200n8"; 28 }; 29 30 gpio-keys { 31 compatible = "gpio-keys"; 32 label = "gpio-keys"; 33 34 pinctrl-names = "default"; 35 pinctrl-0 = <&focus_n &snapshot_n &vol_down_n>; 36 37 key-camera-focus { 38 label = "Camera Focus"; 39 linux,code = <KEY_CAMERA_FOCUS>; 40 gpios = <&pm8350b_gpios 8 GPIO_ACTIVE_LOW>; 41 debounce-interval = <15>; 42 linux,can-disable; 43 wakeup-source; 44 }; 45 46 key-camera-snapshot { 47 label = "Camera Snapshot"; 48 linux,code = <KEY_CAMERA>; 49 gpios = <&pm8350b_gpios 5 GPIO_ACTIVE_LOW>; 50 debounce-interval = <15>; 51 linux,can-disable; 52 wakeup-source; 53 }; 54 55 key-volume-down { 56 label = "Volume Down"; 57 linux,code = <KEY_VOLUMEDOWN>; 58 gpios = <&pm8350_gpios 6 GPIO_ACTIVE_LOW>; 59 debounce-interval = <15>; 60 linux,can-disable; 61 wakeup-source; 62 }; 63 }; 64 65 reserved-memory { 66 adsp_mem: memory@85700000 { 67 reg = <0x0 0x85700000 0x0 0x2800000>; 68 no-map; 69 }; 70 71 video_mem: memory@9fd00000 { 72 reg = <0x0 0x9fd00000 0x0 0x700000>; 73 no-map; 74 }; 75 76 rmtfs_mem: memory@f3300000 { 77 compatible = "qcom,rmtfs-mem"; 78 reg = <0x0 0xf3300000 0x0 0x280000>; 79 no-map; 80 81 qcom,client-id = <1>; 82 qcom,vmid = <15>; 83 }; 84 85 ramoops@ffc00000 { 86 compatible = "ramoops"; 87 reg = <0 0xffc00000 0 0x200000>; 88 console-size = <0x40000>; 89 record-size = <0x1000>; 90 ecc-size = <16>; 91 no-map; 92 }; 93 }; 94 95 /* Sadly, the voltages for these GPIO regulators are unknown. */ 96 imx650_vana_vreg: imx650-vana-regulator { 97 compatible = "regulator-fixed"; 98 regulator-name = "imx650_vana_vreg"; 99 gpio = <&tlmm 23 GPIO_ACTIVE_HIGH>; 100 enable-active-high; 101 }; 102 103 vph_pwr: vph-pwr-regulator { 104 compatible = "regulator-fixed"; 105 regulator-name = "vph_pwr"; 106 regulator-min-microvolt = <3700000>; 107 regulator-max-microvolt = <3700000>; 108 109 regulator-always-on; 110 regulator-boot-on; 111 }; 112}; 113 114&apps_rsc { 115 pm8350-rpmh-regulators { 116 compatible = "qcom,pm8350-rpmh-regulators"; 117 qcom,pmic-id = "b"; 118 119 vdd-s1-supply = <&vph_pwr>; 120 vdd-s2-supply = <&vph_pwr>; 121 vdd-s3-supply = <&vph_pwr>; 122 vdd-s4-supply = <&vph_pwr>; 123 vdd-s5-supply = <&vph_pwr>; 124 vdd-s6-supply = <&vph_pwr>; 125 vdd-s7-supply = <&vph_pwr>; 126 vdd-s8-supply = <&vph_pwr>; 127 vdd-s9-supply = <&vph_pwr>; 128 vdd-s10-supply = <&vph_pwr>; 129 vdd-s11-supply = <&vph_pwr>; 130 vdd-s12-supply = <&vph_pwr>; 131 132 vdd-l1-l4-supply = <&pm8350_s11>; 133 vdd-l2-l7-supply = <&vreg_bob>; 134 vdd-l3-l5-supply = <&vreg_bob>; 135 vdd-l6-l9-l10-supply = <&pm8350_s12>; 136 137 /* 138 * ARC regulators: 139 * s5 - gfx.lvl 140 * l8 - lcx.lvl 141 */ 142 143 pm8350_s10: smps10 { 144 regulator-name = "pm8350_s10"; 145 regulator-min-microvolt = <1800000>; 146 regulator-max-microvolt = <1800000>; 147 }; 148 149 pm8350_s11: smps11 { 150 regulator-name = "pm8350_s11"; 151 regulator-min-microvolt = <848000>; 152 regulator-max-microvolt = <1104000>; 153 }; 154 155 pm8350_s12: smps12 { 156 regulator-name = "pm8350_s12"; 157 regulator-min-microvolt = <1224000>; 158 regulator-max-microvolt = <1400000>; 159 }; 160 161 pm8350_l1: ldo1 { 162 regulator-name = "pm8350_l1"; 163 regulator-min-microvolt = <912000>; 164 regulator-max-microvolt = <920000>; 165 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 166 }; 167 168 pm8350_l2: ldo2 { 169 regulator-name = "pm8350_l2"; 170 regulator-min-microvolt = <3072000>; 171 regulator-max-microvolt = <3072000>; 172 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 173 }; 174 175 pm8350_l3: ldo3 { 176 regulator-name = "pm8350_l3"; 177 regulator-min-microvolt = <904000>; 178 regulator-max-microvolt = <904000>; 179 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 180 }; 181 182 pm8350_l5: ldo5 { 183 regulator-name = "pm8350_l5"; 184 regulator-min-microvolt = <880000>; 185 regulator-max-microvolt = <912000>; 186 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 187 }; 188 189 pm8350_l6: ldo6 { 190 regulator-name = "pm8350_l6"; 191 regulator-min-microvolt = <1200000>; 192 regulator-max-microvolt = <1200000>; 193 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 194 }; 195 196 pm8350_l7: ldo7 { 197 regulator-name = "pm8350_l7"; 198 regulator-min-microvolt = <2504000>; 199 regulator-max-microvolt = <2504000>; 200 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 201 }; 202 203 pm8350_l9: ldo9 { 204 regulator-name = "pm8350_l9"; 205 regulator-min-microvolt = <1200000>; 206 regulator-max-microvolt = <1200000>; 207 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 208 }; 209 }; 210 211 pm8350c-rpmh-regulators { 212 compatible = "qcom,pm8350c-rpmh-regulators"; 213 qcom,pmic-id = "c"; 214 215 vdd-s1-supply = <&vph_pwr>; 216 vdd-s2-supply = <&vph_pwr>; 217 vdd-s3-supply = <&vph_pwr>; 218 vdd-s4-supply = <&vph_pwr>; 219 vdd-s5-supply = <&vph_pwr>; 220 vdd-s6-supply = <&vph_pwr>; 221 vdd-s7-supply = <&vph_pwr>; 222 vdd-s8-supply = <&vph_pwr>; 223 vdd-s9-supply = <&vph_pwr>; 224 vdd-s10-supply = <&vph_pwr>; 225 226 vdd-l1-l12-supply = <&vreg_bob>; 227 vdd-l2-l8-supply = <&vreg_bob>; 228 vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>; 229 vdd-l6-l9-l11-supply = <&vreg_bob>; 230 vdd-l10-supply = <&pm8350_s12>; 231 232 vdd-bob-supply = <&vph_pwr>; 233 234 /* 235 * ARC regulators: 236 * s2 - mxc.lvl 237 * s4 - mss.lvl 238 * s6 - cx.lvl 239 */ 240 241 pm8350c_s1: smps1 { 242 regulator-name = "pm8350c_s1"; 243 regulator-min-microvolt = <1800000>; 244 regulator-max-microvolt = <2024000>; 245 }; 246 247 pm8350c_s10: smps10 { 248 regulator-name = "pm8350c_s10"; 249 regulator-min-microvolt = <1000000>; 250 regulator-max-microvolt = <1100000>; 251 }; 252 253 vreg_bob: bob { 254 regulator-name = "vreg_bob"; 255 regulator-min-microvolt = <3400000>; 256 regulator-max-microvolt = <3960000>; 257 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 258 }; 259 260 pm8350c_l1: ldo1 { 261 regulator-name = "pm8350c_l1"; 262 regulator-min-microvolt = <1800000>; 263 regulator-max-microvolt = <1800000>; 264 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 265 }; 266 267 pm8350c_l2: ldo2 { 268 regulator-name = "pm8350c_l2"; 269 regulator-min-microvolt = <1800000>; 270 regulator-max-microvolt = <1800000>; 271 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 272 }; 273 274 pm8350c_l3: ldo3 { 275 regulator-name = "pm8350c_l3"; 276 regulator-min-microvolt = <3296000>; 277 regulator-max-microvolt = <3304000>; 278 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 279 }; 280 281 pm8350c_l4: ldo4 { 282 regulator-name = "pm8350c_l4"; 283 regulator-min-microvolt = <1704000>; 284 regulator-max-microvolt = <3000000>; 285 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 286 }; 287 288 pm8350c_l5: ldo5 { 289 regulator-name = "pm8350c_l5"; 290 regulator-min-microvolt = <1704000>; 291 regulator-max-microvolt = <3000000>; 292 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 293 }; 294 295 pm8350c_l6: ldo6 { 296 regulator-name = "pm8350c_l6"; 297 regulator-min-microvolt = <2960000>; 298 /* Originally max = 3008000 but SDHCI expects 2960000 */ 299 regulator-max-microvolt = <2960000>; 300 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 301 }; 302 303 pm8350c_l7: ldo7 { 304 regulator-name = "pm8350c_l7"; 305 regulator-min-microvolt = <3008000>; 306 regulator-max-microvolt = <3008000>; 307 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 308 }; 309 310 pm8350c_l8: ldo8 { 311 regulator-name = "pm8350c_l8"; 312 regulator-min-microvolt = <1800000>; 313 regulator-max-microvolt = <1800000>; 314 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 315 }; 316 317 pm8350c_l9: ldo9 { 318 regulator-name = "pm8350c_l9"; 319 regulator-min-microvolt = <2960000>; 320 /* Originally max = 3008000 but SDHCI expects 2960000 */ 321 regulator-max-microvolt = <2960000>; 322 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 323 }; 324 325 pm8350c_l10: ldo10 { 326 regulator-name = "pm8350c_l10"; 327 regulator-min-microvolt = <1200000>; 328 regulator-max-microvolt = <1200000>; 329 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 330 }; 331 332 pm8350c_l12: ldo12 { 333 regulator-name = "pm8350c_l12"; 334 regulator-min-microvolt = <1800000>; 335 regulator-max-microvolt = <1968000>; 336 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 337 }; 338 339 pm8350c_l13: ldo13 { 340 regulator-name = "pm8350c_l13"; 341 regulator-min-microvolt = <3000000>; 342 regulator-max-microvolt = <3000000>; 343 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 344 }; 345 }; 346 347 pm8450-rpmh-regulators { 348 compatible = "qcom,pm8450-rpmh-regulators"; 349 qcom,pmic-id = "h"; 350 351 vdd-s1-supply = <&vph_pwr>; 352 vdd-s2-supply = <&vph_pwr>; 353 vdd-s3-supply = <&vph_pwr>; 354 vdd-s4-supply = <&vph_pwr>; 355 vdd-s5-supply = <&vph_pwr>; 356 vdd-s6-supply = <&vph_pwr>; 357 358 vdd-l2-supply = <&vreg_bob>; 359 vdd-l3-supply = <&vreg_bob>; 360 vdd-l4-supply = <&vreg_bob>; 361 362 /* 363 * ARC regulators: 364 * S2 - ebi.lvl 365 * S4 - mmcx.lvl 366 * S6 - mx.lvl 367 * L1 - lmx.lvl 368 */ 369 370 pm8450_s3: smps3 { 371 regulator-name = "pm8450_s3"; 372 regulator-min-microvolt = <500000>; 373 regulator-max-microvolt = <600000>; 374 }; 375 376 pm8450_l2: ldo2 { 377 regulator-name = "pm8450_l2"; 378 regulator-min-microvolt = <880000>; 379 regulator-max-microvolt = <912000>; 380 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 381 }; 382 383 pm8450_l3: ldo3 { 384 regulator-name = "pm8450_l3"; 385 regulator-min-microvolt = <912000>; 386 regulator-max-microvolt = <912000>; 387 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 388 }; 389 }; 390 391 pmr735a-rpmh-regulators { 392 compatible = "qcom,pmr735a-rpmh-regulators"; 393 qcom,pmic-id = "e"; 394 395 vdd-s1-supply = <&vph_pwr>; 396 vdd-s2-supply = <&vph_pwr>; 397 vdd-s3-supply = <&vph_pwr>; 398 399 vdd-l1-l2-supply = <&pmr735a_s2>; 400 vdd-l3-supply = <&pmr735a_s1>; 401 vdd-l4-supply = <&pm8350c_s1>; 402 vdd-l5-l6-supply = <&pm8350c_s1>; 403 vdd-l7-bob-supply = <&vreg_bob>; 404 405 pmr735a_s1: smps1 { 406 regulator-name = "pmr735a_s1"; 407 regulator-min-microvolt = <1200000>; 408 regulator-max-microvolt = <1296000>; 409 }; 410 411 pmr735a_s2: smps2 { 412 regulator-name = "pmr735a_s2"; 413 regulator-min-microvolt = <500000>; 414 regulator-max-microvolt = <1040000>; 415 }; 416 417 pmr735a_s3: smps3 { 418 regulator-name = "pmr735a_s3"; 419 regulator-min-microvolt = <435000>; 420 regulator-max-microvolt = <2352000>; 421 }; 422 423 pmr735a_l1: ldo1 { 424 regulator-name = "pmr735a_l1"; 425 regulator-min-microvolt = <800000>; 426 regulator-max-microvolt = <800000>; 427 }; 428 429 pmr735a_l2: ldo2 { 430 regulator-name = "pmr735a_l2"; 431 regulator-min-microvolt = <480000>; 432 regulator-max-microvolt = <912000>; 433 }; 434 435 pmr735a_l3: ldo3 { 436 regulator-name = "pmr735a_l3"; 437 regulator-min-microvolt = <1200000>; 438 regulator-max-microvolt = <1200000>; 439 }; 440 441 pmr735a_l4: ldo4 { 442 regulator-name = "pmr735a_l4"; 443 regulator-min-microvolt = <1776000>; 444 regulator-max-microvolt = <1776000>; 445 }; 446 447 pmr735a_l5: ldo5 { 448 regulator-name = "pmr735a_l5"; 449 regulator-min-microvolt = <880000>; 450 regulator-max-microvolt = <880000>; 451 }; 452 453 pmr735a_l6: ldo6 { 454 regulator-name = "pmr735a_l6"; 455 regulator-min-microvolt = <1200000>; 456 regulator-max-microvolt = <1200000>; 457 }; 458 459 pmr735a_l7: ldo7 { 460 regulator-name = "pmr735a_l7"; 461 regulator-min-microvolt = <2800000>; 462 regulator-max-microvolt = <2800000>; 463 }; 464 }; 465}; 466 467&gpi_dma0 { 468 status = "okay"; 469}; 470 471&gpi_dma1 { 472 status = "okay"; 473}; 474 475&gpi_dma2 { 476 status = "okay"; 477}; 478 479&i2c4 { 480 clock-frequency = <400000>; 481 status = "okay"; 482 483 touchscreen@48 { 484 compatible = "samsung,s6sy761"; 485 reg = <0x48>; 486 interrupt-parent = <&tlmm>; 487 interrupts = <21 0x2008>; 488 vdd-supply = <&pm8350c_l2>; 489 avdd-supply = <&pm8350c_l3>; 490 491 pinctrl-names = "default"; 492 pinctrl-0 = <&ts_reset_default &ts_int_default>; 493 }; 494}; 495 496&i2c5 { 497 clock-frequency = <400000>; 498 status = "okay"; 499 500 /* Dialog SLG51000 CMIC @ 75 */ 501}; 502 503&i2c9 { 504 clock-frequency = <400000>; 505 status = "okay"; 506 507 /* NXP SN1X0 NFC @ 28 */ 508}; 509 510&i2c13 { 511 clock-frequency = <400000>; 512 status = "okay"; 513 514 /* Richwave RTC6226 FM Radio Receiver @ 64 */ 515}; 516 517&i2c14 { 518 clock-frequency = <1000000>; 519 status = "okay"; 520 521 cs35l41_l: speaker-amp@40 { 522 compatible = "cirrus,cs35l41"; 523 reg = <0x40>; 524 interrupt-parent = <&tlmm>; 525 interrupts = <182 IRQ_TYPE_LEVEL_LOW>; 526 reset-gpios = <&tlmm 183 GPIO_ACTIVE_HIGH>; 527 cirrus,boost-peak-milliamp = <4000>; 528 cirrus,boost-ind-nanohenry = <1000>; 529 cirrus,boost-cap-microfarad = <15>; 530 cirrus,gpio2-src-select = <2>; 531 cirrus,gpio2-output-enable; 532 cirrus,asp-sdout-hiz = <3>; 533 #sound-dai-cells = <1>; 534 }; 535 536 cs35l41_r: speaker-amp@41 { 537 compatible = "cirrus,cs35l41"; 538 reg = <0x41>; 539 interrupt-parent = <&tlmm>; 540 interrupts = <182 IRQ_TYPE_LEVEL_LOW>; 541 reset-gpios = <&tlmm 183 GPIO_ACTIVE_HIGH>; 542 cirrus,boost-peak-milliamp = <4000>; 543 cirrus,boost-ind-nanohenry = <1000>; 544 cirrus,boost-cap-microfarad = <15>; 545 cirrus,gpio2-src-select = <2>; 546 cirrus,gpio2-output-enable; 547 cirrus,asp-sdout-hiz = <3>; 548 #sound-dai-cells = <1>; 549 }; 550}; 551 552&i2c15 { 553 clock-frequency = <400000>; 554 status = "okay"; 555 556 /* AMS TCS3490 RGB+IR color sensor @ 72 */ 557}; 558 559&i2c19 { 560 clock-frequency = <1000000>; 561 status = "okay"; 562 563 /* Cirrus Logic CS40L25A boosted haptics driver @ 40 */ 564}; 565 566&pcie0 { 567 max-link-speed = <2>; 568 status = "okay"; 569}; 570 571&pcie0_phy { 572 vdda-phy-supply = <&pm8350_l5>; 573 vdda-pll-supply = <&pm8350_l6>; 574 status = "okay"; 575}; 576 577&pm8350_gpios { 578 gpio-line-names = "ASSIGN1_THERM", /* GPIO_1 */ 579 "LCD_ID", 580 "SDR_MMW_THERM", 581 "RF_ID", 582 "NC", 583 "VOL_DOWN_N", 584 "NC", 585 "NC", 586 "NC", 587 "PM8350_OPTION"; /* GPIO_10 */ 588 589 vol_down_n: vol-down-n-state { 590 pins = "gpio6"; 591 function = "normal"; 592 power-source = <1>; 593 bias-pull-up; 594 input-enable; 595 }; 596}; 597 598&pm8350b_gpios { 599 snapshot_n: snapshot-n-state { 600 pins = "gpio5"; 601 function = "normal"; 602 power-source = <0>; 603 bias-pull-up; 604 input-enable; 605 }; 606 607 focus_n: focus-n-state { 608 pins = "gpio8"; 609 function = "normal"; 610 power-source = <0>; 611 bias-pull-up; 612 input-enable; 613 }; 614}; 615 616&pm8450_gpios { 617 gpio-line-names = "FP_LDO_EN", /* GPIO_1 */ 618 "", 619 "", 620 ""; 621}; 622 623&pmk8350_gpios { 624 gpio-line-names = "NC", /* GPIO_1 */ 625 "NC", 626 "DISP_THERM", 627 "PMK8350_OPTION"; 628}; 629 630&remoteproc_adsp { 631 firmware-name = "qcom/sm8350/Sony/nagara/adsp.mbn"; 632 status = "okay"; 633}; 634 635&remoteproc_cdsp { 636 firmware-name = "qcom/sm8350/Sony/nagara/cdsp.mbn"; 637 status = "okay"; 638}; 639 640&remoteproc_slpi { 641 firmware-name = "qcom/sm8350/Sony/nagara/slpi.mbn"; 642 status = "okay"; 643}; 644 645&qupv3_id_0 { 646 status = "okay"; 647}; 648 649&qupv3_id_1 { 650 status = "okay"; 651}; 652 653&qupv3_id_2 { 654 status = "okay"; 655}; 656 657&sdhc_2 { 658 cd-gpios = <&tlmm 92 GPIO_ACTIVE_HIGH>; 659 pinctrl-names = "default", "sleep"; 660 pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>; 661 pinctrl-1 = <&sdc2_sleep_state &sdc2_card_det_n>; 662 vmmc-supply = <&pm8350c_l9>; 663 vqmmc-supply = <&pm8350c_l6>; 664 no-sdio; 665 no-mmc; 666 status = "okay"; 667}; 668 669&spi10 { 670 status = "okay"; 671 672 /* NXP SN1X0 NFC Secure Element @ 0 */ 673}; 674 675&tlmm { 676 gpio-reserved-ranges = <28 4>; 677 678 ts_reset_default: ts-reset-default-state { 679 pins = "gpio20"; 680 function = "gpio"; 681 drive-strength = <2>; 682 bias-disable; 683 output-high; 684 }; 685 686 ts_int_default: ts-int-default-state { 687 pins = "gpio21"; 688 function = "gpio"; 689 drive-strength = <2>; 690 bias-disable; 691 input-enable; 692 }; 693 694 sdc2_card_det_n: sd-card-det-n-state { 695 pins = "gpio92"; 696 function = "gpio"; 697 drive-strength = <2>; 698 bias-pull-up; 699 }; 700}; 701 702&uart7 { 703 status = "okay"; 704}; 705 706&usb_1 { 707 status = "okay"; 708}; 709 710&usb_1_dwc3 { 711 dr_mode = "peripheral"; 712}; 713 714&usb_1_hsphy { 715 vdda-pll-supply = <&pm8350_l5>; 716 vdda18-supply = <&pm8350c_l1>; 717 vdda33-supply = <&pm8350_l2>; 718 status = "okay"; 719}; 720 721&usb_1_qmpphy { 722 vdda-phy-supply = <&pm8350_l6>; 723 vdda-pll-supply = <&pm8350_l1>; 724 status = "okay"; 725}; 726