1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * sc7280 IDP board device tree source (common between SKU1 and SKU2) 4 * 5 * Copyright (c) 2021, The Linux Foundation. All rights reserved. 6 */ 7 8#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h> 9#include <dt-bindings/input/linux-event-codes.h> 10#include "sc7280.dtsi" 11#include "pm7325.dtsi" 12#include "pm8350c.dtsi" 13#include "pmk8350.dtsi" 14 15#include "sc7280-chrome-common.dtsi" 16 17/ { 18 aliases { 19 bluetooth0 = &bluetooth; 20 serial1 = &uart7; 21 }; 22 23 gpio-keys { 24 compatible = "gpio-keys"; 25 label = "gpio-keys"; 26 27 pinctrl-names = "default"; 28 pinctrl-0 = <&key_vol_up_default>; 29 30 key-volume-up { 31 label = "volume_up"; 32 gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>; 33 linux,input-type = <1>; 34 linux,code = <KEY_VOLUMEUP>; 35 gpio-key,wakeup; 36 debounce-interval = <15>; 37 linux,can-disable; 38 }; 39 }; 40 41 nvme_3v3_regulator: nvme-3v3-regulator { 42 compatible = "regulator-fixed"; 43 regulator-name = "VLDO_3V3"; 44 45 regulator-min-microvolt = <3300000>; 46 regulator-max-microvolt = <3300000>; 47 48 enable-active-high; 49 pinctrl-names = "default"; 50 pinctrl-0 = <&nvme_pwren>; 51 }; 52}; 53 54&apps_rsc { 55 pm7325-regulators { 56 compatible = "qcom,pm7325-rpmh-regulators"; 57 qcom,pmic-id = "b"; 58 59 vreg_s1b_1p8: smps1 { 60 regulator-min-microvolt = <1856000>; 61 regulator-max-microvolt = <2040000>; 62 }; 63 64 vreg_s7b_0p9: smps7 { 65 regulator-min-microvolt = <535000>; 66 regulator-max-microvolt = <1120000>; 67 }; 68 69 vreg_s8b_1p2: smps8 { 70 regulator-min-microvolt = <1256000>; 71 regulator-max-microvolt = <1500000>; 72 }; 73 74 vreg_l1b_0p8: ldo1 { 75 regulator-min-microvolt = <825000>; 76 regulator-max-microvolt = <925000>; 77 }; 78 79 vreg_l2b_3p0: ldo2 { 80 regulator-min-microvolt = <2700000>; 81 regulator-max-microvolt = <3544000>; 82 }; 83 84 vreg_l6b_1p2: ldo6 { 85 regulator-min-microvolt = <1140000>; 86 regulator-max-microvolt = <1260000>; 87 }; 88 89 vreg_l7b_2p9: ldo7 { 90 regulator-min-microvolt = <2960000>; 91 regulator-max-microvolt = <2960000>; 92 }; 93 94 vreg_l8b_0p9: ldo8 { 95 regulator-min-microvolt = <870000>; 96 regulator-max-microvolt = <970000>; 97 }; 98 99 vreg_l9b_1p2: ldo9 { 100 regulator-min-microvolt = <1080000>; 101 regulator-max-microvolt = <1304000>; 102 }; 103 104 vreg_l11b_1p7: ldo11 { 105 regulator-min-microvolt = <1504000>; 106 regulator-max-microvolt = <2000000>; 107 }; 108 109 vreg_l12b_0p8: ldo12 { 110 regulator-min-microvolt = <751000>; 111 regulator-max-microvolt = <824000>; 112 }; 113 114 vreg_l13b_0p8: ldo13 { 115 regulator-min-microvolt = <530000>; 116 regulator-max-microvolt = <824000>; 117 }; 118 119 vreg_l14b_1p2: ldo14 { 120 regulator-min-microvolt = <1080000>; 121 regulator-max-microvolt = <1304000>; 122 }; 123 124 vreg_l15b_0p8: ldo15 { 125 regulator-min-microvolt = <765000>; 126 regulator-max-microvolt = <1020000>; 127 }; 128 129 vreg_l16b_1p2: ldo16 { 130 regulator-min-microvolt = <1100000>; 131 regulator-max-microvolt = <1300000>; 132 }; 133 134 vreg_l17b_1p8: ldo17 { 135 regulator-min-microvolt = <1700000>; 136 regulator-max-microvolt = <1900000>; 137 }; 138 139 vreg_l18b_1p8: ldo18 { 140 regulator-min-microvolt = <1800000>; 141 regulator-max-microvolt = <2000000>; 142 }; 143 144 vreg_l19b_1p8: ldo19 { 145 regulator-min-microvolt = <1800000>; 146 regulator-max-microvolt = <1800000>; 147 }; 148 }; 149 150 pm8350c-regulators { 151 compatible = "qcom,pm8350c-rpmh-regulators"; 152 qcom,pmic-id = "c"; 153 154 vreg_s1c_2p2: smps1 { 155 regulator-min-microvolt = <2190000>; 156 regulator-max-microvolt = <2210000>; 157 }; 158 159 vreg_s9c_1p0: smps9 { 160 regulator-min-microvolt = <1010000>; 161 regulator-max-microvolt = <1170000>; 162 }; 163 164 vreg_l1c_1p8: ldo1 { 165 regulator-min-microvolt = <1800000>; 166 regulator-max-microvolt = <1980000>; 167 }; 168 169 vreg_l2c_1p8: ldo2 { 170 regulator-min-microvolt = <1620000>; 171 regulator-max-microvolt = <1980000>; 172 }; 173 174 vreg_l3c_3p0: ldo3 { 175 regulator-min-microvolt = <2800000>; 176 regulator-max-microvolt = <3540000>; 177 }; 178 179 vreg_l4c_1p8: ldo4 { 180 regulator-min-microvolt = <1620000>; 181 regulator-max-microvolt = <3300000>; 182 }; 183 184 vreg_l5c_1p8: ldo5 { 185 regulator-min-microvolt = <1620000>; 186 regulator-max-microvolt = <3300000>; 187 }; 188 189 vreg_l6c_2p9: ldo6 { 190 regulator-min-microvolt = <1800000>; 191 regulator-max-microvolt = <2950000>; 192 }; 193 194 vreg_l7c_3p0: ldo7 { 195 regulator-min-microvolt = <3000000>; 196 regulator-max-microvolt = <3544000>; 197 }; 198 199 vreg_l8c_1p8: ldo8 { 200 regulator-min-microvolt = <1620000>; 201 regulator-max-microvolt = <2000000>; 202 }; 203 204 vreg_l9c_2p9: ldo9 { 205 regulator-min-microvolt = <2960000>; 206 regulator-max-microvolt = <2960000>; 207 }; 208 209 vreg_l10c_0p8: ldo10 { 210 regulator-min-microvolt = <720000>; 211 regulator-max-microvolt = <1050000>; 212 }; 213 214 vreg_l11c_2p8: ldo11 { 215 regulator-min-microvolt = <2800000>; 216 regulator-max-microvolt = <3544000>; 217 }; 218 219 vreg_l12c_1p8: ldo12 { 220 regulator-min-microvolt = <1650000>; 221 regulator-max-microvolt = <2000000>; 222 }; 223 224 vreg_l13c_3p0: ldo13 { 225 regulator-min-microvolt = <2700000>; 226 regulator-max-microvolt = <3544000>; 227 }; 228 229 vreg_bob: bob { 230 regulator-min-microvolt = <3008000>; 231 regulator-max-microvolt = <3960000>; 232 }; 233 }; 234}; 235 236&gpi_dma0 { 237 status = "okay"; 238}; 239 240&gpi_dma1 { 241 status = "okay"; 242}; 243 244&ipa { 245 status = "okay"; 246 modem-init; 247}; 248 249&pcie1 { 250 status = "okay"; 251 perst-gpio = <&tlmm 2 GPIO_ACTIVE_LOW>; 252 253 vddpe-3v3-supply = <&nvme_3v3_regulator>; 254 255 pinctrl-names = "default"; 256 pinctrl-0 = <&pcie1_reset_n>, <&pcie1_wake_n>; 257}; 258 259&pcie1_phy { 260 status = "okay"; 261 262 vdda-phy-supply = <&vreg_l10c_0p8>; 263 vdda-pll-supply = <&vreg_l6b_1p2>; 264}; 265 266&pmk8350_vadc { 267 pmk8350_die_temp { 268 reg = <PMK8350_ADC7_DIE_TEMP>; 269 label = "pmk8350_die_temp"; 270 qcom,pre-scaling = <1 1>; 271 }; 272}; 273 274&qfprom { 275 vcc-supply = <&vreg_l1c_1p8>; 276}; 277 278&qupv3_id_0 { 279 status = "okay"; 280}; 281 282&qupv3_id_1 { 283 status = "okay"; 284}; 285 286&sdhc_1 { 287 status = "okay"; 288 289 non-removable; 290 no-sd; 291 no-sdio; 292 293 vmmc-supply = <&vreg_l7b_2p9>; 294 vqmmc-supply = <&vreg_l19b_1p8>; 295}; 296 297&sdhc_2 { 298 status = "okay"; 299 300 pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>, <&sd_cd>; 301 pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>, <&sd_cd>; 302 303 vmmc-supply = <&vreg_l9c_2p9>; 304 vqmmc-supply = <&vreg_l6c_2p9>; 305 306 cd-gpios = <&tlmm 91 GPIO_ACTIVE_LOW>; 307}; 308 309&uart5 { 310 compatible = "qcom,geni-debug-uart"; 311 status = "okay"; 312}; 313 314&usb_1 { 315 status = "okay"; 316}; 317 318&usb_1_dwc3 { 319 dr_mode = "host"; 320}; 321 322&usb_1_hsphy { 323 status = "okay"; 324 325 vdda-pll-supply = <&vreg_l10c_0p8>; 326 vdda33-supply = <&vreg_l2b_3p0>; 327 vdda18-supply = <&vreg_l1c_1p8>; 328}; 329 330&usb_1_qmpphy { 331 status = "okay"; 332 333 vdda-phy-supply = <&vreg_l6b_1p2>; 334 vdda-pll-supply = <&vreg_l1b_0p8>; 335}; 336 337&uart7 { 338 status = "okay"; 339 340 /delete-property/interrupts; 341 interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>, 342 <&tlmm 31 IRQ_TYPE_EDGE_FALLING>; 343 pinctrl-names = "default", "sleep"; 344 pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>; 345 346 bluetooth: bluetooth { 347 compatible = "qcom,wcn6750-bt"; 348 pinctrl-names = "default"; 349 pinctrl-0 = <&bt_en>, <&sw_ctrl>; 350 enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>; 351 swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>; 352 vddaon-supply = <&vreg_s7b_0p9>; 353 vddbtcxmx-supply = <&vreg_s7b_0p9>; 354 vddrfacmn-supply = <&vreg_s7b_0p9>; 355 vddrfa0p8-supply = <&vreg_s7b_0p9>; 356 vddrfa1p7-supply = <&vreg_s1b_1p8>; 357 vddrfa1p2-supply = <&vreg_s8b_1p2>; 358 vddrfa2p2-supply = <&vreg_s1c_2p2>; 359 vddasd-supply = <&vreg_l11c_2p8>; 360 max-speed = <3200000>; 361 }; 362}; 363 364/* PINCTRL - additions to nodes defined in sc7280.dtsi */ 365 366&dp_hot_plug_det { 367 bias-disable; 368}; 369 370&lpass_dmic01_clk { 371 drive-strength = <8>; 372 bias-disable; 373}; 374 375&lpass_dmic01_clk_sleep { 376 drive-strength = <2>; 377}; 378 379&lpass_dmic01_data { 380 bias-pull-down; 381}; 382 383&lpass_dmic23_clk { 384 drive-strength = <8>; 385 bias-disable; 386}; 387 388&lpass_dmic23_clk_sleep { 389 drive-strength = <2>; 390}; 391 392&lpass_dmic23_data { 393 bias-pull-down; 394}; 395 396&lpass_rx_swr_clk { 397 drive-strength = <2>; 398 slew-rate = <1>; 399 bias-disable; 400}; 401 402&lpass_rx_swr_clk_sleep { 403 bias-pull-down; 404}; 405 406&lpass_rx_swr_data { 407 drive-strength = <2>; 408 slew-rate = <1>; 409 bias-bus-hold; 410}; 411 412&lpass_rx_swr_data_sleep { 413 bias-pull-down; 414}; 415 416&lpass_tx_swr_clk { 417 drive-strength = <2>; 418 slew-rate = <1>; 419 bias-disable; 420}; 421 422&lpass_tx_swr_clk_sleep { 423 bias-pull-down; 424}; 425 426&lpass_tx_swr_data { 427 drive-strength = <2>; 428 slew-rate = <1>; 429 bias-bus-hold; 430}; 431 432&mi2s1_data0 { 433 drive-strength = <6>; 434 bias-disable; 435}; 436 437&mi2s1_sclk { 438 drive-strength = <6>; 439 bias-disable; 440}; 441 442&mi2s1_ws { 443 drive-strength = <6>; 444}; 445 446&pm7325_gpios { 447 key_vol_up_default: key-vol-up-state { 448 pins = "gpio6"; 449 function = "normal"; 450 input-enable; 451 bias-pull-up; 452 power-source = <0>; 453 qcom,drive-strength = <3>; 454 }; 455}; 456 457&pcie1_clkreq_n { 458 bias-pull-up; 459 drive-strength = <2>; 460}; 461 462&qspi_cs0 { 463 bias-disable; 464}; 465 466&qspi_clk { 467 bias-disable; 468}; 469 470&qspi_data01 { 471 /* High-Z when no transfers; nice to park the lines */ 472 bias-pull-up; 473}; 474 475&qup_uart5_tx { 476 drive-strength = <2>; 477 bias-disable; 478}; 479 480&qup_uart5_rx { 481 drive-strength = <2>; 482 bias-pull-up; 483}; 484 485&qup_uart7_cts { 486 /* 487 * Configure a bias-bus-hold on CTS to lower power 488 * usage when Bluetooth is turned off. Bus hold will 489 * maintain a low power state regardless of whether 490 * the Bluetooth module drives the pin in either 491 * direction or leaves the pin fully unpowered. 492 */ 493 bias-bus-hold; 494}; 495 496&qup_uart7_rts { 497 /* We'll drive RTS, so no pull */ 498 drive-strength = <2>; 499 bias-disable; 500}; 501 502&qup_uart7_tx { 503 /* We'll drive TX, so no pull */ 504 drive-strength = <2>; 505 bias-disable; 506}; 507 508&qup_uart7_rx { 509 /* 510 * Configure a pull-up on RX. This is needed to avoid 511 * garbage data when the TX pin of the Bluetooth module is 512 * in tri-state (module powered off or not driving the 513 * signal yet). 514 */ 515 bias-pull-up; 516}; 517 518&sdc1_clk { 519 bias-disable; 520 drive-strength = <16>; 521}; 522 523&sdc1_cmd { 524 bias-pull-up; 525 drive-strength = <10>; 526}; 527 528&sdc1_data { 529 bias-pull-up; 530 drive-strength = <10>; 531}; 532 533&sdc1_rclk { 534 bias-pull-down; 535}; 536 537&sdc2_clk { 538 bias-disable; 539 drive-strength = <16>; 540}; 541 542&sdc2_cmd { 543 bias-pull-up; 544 drive-strength = <10>; 545}; 546 547&sdc2_data { 548 bias-pull-up; 549 drive-strength = <10>; 550}; 551 552&tlmm { 553 bt_en: bt-en { 554 pins = "gpio85"; 555 function = "gpio"; 556 output-low; 557 bias-disable; 558 }; 559 560 nvme_pwren: nvme-pwren { 561 function = "gpio"; 562 }; 563 564 pcie1_reset_n: pcie1-reset-n { 565 pins = "gpio2"; 566 function = "gpio"; 567 568 drive-strength = <16>; 569 output-low; 570 bias-disable; 571 }; 572 573 pcie1_wake_n: pcie1-wake-n { 574 pins = "gpio3"; 575 function = "gpio"; 576 577 drive-strength = <2>; 578 bias-pull-up; 579 }; 580 581 qup_uart7_sleep_cts: qup-uart7-sleep-cts { 582 pins = "gpio28"; 583 function = "gpio"; 584 /* 585 * Configure a bias-bus-hold on CTS to lower power 586 * usage when Bluetooth is turned off. Bus hold will 587 * maintain a low power state regardless of whether 588 * the Bluetooth module drives the pin in either 589 * direction or leaves the pin fully unpowered. 590 */ 591 bias-bus-hold; 592 }; 593 594 qup_uart7_sleep_rts: qup-uart7-sleep-rts { 595 pins = "gpio29"; 596 function = "gpio"; 597 /* 598 * Configure pull-down on RTS. As RTS is active low 599 * signal, pull it low to indicate the BT SoC that it 600 * can wakeup the system anytime from suspend state by 601 * pulling RX low (by sending wakeup bytes). 602 */ 603 bias-pull-down; 604 }; 605 606 qup_uart7_sleep_tx: qup-uart7-sleep-tx { 607 pins = "gpio30"; 608 function = "gpio"; 609 /* 610 * Configure pull-up on TX when it isn't actively driven 611 * to prevent BT SoC from receiving garbage during sleep. 612 */ 613 bias-pull-up; 614 }; 615 616 qup_uart7_sleep_rx: qup-uart7-sleep-rx { 617 pins = "gpio31"; 618 function = "gpio"; 619 /* 620 * Configure a pull-up on RX. This is needed to avoid 621 * garbage data when the TX pin of the Bluetooth module 622 * is floating which may cause spurious wakeups. 623 */ 624 bias-pull-up; 625 }; 626 627 sd_cd: sd-cd { 628 pins = "gpio91"; 629 function = "gpio"; 630 bias-pull-up; 631 }; 632 633 sw_ctrl: sw-ctrl { 634 pins = "gpio86"; 635 function = "gpio"; 636 bias-pull-down; 637 }; 638}; 639