1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 4 */ 5/dts-v1/; 6 7#include <dt-bindings/gpio/gpio.h> 8#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 9#include "talos.dtsi" 10#include "pm8150.dtsi" 11/ { 12 aliases { 13 i2c1 = &i2c1; 14 i2c5 = &i2c5; 15 mmc0 = &sdhc_1; 16 serial0 = &uart0; 17 serial1 = &uart7; 18 spi6 = &spi6; 19 }; 20 21 chosen { 22 stdout-path = "serial0:115200n8"; 23 }; 24 25 clocks { 26 can_osc: can-oscillator { 27 compatible = "fixed-clock"; 28 clock-frequency = <20000000>; 29 #clock-cells = <0>; 30 }; 31 32 sleep_clk: sleep-clk { 33 compatible = "fixed-clock"; 34 clock-frequency = <32764>; 35 #clock-cells = <0>; 36 }; 37 38 xo_board_clk: xo-board-clk { 39 compatible = "fixed-clock"; 40 clock-frequency = <38400000>; 41 #clock-cells = <0>; 42 }; 43 }; 44 45 vreg_conn_1p8: regulator-conn-1p8 { 46 compatible = "regulator-fixed"; 47 regulator-name = "vreg_conn_1p8"; 48 startup-delay-us = <4000>; 49 enable-active-high; 50 gpio = <&pm8150_gpios 1 GPIO_ACTIVE_HIGH>; 51 }; 52 53 vreg_conn_pa: regulator-conn-pa { 54 compatible = "regulator-fixed"; 55 regulator-name = "vreg_conn_pa"; 56 startup-delay-us = <4000>; 57 enable-active-high; 58 gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>; 59 }; 60 61 regulator-usb2-vbus { 62 compatible = "regulator-fixed"; 63 regulator-name = "USB2_VBUS"; 64 gpio = <&pm8150_gpios 10 GPIO_ACTIVE_HIGH>; 65 pinctrl-0 = <&usb2_en>; 66 pinctrl-names = "default"; 67 enable-active-high; 68 regulator-always-on; 69 }; 70 71 vreg_v3p3_can: regulator-v3p3-can { 72 compatible = "regulator-fixed"; 73 regulator-name = "vreg-v3p3-can"; 74 regulator-min-microvolt = <3300000>; 75 regulator-max-microvolt = <3300000>; 76 regulator-boot-on; 77 regulator-always-on; 78 }; 79 80 vreg_v5p0_can: regulator-v5p0-can { 81 compatible = "regulator-fixed"; 82 regulator-name = "vreg-v5p0-can"; 83 regulator-min-microvolt = <5000000>; 84 regulator-max-microvolt = <5000000>; 85 regulator-boot-on; 86 regulator-always-on; 87 }; 88 89 wcn6855-pmu { 90 compatible = "qcom,wcn6855-pmu"; 91 92 pinctrl-0 = <&bt_en_state>, <&wlan_en_state>; 93 pinctrl-names = "default"; 94 95 bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>; 96 wlan-enable-gpios = <&tlmm 84 GPIO_ACTIVE_HIGH>; 97 98 vddio-supply = <&vreg_conn_pa>; 99 vddaon-supply = <&vreg_s5a>; 100 vddpmu-supply = <&vreg_conn_1p8>; 101 vddpmumx-supply = <&vreg_conn_1p8>; 102 vddpmucx-supply = <&vreg_conn_pa>; 103 vddrfa0p95-supply = <&vreg_s5a>; 104 vddrfa1p3-supply = <&vreg_s6a>; 105 vddrfa1p9-supply = <&vreg_l15a>; 106 vddpcie1p3-supply = <&vreg_s6a>; 107 vddpcie1p9-supply = <&vreg_l15a>; 108 109 regulators { 110 vreg_pmu_rfa_cmn: ldo0 { 111 regulator-name = "vreg_pmu_rfa_cmn"; 112 }; 113 114 vreg_pmu_aon_0p59: ldo1 { 115 regulator-name = "vreg_pmu_aon_0p59"; 116 }; 117 118 vreg_pmu_wlcx_0p8: ldo2 { 119 regulator-name = "vreg_pmu_wlcx_0p8"; 120 }; 121 122 vreg_pmu_wlmx_0p85: ldo3 { 123 regulator-name = "vreg_pmu_wlmx_0p85"; 124 }; 125 126 vreg_pmu_btcmx_0p85: ldo4 { 127 regulator-name = "vreg_pmu_btcmx_0p85"; 128 }; 129 130 vreg_pmu_rfa_0p8: ldo5 { 131 regulator-name = "vreg_pmu_rfa_0p8"; 132 }; 133 134 vreg_pmu_rfa_1p2: ldo6 { 135 regulator-name = "vreg_pmu_rfa_1p2"; 136 }; 137 138 vreg_pmu_rfa_1p7: ldo7 { 139 regulator-name = "vreg_pmu_rfa_1p7"; 140 }; 141 142 vreg_pmu_pcie_0p9: ldo8 { 143 regulator-name = "vreg_pmu_pcie_0p9"; 144 }; 145 146 vreg_pmu_pcie_1p8: ldo9 { 147 regulator-name = "vreg_pmu_pcie_1p8"; 148 }; 149 }; 150 }; 151}; 152 153&apps_rsc { 154 regulators-0 { 155 compatible = "qcom,pm8150-rpmh-regulators"; 156 qcom,pmic-id = "a"; 157 158 vreg_s3a: smps3 { 159 regulator-name = "vreg_s3a"; 160 regulator-min-microvolt = <600000>; 161 regulator-max-microvolt = <650000>; 162 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 163 }; 164 165 vreg_s4a: smps4 { 166 regulator-name = "vreg_s4a"; 167 regulator-min-microvolt = <1800000>; 168 regulator-max-microvolt = <1829000>; 169 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 170 }; 171 172 vreg_s5a: smps5 { 173 regulator-name = "vreg_s5a"; 174 regulator-min-microvolt = <1896000>; 175 regulator-max-microvolt = <2040000>; 176 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 177 }; 178 179 vreg_s6a: smps6 { 180 regulator-name = "vreg_s6a"; 181 regulator-min-microvolt = <1304000>; 182 regulator-max-microvolt = <1404000>; 183 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 184 }; 185 186 vreg_l1a: ldo1 { 187 regulator-name = "vreg_l1a"; 188 regulator-min-microvolt = <488000>; 189 regulator-max-microvolt = <852000>; 190 regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; 191 regulator-allow-set-load; 192 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 193 RPMH_REGULATOR_MODE_HPM>; 194 }; 195 196 vreg_l2a: ldo2 { 197 regulator-name = "vreg_l2a"; 198 regulator-min-microvolt = <1650000>; 199 regulator-max-microvolt = <3100000>; 200 regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; 201 regulator-allow-set-load; 202 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 203 RPMH_REGULATOR_MODE_HPM>; 204 }; 205 206 vreg_l3a: ldo3 { 207 regulator-name = "vreg_l3a"; 208 regulator-min-microvolt = <1000000>; 209 regulator-max-microvolt = <1248000>; 210 regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; 211 regulator-allow-set-load; 212 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 213 RPMH_REGULATOR_MODE_HPM>; 214 }; 215 216 vreg_l5a: ldo5 { 217 regulator-name = "vreg_l5a"; 218 regulator-min-microvolt = <875000>; 219 regulator-max-microvolt = <975000>; 220 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 221 regulator-allow-set-load; 222 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 223 RPMH_REGULATOR_MODE_HPM>; 224 }; 225 226 vreg_l7a: ldo7 { 227 regulator-name = "vreg_l7a"; 228 regulator-min-microvolt = <1800000>; 229 regulator-max-microvolt = <1900000>; 230 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 231 regulator-allow-set-load; 232 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 233 RPMH_REGULATOR_MODE_HPM>; 234 }; 235 236 vreg_l8a: ldo8 { 237 regulator-name = "vreg_l8a"; 238 regulator-min-microvolt = <1150000>; 239 regulator-max-microvolt = <1350000>; 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_l10a: ldo10 { 247 regulator-name = "vreg_l10a"; 248 regulator-min-microvolt = <2950000>; 249 regulator-max-microvolt = <3312000>; 250 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 251 regulator-allow-set-load; 252 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 253 RPMH_REGULATOR_MODE_HPM>; 254 }; 255 256 vreg_l11a: ldo11 { 257 regulator-name = "vreg_l11a"; 258 regulator-min-microvolt = <1232000>; 259 regulator-max-microvolt = <1260000>; 260 regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; 261 regulator-allow-set-load; 262 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 263 RPMH_REGULATOR_MODE_HPM>; 264 }; 265 266 vreg_l12a: ldo12 { 267 regulator-name = "vreg_l12a"; 268 regulator-min-microvolt = <1800000>; 269 regulator-max-microvolt = <1890000>; 270 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 271 }; 272 273 vreg_l13a: ldo13 { 274 regulator-name = "vreg_l13a"; 275 regulator-min-microvolt = <3000000>; 276 regulator-max-microvolt = <3230000>; 277 regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; 278 regulator-allow-set-load; 279 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 280 RPMH_REGULATOR_MODE_HPM>; 281 }; 282 283 vreg_l15a: ldo15 { 284 regulator-name = "vreg_l15a"; 285 regulator-min-microvolt = <1800000>; 286 regulator-max-microvolt = <1904000>; 287 regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; 288 regulator-allow-set-load; 289 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 290 RPMH_REGULATOR_MODE_HPM>; 291 }; 292 293 vreg_l16a: ldo16 { 294 regulator-name = "vreg_l16a"; 295 regulator-min-microvolt = <3000000>; 296 regulator-max-microvolt = <3312000>; 297 regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; 298 regulator-allow-set-load; 299 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 300 RPMH_REGULATOR_MODE_HPM>; 301 }; 302 303 vreg_l17a: ldo17 { 304 regulator-name = "vreg_l17a"; 305 regulator-min-microvolt = <2950000>; 306 regulator-max-microvolt = <3312000>; 307 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 308 }; 309 }; 310}; 311 312&gpi_dma0 { 313 status = "okay"; 314}; 315 316&gpi_dma1 { 317 status = "okay"; 318}; 319 320&i2c5 { 321 clock-frequency = <400000>; 322 status = "okay"; 323 324 eeprom@57 { 325 compatible = "atmel,24c02"; 326 reg = <0x57>; 327 pagesize = <16>; 328 }; 329 330 eeprom@5f { 331 compatible = "atmel,24mac602"; 332 reg = <0x5f>; 333 pagesize = <16>; 334 }; 335}; 336 337&mdss { 338 status = "okay"; 339}; 340 341&mdss_dp0 { 342 status = "okay"; 343}; 344 345&mdss_dp0_out { 346 link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>; 347 remote-endpoint = <&dp0_connector_in>; 348}; 349 350&mdss_dsi0 { 351 vdda-supply = <&vreg_l11a>; 352 status = "okay"; 353}; 354 355&mdss_dsi0_phy { 356 vcca-supply = <&vreg_l5a>; 357 status = "okay"; 358}; 359 360&pcie { 361 perst-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>; 362 wake-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH>; 363 364 pinctrl-0 = <&pcie_default_state>; 365 pinctrl-names = "default"; 366 367 status = "okay"; 368}; 369 370&pcie_phy { 371 vdda-phy-supply = <&vreg_l5a>; 372 vdda-pll-supply = <&vreg_l12a>; 373 374 status = "okay"; 375}; 376 377&pcie_port0 { 378 wifi@0 { 379 compatible = "pci17cb,1103"; 380 reg = <0x10000 0x0 0x0 0x0 0x0>; 381 382 qcom,calibration-variant = "QC_QCS615_Ride"; 383 384 vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; 385 vddaon-supply = <&vreg_pmu_aon_0p59>; 386 vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; 387 vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; 388 vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; 389 vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; 390 vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; 391 vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>; 392 vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>; 393 }; 394}; 395 396&pm8150_gpios { 397 usb2_en: usb2-en-state { 398 pins = "gpio10"; 399 function = "normal"; 400 output-enable; 401 power-source = <0>; 402 }; 403}; 404 405&qupv3_id_0 { 406 status = "okay"; 407}; 408 409&qupv3_id_1 { 410 status = "okay"; 411}; 412 413&remoteproc_adsp { 414 firmware-name = "qcom/qcs615/adsp.mbn"; 415 416 status = "okay"; 417}; 418 419&remoteproc_cdsp { 420 firmware-name = "qcom/qcs615/cdsp.mbn"; 421 422 status = "okay"; 423}; 424 425&sdhc_1 { 426 pinctrl-0 = <&sdc1_state_on>; 427 pinctrl-1 = <&sdc1_state_off>; 428 pinctrl-names = "default", "sleep"; 429 430 bus-width = <8>; 431 mmc-ddr-1_8v; 432 mmc-hs200-1_8v; 433 mmc-hs400-1_8v; 434 mmc-hs400-enhanced-strobe; 435 vmmc-supply = <&vreg_l17a>; 436 vqmmc-supply = <&vreg_s4a>; 437 438 non-removable; 439 no-sd; 440 no-sdio; 441 442 status = "okay"; 443}; 444 445&spi6 { 446 status = "okay"; 447 448 can@0 { 449 compatible = "microchip,mcp2515"; 450 reg = <0>; 451 clocks = <&can_osc>; 452 interrupts-extended = <&tlmm 87 IRQ_TYPE_LEVEL_LOW>; 453 spi-max-frequency = <10000000>; 454 vdd-supply = <&vreg_v3p3_can>; 455 xceiver-supply = <&vreg_v5p0_can>; 456 }; 457}; 458 459&tlmm { 460 bt_en_state: bt-en-state { 461 pins = "gpio85"; 462 function = "gpio"; 463 bias-pull-down; 464 }; 465 466 cam1_reset_default: cam1-reset-default-state { 467 pins = "gpio29"; 468 function = "gpio"; 469 drive-strength = <2>; 470 bias-disable; 471 }; 472 473 pcie_default_state: pcie-default-state { 474 clkreq-pins { 475 pins = "gpio90"; 476 function = "pcie_clk_req"; 477 drive-strength = <2>; 478 bias-pull-up; 479 }; 480 481 perst-pins { 482 pins = "gpio89"; 483 function = "gpio"; 484 drive-strength = <2>; 485 bias-pull-down; 486 }; 487 488 wake-pins { 489 pins = "gpio100"; 490 function = "gpio"; 491 drive-strength = <2>; 492 bias-pull-up; 493 }; 494 }; 495 496 wifi_reg_en_pins_state: wifi-reg-en-pins-state { 497 pins = "gpio91"; 498 function = "gpio"; 499 drive-strength = <8>; 500 output-high; 501 bias-pull-up; 502 }; 503 504 wlan_en_state: wlan-en-state { 505 pins = "gpio84"; 506 function = "gpio"; 507 drive-strength = <16>; 508 bias-pull-up; 509 }; 510}; 511 512&uart0 { 513 status = "okay"; 514}; 515 516&uart7 { 517 status = "okay"; 518 519 bluetooth { 520 compatible = "qcom,wcn6855-bt"; 521 firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv"; 522 523 vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; 524 vddaon-supply = <&vreg_pmu_aon_0p59>; 525 vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; 526 vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; 527 vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>; 528 vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; 529 vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; 530 vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; 531 }; 532}; 533 534/* 535 * USB0 routing and EDL mode: 536 * 537 * The USB0 controller’s HS differential pair is switched (manually) 538 * between the Micro-USB port for EDL/ADB and the on-board USB 3.0 hub. 539 * 540 * During EDL (Emergency Download) mode, the HS lines are explicitly 541 * routed to the Micro-USB port to allow the SoC to enter device mode 542 * for flashing. 543 * 544 * After EDL the switch is normally toggled so the HS lines stay 545 * connected to the hub’s Type-A downstream ports, leaving no electrical 546 * path to the Micro-USB connector — therefore USB0 runs host-only in 547 * normal runtime and device mode must not be advertised. 548 * 549 * USB0 is configured host-only in the base device tree; a separate 550 * device-tree overlay enables the Micro-USB peripheral configuration for 551 * ADB. For ADB to work during normal runtime the DIP switch SW1 must be 552 * manually toggled to the off position (reconnecting the HS pair to the 553 * Micro-USB port). 554 */ 555 556&usb_1 { 557 dr_mode = "host"; 558 559 status = "okay"; 560}; 561 562&usb_1_hsphy { 563 vdd-supply = <&vreg_l5a>; 564 vdda-pll-supply = <&vreg_l12a>; 565 vdda-phy-dpdm-supply = <&vreg_l13a>; 566 567 status = "okay"; 568}; 569 570&usb_2 { 571 dr_mode = "host"; 572 573 status = "okay"; 574}; 575 576&usb_2_hsphy { 577 vdd-supply = <&vreg_l5a>; 578 vdda-pll-supply = <&vreg_l12a>; 579 vdda-phy-dpdm-supply = <&vreg_l13a>; 580 581 status = "okay"; 582}; 583 584&usb_qmpphy { 585 vdda-phy-supply = <&vreg_l5a>; 586 vdda-pll-supply = <&vreg_l12a>; 587 588 status = "okay"; 589}; 590 591&usb_qmpphy_2 { 592 vdda-phy-supply = <&vreg_l11a>; 593 vdda-pll-supply = <&vreg_l5a>; 594 595 status = "okay"; 596}; 597 598&ufs_mem_hc { 599 reset-gpios = <&tlmm 123 GPIO_ACTIVE_LOW>; 600 vcc-supply = <&vreg_l17a>; 601 vcc-max-microamp = <600000>; 602 vccq2-supply = <&vreg_s4a>; 603 vccq2-max-microamp = <600000>; 604 605 status = "okay"; 606}; 607 608&ufs_mem_phy { 609 vdda-phy-supply = <&vreg_l5a>; 610 vdda-pll-supply = <&vreg_l12a>; 611 612 status = "okay"; 613}; 614 615&venus { 616 status = "okay"; 617}; 618