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