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