1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved. 4 */ 5 6/dts-v1/; 7 8#include "msm8996.dtsi" 9#include "pm8994.dtsi" 10#include "pmi8994.dtsi" 11#include <dt-bindings/input/input.h> 12#include <dt-bindings/gpio/gpio.h> 13#include <dt-bindings/leds/common.h> 14#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 15#include <dt-bindings/sound/qcom,q6afe.h> 16#include <dt-bindings/sound/qcom,q6asm.h> 17 18/* 19 * GPIO name legend: proper name = the GPIO line is used as GPIO 20 * NC = not connected (pin out but not routed from the chip to 21 * anything the board) 22 * "[PER]" = pin is muxed for [peripheral] (not GPIO) 23 * LSEC = Low Speed External Connector 24 * P HSEC = Primary High Speed External Connector 25 * S HSEC = Secondary High Speed External Connector 26 * J14 = Camera Connector 27 * TP = Test Points 28 * 29 * Line names are taken from the schematic "DragonBoard 820c", 30 * drawing no: LM25-P2751-1 31 * 32 * For the lines routed to the external connectors the 33 * lines are named after the 96Boards CE Specification 1.0, 34 * Appendix "Expansion Connector Signal Description". 35 * 36 * When the 96Board naming of a line and the schematic name of 37 * the same line are in conflict, the 96Board specification 38 * takes precedence, which means that the external UART on the 39 * LSEC is named UART0 while the schematic and SoC names this 40 * UART3. This is only for the informational lines i.e. "[FOO]", 41 * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only 42 * ones actually used for GPIO. 43 */ 44 45/ { 46 model = "Qualcomm Technologies, Inc. DB820c"; 47 compatible = "arrow,apq8096-db820c", "qcom,apq8096-sbc", "qcom,apq8096"; 48 49 aliases { 50 serial0 = &blsp2_uart2; 51 serial1 = &blsp2_uart3; 52 serial2 = &blsp1_uart2; 53 i2c0 = &blsp1_i2c3; 54 i2c1 = &blsp2_i2c1; 55 i2c2 = &blsp2_i2c1; 56 spi0 = &blsp1_spi1; 57 spi1 = &blsp2_spi6; 58 }; 59 60 chosen { 61 stdout-path = "serial0:115200n8"; 62 }; 63 64 clocks { 65 compatible = "simple-bus"; 66 divclk4: divclk4 { 67 compatible = "fixed-clock"; 68 #clock-cells = <0>; 69 clock-frequency = <32768>; 70 clock-output-names = "divclk4"; 71 72 pinctrl-names = "default"; 73 pinctrl-0 = <&divclk4_pin_a>; 74 }; 75 76 div1_mclk: divclk1 { 77 compatible = "gpio-gate-clock"; 78 pinctrl-0 = <&audio_mclk>; 79 pinctrl-names = "default"; 80 clocks = <&rpmcc RPM_SMD_DIV_CLK1>; 81 #clock-cells = <0>; 82 enable-gpios = <&pm8994_gpios 15 0>; 83 }; 84 }; 85 86 gpio-keys { 87 compatible = "gpio-keys"; 88 autorepeat; 89 90 pinctrl-names = "default"; 91 pinctrl-0 = <&volume_up_gpio>; 92 93 button { 94 label = "Volume Up"; 95 linux,code = <KEY_VOLUMEUP>; 96 gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>; 97 }; 98 }; 99 100 usb2_id: usb2-id { 101 compatible = "linux,extcon-usb-gpio"; 102 id-gpio = <&pmi8994_gpios 6 GPIO_ACTIVE_HIGH>; 103 pinctrl-names = "default"; 104 pinctrl-0 = <&usb2_vbus_det_gpio>; 105 }; 106 107 usb3_id: usb3-id { 108 compatible = "linux,extcon-usb-gpio"; 109 id-gpio = <&pm8994_gpios 22 GPIO_ACTIVE_HIGH>; 110 pinctrl-names = "default"; 111 pinctrl-0 = <&usb3_vbus_det_gpio>; 112 }; 113 114 vph_pwr: vph-pwr-regulator { 115 compatible = "regulator-fixed"; 116 regulator-name = "vph_pwr"; 117 regulator-always-on; 118 regulator-boot-on; 119 120 regulator-min-microvolt = <3700000>; 121 regulator-max-microvolt = <3700000>; 122 }; 123 124 wlan_en: wlan-en-1-8v { 125 pinctrl-names = "default"; 126 pinctrl-0 = <&wlan_en_gpios>; 127 compatible = "regulator-fixed"; 128 regulator-name = "wlan-en-regulator"; 129 regulator-min-microvolt = <1800000>; 130 regulator-max-microvolt = <1800000>; 131 132 gpio = <&pm8994_gpios 8 0>; 133 134 /* WLAN card specific delay */ 135 startup-delay-us = <70000>; 136 enable-active-high; 137 }; 138}; 139 140&blsp1_i2c3 { 141 /* On Low speed expansion */ 142 label = "LS-I2C0"; 143 status = "okay"; 144}; 145 146&blsp1_spi1 { 147 /* On Low speed expansion */ 148 label = "LS-SPI0"; 149 status = "okay"; 150}; 151 152&blsp1_uart2 { 153 label = "BT-UART"; 154 status = "okay"; 155 156 bluetooth { 157 compatible = "qcom,qca6174-bt"; 158 159 /* bt_disable_n gpio */ 160 enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>; 161 162 clocks = <&divclk4>; 163 }; 164}; 165 166&adsp_pil { 167 status = "okay"; 168 firmware-name = "qcom/apq8096/adsp.mbn"; 169}; 170 171&blsp2_i2c1 { 172 /* On High speed expansion */ 173 label = "HS-I2C2"; 174 status = "okay"; 175}; 176 177&blsp2_i2c1 { 178 /* On Low speed expansion */ 179 label = "LS-I2C1"; 180 status = "okay"; 181}; 182 183&blsp2_spi6 { 184 /* On High speed expansion */ 185 label = "HS-SPI1"; 186 status = "okay"; 187}; 188 189&blsp2_uart2 { 190 label = "LS-UART1"; 191 status = "okay"; 192 pinctrl-names = "default", "sleep"; 193 pinctrl-0 = <&blsp2_uart2_2pins_default>; 194 pinctrl-1 = <&blsp2_uart2_2pins_sleep>; 195}; 196 197&blsp2_uart3 { 198 label = "LS-UART0"; 199 status = "disabled"; 200 pinctrl-names = "default", "sleep"; 201 pinctrl-0 = <&blsp2_uart3_4pins_default>; 202 pinctrl-1 = <&blsp2_uart3_4pins_sleep>; 203}; 204 205&camss { 206 vdda-supply = <&vreg_l2a_1p25>; 207}; 208 209&gpu { 210 status = "okay"; 211}; 212 213&hdmi { 214 status = "okay"; 215 216 pinctrl-names = "default", "sleep"; 217 pinctrl-0 = <&hdmi_hpd_active &hdmi_ddc_active>; 218 pinctrl-1 = <&hdmi_hpd_suspend &hdmi_ddc_suspend>; 219 220 core-vdda-supply = <&vreg_l12a_1p8>; 221 core-vcc-supply = <&vreg_s4a_1p8>; 222}; 223 224&hdmi_phy { 225 status = "okay"; 226 227 vddio-supply = <&vreg_l12a_1p8>; 228 vcca-supply = <&vreg_l28a_0p925>; 229 #phy-cells = <0>; 230}; 231 232&hsusb_phy1 { 233 status = "okay"; 234 235 vdd-supply = <&vreg_l28a_0p925>; 236 vdda-pll-supply = <&vreg_l12a_1p8>; 237 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; 238}; 239 240&hsusb_phy2 { 241 status = "okay"; 242 243 vdd-supply = <&vreg_l28a_0p925>; 244 vdda-pll-supply = <&vreg_l12a_1p8>; 245 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; 246}; 247 248&mdp { 249 status = "okay"; 250}; 251 252&mdss { 253 status = "okay"; 254}; 255 256&mmcc { 257 vdd-gfx-supply = <&vdd_gfx>; 258}; 259 260&mss_pil { 261 status = "okay"; 262 pll-supply = <&vreg_l12a_1p8>; 263 firmware-name = "qcom/apq8096/mba.mbn", "qcom/apq8096/modem.mbn"; 264}; 265 266&pm8994_resin { 267 status = "okay"; 268 linux,code = <KEY_VOLUMEDOWN>; 269}; 270 271&tlmm { 272 gpio-line-names = 273 "[SPI0_DOUT]", /* GPIO_0, BLSP1_SPI_MOSI, LSEC pin 14 */ 274 "[SPI0_DIN]", /* GPIO_1, BLSP1_SPI_MISO, LSEC pin 10 */ 275 "[SPI0_CS]", /* GPIO_2, BLSP1_SPI_CS_N, LSEC pin 12 */ 276 "[SPI0_SCLK]", /* GPIO_3, BLSP1_SPI_CLK, LSEC pin 8 */ 277 "[UART1_TxD]", /* GPIO_4, BLSP8_UART_TX, LSEC pin 11 */ 278 "[UART1_RxD]", /* GPIO_5, BLSP8_UART_RX, LSEC pin 13 */ 279 "[I2C1_SDA]", /* GPIO_6, BLSP8_I2C_SDA, LSEC pin 21 */ 280 "[I2C1_SCL]", /* GPIO_7, BLSP8_I2C_SCL, LSEC pin 19 */ 281 "GPIO-H", /* GPIO_8, LCD0_RESET_N, LSEC pin 30 */ 282 "TP93", /* GPIO_9 */ 283 "GPIO-G", /* GPIO_10, MDP_VSYNC_P, LSEC pin 29 */ 284 "[MDP_VSYNC_S]", /* GPIO_11, S HSEC pin 55 */ 285 "NC", /* GPIO_12 */ 286 "[CSI0_MCLK]", /* GPIO_13, CAM_MCLK0, P HSEC pin 15 */ 287 "[CAM_MCLK1]", /* GPIO_14, J14 pin 11 */ 288 "[CSI1_MCLK]", /* GPIO_15, CAM_MCLK2, P HSEC pin 17 */ 289 "TP99", /* GPIO_16 */ 290 "[I2C2_SDA]", /* GPIO_17, CCI_I2C_SDA0, P HSEC pin 34 */ 291 "[I2C2_SCL]", /* GPIO_18, CCI_I2C_SCL0, P HSEC pin 32 */ 292 "[CCI_I2C_SDA1]", /* GPIO_19, S HSEC pin 38 */ 293 "[CCI_I2C_SCL1]", /* GPIO_20, S HSEC pin 36 */ 294 "FLASH_STROBE_EN", /* GPIO_21, S HSEC pin 5 */ 295 "FLASH_STROBE_TRIG", /* GPIO_22, S HSEC pin 1 */ 296 "GPIO-K", /* GPIO_23, CAM2_RST_N, LSEC pin 33 */ 297 "GPIO-D", /* GPIO_24, LSEC pin 26 */ 298 "GPIO-I", /* GPIO_25, CAM0_RST_N, LSEC pin 31 */ 299 "GPIO-J", /* GPIO_26, CAM0_STANDBY_N, LSEC pin 32 */ 300 "BLSP6_I2C_SDA", /* GPIO_27 */ 301 "BLSP6_I2C_SCL", /* GPIO_28 */ 302 "GPIO-B", /* GPIO_29, TS0_RESET_N, LSEC pin 24 */ 303 "GPIO30", /* GPIO_30, S HSEC pin 4 */ 304 "HDMI_CEC", /* GPIO_31 */ 305 "HDMI_DDC_CLOCK", /* GPIO_32 */ 306 "HDMI_DDC_DATA", /* GPIO_33 */ 307 "HDMI_HOT_PLUG_DETECT", /* GPIO_34 */ 308 "PCIE0_RST_N", /* GPIO_35 */ 309 "PCIE0_CLKREQ_N", /* GPIO_36 */ 310 "PCIE0_WAKE", /* GPIO_37 */ 311 "SD_CARD_DET_N", /* GPIO_38 */ 312 "TSIF1_SYNC", /* GPIO_39, S HSEC pin 48 */ 313 "W_DISABLE_N", /* GPIO_40 */ 314 "[BLSP9_UART_TX]", /* GPIO_41 */ 315 "[BLSP9_UART_RX]", /* GPIO_42 */ 316 "[BLSP2_UART_CTS_N]", /* GPIO_43 */ 317 "[BLSP2_UART_RFR_N]", /* GPIO_44 */ 318 "[BLSP3_UART_TX]", /* GPIO_45 */ 319 "[BLSP3_UART_RX]", /* GPIO_46 */ 320 "[I2C0_SDA]", /* GPIO_47, LS_I2C0_SDA, LSEC pin 17 */ 321 "[I2C0_SCL]", /* GPIO_48, LS_I2C0_SCL, LSEC pin 15 */ 322 "[UART0_TxD]", /* GPIO_49, BLSP9_UART_TX, LSEC pin 5 */ 323 "[UART0_RxD]", /* GPIO_50, BLSP9_UART_RX, LSEC pin 7 */ 324 "[UART0_CTS]", /* GPIO_51, BLSP9_UART_CTS_N, LSEC pin 3 */ 325 "[UART0_RTS]", /* GPIO_52, BLSP9_UART_RFR_N, LSEC pin 9 */ 326 "[CODEC_INT1_N]", /* GPIO_53 */ 327 "[CODEC_INT2_N]", /* GPIO_54 */ 328 "[BLSP7_I2C_SDA]", /* GPIO_55 */ 329 "[BLSP7_I2C_SCL]", /* GPIO_56 */ 330 "MI2S_MCLK", /* GPIO_57, S HSEC pin 3 */ 331 "[PCM_CLK]", /* GPIO_58, QUA_MI2S_SCK, LSEC pin 18 */ 332 "[PCM_FS]", /* GPIO_59, QUA_MI2S_WS, LSEC pin 16 */ 333 "[PCM_DO]", /* GPIO_60, QUA_MI2S_DATA0, LSEC pin 20 */ 334 "[PCM_DI]", /* GPIO_61, QUA_MI2S_DATA1, LSEC pin 22 */ 335 "GPIO-E", /* GPIO_62, LSEC pin 27 */ 336 "TP87", /* GPIO_63 */ 337 "[CODEC_RST_N]", /* GPIO_64 */ 338 "[PCM1_CLK]", /* GPIO_65 */ 339 "[PCM1_SYNC]", /* GPIO_66 */ 340 "[PCM1_DIN]", /* GPIO_67 */ 341 "[PCM1_DOUT]", /* GPIO_68 */ 342 "AUDIO_REF_CLK", /* GPIO_69 */ 343 "SLIMBUS_CLK", /* GPIO_70 */ 344 "SLIMBUS_DATA0", /* GPIO_71 */ 345 "SLIMBUS_DATA1", /* GPIO_72 */ 346 "NC", /* GPIO_73 */ 347 "NC", /* GPIO_74 */ 348 "NC", /* GPIO_75 */ 349 "NC", /* GPIO_76 */ 350 "TP94", /* GPIO_77 */ 351 "NC", /* GPIO_78 */ 352 "TP95", /* GPIO_79 */ 353 "GPIO-A", /* GPIO_80, MEMS_RESET_N, LSEC pin 23 */ 354 "TP88", /* GPIO_81 */ 355 "TP89", /* GPIO_82 */ 356 "TP90", /* GPIO_83 */ 357 "TP91", /* GPIO_84 */ 358 "[SD_DAT0]", /* GPIO_85, BLSP12_SPI_MOSI, P HSEC pin 1 */ 359 "[SD_CMD]", /* GPIO_86, BLSP12_SPI_MISO, P HSEC pin 11 */ 360 "[SD_DAT3]", /* GPIO_87, BLSP12_SPI_CS_N, P HSEC pin 7 */ 361 "[SD_SCLK]", /* GPIO_88, BLSP12_SPI_CLK, P HSEC pin 9 */ 362 "TSIF1_CLK", /* GPIO_89, S HSEC pin 42 */ 363 "TSIF1_EN", /* GPIO_90, S HSEC pin 46 */ 364 "TSIF1_DATA", /* GPIO_91, S HSEC pin 44 */ 365 "NC", /* GPIO_92 */ 366 "TSIF2_CLK", /* GPIO_93, S HSEC pin 52 */ 367 "TSIF2_EN", /* GPIO_94, S HSEC pin 56 */ 368 "TSIF2_DATA", /* GPIO_95, S HSEC pin 54 */ 369 "TSIF2_SYNC", /* GPIO_96, S HSEC pin 58 */ 370 "NC", /* GPIO_97 */ 371 "CAM1_STANDBY_N", /* GPIO_98 */ 372 "NC", /* GPIO_99 */ 373 "NC", /* GPIO_100 */ 374 "[LCD1_RESET_N]", /* GPIO_101, S HSEC pin 51 */ 375 "BOOT_CONFIG1", /* GPIO_102 */ 376 "USB_HUB_RESET", /* GPIO_103 */ 377 "CAM1_RST_N", /* GPIO_104 */ 378 "NC", /* GPIO_105 */ 379 "NC", /* GPIO_106 */ 380 "NC", /* GPIO_107 */ 381 "NC", /* GPIO_108 */ 382 "NC", /* GPIO_109 */ 383 "NC", /* GPIO_110 */ 384 "NC", /* GPIO_111 */ 385 "NC", /* GPIO_112 */ 386 "PMI8994_BUA", /* GPIO_113 */ 387 "PCIE2_RST_N", /* GPIO_114 */ 388 "PCIE2_CLKREQ_N", /* GPIO_115 */ 389 "PCIE2_WAKE", /* GPIO_116 */ 390 "SSC_IRQ_0", /* GPIO_117 */ 391 "SSC_IRQ_1", /* GPIO_118 */ 392 "SSC_IRQ_2", /* GPIO_119 */ 393 "NC", /* GPIO_120 */ 394 "GPIO121", /* GPIO_121, S HSEC pin 2 */ 395 "NC", /* GPIO_122 */ 396 "SSC_IRQ_6", /* GPIO_123 */ 397 "SSC_IRQ_7", /* GPIO_124 */ 398 "GPIO-C", /* GPIO_125, TS_INT0, LSEC pin 25 */ 399 "BOOT_CONFIG5", /* GPIO_126 */ 400 "NC", /* GPIO_127 */ 401 "NC", /* GPIO_128 */ 402 "BOOT_CONFIG7", /* GPIO_129 */ 403 "PCIE1_RST_N", /* GPIO_130 */ 404 "PCIE1_CLKREQ_N", /* GPIO_131 */ 405 "PCIE1_WAKE", /* GPIO_132 */ 406 "GPIO-L", /* GPIO_133, CAM2_STANDBY_N, LSEC pin 34 */ 407 "NC", /* GPIO_134 */ 408 "NC", /* GPIO_135 */ 409 "BOOT_CONFIG8", /* GPIO_136 */ 410 "NC", /* GPIO_137 */ 411 "NC", /* GPIO_138 */ 412 "GPS_SSBI2", /* GPIO_139 */ 413 "GPS_SSBI1", /* GPIO_140 */ 414 "NC", /* GPIO_141 */ 415 "NC", /* GPIO_142 */ 416 "NC", /* GPIO_143 */ 417 "BOOT_CONFIG6", /* GPIO_144 */ 418 "NC", /* GPIO_145 */ 419 "NC", /* GPIO_146 */ 420 "NC", /* GPIO_147 */ 421 "NC", /* GPIO_148 */ 422 "NC"; /* GPIO_149 */ 423 424 sdc2_cd_on: sdc2_cd_on { 425 mux { 426 pins = "gpio38"; 427 function = "gpio"; 428 }; 429 430 config { 431 pins = "gpio38"; 432 bias-pull-up; /* pull up */ 433 drive-strength = <16>; /* 16 MA */ 434 }; 435 }; 436 437 sdc2_cd_off: sdc2_cd_off { 438 mux { 439 pins = "gpio38"; 440 function = "gpio"; 441 }; 442 443 config { 444 pins = "gpio38"; 445 bias-pull-up; /* pull up */ 446 drive-strength = <2>; /* 2 MA */ 447 }; 448 }; 449 450 hdmi_hpd_active: hdmi_hpd_active { 451 mux { 452 pins = "gpio34"; 453 function = "hdmi_hot"; 454 }; 455 456 config { 457 pins = "gpio34"; 458 bias-pull-down; 459 drive-strength = <16>; 460 }; 461 }; 462 463 hdmi_hpd_suspend: hdmi_hpd_suspend { 464 mux { 465 pins = "gpio34"; 466 function = "hdmi_hot"; 467 }; 468 469 config { 470 pins = "gpio34"; 471 bias-pull-down; 472 drive-strength = <2>; 473 }; 474 }; 475 476 hdmi_ddc_active: hdmi_ddc_active { 477 mux { 478 pins = "gpio32", "gpio33"; 479 function = "hdmi_ddc"; 480 }; 481 482 config { 483 pins = "gpio32", "gpio33"; 484 drive-strength = <2>; 485 bias-pull-up; 486 }; 487 }; 488 489 hdmi_ddc_suspend: hdmi_ddc_suspend { 490 mux { 491 pins = "gpio32", "gpio33"; 492 function = "hdmi_ddc"; 493 }; 494 495 config { 496 pins = "gpio32", "gpio33"; 497 drive-strength = <2>; 498 bias-pull-down; 499 }; 500 }; 501}; 502 503&pcie0 { 504 status = "okay"; 505 perst-gpio = <&tlmm 35 GPIO_ACTIVE_LOW>; 506 vddpe-3v3-supply = <&wlan_en>; 507 vdda-supply = <&vreg_l28a_0p925>; 508}; 509 510&pcie1 { 511 status = "okay"; 512 perst-gpio = <&tlmm 130 GPIO_ACTIVE_LOW>; 513 vdda-supply = <&vreg_l28a_0p925>; 514}; 515 516&pcie2 { 517 status = "okay"; 518 perst-gpio = <&tlmm 114 GPIO_ACTIVE_LOW>; 519 vdda-supply = <&vreg_l28a_0p925>; 520}; 521 522&pcie_phy { 523 status = "okay"; 524 525 vdda-phy-supply = <&vreg_l28a_0p925>; 526 vdda-pll-supply = <&vreg_l12a_1p8>; 527}; 528 529&pm8994_gpios { 530 gpio-line-names = 531 "NC", 532 "KEY_VOLP_N", 533 "NC", 534 "BL1_PWM", 535 "GPIO-F", /* BL0_PWM, LSEC pin 28 */ 536 "BL1_EN", 537 "NC", 538 "WLAN_EN", 539 "NC", 540 "NC", 541 "NC", 542 "NC", 543 "NC", 544 "NC", 545 "DIVCLK1", 546 "DIVCLK2", 547 "DIVCLK3", 548 "DIVCLK4", 549 "BT_EN", 550 "PMIC_SLB", 551 "PMIC_BUA", 552 "USB_VBUS_DET"; 553 554 pinctrl-names = "default"; 555 pinctrl-0 = <&ls_exp_gpio_f &bt_en_gpios>; 556 557 ls_exp_gpio_f: pm8994-gpio5-state { 558 pinconf { 559 pins = "gpio5"; 560 function = PMIC_GPIO_FUNC_NORMAL; 561 output-low; 562 power-source = <2>; // PM8994_GPIO_S4, 1.8V 563 }; 564 }; 565 566 bt_en_gpios: bt-en-pios-state { 567 pinconf { 568 pins = "gpio19"; 569 function = PMIC_GPIO_FUNC_NORMAL; 570 output-low; 571 power-source = <PM8994_GPIO_S4>; // 1.8V 572 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; 573 bias-pull-down; 574 }; 575 }; 576 577 wlan_en_gpios: wlan-en-gpios-state { 578 pinconf { 579 pins = "gpio8"; 580 function = PMIC_GPIO_FUNC_NORMAL; 581 output-low; 582 power-source = <PM8994_GPIO_S4>; // 1.8V 583 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; 584 bias-pull-down; 585 }; 586 }; 587 588 audio_mclk: clk-div1-state { 589 pinconf { 590 pins = "gpio15"; 591 function = "func1"; 592 power-source = <PM8994_GPIO_S4>; // 1.8V 593 }; 594 }; 595 596 volume_up_gpio: pm8996-gpio2-state { 597 pinconf { 598 pins = "gpio2"; 599 function = "normal"; 600 input-enable; 601 drive-push-pull; 602 bias-pull-up; 603 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>; 604 power-source = <PM8994_GPIO_S4>; // 1.8V 605 }; 606 }; 607 608 divclk4_pin_a: divclk4-state { 609 pinconf { 610 pins = "gpio18"; 611 function = PMIC_GPIO_FUNC_FUNC2; 612 613 bias-disable; 614 power-source = <PM8994_GPIO_S4>; 615 }; 616 }; 617 618 usb3_vbus_det_gpio: pm8996-gpio22-state { 619 pinconf { 620 pins = "gpio22"; 621 function = PMIC_GPIO_FUNC_NORMAL; 622 input-enable; 623 bias-pull-down; 624 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>; 625 power-source = <PM8994_GPIO_S4>; // 1.8V 626 }; 627 }; 628}; 629 630&pm8994_mpps { 631 gpio-line-names = 632 "VDDPX_BIAS", 633 "WIFI_LED", 634 "NC", 635 "BT_LED", 636 "PM_MPP05", 637 "PM_MPP06", 638 "PM_MPP07", 639 "NC"; 640}; 641 642&pm8994_spmi_regulators { 643 qcom,saw-reg = <&saw3>; 644 vdd_s11-supply = <&vph_pwr>; 645 646 s9 { 647 qcom,saw-slave; 648 }; 649 s10 { 650 qcom,saw-slave; 651 }; 652 s11 { 653 qcom,saw-leader; 654 regulator-name = "VDD_APCC"; 655 regulator-always-on; 656 regulator-min-microvolt = <980000>; 657 regulator-max-microvolt = <980000>; 658 }; 659}; 660 661&pmi8994_gpios { 662 gpio-line-names = 663 "NC", 664 "SPKR_AMP_EN1", 665 "SPKR_AMP_EN2", 666 "TP61", 667 "NC", 668 "USB2_VBUS_DET", 669 "NC", 670 "NC", 671 "NC", 672 "NC"; 673 674 usb2_vbus_det_gpio: pmi8996-gpio6-state { 675 pinconf { 676 pins = "gpio6"; 677 function = PMIC_GPIO_FUNC_NORMAL; 678 input-enable; 679 bias-pull-down; 680 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>; 681 power-source = <PM8994_GPIO_S4>; // 1.8V 682 }; 683 }; 684}; 685 686&pmi8994_lpg { 687 qcom,power-source = <1>; 688 689 pinctrl-names = "default"; 690 pinctrl-0 = <&pmi8994_mpp2_userled4>; 691 692 qcom,dtest = <0 0>, 693 <0 0>, 694 <0 0>, 695 <4 1>; 696 697 status = "okay"; 698 699 led@1 { 700 reg = <1>; 701 color = <LED_COLOR_ID_GREEN>; 702 function = LED_FUNCTION_HEARTBEAT; 703 function-enumerator = <1>; 704 705 linux,default-trigger = "heartbeat"; 706 default-state = "on"; 707 }; 708 709 led@2 { 710 reg = <2>; 711 color = <LED_COLOR_ID_GREEN>; 712 function = LED_FUNCTION_HEARTBEAT; 713 function-enumerator = <0>; 714 }; 715 716 led@3 { 717 reg = <3>; 718 color = <LED_COLOR_ID_GREEN>; 719 function = LED_FUNCTION_HEARTBEAT; 720 function-enumerator = <2>; 721 }; 722 723 led@4 { 724 reg = <4>; 725 color = <LED_COLOR_ID_GREEN>; 726 function = LED_FUNCTION_HEARTBEAT; 727 function-enumerator = <3>; 728 }; 729}; 730 731&pmi8994_mpps { 732 pmi8994_mpp2_userled4: mpp2-userled4-state { 733 pins = "mpp2"; 734 function = "sink"; 735 736 output-low; 737 qcom,dtest = <4>; 738 }; 739}; 740 741&pmi8994_spmi_regulators { 742 vdd_s2-supply = <&vph_pwr>; 743 744 vdd_gfx: s2@1700 { 745 reg = <0x1700 0x100>; 746 regulator-name = "VDD_GFX"; 747 regulator-min-microvolt = <980000>; 748 regulator-max-microvolt = <980000>; 749 }; 750}; 751 752&rpm_requests { 753 pm8994-regulators { 754 compatible = "qcom,rpm-pm8994-regulators"; 755 756 vdd_s1-supply = <&vph_pwr>; 757 vdd_s2-supply = <&vph_pwr>; 758 vdd_s3-supply = <&vph_pwr>; 759 vdd_s4-supply = <&vph_pwr>; 760 vdd_s5-supply = <&vph_pwr>; 761 vdd_s6-supply = <&vph_pwr>; 762 vdd_s7-supply = <&vph_pwr>; 763 vdd_s8-supply = <&vph_pwr>; 764 vdd_s9-supply = <&vph_pwr>; 765 vdd_s10-supply = <&vph_pwr>; 766 vdd_s11-supply = <&vph_pwr>; 767 vdd_s12-supply = <&vph_pwr>; 768 vdd_l1-supply = <&vreg_s1b_1p025>; 769 vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>; 770 vdd_l3_l11-supply = <&vreg_s3a_1p3>; 771 vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>; 772 vdd_l5_l7-supply = <&vreg_s5a_2p15>; 773 vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>; 774 vdd_l8_l16_l30-supply = <&vph_pwr>; 775 vdd_l9_l10_l18_l22-supply = <&vph_pwr_bbyp>; 776 vdd_l13_l19_l23_l24-supply = <&vph_pwr_bbyp>; 777 vdd_l14_l15-supply = <&vreg_s5a_2p15>; 778 vdd_l17_l29-supply = <&vph_pwr_bbyp>; 779 vdd_l20_l21-supply = <&vph_pwr_bbyp>; 780 vdd_l25-supply = <&vreg_s3a_1p3>; 781 vdd_lvs1_2-supply = <&vreg_s4a_1p8>; 782 783 vreg_s3a_1p3: s3 { 784 regulator-name = "vreg_s3a_1p3"; 785 regulator-min-microvolt = <1300000>; 786 regulator-max-microvolt = <1300000>; 787 }; 788 789 /** 790 * 1.8v required on LS expansion 791 * for mezzanine boards 792 */ 793 vreg_s4a_1p8: s4 { 794 regulator-name = "vreg_s4a_1p8"; 795 regulator-min-microvolt = <1800000>; 796 regulator-max-microvolt = <1800000>; 797 regulator-always-on; 798 }; 799 vreg_s5a_2p15: s5 { 800 regulator-name = "vreg_s5a_2p15"; 801 regulator-min-microvolt = <2150000>; 802 regulator-max-microvolt = <2150000>; 803 }; 804 vreg_s7a_1p0: s7 { 805 regulator-name = "vreg_s7a_1p0"; 806 regulator-min-microvolt = <800000>; 807 regulator-max-microvolt = <800000>; 808 }; 809 810 vreg_l1a_1p0: l1 { 811 regulator-name = "vreg_l1a_1p0"; 812 regulator-min-microvolt = <1000000>; 813 regulator-max-microvolt = <1000000>; 814 }; 815 vreg_l2a_1p25: l2 { 816 regulator-name = "vreg_l2a_1p25"; 817 regulator-min-microvolt = <1250000>; 818 regulator-max-microvolt = <1250000>; 819 }; 820 vreg_l3a_0p875: l3 { 821 regulator-name = "vreg_l3a_0p875"; 822 regulator-min-microvolt = <850000>; 823 regulator-max-microvolt = <850000>; 824 }; 825 vreg_l4a_1p225: l4 { 826 regulator-name = "vreg_l4a_1p225"; 827 regulator-min-microvolt = <1225000>; 828 regulator-max-microvolt = <1225000>; 829 }; 830 vreg_l6a_1p2: l6 { 831 regulator-name = "vreg_l6a_1p2"; 832 regulator-min-microvolt = <1200000>; 833 regulator-max-microvolt = <1200000>; 834 }; 835 vreg_l8a_1p8: l8 { 836 regulator-name = "vreg_l8a_1p8"; 837 regulator-min-microvolt = <1800000>; 838 regulator-max-microvolt = <1800000>; 839 }; 840 vreg_l9a_1p8: l9 { 841 regulator-name = "vreg_l9a_1p8"; 842 regulator-min-microvolt = <1800000>; 843 regulator-max-microvolt = <1800000>; 844 }; 845 vreg_l10a_1p8: l10 { 846 regulator-name = "vreg_l10a_1p8"; 847 regulator-min-microvolt = <1800000>; 848 regulator-max-microvolt = <1800000>; 849 }; 850 vreg_l11a_1p15: l11 { 851 regulator-name = "vreg_l11a_1p15"; 852 regulator-min-microvolt = <1150000>; 853 regulator-max-microvolt = <1150000>; 854 }; 855 vreg_l12a_1p8: l12 { 856 regulator-name = "vreg_l12a_1p8"; 857 regulator-min-microvolt = <1800000>; 858 regulator-max-microvolt = <1800000>; 859 }; 860 vreg_l13a_2p95: l13 { 861 regulator-name = "vreg_l13a_2p95"; 862 regulator-min-microvolt = <1800000>; 863 regulator-max-microvolt = <2950000>; 864 }; 865 vreg_l14a_1p8: l14 { 866 regulator-name = "vreg_l14a_1p8"; 867 regulator-min-microvolt = <1800000>; 868 regulator-max-microvolt = <1800000>; 869 }; 870 vreg_l15a_1p8: l15 { 871 regulator-name = "vreg_l15a_1p8"; 872 regulator-min-microvolt = <1800000>; 873 regulator-max-microvolt = <1800000>; 874 }; 875 vreg_l16a_2p7: l16 { 876 regulator-name = "vreg_l16a_2p7"; 877 regulator-min-microvolt = <2700000>; 878 regulator-max-microvolt = <2700000>; 879 }; 880 vreg_l17a_2p8: l17 { 881 regulator-name = "vreg_l17a_2p8"; 882 regulator-min-microvolt = <2500000>; 883 regulator-max-microvolt = <2500000>; 884 }; 885 vreg_l18a_2p85: l18 { 886 regulator-name = "vreg_l18a_2p85"; 887 regulator-min-microvolt = <2700000>; 888 regulator-max-microvolt = <2900000>; 889 }; 890 vreg_l19a_2p8: l19 { 891 regulator-name = "vreg_l19a_2p8"; 892 regulator-min-microvolt = <3000000>; 893 regulator-max-microvolt = <3000000>; 894 }; 895 vreg_l20a_2p95: l20 { 896 regulator-name = "vreg_l20a_2p95"; 897 regulator-min-microvolt = <2950000>; 898 regulator-max-microvolt = <2950000>; 899 regulator-allow-set-load; 900 }; 901 vreg_l21a_2p95: l21 { 902 regulator-name = "vreg_l21a_2p95"; 903 regulator-min-microvolt = <2950000>; 904 regulator-max-microvolt = <2950000>; 905 regulator-allow-set-load; 906 regulator-system-load = <200000>; 907 }; 908 vreg_l22a_3p0: l22 { 909 regulator-name = "vreg_l22a_3p0"; 910 regulator-min-microvolt = <3300000>; 911 regulator-max-microvolt = <3300000>; 912 }; 913 vreg_l23a_2p8: l23 { 914 regulator-name = "vreg_l23a_2p8"; 915 regulator-min-microvolt = <2800000>; 916 regulator-max-microvolt = <2800000>; 917 }; 918 vreg_l24a_3p075: l24 { 919 regulator-name = "vreg_l24a_3p075"; 920 regulator-min-microvolt = <3075000>; 921 regulator-max-microvolt = <3075000>; 922 }; 923 vreg_l25a_1p2: l25 { 924 regulator-name = "vreg_l25a_1p2"; 925 regulator-min-microvolt = <1200000>; 926 regulator-max-microvolt = <1200000>; 927 regulator-allow-set-load; 928 }; 929 vreg_l26a_0p8: l27 { 930 regulator-name = "vreg_l26a_0p8"; 931 regulator-min-microvolt = <1000000>; 932 regulator-max-microvolt = <1000000>; 933 }; 934 vreg_l28a_0p925: l28 { 935 regulator-name = "vreg_l28a_0p925"; 936 regulator-min-microvolt = <925000>; 937 regulator-max-microvolt = <925000>; 938 regulator-allow-set-load; 939 }; 940 vreg_l29a_2p8: l29 { 941 regulator-name = "vreg_l29a_2p8"; 942 regulator-min-microvolt = <2800000>; 943 regulator-max-microvolt = <2800000>; 944 }; 945 vreg_l30a_1p8: l30 { 946 regulator-name = "vreg_l30a_1p8"; 947 regulator-min-microvolt = <1800000>; 948 regulator-max-microvolt = <1800000>; 949 }; 950 vreg_l32a_1p8: l32 { 951 regulator-name = "vreg_l32a_1p8"; 952 regulator-min-microvolt = <1800000>; 953 regulator-max-microvolt = <1800000>; 954 }; 955 956 vreg_lvs1a_1p8: lvs1 { 957 regulator-name = "vreg_lvs1a_1p8"; 958 }; 959 960 vreg_lvs2a_1p8: lvs2 { 961 regulator-name = "vreg_lvs2a_1p8"; 962 }; 963 }; 964 965 pmi8994-regulators { 966 compatible = "qcom,rpm-pmi8994-regulators"; 967 968 vdd_s1-supply = <&vph_pwr>; 969 vdd_s2-supply = <&vph_pwr>; 970 vdd_s3-supply = <&vph_pwr>; 971 vdd_bst_byp-supply = <&vph_pwr>; 972 973 vph_pwr_bbyp: boost-bypass { 974 regulator-name = "vph_pwr_bbyp"; 975 regulator-min-microvolt = <3300000>; 976 regulator-max-microvolt = <3300000>; 977 }; 978 979 vreg_s1b_1p025: s1 { 980 regulator-name = "vreg_s1b_1p025"; 981 regulator-min-microvolt = <1025000>; 982 regulator-max-microvolt = <1025000>; 983 }; 984 }; 985}; 986 987&sdhc2 { 988 /* External SD card */ 989 pinctrl-names = "default", "sleep"; 990 pinctrl-0 = <&sdc2_state_on &sdc2_cd_on>; 991 pinctrl-1 = <&sdc2_state_off &sdc2_cd_off>; 992 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 993 vmmc-supply = <&vreg_l21a_2p95>; 994 vqmmc-supply = <&vreg_l13a_2p95>; 995 status = "okay"; 996}; 997 998&q6asmdai { 999 dai@0 { 1000 reg = <0>; 1001 }; 1002 1003 dai@1 { 1004 reg = <1>; 1005 }; 1006 1007 dai@2 { 1008 reg = <2>; 1009 }; 1010}; 1011 1012&sound { 1013 compatible = "qcom,apq8096-sndcard"; 1014 model = "DB820c"; 1015 audio-routing = "RX_BIAS", "MCLK", 1016 "MM_DL1", "MultiMedia1 Playback", 1017 "MM_DL2", "MultiMedia2 Playback", 1018 "MultiMedia3 Capture", "MM_UL3"; 1019 1020 mm1-dai-link { 1021 link-name = "MultiMedia1"; 1022 cpu { 1023 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; 1024 }; 1025 }; 1026 1027 mm2-dai-link { 1028 link-name = "MultiMedia2"; 1029 cpu { 1030 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>; 1031 }; 1032 }; 1033 1034 mm3-dai-link { 1035 link-name = "MultiMedia3"; 1036 cpu { 1037 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>; 1038 }; 1039 }; 1040 1041 hdmi-dai-link { 1042 link-name = "HDMI"; 1043 cpu { 1044 sound-dai = <&q6afedai HDMI_RX>; 1045 }; 1046 1047 platform { 1048 sound-dai = <&q6routing>; 1049 }; 1050 1051 codec { 1052 sound-dai = <&hdmi 0>; 1053 }; 1054 }; 1055 1056 slim-dai-link { 1057 link-name = "SLIM Playback"; 1058 cpu { 1059 sound-dai = <&q6afedai SLIMBUS_6_RX>; 1060 }; 1061 1062 platform { 1063 sound-dai = <&q6routing>; 1064 }; 1065 1066 codec { 1067 sound-dai = <&wcd9335 6>; 1068 }; 1069 }; 1070 1071 slimcap-dai-link { 1072 link-name = "SLIM Capture"; 1073 cpu { 1074 sound-dai = <&q6afedai SLIMBUS_0_TX>; 1075 }; 1076 1077 platform { 1078 sound-dai = <&q6routing>; 1079 }; 1080 1081 codec { 1082 sound-dai = <&wcd9335 1>; 1083 }; 1084 }; 1085}; 1086 1087&ufsphy { 1088 status = "okay"; 1089 1090 vdda-phy-supply = <&vreg_l28a_0p925>; 1091 vdda-pll-supply = <&vreg_l12a_1p8>; 1092 vddp-ref-clk-supply = <&vreg_l25a_1p2>; 1093}; 1094 1095&ufshc { 1096 status = "okay"; 1097 1098 vcc-supply = <&vreg_l20a_2p95>; 1099 vccq-supply = <&vreg_l25a_1p2>; 1100 vccq2-supply = <&vreg_s4a_1p8>; 1101 1102 vcc-max-microamp = <600000>; 1103 vccq-max-microamp = <450000>; 1104 vccq2-max-microamp = <450000>; 1105}; 1106 1107&usb2 { 1108 status = "okay"; 1109 extcon = <&usb2_id>; 1110}; 1111 1112&usb2_dwc3 { 1113 extcon = <&usb2_id>; 1114 dr_mode = "otg"; 1115 maximum-speed = "high-speed"; 1116}; 1117 1118&usb3 { 1119 status = "okay"; 1120 extcon = <&usb3_id>; 1121}; 1122 1123&usb3_dwc3 { 1124 extcon = <&usb3_id>; 1125 dr_mode = "otg"; 1126}; 1127 1128&usb3phy { 1129 status = "okay"; 1130 1131 vdda-phy-supply = <&vreg_l28a_0p925>; 1132 vdda-pll-supply = <&vreg_l12a_1p8>; 1133 1134}; 1135 1136&venus { 1137 status = "okay"; 1138}; 1139 1140&wcd9335 { 1141 clock-names = "mclk", "slimbus"; 1142 clocks = <&div1_mclk>, 1143 <&rpmcc RPM_SMD_BB_CLK1>; 1144 1145 vdd-buck-supply = <&vreg_s4a_1p8>; 1146 vdd-buck-sido-supply = <&vreg_s4a_1p8>; 1147 vdd-tx-supply = <&vreg_s4a_1p8>; 1148 vdd-rx-supply = <&vreg_s4a_1p8>; 1149 vdd-io-supply = <&vreg_s4a_1p8>; 1150}; 1151