1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2021, Linaro Limited 4 */ 5 6/dts-v1/; 7 8#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 9#include <dt-bindings/gpio/gpio.h> 10#include "sa8155p.dtsi" 11#include "pmm8155au_1.dtsi" 12#include "pmm8155au_2.dtsi" 13 14/ { 15 model = "Qualcomm Technologies, Inc. SA8155P ADP"; 16 compatible = "qcom,sa8155p-adp", "qcom,sa8155p"; 17 18 aliases { 19 serial0 = &uart2; 20 serial1 = &uart9; 21 }; 22 23 chosen { 24 stdout-path = "serial0:115200n8"; 25 }; 26 27 vreg_3p3: vreg-3p3-regulator { 28 compatible = "regulator-fixed"; 29 regulator-name = "vreg_3p3"; 30 regulator-min-microvolt = <3300000>; 31 regulator-max-microvolt = <3300000>; 32 }; 33 34 /* 35 * S4A is always on and not controllable through RPMh. 36 * So model it as a fixed regulator. 37 */ 38 vreg_s4a_1p8: smps4 { 39 compatible = "regulator-fixed"; 40 regulator-name = "vreg_s4a_1p8"; 41 42 regulator-min-microvolt = <1800000>; 43 regulator-max-microvolt = <1800000>; 44 45 regulator-always-on; 46 regulator-boot-on; 47 48 vin-supply = <&vreg_3p3>; 49 }; 50}; 51 52&apps_rsc { 53 regulators-0 { 54 compatible = "qcom,pmm8155au-rpmh-regulators"; 55 qcom,pmic-id = "a"; 56 57 vdd-s1-supply = <&vreg_3p3>; 58 vdd-s2-supply = <&vreg_3p3>; 59 vdd-s3-supply = <&vreg_3p3>; 60 vdd-s4-supply = <&vreg_3p3>; 61 vdd-s5-supply = <&vreg_3p3>; 62 vdd-s6-supply = <&vreg_3p3>; 63 vdd-s7-supply = <&vreg_3p3>; 64 vdd-s8-supply = <&vreg_3p3>; 65 vdd-s9-supply = <&vreg_3p3>; 66 vdd-s10-supply = <&vreg_3p3>; 67 68 vdd-l1-l8-l11-supply = <&vreg_s6a_0p92>; 69 vdd-l2-l10-supply = <&vreg_3p3>; 70 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p92>; 71 vdd-l6-l9-supply = <&vreg_s6a_0p92>; 72 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>; 73 vdd-l13-l16-l17-supply = <&vreg_3p3>; 74 75 vreg_s5a_2p04: smps5 { 76 regulator-name = "vreg_s5a_2p04"; 77 regulator-min-microvolt = <1904000>; 78 regulator-max-microvolt = <2000000>; 79 }; 80 81 vreg_s6a_0p92: smps6 { 82 regulator-name = "vreg_s6a_0p92"; 83 regulator-min-microvolt = <920000>; 84 regulator-max-microvolt = <1128000>; 85 }; 86 87 vreg_l1a_0p752: ldo1 { 88 regulator-name = "vreg_l1a_0p752"; 89 regulator-min-microvolt = <752000>; 90 regulator-max-microvolt = <752000>; 91 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 92 }; 93 94 vdda_usb_hs_3p1: 95 vreg_l2a_3p072: ldo2 { 96 regulator-name = "vreg_l2a_3p072"; 97 regulator-min-microvolt = <3072000>; 98 regulator-max-microvolt = <3072000>; 99 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 100 }; 101 102 vreg_l3a_0p8: ldo3 { 103 regulator-name = "vreg_l3a_0p8"; 104 regulator-min-microvolt = <800000>; 105 regulator-max-microvolt = <800000>; 106 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 107 }; 108 109 vdd_usb_hs_core: 110 vdda_usb_ss_dp_core_1: 111 vreg_l5a_0p88: ldo5 { 112 regulator-name = "vreg_l5a_0p88"; 113 regulator-min-microvolt = <880000>; 114 regulator-max-microvolt = <880000>; 115 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 116 regulator-allow-set-load; 117 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 118 RPMH_REGULATOR_MODE_HPM>; 119 }; 120 121 vreg_l7a_1p8: ldo7 { 122 regulator-name = "vreg_l7a_1p8"; 123 regulator-min-microvolt = <1800000>; 124 regulator-max-microvolt = <1800000>; 125 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 126 }; 127 128 vreg_l10a_2p96: ldo10 { 129 regulator-name = "vreg_l10a_2p96"; 130 regulator-min-microvolt = <2504000>; 131 regulator-max-microvolt = <2960000>; 132 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 133 regulator-allow-set-load; 134 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 135 RPMH_REGULATOR_MODE_HPM>; 136 }; 137 138 vreg_l11a_0p8: ldo11 { 139 regulator-name = "vreg_l11a_0p8"; 140 regulator-min-microvolt = <800000>; 141 regulator-max-microvolt = <800000>; 142 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 143 }; 144 145 vdda_usb_hs_1p8: 146 vreg_l12a_1p8: ldo12 { 147 regulator-name = "vreg_l12a_1p8"; 148 regulator-min-microvolt = <1800000>; 149 regulator-max-microvolt = <1800000>; 150 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 151 }; 152 153 vreg_l13a_2p7: ldo13 { 154 regulator-name = "vreg_l13a_2p7"; 155 regulator-min-microvolt = <2704000>; 156 regulator-max-microvolt = <2704000>; 157 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 158 }; 159 160 vreg_l15a_1p7: ldo15 { 161 regulator-name = "vreg_l15a_1p7"; 162 regulator-min-microvolt = <1704000>; 163 regulator-max-microvolt = <1704000>; 164 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 165 }; 166 167 vreg_l16a_2p7: ldo16 { 168 regulator-name = "vreg_l16a_2p7"; 169 regulator-min-microvolt = <2704000>; 170 regulator-max-microvolt = <2960000>; 171 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 172 }; 173 174 vreg_l17a_2p96: ldo17 { 175 regulator-name = "vreg_l17a_2p96"; 176 regulator-min-microvolt = <2504000>; 177 regulator-max-microvolt = <2960000>; 178 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 179 }; 180 }; 181 182 regulators-1 { 183 compatible = "qcom,pmm8155au-rpmh-regulators"; 184 qcom,pmic-id = "c"; 185 186 vdd-s1-supply = <&vreg_3p3>; 187 vdd-s2-supply = <&vreg_3p3>; 188 vdd-s3-supply = <&vreg_3p3>; 189 vdd-s4-supply = <&vreg_3p3>; 190 vdd-s5-supply = <&vreg_3p3>; 191 vdd-s6-supply = <&vreg_3p3>; 192 vdd-s7-supply = <&vreg_3p3>; 193 vdd-s8-supply = <&vreg_3p3>; 194 vdd-s9-supply = <&vreg_3p3>; 195 vdd-s10-supply = <&vreg_3p3>; 196 197 vdd-l1-l8-l11-supply = <&vreg_s4c_1p352>; 198 vdd-l2-l10-supply = <&vreg_3p3>; 199 vdd-l3-l4-l5-l18-supply = <&vreg_s4c_1p352>; 200 vdd-l6-l9-supply = <&vreg_s6c_1p128>; 201 vdd-l7-l12-l14-l15-supply = <&vreg_s5c_2p04>; 202 vdd-l13-l16-l17-supply = <&vreg_3p3>; 203 204 vreg_s4c_1p352: smps4 { 205 regulator-name = "vreg_s4c_1p352"; 206 regulator-min-microvolt = <1352000>; 207 regulator-max-microvolt = <1352000>; 208 }; 209 210 vreg_s5c_2p04: smps5 { 211 regulator-name = "vreg_s5c_2p04"; 212 regulator-min-microvolt = <1904000>; 213 regulator-max-microvolt = <2000000>; 214 }; 215 216 vreg_s6c_1p128: smps6 { 217 regulator-name = "vreg_s6c_1p128"; 218 regulator-min-microvolt = <1128000>; 219 regulator-max-microvolt = <1128000>; 220 }; 221 222 vreg_l1c_1p304: ldo1 { 223 regulator-name = "vreg_l1c_1p304"; 224 regulator-min-microvolt = <1304000>; 225 regulator-max-microvolt = <1304000>; 226 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 227 }; 228 229 vreg_l2c_1p808: ldo2 { 230 regulator-name = "vreg_l2c_1p808"; 231 regulator-min-microvolt = <1704000>; 232 regulator-max-microvolt = <2928000>; 233 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 234 }; 235 236 vreg_l5c_1p2: ldo5 { 237 regulator-name = "vreg_l5c_1p2"; 238 regulator-min-microvolt = <1200000>; 239 regulator-max-microvolt = <1200000>; 240 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 241 regulator-allow-set-load; 242 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 243 RPMH_REGULATOR_MODE_HPM>; 244 }; 245 246 vreg_l7c_1p8: ldo7 { 247 regulator-name = "vreg_l7c_1p8"; 248 regulator-min-microvolt = <1800000>; 249 regulator-max-microvolt = <1800000>; 250 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 251 }; 252 253 vreg_l8c_1p2: ldo8 { 254 regulator-name = "vreg_l8c_1p2"; 255 regulator-min-microvolt = <1200000>; 256 regulator-max-microvolt = <1200000>; 257 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 258 regulator-allow-set-load; 259 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 260 RPMH_REGULATOR_MODE_HPM>; 261 }; 262 263 vreg_l10c_3p3: ldo10 { 264 regulator-name = "vreg_l10c_3p3"; 265 regulator-min-microvolt = <3000000>; 266 regulator-max-microvolt = <3312000>; 267 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 268 }; 269 270 vreg_l11c_0p8: ldo11 { 271 regulator-name = "vreg_l11c_0p8"; 272 regulator-min-microvolt = <800000>; 273 regulator-max-microvolt = <800000>; 274 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 275 }; 276 277 vreg_l12c_1p808: ldo12 { 278 regulator-name = "vreg_l12c_1p808"; 279 regulator-min-microvolt = <1704000>; 280 regulator-max-microvolt = <2928000>; 281 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 282 }; 283 284 vreg_l13c_2p96: ldo13 { 285 regulator-name = "vreg_l13c_2p96"; 286 regulator-min-microvolt = <2504000>; 287 regulator-max-microvolt = <2960000>; 288 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 289 }; 290 291 vreg_l15c_1p9: ldo15 { 292 regulator-name = "vreg_l15c_1p9"; 293 regulator-min-microvolt = <1704000>; 294 regulator-max-microvolt = <2928000>; 295 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 296 }; 297 298 vreg_l16c_3p008: ldo16 { 299 regulator-name = "vreg_l16c_3p008"; 300 regulator-min-microvolt = <3008000>; 301 regulator-max-microvolt = <3008000>; 302 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 303 }; 304 305 vreg_l18c_0p88: ldo18 { 306 regulator-name = "vreg_l18c_0p88"; 307 regulator-min-microvolt = <880000>; 308 regulator-max-microvolt = <880000>; 309 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 310 }; 311 }; 312}; 313 314ðernet { 315 status = "okay"; 316 317 snps,reset-gpio = <&tlmm 79 GPIO_ACTIVE_LOW>; 318 snps,reset-active-low; 319 snps,reset-delays-us = <0 11000 70000>; 320 321 snps,mtl-rx-config = <&mtl_rx_setup>; 322 snps,mtl-tx-config = <&mtl_tx_setup>; 323 324 pinctrl-names = "default"; 325 pinctrl-0 = <ðernet_defaults>; 326 327 phy-handle = <&rgmii_phy>; 328 phy-mode = "rgmii"; 329 max-speed = <1000>; 330 331 mdio { 332 compatible = "snps,dwmac-mdio"; 333 #address-cells = <1>; 334 #size-cells = <0>; 335 336 /* Micrel KSZ9031RNZ PHY */ 337 rgmii_phy: phy@7 { 338 compatible = "ethernet-phy-ieee802.3-c22"; 339 reg = <0x7>; 340 341 interrupts-extended = <&tlmm 124 IRQ_TYPE_EDGE_FALLING>; 342 device_type = "ethernet-phy"; 343 }; 344 }; 345 346 mtl_rx_setup: rx-queues-config { 347 snps,rx-queues-to-use = <1>; 348 snps,rx-sched-sp; 349 350 queue0 { 351 snps,dcb-algorithm; 352 snps,map-to-dma-channel = <0x0>; 353 snps,route-up; 354 snps,priority = <0x1>; 355 }; 356 }; 357 358 mtl_tx_setup: tx-queues-config { 359 snps,tx-queues-to-use = <1>; 360 snps,tx-sched-wrr; 361 362 queue0 { 363 snps,weight = <0x10>; 364 snps,dcb-algorithm; 365 snps,priority = <0x0>; 366 }; 367 }; 368}; 369 370&pmm8155au_1_gpios { 371 pmm8155au_1_sdc2_cd: sdc2-cd-default-state { 372 pins = "gpio4"; 373 function = "normal"; 374 input-enable; 375 bias-pull-up; 376 power-source = <0>; 377 }; 378}; 379 380&qupv3_id_1 { 381 status = "okay"; 382}; 383 384&remoteproc_adsp { 385 status = "okay"; 386 firmware-name = "qcom/sa8155p/adsp.mdt"; 387}; 388 389&remoteproc_cdsp { 390 status = "okay"; 391 firmware-name = "qcom/sa8155p/cdsp.mdt"; 392}; 393 394&sdhc_2 { 395 status = "okay"; 396 397 cd-gpios = <&pmm8155au_1_gpios 4 GPIO_ACTIVE_LOW>; 398 pinctrl-names = "default", "sleep"; 399 pinctrl-0 = <&sdc2_on &pmm8155au_1_sdc2_cd>; 400 pinctrl-1 = <&sdc2_off &pmm8155au_1_sdc2_cd>; 401 vqmmc-supply = <&vreg_l13c_2p96>; /* IO line power */ 402 vmmc-supply = <&vreg_l17a_2p96>; /* Card power line */ 403 bus-width = <4>; 404 no-sdio; 405 no-mmc; 406}; 407 408&uart2 { 409 status = "okay"; 410}; 411 412&uart9 { 413 status = "okay"; 414}; 415 416&ufs_mem_hc { 417 status = "okay"; 418 419 reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>; 420 421 vcc-supply = <&vreg_l10a_2p96>; 422 vcc-max-microamp = <750000>; 423 vccq-supply = <&vreg_l5c_1p2>; 424 vccq-max-microamp = <700000>; 425 vccq2-supply = <&vreg_s4a_1p8>; 426 vccq2-max-microamp = <750000>; 427}; 428 429&ufs_mem_phy { 430 status = "okay"; 431 432 vdda-phy-supply = <&vreg_l8c_1p2>; 433 vdda-pll-supply = <&vreg_l5a_0p88>; 434}; 435 436&usb_1 { 437 status = "okay"; 438}; 439 440&usb_1_dwc3 { 441 dr_mode = "host"; 442 443 pinctrl-names = "default"; 444 pinctrl-0 = <&usb2phy_ac_en1_default>; 445}; 446 447&usb_1_hsphy { 448 status = "okay"; 449 vdda-pll-supply = <&vdd_usb_hs_core>; 450 vdda33-supply = <&vdda_usb_hs_3p1>; 451 vdda18-supply = <&vdda_usb_hs_1p8>; 452}; 453 454&usb_1_qmpphy { 455 status = "disabled"; 456}; 457 458&usb_2 { 459 status = "okay"; 460}; 461 462&usb_2_dwc3 { 463 dr_mode = "host"; 464 465 pinctrl-names = "default"; 466 pinctrl-0 = <&usb2phy_ac_en2_default>; 467}; 468 469&usb_2_hsphy { 470 status = "okay"; 471 vdda-pll-supply = <&vdd_usb_hs_core>; 472 vdda33-supply = <&vdda_usb_hs_3p1>; 473 vdda18-supply = <&vdda_usb_hs_1p8>; 474}; 475 476&usb_2_qmpphy { 477 status = "okay"; 478 vdda-phy-supply = <&vreg_l8c_1p2>; 479 vdda-pll-supply = <&vdda_usb_ss_dp_core_1>; 480}; 481 482&pcie0 { 483 status = "okay"; 484}; 485 486&pcie0_phy { 487 status = "okay"; 488 vdda-phy-supply = <&vreg_l18c_0p88>; 489 vdda-pll-supply = <&vreg_l8c_1p2>; 490}; 491 492&pcie1_phy { 493 vdda-phy-supply = <&vreg_l18c_0p88>; 494 vdda-pll-supply = <&vreg_l8c_1p2>; 495}; 496 497&tlmm { 498 gpio-reserved-ranges = <0 4>; 499 500 sdc2_on: sdc2-on-state { 501 clk-pins { 502 pins = "sdc2_clk"; 503 bias-disable; /* No pull */ 504 drive-strength = <16>; /* 16 MA */ 505 }; 506 507 cmd-pins { 508 pins = "sdc2_cmd"; 509 bias-pull-up; /* pull up */ 510 drive-strength = <16>; /* 16 MA */ 511 }; 512 513 data-pins { 514 pins = "sdc2_data"; 515 bias-pull-up; /* pull up */ 516 drive-strength = <16>; /* 16 MA */ 517 }; 518 }; 519 520 sdc2_off: sdc2-off-state { 521 clk-pins { 522 pins = "sdc2_clk"; 523 bias-disable; /* No pull */ 524 drive-strength = <2>; /* 2 MA */ 525 }; 526 527 cmd-pins { 528 pins = "sdc2_cmd"; 529 bias-pull-up; /* pull up */ 530 drive-strength = <2>; /* 2 MA */ 531 }; 532 533 data-pins { 534 pins = "sdc2_data"; 535 bias-pull-up; /* pull up */ 536 drive-strength = <2>; /* 2 MA */ 537 }; 538 }; 539 540 usb2phy_ac_en1_default: usb2phy-ac-en1-default-state { 541 pins = "gpio113"; 542 function = "usb2phy_ac"; 543 bias-disable; 544 drive-strength = <2>; 545 }; 546 547 usb2phy_ac_en2_default: usb2phy-ac-en2-default-state { 548 pins = "gpio123"; 549 function = "usb2phy_ac"; 550 bias-disable; 551 drive-strength = <2>; 552 }; 553 554 ethernet_defaults: ethernet-defaults-state { 555 mdc-pins { 556 pins = "gpio7"; 557 function = "rgmii"; 558 bias-pull-up; 559 }; 560 561 mdio-pins { 562 pins = "gpio59"; 563 function = "rgmii"; 564 bias-pull-up; 565 }; 566 567 rgmii-rx-pins { 568 pins = "gpio117", "gpio118", "gpio119", "gpio120", "gpio115", "gpio116"; 569 function = "rgmii"; 570 bias-disable; 571 drive-strength = <2>; 572 }; 573 574 rgmii-tx-pins { 575 pins = "gpio122", "gpio4", "gpio5", "gpio6", "gpio114", "gpio121"; 576 function = "rgmii"; 577 bias-pull-up; 578 drive-strength = <16>; 579 }; 580 581 phy-intr-pins { 582 pins = "gpio124"; 583 function = "emac_phy"; 584 bias-disable; 585 drive-strength = <8>; 586 }; 587 588 pps-pins { 589 pins = "gpio81"; 590 function = "emac_pps"; 591 bias-disable; 592 drive-strength = <8>; 593 }; 594 595 phy-reset-pins { 596 pins = "gpio79"; 597 function = "gpio"; 598 bias-pull-up; 599 drive-strength = <16>; 600 }; 601 }; 602}; 603