1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2023, Linaro Limited 4 */ 5 6/dts-v1/; 7 8#include <dt-bindings/gpio/gpio.h> 9#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 10 11#include "sa8775p.dtsi" 12#include "sa8775p-pmics.dtsi" 13 14/ { 15 model = "Qualcomm SA8775P Ride"; 16 compatible = "qcom,sa8775p-ride", "qcom,sa8775p"; 17 18 aliases { 19 serial0 = &uart10; 20 serial1 = &uart12; 21 serial2 = &uart17; 22 i2c11 = &i2c11; 23 i2c18 = &i2c18; 24 spi16 = &spi16; 25 ufshc1 = &ufs_mem_hc; 26 }; 27 28 chosen { 29 stdout-path = "serial0:115200n8"; 30 }; 31}; 32 33&apps_rsc { 34 regulators-0 { 35 compatible = "qcom,pmm8654au-rpmh-regulators"; 36 qcom,pmic-id = "a"; 37 38 vreg_s4a: smps4 { 39 regulator-name = "vreg_s4a"; 40 regulator-min-microvolt = <1800000>; 41 regulator-max-microvolt = <1816000>; 42 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 43 }; 44 45 vreg_s5a: smps5 { 46 regulator-name = "vreg_s5a"; 47 regulator-min-microvolt = <1850000>; 48 regulator-max-microvolt = <1996000>; 49 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 50 }; 51 52 vreg_s9a: smps9 { 53 regulator-name = "vreg_s9a"; 54 regulator-min-microvolt = <535000>; 55 regulator-max-microvolt = <1120000>; 56 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 57 }; 58 59 vreg_l4a: ldo4 { 60 regulator-name = "vreg_l4a"; 61 regulator-min-microvolt = <788000>; 62 regulator-max-microvolt = <1050000>; 63 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 64 regulator-allow-set-load; 65 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 66 RPMH_REGULATOR_MODE_HPM>; 67 }; 68 69 vreg_l5a: ldo5 { 70 regulator-name = "vreg_l5a"; 71 regulator-min-microvolt = <870000>; 72 regulator-max-microvolt = <950000>; 73 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 74 regulator-allow-set-load; 75 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 76 RPMH_REGULATOR_MODE_HPM>; 77 }; 78 79 vreg_l6a: ldo6 { 80 regulator-name = "vreg_l6a"; 81 regulator-min-microvolt = <870000>; 82 regulator-max-microvolt = <970000>; 83 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 84 regulator-allow-set-load; 85 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 86 RPMH_REGULATOR_MODE_HPM>; 87 }; 88 89 vreg_l7a: ldo7 { 90 regulator-name = "vreg_l7a"; 91 regulator-min-microvolt = <720000>; 92 regulator-max-microvolt = <950000>; 93 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 94 regulator-allow-set-load; 95 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 96 RPMH_REGULATOR_MODE_HPM>; 97 }; 98 99 vreg_l8a: ldo8 { 100 regulator-name = "vreg_l8a"; 101 regulator-min-microvolt = <2504000>; 102 regulator-max-microvolt = <3300000>; 103 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 104 regulator-allow-set-load; 105 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 106 RPMH_REGULATOR_MODE_HPM>; 107 }; 108 109 vreg_l9a: ldo9 { 110 regulator-name = "vreg_l9a"; 111 regulator-min-microvolt = <2970000>; 112 regulator-max-microvolt = <3544000>; 113 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 114 regulator-allow-set-load; 115 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 116 RPMH_REGULATOR_MODE_HPM>; 117 }; 118 }; 119 120 regulators-1 { 121 compatible = "qcom,pmm8654au-rpmh-regulators"; 122 qcom,pmic-id = "c"; 123 124 vreg_l1c: ldo1 { 125 regulator-name = "vreg_l1c"; 126 regulator-min-microvolt = <1140000>; 127 regulator-max-microvolt = <1260000>; 128 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 129 regulator-allow-set-load; 130 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 131 RPMH_REGULATOR_MODE_HPM>; 132 }; 133 134 vreg_l2c: ldo2 { 135 regulator-name = "vreg_l2c"; 136 regulator-min-microvolt = <900000>; 137 regulator-max-microvolt = <1100000>; 138 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 139 regulator-allow-set-load; 140 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 141 RPMH_REGULATOR_MODE_HPM>; 142 }; 143 144 vreg_l3c: ldo3 { 145 regulator-name = "vreg_l3c"; 146 regulator-min-microvolt = <1100000>; 147 regulator-max-microvolt = <1300000>; 148 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 149 regulator-allow-set-load; 150 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 151 RPMH_REGULATOR_MODE_HPM>; 152 }; 153 154 vreg_l4c: ldo4 { 155 regulator-name = "vreg_l4c"; 156 regulator-min-microvolt = <1100000>; 157 regulator-max-microvolt = <1300000>; 158 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 159 /* 160 * FIXME: This should have regulator-allow-set-load but 161 * we're getting an over-current fault from the PMIC 162 * when switching to LPM. 163 */ 164 }; 165 166 vreg_l5c: ldo5 { 167 regulator-name = "vreg_l5c"; 168 regulator-min-microvolt = <1100000>; 169 regulator-max-microvolt = <1300000>; 170 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 171 regulator-allow-set-load; 172 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 173 RPMH_REGULATOR_MODE_HPM>; 174 }; 175 176 vreg_l6c: ldo6 { 177 regulator-name = "vreg_l6c"; 178 regulator-min-microvolt = <1620000>; 179 regulator-max-microvolt = <1980000>; 180 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 181 regulator-allow-set-load; 182 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 183 RPMH_REGULATOR_MODE_HPM>; 184 }; 185 186 vreg_l7c: ldo7 { 187 regulator-name = "vreg_l7c"; 188 regulator-min-microvolt = <1620000>; 189 regulator-max-microvolt = <2000000>; 190 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 191 regulator-allow-set-load; 192 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 193 RPMH_REGULATOR_MODE_HPM>; 194 }; 195 196 vreg_l8c: ldo8 { 197 regulator-name = "vreg_l8c"; 198 regulator-min-microvolt = <2400000>; 199 regulator-max-microvolt = <3300000>; 200 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 201 regulator-allow-set-load; 202 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 203 RPMH_REGULATOR_MODE_HPM>; 204 }; 205 206 vreg_l9c: ldo9 { 207 regulator-name = "vreg_l9c"; 208 regulator-min-microvolt = <1650000>; 209 regulator-max-microvolt = <2700000>; 210 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 211 regulator-allow-set-load; 212 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 213 RPMH_REGULATOR_MODE_HPM>; 214 }; 215 }; 216 217 regulators-2 { 218 compatible = "qcom,pmm8654au-rpmh-regulators"; 219 qcom,pmic-id = "e"; 220 221 vreg_s4e: smps4 { 222 regulator-name = "vreg_s4e"; 223 regulator-min-microvolt = <970000>; 224 regulator-max-microvolt = <1520000>; 225 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 226 }; 227 228 vreg_s7e: smps7 { 229 regulator-name = "vreg_s7e"; 230 regulator-min-microvolt = <1010000>; 231 regulator-max-microvolt = <1170000>; 232 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 233 }; 234 235 vreg_s9e: smps9 { 236 regulator-name = "vreg_s9e"; 237 regulator-min-microvolt = <300000>; 238 regulator-max-microvolt = <570000>; 239 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 240 }; 241 242 vreg_l6e: ldo6 { 243 regulator-name = "vreg_l6e"; 244 regulator-min-microvolt = <1280000>; 245 regulator-max-microvolt = <1450000>; 246 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 247 regulator-allow-set-load; 248 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 249 RPMH_REGULATOR_MODE_HPM>; 250 }; 251 252 vreg_l8e: ldo8 { 253 regulator-name = "vreg_l8e"; 254 regulator-min-microvolt = <1800000>; 255 regulator-max-microvolt = <1950000>; 256 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 257 regulator-allow-set-load; 258 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 259 RPMH_REGULATOR_MODE_HPM>; 260 }; 261 }; 262}; 263 264ðernet0 { 265 phy-mode = "sgmii"; 266 phy-handle = <&sgmii_phy>; 267 268 pinctrl-0 = <ðernet0_default>; 269 pinctrl-names = "default"; 270 271 snps,mtl-rx-config = <&mtl_rx_setup>; 272 snps,mtl-tx-config = <&mtl_tx_setup>; 273 snps,ps-speed = <1000>; 274 275 status = "okay"; 276 277 mdio { 278 compatible = "snps,dwmac-mdio"; 279 #address-cells = <1>; 280 #size-cells = <0>; 281 282 reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>; 283 reset-delay-us = <11000>; 284 reset-post-delay-us = <70000>; 285 286 sgmii_phy: phy@8 { 287 reg = <0x8>; 288 device_type = "ethernet-phy"; 289 }; 290 }; 291 292 mtl_rx_setup: rx-queues-config { 293 snps,rx-queues-to-use = <4>; 294 snps,rx-sched-sp; 295 296 queue0 { 297 snps,dcb-algorithm; 298 snps,map-to-dma-channel = <0x0>; 299 snps,route-up; 300 snps,priority = <0x1>; 301 }; 302 303 queue1 { 304 snps,dcb-algorithm; 305 snps,map-to-dma-channel = <0x1>; 306 snps,route-ptp; 307 }; 308 309 queue2 { 310 snps,avb-algorithm; 311 snps,map-to-dma-channel = <0x2>; 312 snps,route-avcp; 313 }; 314 315 queue3 { 316 snps,avb-algorithm; 317 snps,map-to-dma-channel = <0x3>; 318 snps,priority = <0xc>; 319 }; 320 }; 321 322 mtl_tx_setup: tx-queues-config { 323 snps,tx-queues-to-use = <4>; 324 snps,tx-sched-sp; 325 326 queue0 { 327 snps,dcb-algorithm; 328 }; 329 330 queue1 { 331 snps,dcb-algorithm; 332 }; 333 334 queue2 { 335 snps,avb-algorithm; 336 snps,send_slope = <0x1000>; 337 snps,idle_slope = <0x1000>; 338 snps,high_credit = <0x3e800>; 339 snps,low_credit = <0xffc18000>; 340 }; 341 342 queue3 { 343 snps,avb-algorithm; 344 snps,send_slope = <0x1000>; 345 snps,idle_slope = <0x1000>; 346 snps,high_credit = <0x3e800>; 347 snps,low_credit = <0xffc18000>; 348 }; 349 }; 350}; 351 352&i2c11 { 353 clock-frequency = <400000>; 354 pinctrl-0 = <&qup_i2c11_default>; 355 pinctrl-names = "default"; 356 status = "okay"; 357}; 358 359&i2c18 { 360 clock-frequency = <400000>; 361 pinctrl-0 = <&qup_i2c18_default>; 362 pinctrl-names = "default"; 363 status = "okay"; 364}; 365 366&pmm8654au_0_gpios { 367 gpio-line-names = "DS_EN", 368 "POFF_COMPLETE", 369 "UFS0_VER_ID", 370 "FAST_POFF", 371 "DBU1_PON_DONE", 372 "AOSS_SLEEP", 373 "CAM_DES0_EN", 374 "CAM_DES1_EN", 375 "CAM_DES2_EN", 376 "CAM_DES3_EN", 377 "UEFI", 378 "ANALOG_PON_OPT"; 379}; 380 381&pmm8654au_1_gpios { 382 gpio-line-names = "PMIC_C_ID0", 383 "PMIC_C_ID1", 384 "UFS1_VER_ID", 385 "IPA_PWR", 386 "", 387 "WLAN_DBU4_EN", 388 "WLAN_EN", 389 "BT_EN", 390 "USB2_PWR_EN", 391 "USB2_FAULT"; 392 393 usb2_en_state: usb2-en-state { 394 pins = "gpio9"; 395 function = "normal"; 396 output-high; 397 power-source = <0>; 398 }; 399}; 400 401&pmm8654au_2_gpios { 402 gpio-line-names = "PMIC_E_ID0", 403 "PMIC_E_ID1", 404 "USB0_PWR_EN", 405 "USB0_FAULT", 406 "SENSOR_IRQ_1", 407 "SENSOR_IRQ_2", 408 "SENSOR_RST", 409 "SGMIIO0_RST", 410 "SGMIIO1_RST", 411 "USB1_PWR_ENABLE", 412 "USB1_FAULT", 413 "VMON_SPX8"; 414 415 usb0_en_state: usb0-en-state { 416 pins = "gpio3"; 417 function = "normal"; 418 output-high; 419 power-source = <0>; 420 }; 421 422 usb1_en_state: usb1-en-state { 423 pins = "gpio10"; 424 function = "normal"; 425 output-high; 426 power-source = <0>; 427 }; 428}; 429 430&pmm8654au_3_gpios { 431 gpio-line-names = "PMIC_G_ID0", 432 "PMIC_G_ID1", 433 "GNSS_RST", 434 "GNSS_EN", 435 "GNSS_BOOT_MODE"; 436}; 437 438&qupv3_id_1 { 439 status = "okay"; 440}; 441 442&qupv3_id_2 { 443 status = "okay"; 444}; 445 446&serdes0 { 447 phy-supply = <&vreg_l5a>; 448 status = "okay"; 449}; 450 451&sleep_clk { 452 clock-frequency = <32764>; 453}; 454 455&spi16 { 456 pinctrl-0 = <&qup_spi16_default>; 457 pinctrl-names = "default"; 458 status = "okay"; 459}; 460 461&tlmm { 462 ethernet0_default: ethernet0-default-state { 463 ethernet0_mdc: ethernet0-mdc-pins { 464 pins = "gpio8"; 465 function = "emac0_mdc"; 466 drive-strength = <16>; 467 bias-pull-up; 468 }; 469 470 ethernet0_mdio: ethernet0-mdio-pins { 471 pins = "gpio9"; 472 function = "emac0_mdio"; 473 drive-strength = <16>; 474 bias-pull-up; 475 }; 476 }; 477 478 qup_uart10_default: qup-uart10-state { 479 pins = "gpio46", "gpio47"; 480 function = "qup1_se3"; 481 }; 482 483 qup_spi16_default: qup-spi16-state { 484 pins = "gpio86", "gpio87", "gpio88", "gpio89"; 485 function = "qup2_se2"; 486 drive-strength = <6>; 487 bias-disable; 488 }; 489 490 qup_i2c11_default: qup-i2c11-state { 491 pins = "gpio48", "gpio49"; 492 function = "qup1_se4"; 493 drive-strength = <2>; 494 bias-pull-up; 495 }; 496 497 qup_i2c18_default: qup-i2c18-state { 498 pins = "gpio95", "gpio96"; 499 function = "qup2_se4"; 500 drive-strength = <2>; 501 bias-pull-up; 502 }; 503 504 qup_uart12_default: qup-uart12-state { 505 qup_uart12_cts: qup-uart12-cts-pins { 506 pins = "gpio52"; 507 function = "qup1_se5"; 508 bias-disable; 509 }; 510 511 qup_uart12_rts: qup-uart12-rts-pins { 512 pins = "gpio53"; 513 function = "qup1_se5"; 514 bias-pull-down; 515 }; 516 517 qup_uart12_tx: qup-uart12-tx-pins { 518 pins = "gpio54"; 519 function = "qup1_se5"; 520 bias-pull-up; 521 }; 522 523 qup_uart12_rx: qup-uart12-rx-pins { 524 pins = "gpio55"; 525 function = "qup1_se5"; 526 bias-pull-down; 527 }; 528 }; 529 530 qup_uart17_default: qup-uart17-state { 531 qup_uart17_cts: qup-uart17-cts-pins { 532 pins = "gpio91"; 533 function = "qup2_se3"; 534 bias-disable; 535 }; 536 537 qup_uart17_rts: qup0-uart17-rts-pins { 538 pins = "gpio92"; 539 function = "qup2_se3"; 540 bias-pull-down; 541 }; 542 543 qup_uart17_tx: qup0-uart17-tx-pins { 544 pins = "gpio93"; 545 function = "qup2_se3"; 546 bias-pull-up; 547 }; 548 549 qup_uart17_rx: qup0-uart17-rx-pins { 550 pins = "gpio94"; 551 function = "qup2_se3"; 552 bias-pull-down; 553 }; 554 }; 555}; 556 557&uart10 { 558 compatible = "qcom,geni-debug-uart"; 559 pinctrl-0 = <&qup_uart10_default>; 560 pinctrl-names = "default"; 561 status = "okay"; 562}; 563 564&uart12 { 565 pinctrl-0 = <&qup_uart12_default>; 566 pinctrl-names = "default"; 567 status = "okay"; 568}; 569 570&uart17 { 571 pinctrl-0 = <&qup_uart17_default>; 572 pinctrl-names = "default"; 573 status = "okay"; 574}; 575 576&ufs_mem_hc { 577 reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>; 578 vcc-supply = <&vreg_l8a>; 579 vcc-max-microamp = <1100000>; 580 vccq-supply = <&vreg_l4c>; 581 vccq-max-microamp = <1200000>; 582 583 status = "okay"; 584}; 585 586&ufs_mem_phy { 587 vdda-phy-supply = <&vreg_l4a>; 588 vdda-pll-supply = <&vreg_l1c>; 589 590 status = "okay"; 591}; 592 593&usb_0 { 594 pinctrl-names = "default"; 595 pinctrl-0 = <&usb0_en_state>; 596 597 status = "okay"; 598}; 599 600&usb_0_dwc3 { 601 dr_mode = "peripheral"; 602}; 603 604&usb_0_hsphy { 605 vdda-pll-supply = <&vreg_l7a>; 606 vdda18-supply = <&vreg_l6c>; 607 vdda33-supply = <&vreg_l9a>; 608 609 status = "okay"; 610}; 611 612&usb_0_qmpphy { 613 vdda-phy-supply = <&vreg_l1c>; 614 vdda-pll-supply = <&vreg_l7a>; 615 616 status = "okay"; 617}; 618 619&usb_1 { 620 pinctrl-names = "default"; 621 pinctrl-0 = <&usb1_en_state>; 622 623 status = "okay"; 624}; 625 626&usb_1_dwc3 { 627 dr_mode = "host"; 628}; 629 630&usb_1_hsphy { 631 vdda-pll-supply = <&vreg_l7a>; 632 vdda18-supply = <&vreg_l6c>; 633 vdda33-supply = <&vreg_l9a>; 634 635 status = "okay"; 636}; 637 638&usb_1_qmpphy { 639 vdda-phy-supply = <&vreg_l1c>; 640 vdda-pll-supply = <&vreg_l7a>; 641 642 status = "okay"; 643}; 644 645&usb_2 { 646 pinctrl-names = "default"; 647 pinctrl-0 = <&usb2_en_state>; 648 649 status = "okay"; 650}; 651 652&usb_2_dwc3 { 653 dr_mode = "host"; 654}; 655 656&usb_2_hsphy { 657 vdda-pll-supply = <&vreg_l7a>; 658 vdda18-supply = <&vreg_l6c>; 659 vdda33-supply = <&vreg_l9a>; 660 661 status = "okay"; 662}; 663 664&xo_board_clk { 665 clock-frequency = <38400000>; 666}; 667