1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (c) 2019, Linaro Ltd. 4 */ 5 6/dts-v1/; 7 8#include <dt-bindings/gpio/gpio.h> 9#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 10#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 11#include "sdm845.dtsi" 12#include "pm8998.dtsi" 13#include "pmi8998.dtsi" 14 15/ { 16 model = "Thundercomm Dragonboard 845c"; 17 compatible = "thundercomm,db845c", "qcom,sdm845"; 18 19 aliases { 20 serial0 = &uart9; 21 hsuart0 = &uart6; 22 }; 23 24 chosen { 25 stdout-path = "serial0:115200n8"; 26 }; 27 28 dc12v: dc12v-regulator { 29 compatible = "regulator-fixed"; 30 regulator-name = "DC12V"; 31 regulator-min-microvolt = <12000000>; 32 regulator-max-microvolt = <12000000>; 33 regulator-always-on; 34 }; 35 36 gpio_keys { 37 compatible = "gpio-keys"; 38 autorepeat; 39 40 pinctrl-names = "default"; 41 pinctrl-0 = <&vol_up_pin_a>; 42 43 vol-up { 44 label = "Volume Up"; 45 linux,code = <KEY_VOLUMEUP>; 46 gpios = <&pm8998_gpio 6 GPIO_ACTIVE_LOW>; 47 }; 48 }; 49 50 leds { 51 compatible = "gpio-leds"; 52 53 user4 { 54 label = "green:user4"; 55 gpios = <&pm8998_gpio 13 GPIO_ACTIVE_HIGH>; 56 linux,default-trigger = "panic-indicator"; 57 default-state = "off"; 58 }; 59 60 wlan { 61 label = "yellow:wlan"; 62 gpios = <&pm8998_gpio 9 GPIO_ACTIVE_HIGH>; 63 linux,default-trigger = "phy0tx"; 64 default-state = "off"; 65 }; 66 67 bt { 68 label = "blue:bt"; 69 gpios = <&pm8998_gpio 5 GPIO_ACTIVE_HIGH>; 70 linux,default-trigger = "bluetooth-power"; 71 default-state = "off"; 72 }; 73 }; 74 75 lt9611_1v8: lt9611-vdd18-regulator { 76 compatible = "regulator-fixed"; 77 regulator-name = "LT9611_1V8"; 78 79 vin-supply = <&vdc_5v>; 80 regulator-min-microvolt = <1800000>; 81 regulator-max-microvolt = <1800000>; 82 83 gpio = <&tlmm 89 GPIO_ACTIVE_HIGH>; 84 enable-active-high; 85 }; 86 87 lt9611_3v3: lt9611-3v3 { 88 compatible = "regulator-fixed"; 89 regulator-name = "LT9611_3V3"; 90 91 vin-supply = <&vdc_3v3>; 92 regulator-min-microvolt = <3300000>; 93 regulator-max-microvolt = <3300000>; 94 95 // TODO: make it possible to drive same GPIO from two clients 96 // gpio = <&tlmm 89 GPIO_ACTIVE_HIGH>; 97 // enable-active-high; 98 }; 99 100 pcie0_1p05v: pcie-0-1p05v-regulator { 101 compatible = "regulator-fixed"; 102 regulator-name = "PCIE0_1.05V"; 103 104 vin-supply = <&vbat>; 105 regulator-min-microvolt = <1050000>; 106 regulator-max-microvolt = <1050000>; 107 108 // TODO: make it possible to drive same GPIO from two clients 109 // gpio = <&tlmm 90 GPIO_ACTIVE_HIGH>; 110 // enable-active-high; 111 }; 112 113 pcie0_3p3v_dual: vldo-3v3-regulator { 114 compatible = "regulator-fixed"; 115 regulator-name = "VLDO_3V3"; 116 117 vin-supply = <&vbat>; 118 regulator-min-microvolt = <3300000>; 119 regulator-max-microvolt = <3300000>; 120 121 gpio = <&tlmm 90 GPIO_ACTIVE_HIGH>; 122 enable-active-high; 123 124 pinctrl-names = "default"; 125 pinctrl-0 = <&pcie0_pwren_state>; 126 }; 127 128 v5p0_hdmiout: v5p0-hdmiout-regulator { 129 compatible = "regulator-fixed"; 130 regulator-name = "V5P0_HDMIOUT"; 131 132 vin-supply = <&vdc_5v>; 133 regulator-min-microvolt = <500000>; 134 regulator-max-microvolt = <500000>; 135 136 // TODO: make it possible to drive same GPIO from two clients 137 // gpio = <&tlmm 89 GPIO_ACTIVE_HIGH>; 138 // enable-active-high; 139 }; 140 141 vbat: vbat-regulator { 142 compatible = "regulator-fixed"; 143 regulator-name = "VBAT"; 144 145 vin-supply = <&dc12v>; 146 regulator-min-microvolt = <4200000>; 147 regulator-max-microvolt = <4200000>; 148 regulator-always-on; 149 }; 150 151 vbat_som: vbat-som-regulator { 152 compatible = "regulator-fixed"; 153 regulator-name = "VBAT_SOM"; 154 155 vin-supply = <&dc12v>; 156 regulator-min-microvolt = <4200000>; 157 regulator-max-microvolt = <4200000>; 158 regulator-always-on; 159 }; 160 161 vdc_3v3: vdc-3v3-regulator { 162 compatible = "regulator-fixed"; 163 regulator-name = "VDC_3V3"; 164 vin-supply = <&dc12v>; 165 regulator-min-microvolt = <3300000>; 166 regulator-max-microvolt = <3300000>; 167 regulator-always-on; 168 }; 169 170 vdc_5v: vdc-5v-regulator { 171 compatible = "regulator-fixed"; 172 regulator-name = "VDC_5V"; 173 174 vin-supply = <&dc12v>; 175 regulator-min-microvolt = <500000>; 176 regulator-max-microvolt = <500000>; 177 regulator-always-on; 178 }; 179 180 vreg_s4a_1p8: vreg-s4a-1p8 { 181 compatible = "regulator-fixed"; 182 regulator-name = "vreg_s4a_1p8"; 183 184 regulator-min-microvolt = <1800000>; 185 regulator-max-microvolt = <1800000>; 186 regulator-always-on; 187 }; 188 189 vph_pwr: vph-pwr-regulator { 190 compatible = "regulator-fixed"; 191 regulator-name = "vph_pwr"; 192 193 vin-supply = <&vbat_som>; 194 }; 195}; 196 197&adsp_pas { 198 status = "okay"; 199 200 firmware-name = "qcom/sdm845/adsp.mdt"; 201}; 202 203&apps_rsc { 204 pm8998-rpmh-regulators { 205 compatible = "qcom,pm8998-rpmh-regulators"; 206 qcom,pmic-id = "a"; 207 vdd-s1-supply = <&vph_pwr>; 208 vdd-s2-supply = <&vph_pwr>; 209 vdd-s3-supply = <&vph_pwr>; 210 vdd-s4-supply = <&vph_pwr>; 211 vdd-s5-supply = <&vph_pwr>; 212 vdd-s6-supply = <&vph_pwr>; 213 vdd-s7-supply = <&vph_pwr>; 214 vdd-s8-supply = <&vph_pwr>; 215 vdd-s9-supply = <&vph_pwr>; 216 vdd-s10-supply = <&vph_pwr>; 217 vdd-s11-supply = <&vph_pwr>; 218 vdd-s12-supply = <&vph_pwr>; 219 vdd-s13-supply = <&vph_pwr>; 220 vdd-l1-l27-supply = <&vreg_s7a_1p025>; 221 vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>; 222 vdd-l3-l11-supply = <&vreg_s7a_1p025>; 223 vdd-l4-l5-supply = <&vreg_s7a_1p025>; 224 vdd-l6-supply = <&vph_pwr>; 225 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>; 226 vdd-l9-supply = <&vreg_bob>; 227 vdd-l10-l23-l25-supply = <&vreg_bob>; 228 vdd-l13-l19-l21-supply = <&vreg_bob>; 229 vdd-l16-l28-supply = <&vreg_bob>; 230 vdd-l18-l22-supply = <&vreg_bob>; 231 vdd-l20-l24-supply = <&vreg_bob>; 232 vdd-l26-supply = <&vreg_s3a_1p35>; 233 vin-lvs-1-2-supply = <&vreg_s4a_1p8>; 234 235 vreg_s3a_1p35: smps3 { 236 regulator-min-microvolt = <1352000>; 237 regulator-max-microvolt = <1352000>; 238 }; 239 240 vreg_s5a_2p04: smps5 { 241 regulator-min-microvolt = <1904000>; 242 regulator-max-microvolt = <2040000>; 243 }; 244 245 vreg_s7a_1p025: smps7 { 246 regulator-min-microvolt = <900000>; 247 regulator-max-microvolt = <1028000>; 248 }; 249 250 vreg_l1a_0p875: ldo1 { 251 regulator-min-microvolt = <880000>; 252 regulator-max-microvolt = <880000>; 253 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 254 }; 255 256 vreg_l5a_0p8: ldo5 { 257 regulator-min-microvolt = <800000>; 258 regulator-max-microvolt = <800000>; 259 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 260 }; 261 262 vreg_l12a_1p8: ldo12 { 263 regulator-min-microvolt = <1800000>; 264 regulator-max-microvolt = <1800000>; 265 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 266 }; 267 268 vreg_l7a_1p8: ldo7 { 269 regulator-min-microvolt = <1800000>; 270 regulator-max-microvolt = <1800000>; 271 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 272 }; 273 274 vreg_l13a_2p95: ldo13 { 275 regulator-min-microvolt = <1800000>; 276 regulator-max-microvolt = <2960000>; 277 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 278 }; 279 280 vreg_l17a_1p3: ldo17 { 281 regulator-min-microvolt = <1304000>; 282 regulator-max-microvolt = <1304000>; 283 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 284 }; 285 286 vreg_l20a_2p95: ldo20 { 287 regulator-min-microvolt = <2960000>; 288 regulator-max-microvolt = <2968000>; 289 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 290 }; 291 292 vreg_l21a_2p95: ldo21 { 293 regulator-min-microvolt = <2960000>; 294 regulator-max-microvolt = <2968000>; 295 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 296 }; 297 298 vreg_l24a_3p075: ldo24 { 299 regulator-min-microvolt = <3088000>; 300 regulator-max-microvolt = <3088000>; 301 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 302 }; 303 304 vreg_l25a_3p3: ldo25 { 305 regulator-min-microvolt = <3300000>; 306 regulator-max-microvolt = <3312000>; 307 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 308 }; 309 310 vreg_l26a_1p2: ldo26 { 311 regulator-min-microvolt = <1200000>; 312 regulator-max-microvolt = <1200000>; 313 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 314 }; 315 316 vreg_lvs1a_1p8: lvs1 { 317 regulator-min-microvolt = <1800000>; 318 regulator-max-microvolt = <1800000>; 319 regulator-always-on; 320 }; 321 322 vreg_lvs2a_1p8: lvs2 { 323 regulator-min-microvolt = <1800000>; 324 regulator-max-microvolt = <1800000>; 325 regulator-always-on; 326 }; 327 }; 328 329 pmi8998-rpmh-regulators { 330 compatible = "qcom,pmi8998-rpmh-regulators"; 331 qcom,pmic-id = "b"; 332 333 vdd-bob-supply = <&vph_pwr>; 334 335 vreg_bob: bob { 336 regulator-min-microvolt = <3312000>; 337 regulator-max-microvolt = <3600000>; 338 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 339 regulator-allow-bypass; 340 }; 341 }; 342}; 343 344&cdsp_pas { 345 status = "okay"; 346 firmware-name = "qcom/sdm845/cdsp.mdt"; 347}; 348 349&gcc { 350 protected-clocks = <GCC_QSPI_CORE_CLK>, 351 <GCC_QSPI_CORE_CLK_SRC>, 352 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>; 353}; 354 355&gpu { 356 zap-shader { 357 memory-region = <&gpu_mem>; 358 firmware-name = "qcom/sdm845/a630_zap.mbn"; 359 }; 360}; 361 362&mss_pil { 363 status = "okay"; 364 firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mbn"; 365}; 366 367&pm8998_gpio { 368 vol_up_pin_a: vol-up-active { 369 pins = "gpio6"; 370 function = "normal"; 371 input-enable; 372 bias-pull-up; 373 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>; 374 }; 375}; 376 377&pm8998_pon { 378 resin { 379 compatible = "qcom,pm8941-resin"; 380 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>; 381 debounce = <15625>; 382 bias-pull-up; 383 linux,code = <KEY_VOLUMEDOWN>; 384 }; 385}; 386 387&qupv3_id_0 { 388 status = "okay"; 389}; 390 391&qupv3_id_1 { 392 status = "okay"; 393}; 394 395&sdhc_2 { 396 status = "okay"; 397 398 pinctrl-names = "default"; 399 pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>; 400 401 vmmc-supply = <&vreg_l21a_2p95>; 402 vqmmc-supply = <&vreg_l13a_2p95>; 403 404 bus-width = <4>; 405 cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>; 406}; 407 408&tlmm { 409 pcie0_pwren_state: pcie0-pwren { 410 pins = "gpio90"; 411 function = "gpio"; 412 413 drive-strength = <2>; 414 bias-disable; 415 }; 416 417 sdc2_default_state: sdc2-default { 418 clk { 419 pins = "sdc2_clk"; 420 bias-disable; 421 422 /* 423 * It seems that mmc_test reports errors if drive 424 * strength is not 16 on clk, cmd, and data pins. 425 */ 426 drive-strength = <16>; 427 }; 428 429 cmd { 430 pins = "sdc2_cmd"; 431 bias-pull-up; 432 drive-strength = <10>; 433 }; 434 435 data { 436 pins = "sdc2_data"; 437 bias-pull-up; 438 drive-strength = <10>; 439 }; 440 }; 441 442 sdc2_card_det_n: sd-card-det-n { 443 pins = "gpio126"; 444 function = "gpio"; 445 bias-pull-up; 446 }; 447}; 448 449&uart6 { 450 status = "okay"; 451 452 bluetooth { 453 compatible = "qcom,wcn3990-bt"; 454 455 vddio-supply = <&vreg_s4a_1p8>; 456 vddxo-supply = <&vreg_l7a_1p8>; 457 vddrf-supply = <&vreg_l17a_1p3>; 458 vddch0-supply = <&vreg_l25a_3p3>; 459 max-speed = <3200000>; 460 }; 461}; 462 463&uart9 { 464 status = "okay"; 465}; 466 467&usb_1 { 468 status = "okay"; 469}; 470 471&usb_1_dwc3 { 472 dr_mode = "peripheral"; 473}; 474 475&usb_1_hsphy { 476 status = "okay"; 477 478 vdd-supply = <&vreg_l1a_0p875>; 479 vdda-pll-supply = <&vreg_l12a_1p8>; 480 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; 481 482 qcom,imp-res-offset-value = <8>; 483 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>; 484 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>; 485 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>; 486}; 487 488&usb_1_qmpphy { 489 status = "okay"; 490 491 vdda-phy-supply = <&vreg_l26a_1p2>; 492 vdda-pll-supply = <&vreg_l1a_0p875>; 493}; 494 495&usb_2 { 496 status = "okay"; 497}; 498 499&usb_2_dwc3 { 500 dr_mode = "host"; 501}; 502 503&usb_2_hsphy { 504 status = "okay"; 505 506 vdd-supply = <&vreg_l1a_0p875>; 507 vdda-pll-supply = <&vreg_l12a_1p8>; 508 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; 509 510 qcom,imp-res-offset-value = <8>; 511 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>; 512}; 513 514&usb_2_qmpphy { 515 status = "okay"; 516 517 vdda-phy-supply = <&vreg_l26a_1p2>; 518 vdda-pll-supply = <&vreg_l1a_0p875>; 519}; 520 521&ufs_mem_hc { 522 status = "okay"; 523 524 reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>; 525 526 vcc-supply = <&vreg_l20a_2p95>; 527 vcc-max-microamp = <800000>; 528}; 529 530&ufs_mem_phy { 531 status = "okay"; 532 533 vdda-phy-supply = <&vreg_l1a_0p875>; 534 vdda-pll-supply = <&vreg_l26a_1p2>; 535}; 536 537&wifi { 538 status = "okay"; 539 540 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>; 541 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 542 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 543 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; 544 545 qcom,snoc-host-cap-8bit-quirk; 546}; 547 548/* PINCTRL - additions to nodes defined in sdm845.dtsi */ 549 550&qup_uart6_default { 551 pinmux { 552 pins = "gpio45", "gpio46", "gpio47", "gpio48"; 553 function = "qup6"; 554 }; 555 556 cts { 557 pins = "gpio45"; 558 bias-disable; 559 }; 560 561 rts-tx { 562 pins = "gpio46", "gpio47"; 563 drive-strength = <2>; 564 bias-disable; 565 }; 566 567 rx { 568 pins = "gpio48"; 569 bias-pull-up; 570 }; 571}; 572 573&qup_uart9_default { 574 pinconf-tx { 575 pins = "gpio4"; 576 drive-strength = <2>; 577 bias-disable; 578 }; 579 580 pinconf-rx { 581 pins = "gpio5"; 582 drive-strength = <2>; 583 bias-pull-up; 584 }; 585}; 586