1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 3 * Copyright (c) 2015, The Linux Foundation. A 4 */ 5 6 /dts-v1/; 7 8 #include "msm8916-pm8916.dtsi" 9 #include <dt-bindings/gpio/gpio.h> 10 #include <dt-bindings/input/input.h> 11 #include <dt-bindings/leds/common.h> 12 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h 13 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h> 14 #include <dt-bindings/sound/apq8016-lpass.h> 15 16 / { 17 model = "Qualcomm Technologies, Inc. A 18 compatible = "qcom,apq8016-sbc", "qcom 19 20 aliases { 21 mmc0 = &sdhc_1; /* eMMC */ 22 mmc1 = &sdhc_2; /* SD card */ 23 serial0 = &blsp_uart2; 24 serial1 = &blsp_uart1; 25 usid0 = &pm8916_0; 26 i2c0 = &blsp_i2c2; 27 i2c1 = &blsp_i2c6; 28 i2c3 = &blsp_i2c4; 29 spi0 = &blsp_spi5; 30 spi1 = &blsp_spi3; 31 }; 32 33 chosen { 34 stdout-path = "serial0"; 35 }; 36 37 reserved-memory { 38 ramoops@bff00000 { 39 compatible = "ramoops" 40 reg = <0x0 0xbff00000 41 42 record-size = <0x20000 43 console-size = <0x2000 44 ftrace-size = <0x20000 45 }; 46 }; 47 48 usb2513 { 49 compatible = "smsc,usb3503"; 50 reset-gpios = <&pm8916_gpios 3 51 initial-mode = <1>; 52 }; 53 54 usb_id: usb-id { 55 compatible = "linux,extcon-usb 56 id-gpios = <&tlmm 121 GPIO_ACT 57 pinctrl-names = "default"; 58 pinctrl-0 = <&usb_id_default>; 59 }; 60 61 hdmi-out { 62 compatible = "hdmi-connector"; 63 type = "a"; 64 65 port { 66 hdmi_con: endpoint { 67 remote-endpoin 68 }; 69 }; 70 }; 71 72 gpio-keys { 73 compatible = "gpio-keys"; 74 autorepeat; 75 76 pinctrl-names = "default"; 77 pinctrl-0 = <&msm_key_volp_n_d 78 79 button { 80 label = "Volume Up"; 81 linux,code = <KEY_VOLU 82 gpios = <&tlmm 107 GPI 83 }; 84 }; 85 86 leds { 87 pinctrl-names = "default"; 88 pinctrl-0 = <&tlmm_leds>, 89 <&pm8916_gpios_led 90 <&pm8916_mpps_leds 91 92 compatible = "gpio-leds"; 93 94 led-1 { 95 label = "apq8016-sbc:g 96 function = LED_FUNCTIO 97 color = <LED_COLOR_ID_ 98 gpios = <&tlmm 21 GPIO 99 linux,default-trigger 100 default-state = "off"; 101 }; 102 103 led-2 { 104 label = "apq8016-sbc:g 105 function = LED_FUNCTIO 106 color = <LED_COLOR_ID_ 107 gpios = <&tlmm 120 GPI 108 linux,default-trigger 109 default-state = "off"; 110 }; 111 112 led-3 { 113 label = "apq8016-sbc:g 114 function = LED_FUNCTIO 115 color = <LED_COLOR_ID_ 116 gpios = <&pm8916_gpios 117 linux,default-trigger 118 default-state = "off"; 119 }; 120 121 led-4 { 122 label = "apq8016-sbc:g 123 color = <LED_COLOR_ID_ 124 gpios = <&pm8916_gpios 125 linux,default-trigger 126 panic-indicator; 127 default-state = "off"; 128 }; 129 130 led-5 { 131 label = "apq8016-sbc:y 132 function = LED_FUNCTIO 133 color = <LED_COLOR_ID_ 134 gpios = <&pm8916_mpps 135 linux,default-trigger 136 default-state = "off"; 137 }; 138 139 led-6 { 140 label = "apq8016-sbc:b 141 function = LED_FUNCTIO 142 color = <LED_COLOR_ID_ 143 gpios = <&pm8916_mpps 144 linux,default-trigger 145 default-state = "off"; 146 }; 147 }; 148 }; 149 150 &blsp_i2c2 { 151 /* On Low speed expansion: LS-I2C0 */ 152 status = "okay"; 153 }; 154 155 &blsp_i2c4 { 156 /* On High speed expansion: HS-I2C2 */ 157 status = "okay"; 158 159 adv_bridge: bridge@39 { 160 status = "okay"; 161 162 compatible = "adi,adv7533"; 163 reg = <0x39>; 164 165 interrupt-parent = <&tlmm>; 166 interrupts = <31 IRQ_TYPE_EDGE 167 168 adi,dsi-lanes = <4>; 169 clocks = <&rpmcc RPM_SMD_BB_CL 170 clock-names = "cec"; 171 172 pd-gpios = <&tlmm 32 GPIO_ACTI 173 174 avdd-supply = <&pm8916_l6>; 175 a2vdd-supply = <&pm8916_l6>; 176 dvdd-supply = <&pm8916_l6>; 177 pvdd-supply = <&pm8916_l6>; 178 v1p2-supply = <&pm8916_l6>; 179 v3p3-supply = <&pm8916_l17>; 180 181 pinctrl-names = "default","sle 182 pinctrl-0 = <&adv7533_int_acti 183 pinctrl-1 = <&adv7533_int_susp 184 #sound-dai-cells = <1>; 185 186 ports { 187 #address-cells = <1>; 188 #size-cells = <0>; 189 190 port@0 { 191 reg = <0>; 192 adv7533_in: en 193 remote 194 }; 195 }; 196 197 port@1 { 198 reg = <1>; 199 adv7533_out: e 200 remote 201 }; 202 }; 203 }; 204 }; 205 }; 206 207 &blsp_i2c6 { 208 /* On Low speed expansion: LS-I2C1 */ 209 status = "okay"; 210 }; 211 212 &blsp_spi3 { 213 /* On High speed expansion: HS-SPI1 */ 214 status = "okay"; 215 }; 216 217 &blsp_spi5 { 218 /* On Low speed expansion: LS-SPI0 */ 219 status = "okay"; 220 }; 221 222 &blsp_uart1 { 223 status = "okay"; 224 label = "LS-UART0"; 225 }; 226 227 &blsp_uart2 { 228 status = "okay"; 229 label = "LS-UART1"; 230 }; 231 232 &camss { 233 status = "okay"; 234 }; 235 236 &gpu { 237 status = "okay"; 238 }; 239 240 &lpass { 241 status = "okay"; 242 }; 243 244 &lpass_codec { 245 status = "okay"; 246 }; 247 248 &mba_mem { 249 status = "okay"; 250 }; 251 252 &mdss { 253 status = "okay"; 254 }; 255 256 &mdss_dsi0_out { 257 data-lanes = <0 1 2 3>; 258 remote-endpoint = <&adv7533_in>; 259 }; 260 261 &mpss { 262 status = "okay"; 263 264 firmware-name = "qcom/apq8016/mba.mbn" 265 }; 266 267 &mpss_mem { 268 status = "okay"; 269 reg = <0x0 0x86800000 0x0 0x2b00000>; 270 }; 271 272 &pm8916_codec { 273 status = "okay"; 274 qcom,mbhc-vthreshold-low = <75 150 237 275 qcom,mbhc-vthreshold-high = <75 150 23 276 }; 277 278 &pm8916_resin { 279 status = "okay"; 280 linux,code = <KEY_VOLUMEDOWN>; 281 }; 282 283 &pm8916_rpm_regulators { 284 /* 285 * The 96Boards specification expects 286 * expansion connector that is able to 287 * L15/L16 are connected in parallel t 288 * must be specified to ensure the reg 289 * would only provide 5 mA. 290 */ 291 pm8916_l15: l15 { 292 regulator-min-microvolt = <180 293 regulator-max-microvolt = <180 294 regulator-system-load = <50000 295 regulator-allow-set-load; 296 regulator-always-on; 297 }; 298 pm8916_l16: l16 { 299 regulator-min-microvolt = <180 300 regulator-max-microvolt = <180 301 regulator-system-load = <50000 302 regulator-allow-set-load; 303 regulator-always-on; 304 }; 305 306 pm8916_l17: l17 { 307 regulator-min-microvolt = <330 308 regulator-max-microvolt = <330 309 }; 310 }; 311 312 &sdhc_1 { 313 status = "okay"; 314 }; 315 316 &sdhc_2 { 317 status = "okay"; 318 319 pinctrl-names = "default", "sleep"; 320 pinctrl-0 = <&sdc2_default &sdc2_cd_de 321 pinctrl-1 = <&sdc2_sleep &sdc2_cd_defa 322 323 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 324 }; 325 326 &sound { 327 status = "okay"; 328 329 pinctrl-0 = <&cdc_pdm_default &sec_mi2 330 pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_ 331 pinctrl-names = "default", "sleep"; 332 model = "DB410c"; 333 audio-routing = 334 "AMIC2", "MIC BIAS Internal2", 335 "AMIC3", "MIC BIAS External1"; 336 337 quaternary-dai-link { 338 link-name = "ADV7533"; 339 cpu { 340 sound-dai = <&lpass MI 341 }; 342 codec { 343 sound-dai = <&adv_brid 344 }; 345 }; 346 347 primary-dai-link { 348 link-name = "WCD"; 349 cpu { 350 sound-dai = <&lpass MI 351 }; 352 codec { 353 sound-dai = <&lpass_co 354 }; 355 }; 356 357 tertiary-dai-link { 358 link-name = "WCD-Capture"; 359 cpu { 360 sound-dai = <&lpass MI 361 }; 362 codec { 363 sound-dai = <&lpass_co 364 }; 365 }; 366 }; 367 368 &usb { 369 status = "okay"; 370 extcon = <&usb_id>, <&usb_id>; 371 372 pinctrl-names = "default", "device"; 373 pinctrl-0 = <&usb_sw_sel_pm &usb_hub_r 374 pinctrl-1 = <&usb_sw_sel_pm_device &us 375 }; 376 377 &usb_hs_phy { 378 extcon = <&usb_id>; 379 }; 380 381 &venus { 382 status = "okay"; 383 }; 384 385 &venus_mem { 386 status = "okay"; 387 }; 388 389 &wcnss { 390 status = "okay"; 391 firmware-name = "qcom/apq8016/wcnss.mb 392 }; 393 394 &wcnss_ctrl { 395 firmware-name = "qcom/apq8016/WCNSS_qc 396 }; 397 398 &wcnss_iris { 399 compatible = "qcom,wcn3620"; 400 }; 401 402 &wcnss_mem { 403 status = "okay"; 404 }; 405 406 /* Enable CoreSight */ 407 &cti0 { status = "okay"; }; 408 &cti1 { status = "okay"; }; 409 &cti12 { status = "okay"; }; 410 &cti13 { status = "okay"; }; 411 &cti14 { status = "okay"; }; 412 &cti15 { status = "okay"; }; 413 &debug0 { status = "okay"; }; 414 &debug1 { status = "okay"; }; 415 &debug2 { status = "okay"; }; 416 &debug3 { status = "okay"; }; 417 &etf { status = "okay"; }; 418 &etm0 { status = "okay"; }; 419 &etm1 { status = "okay"; }; 420 &etm2 { status = "okay"; }; 421 &etm3 { status = "okay"; }; 422 &etr { status = "okay"; }; 423 &funnel0 { status = "okay"; }; 424 &funnel1 { status = "okay"; }; 425 &replicator { status = "okay"; }; 426 &stm { status = "okay"; }; 427 &tpiu { status = "okay"; }; 428 429 /* 430 * 2mA drive strength is not enough when conne 431 * I2C devices with different pull up resistor 432 */ 433 &blsp_i2c2_default { 434 drive-strength = <16>; 435 }; 436 437 &blsp_i2c4_default { 438 drive-strength = <16>; 439 }; 440 441 &blsp_i2c6_default { 442 drive-strength = <16>; 443 }; 444 445 /* 446 * GPIO name legend: proper name = the GPIO li 447 * NC = not connected (pin out but not 448 * anything the board) 449 * "[PER]" = pin is muxed for [periphe 450 * LSEC = Low Speed External Connector 451 * HSEC = High Speed External Connecto 452 * 453 * Line names are taken from the schematic "Dr 454 * dated monday, august 31, 2015. Page 5 in pa 455 * 456 * For the lines routed to the external connec 457 * lines are named after the 96Boards CE Speci 458 * Appendix "Expansion Connector Signal Descri 459 * 460 * When the 96Board naming of a line and the s 461 * the same line are in conflict, the 96Board 462 * takes precedence, which means that the exte 463 * LSEC is named UART0 while the schematic and 464 * UART3. This is only for the informational l 465 * the GPIO named lines "GPIO-A" thru "GPIO-L" 466 * ones actually used for GPIO. 467 */ 468 469 &tlmm { 470 gpio-line-names = 471 "[UART0_TX]", /* GPIO_0, LSEC 472 "[UART0_RX]", /* GPIO_1, LSEC 473 "[UART0_CTS_N]", /* GPIO_2, LS 474 "[UART0_RTS_N]", /* GPIO_3, LS 475 "[UART1_TX]", /* GPIO_4, LSEC 476 "[UART1_RX]", /* GPIO_5, LSEC 477 "[I2C0_SDA]", /* GPIO_8, LSEC 478 "[I2C0_SCL]", /* GPIO_7, LSEC 479 "[SPI1_DOUT]", /* SPI1_MOSI, H 480 "[SPI1_DIN]", /* SPI1_MISO, HS 481 "[SPI1_CS]", /* SPI1_CS_N, HSE 482 "[SPI1_SCLK]", /* SPI1_CLK, HS 483 "GPIO-B", /* LS_EXP_GPIO_B, LS 484 "GPIO-C", /* LS_EXP_GPIO_C, LS 485 "[I2C3_SDA]", /* HSEC pin 38 * 486 "[I2C3_SCL]", /* HSEC pin 36 * 487 "[SPI0_MOSI]", /* LSEC pin 14 488 "[SPI0_MISO]", /* LSEC pin 10 489 "[SPI0_CS_N]", /* LSEC pin 12 490 "[SPI0_CLK]", /* LSEC pin 8 */ 491 "HDMI_HPD_N", /* GPIO 20 */ 492 "USR_LED_1_CTRL", 493 "[I2C1_SDA]", /* GPIO_22, LSEC 494 "[I2C1_SCL]", /* GPIO_23, LSEC 495 "GPIO-G", /* LS_EXP_GPIO_G, LS 496 "GPIO-H", /* LS_EXP_GPIO_H, LS 497 "[CSI0_MCLK]", /* HSEC pin 15 498 "[CSI1_MCLK]", /* HSEC pin 17 499 "GPIO-K", /* LS_EXP_GPIO_K, LS 500 "[I2C2_SDA]", /* HSEC pin 34 * 501 "[I2C2_SCL]", /* HSEC pin 32 * 502 "DSI2HDMI_INT_N", 503 "DSI_SW_SEL_APQ", 504 "GPIO-L", /* LS_EXP_GPIO_L, LS 505 "GPIO-J", /* LS_EXP_GPIO_J, LS 506 "GPIO-I", /* LS_EXP_GPIO_I, LS 507 "GPIO-A", /* LS_EXP_GPIO_A, LS 508 "FORCED_USB_BOOT", 509 "SD_CARD_DET_N", 510 "[WCSS_BT_SSBI]", 511 "[WCSS_WLAN_DATA_2]", /* GPIO 512 "[WCSS_WLAN_DATA_1]", 513 "[WCSS_WLAN_DATA_0]", 514 "[WCSS_WLAN_SET]", 515 "[WCSS_WLAN_CLK]", 516 "[WCSS_FM_SSBI]", 517 "[WCSS_FM_SDI]", 518 "[WCSS_BT_DAT_CTL]", 519 "[WCSS_BT_DAT_STB]", 520 "NC", 521 "NC", /* GPIO 50 */ 522 "NC", 523 "NC", 524 "NC", 525 "NC", 526 "NC", 527 "NC", 528 "NC", 529 "NC", 530 "NC", 531 "NC", /* GPIO 60 */ 532 "NC", 533 "NC", 534 "[CDC_PDM0_CLK]", 535 "[CDC_PDM0_SYNC]", 536 "[CDC_PDM0_TX0]", 537 "[CDC_PDM0_RX0]", 538 "[CDC_PDM0_RX1]", 539 "[CDC_PDM0_RX2]", 540 "GPIO-D", /* LS_EXP_GPIO_D, LS 541 "NC", /* GPIO 70 */ 542 "NC", 543 "NC", 544 "NC", 545 "NC", /* GPIO 74 */ 546 "NC", 547 "NC", 548 "NC", 549 "NC", 550 "NC", 551 "BOOT_CONFIG_0", /* GPIO 80 */ 552 "BOOT_CONFIG_1", 553 "BOOT_CONFIG_2", 554 "BOOT_CONFIG_3", 555 "NC", 556 "NC", 557 "BOOT_CONFIG_5", 558 "NC", 559 "NC", 560 "NC", 561 "NC", /* GPIO 90 */ 562 "NC", 563 "NC", 564 "NC", 565 "NC", 566 "NC", 567 "NC", 568 "NC", 569 "NC", 570 "NC", 571 "NC", /* GPIO 100 */ 572 "NC", 573 "NC", 574 "NC", 575 "SSBI_GPS", 576 "NC", 577 "NC", 578 "KEY_VOLP_N", 579 "NC", 580 "NC", 581 "[LS_EXP_MI2S_WS]", /* GPIO 11 582 "NC", 583 "NC", 584 "[LS_EXP_MI2S_SCK]", 585 "[LS_EXP_MI2S_DATA0]", 586 "GPIO-E", /* LS_EXP_GPIO_E, LS 587 "NC", 588 "[DSI2HDMI_MI2S_WS]", 589 "[DSI2HDMI_MI2S_SCK]", 590 "[DSI2HDMI_MI2S_DATA0]", 591 "USR_LED_2_CTRL", /* GPIO 120 592 "SB_HS_ID"; 593 594 sdc2_cd_default: sdc2-cd-default-state 595 pins = "gpio38"; 596 function = "gpio"; 597 drive-strength = <2>; 598 bias-disable; 599 }; 600 601 tlmm_leds: tlmm-leds-state { 602 pins = "gpio21", "gpio120"; 603 function = "gpio"; 604 605 output-low; 606 }; 607 608 usb_id_default: usb-id-default-state { 609 pins = "gpio121"; 610 function = "gpio"; 611 612 drive-strength = <8>; 613 bias-pull-up; 614 }; 615 616 adv7533_int_active: adv533-int-active- 617 pins = "gpio31"; 618 function = "gpio"; 619 620 drive-strength = <16>; 621 bias-disable; 622 }; 623 624 adv7533_int_suspend: adv7533-int-suspe 625 pins = "gpio31"; 626 function = "gpio"; 627 628 drive-strength = <2>; 629 bias-disable; 630 }; 631 632 adv7533_switch_active: adv7533-switch- 633 pins = "gpio32"; 634 function = "gpio"; 635 636 drive-strength = <16>; 637 bias-disable; 638 }; 639 640 adv7533_switch_suspend: adv7533-switch 641 pins = "gpio32"; 642 function = "gpio"; 643 644 drive-strength = <2>; 645 bias-disable; 646 }; 647 648 msm_key_volp_n_default: msm-key-volp-n 649 pins = "gpio107"; 650 function = "gpio"; 651 652 drive-strength = <8>; 653 bias-pull-up; 654 }; 655 }; 656 657 &pm8916_gpios { 658 gpio-line-names = 659 "USR_LED_3_CTRL", 660 "USR_LED_4_CTRL", 661 "USB_HUB_RESET_N_PM", 662 "USB_SW_SEL_PM"; 663 664 usb_hub_reset_pm: usb-hub-reset-pm-sta 665 pins = "gpio3"; 666 function = PMIC_GPIO_FUNC_NORM 667 668 input-disable; 669 output-high; 670 }; 671 672 usb_hub_reset_pm_device: usb-hub-reset 673 pins = "gpio3"; 674 function = PMIC_GPIO_FUNC_NORM 675 676 output-low; 677 }; 678 679 usb_sw_sel_pm: usb-sw-sel-pm-state { 680 pins = "gpio4"; 681 function = PMIC_GPIO_FUNC_NORM 682 683 power-source = <PM8916_GPIO_VP 684 input-disable; 685 output-high; 686 }; 687 688 usb_sw_sel_pm_device: usb-sw-sel-pm-de 689 pins = "gpio4"; 690 function = PMIC_GPIO_FUNC_NORM 691 692 power-source = <PM8916_GPIO_VP 693 input-disable; 694 output-low; 695 }; 696 697 pm8916_gpios_leds: pm8916-gpios-leds-s 698 pins = "gpio1", "gpio2"; 699 function = PMIC_GPIO_FUNC_NORM 700 701 output-low; 702 }; 703 }; 704 705 &pm8916_mpps { 706 gpio-line-names = 707 "VDD_PX_BIAS", 708 "WLAN_LED_CTRL", 709 "BT_LED_CTRL", 710 "GPIO-F"; /* LS_EXP_GPIO_F, LS 711 712 pinctrl-names = "default"; 713 pinctrl-0 = <&ls_exp_gpio_f>; 714 715 ls_exp_gpio_f: pm8916-mpp4-state { 716 pins = "mpp4"; 717 function = "digital"; 718 719 output-low; 720 power-source = <PM8916_MPP_L5> 721 }; 722 723 pm8916_mpps_leds: pm8916-mpps-state { 724 pins = "mpp2", "mpp3"; 725 function = "digital"; 726 727 output-low; 728 }; 729 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.