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