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/db845c/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/db845c/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&pm8998_gpio { 356 vol_up_pin_a: vol-up-active { 357 pins = "gpio6"; 358 function = "normal"; 359 input-enable; 360 bias-pull-up; 361 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>; 362 }; 363}; 364 365&pm8998_pon { 366 resin { 367 compatible = "qcom,pm8941-resin"; 368 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>; 369 debounce = <15625>; 370 bias-pull-up; 371 linux,code = <KEY_VOLUMEDOWN>; 372 }; 373}; 374 375&qupv3_id_0 { 376 status = "okay"; 377}; 378 379&qupv3_id_1 { 380 status = "okay"; 381}; 382 383&sdhc_2 { 384 status = "okay"; 385 386 pinctrl-names = "default"; 387 pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>; 388 389 vmmc-supply = <&vreg_l21a_2p95>; 390 vqmmc-supply = <&vreg_l13a_2p95>; 391 392 bus-width = <4>; 393 cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>; 394}; 395 396&tlmm { 397 pcie0_pwren_state: pcie0-pwren { 398 pins = "gpio90"; 399 function = "gpio"; 400 401 drive-strength = <2>; 402 bias-disable; 403 }; 404 405 sdc2_default_state: sdc2-default { 406 clk { 407 pins = "sdc2_clk"; 408 bias-disable; 409 410 /* 411 * It seems that mmc_test reports errors if drive 412 * strength is not 16 on clk, cmd, and data pins. 413 */ 414 drive-strength = <16>; 415 }; 416 417 cmd { 418 pins = "sdc2_cmd"; 419 bias-pull-up; 420 drive-strength = <10>; 421 }; 422 423 data { 424 pins = "sdc2_data"; 425 bias-pull-up; 426 drive-strength = <10>; 427 }; 428 }; 429 430 sdc2_card_det_n: sd-card-det-n { 431 pins = "gpio126"; 432 function = "gpio"; 433 bias-pull-up; 434 }; 435}; 436 437&uart6 { 438 status = "okay"; 439 440 bluetooth { 441 compatible = "qcom,wcn3990-bt"; 442 443 vddio-supply = <&vreg_s4a_1p8>; 444 vddxo-supply = <&vreg_l7a_1p8>; 445 vddrf-supply = <&vreg_l17a_1p3>; 446 vddch0-supply = <&vreg_l25a_3p3>; 447 max-speed = <3200000>; 448 }; 449}; 450 451&uart9 { 452 status = "okay"; 453}; 454 455&usb_1 { 456 status = "okay"; 457}; 458 459&usb_1_dwc3 { 460 dr_mode = "peripheral"; 461}; 462 463&usb_1_hsphy { 464 status = "okay"; 465 466 vdd-supply = <&vreg_l1a_0p875>; 467 vdda-pll-supply = <&vreg_l12a_1p8>; 468 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; 469 470 qcom,imp-res-offset-value = <8>; 471 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>; 472 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>; 473 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>; 474}; 475 476&usb_1_qmpphy { 477 status = "okay"; 478 479 vdda-phy-supply = <&vreg_l26a_1p2>; 480 vdda-pll-supply = <&vreg_l1a_0p875>; 481}; 482 483&usb_2 { 484 status = "okay"; 485}; 486 487&usb_2_dwc3 { 488 dr_mode = "host"; 489}; 490 491&usb_2_hsphy { 492 status = "okay"; 493 494 vdd-supply = <&vreg_l1a_0p875>; 495 vdda-pll-supply = <&vreg_l12a_1p8>; 496 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; 497 498 qcom,imp-res-offset-value = <8>; 499 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>; 500}; 501 502&usb_2_qmpphy { 503 status = "okay"; 504 505 vdda-phy-supply = <&vreg_l26a_1p2>; 506 vdda-pll-supply = <&vreg_l1a_0p875>; 507}; 508 509&ufs_mem_hc { 510 status = "okay"; 511 512 reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>; 513 514 vcc-supply = <&vreg_l20a_2p95>; 515 vcc-max-microamp = <800000>; 516}; 517 518&ufs_mem_phy { 519 status = "okay"; 520 521 vdda-phy-supply = <&vreg_l1a_0p875>; 522 vdda-pll-supply = <&vreg_l26a_1p2>; 523}; 524 525&wifi { 526 status = "okay"; 527 528 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>; 529 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 530 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 531 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; 532}; 533 534/* PINCTRL - additions to nodes defined in sdm845.dtsi */ 535 536&qup_uart6_default { 537 pinmux { 538 pins = "gpio45", "gpio46", "gpio47", "gpio48"; 539 function = "qup6"; 540 }; 541 542 cts { 543 pins = "gpio45"; 544 bias-disable; 545 }; 546 547 rts-tx { 548 pins = "gpio46", "gpio47"; 549 drive-strength = <2>; 550 bias-disable; 551 }; 552 553 rx { 554 pins = "gpio48"; 555 bias-pull-up; 556 }; 557}; 558 559&qup_uart9_default { 560 pinconf-tx { 561 pins = "gpio4"; 562 drive-strength = <2>; 563 bias-disable; 564 }; 565 566 pinconf-rx { 567 pins = "gpio5"; 568 drive-strength = <2>; 569 bias-pull-up; 570 }; 571}; 572