1/* 2 * Copyright 2016 Linaro Ltd 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a copy 5 * of this software and associated documentation files (the "Software"), to deal 6 * in the Software without restriction, including without limitation the rights 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 * copies of the Software, and to permit persons to whom the Software is 9 * furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice shall be included in 12 * all copies or substantial portions of the Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 * THE SOFTWARE. 21 */ 22 23#include <dt-bindings/input/input.h> 24#include <dt-bindings/gpio/gpio.h> 25#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 26#include <dt-bindings/pinctrl/qcom,pmic-mpp.h> 27#include "qcom-msm8660.dtsi" 28 29/ { 30 model = "Qualcomm APQ8060 Dragonboard"; 31 compatible = "qcom,apq8060-dragonboard", "qcom,msm8660"; 32 33 aliases { 34 serial0 = &gsbi12_serial; 35 }; 36 37 chosen { 38 stdout-path = "serial0:115200n8"; 39 }; 40 41 regulators { 42 compatible = "simple-bus"; 43 44 /* Main power of the board: 3.7V */ 45 vph: regulator-fixed { 46 compatible = "regulator-fixed"; 47 regulator-min-microvolt = <3700000>; 48 regulator-max-microvolt = <3700000>; 49 regulator-name = "VPH"; 50 regulator-type = "voltage"; 51 regulator-always-on; 52 regulator-boot-on; 53 }; 54 55 /* GPIO controlled ethernet power regulator */ 56 dragon_veth: xc622a331mrg { 57 compatible = "regulator-fixed"; 58 regulator-name = "XC6222A331MR-G"; 59 regulator-min-microvolt = <3300000>; 60 regulator-max-microvolt = <3300000>; 61 vin-supply = <&vph>; 62 gpio = <&pm8058_gpio 40 GPIO_ACTIVE_HIGH>; 63 enable-active-high; 64 pinctrl-names = "default"; 65 pinctrl-0 = <&dragon_veth_gpios>; 66 regulator-always-on; 67 }; 68 69 /* VDDvario fixed regulator */ 70 dragon_vario: nds332p { 71 compatible = "regulator-fixed"; 72 regulator-name = "NDS332P"; 73 regulator-min-microvolt = <1800000>; 74 regulator-max-microvolt = <1800000>; 75 vin-supply = <&pm8058_s3>; 76 }; 77 78 /* This is a levelshifter for SDCC5 */ 79 dragon_vio_txb: txb0104rgyr { 80 compatible = "regulator-fixed"; 81 regulator-name = "Dragon SDCC levelshifter"; 82 vin-supply = <&pm8058_l14>; 83 regulator-always-on; 84 }; 85 }; 86 87 /* 88 * Capella CM3605 light and proximity sensor mounted directly 89 * on the sensor board. 90 */ 91 cm3605 { 92 compatible = "capella,cm3605"; 93 vdd-supply = <&pm8058_l14>; // 2.85V 94 aset-gpios = <&pm8058_gpio 35 GPIO_ACTIVE_LOW>; 95 capella,aset-resistance-ohms = <100000>; 96 /* Trig on both edges - getting close or far away */ 97 interrupts-extended = <&pm8058_gpio 34 IRQ_TYPE_EDGE_BOTH>; 98 /* MPP05 analog input to the XOADC */ 99 io-channels = <&xoadc 0x00 0x05>; 100 io-channel-names = "aout"; 101 pinctrl-names = "default"; 102 pinctrl-0 = <&dragon_cm3605_gpios>, <&dragon_cm3605_mpps>; 103 }; 104 105 soc { 106 pinctrl@800000 { 107 /* eMMMC pins, all 8 data lines connected */ 108 dragon_sdcc1_pins: sdcc1 { 109 mux { 110 pins = "gpio159", "gpio160", "gpio161", 111 "gpio162", "gpio163", "gpio164", 112 "gpio165", "gpio166", "gpio167", 113 "gpio168"; 114 function = "sdc1"; 115 }; 116 clk { 117 pins = "gpio167"; /* SDC1 CLK */ 118 drive-strength = <16>; 119 bias-disable; 120 }; 121 cmd { 122 pins = "gpio168"; /* SDC1 CMD */ 123 drive-strength = <10>; 124 bias-pull-up; 125 }; 126 data { 127 /* SDC1 D0 to D7 */ 128 pins = "gpio159", "gpio160", "gpio161", "gpio162", 129 "gpio163", "gpio164", "gpio165", "gpio166"; 130 drive-strength = <10>; 131 bias-pull-up; 132 }; 133 }; 134 135 /* 136 * The SDCC3 pins are hardcoded (non-muxable) but need some pin 137 * configuration. 138 */ 139 dragon_sdcc3_pins: sdcc3 { 140 clk { 141 pins = "sdc3_clk"; 142 drive-strength = <8>; 143 bias-disable; 144 }; 145 cmd { 146 pins = "sdc3_cmd"; 147 drive-strength = <8>; 148 bias-pull-up; 149 }; 150 data { 151 pins = "sdc3_data"; 152 drive-strength = <8>; 153 bias-pull-up; 154 }; 155 }; 156 157 /* Second SD card slot pins */ 158 dragon_sdcc5_pins: sdcc5 { 159 mux { 160 pins = "gpio95", "gpio96", "gpio97", 161 "gpio98", "gpio99", "gpio100"; 162 function = "sdc5"; 163 }; 164 clk { 165 pins = "gpio97"; /* SDC5 CLK */ 166 drive-strength = <16>; 167 bias-disable; 168 }; 169 cmd { 170 pins = "gpio95"; /* SDC5 CMD */ 171 drive-strength = <10>; 172 bias-pull-up; 173 }; 174 data { 175 /* SDC5 D0 to D3 */ 176 pins = "gpio96", "gpio98", "gpio99", "gpio100"; 177 drive-strength = <10>; 178 bias-pull-up; 179 }; 180 }; 181 182 dragon_gsbi8_i2c_pins: gsbi8_i2c { 183 mux { 184 pins = "gpio64", "gpio65"; 185 function = "gsbi8"; 186 }; 187 pinconf { 188 pins = "gpio64", "gpio65"; 189 drive-strength = <16>; 190 /* These have external pull-up 2.2kOhm to 1.8V */ 191 bias-disable; 192 }; 193 }; 194 195 dragon_gsbi12_i2c_pins: gsbi12_i2c { 196 mux { 197 pins = "gpio115", "gpio116"; 198 function = "gsbi12"; 199 }; 200 pinconf { 201 pins = "gpio115", "gpio116"; 202 drive-strength = <16>; 203 /* These have external pull-up 4.7kOhm to 1.8V */ 204 bias-disable; 205 }; 206 }; 207 208 /* Primary serial port uart 0 pins */ 209 dragon_gsbi12_serial_pins: gsbi12_serial { 210 mux { 211 pins = "gpio117", "gpio118"; 212 function = "gsbi12"; 213 }; 214 tx { 215 pins = "gpio117"; 216 drive-strength = <8>; 217 bias-disable; 218 }; 219 rx { 220 pins = "gpio118"; 221 drive-strength = <2>; 222 bias-pull-up; 223 }; 224 }; 225 226 dragon_ebi2_pins: ebi2 { 227 /* 228 * Pins used by EBI2 on the Dragonboard, actually only 229 * CS2 is used by a real peripheral. CS0 is just 230 * routed to a test point. 231 */ 232 mux0 { 233 pins = 234 /* "gpio39", CS1A_N this is not good to mux */ 235 "gpio40", /* CS2A_N */ 236 "gpio134"; /* CS0_N testpoint TP29 */ 237 function = "ebi2cs"; 238 }; 239 mux1 { 240 pins = 241 /* EBI2_ADDR_7 downto EBI2_ADDR_0 address bus */ 242 "gpio123", "gpio124", "gpio125", "gpio126", 243 "gpio127", "gpio128", "gpio129", "gpio130", 244 /* EBI2_DATA_15 downto EBI2_DATA_0 data bus */ 245 "gpio135", "gpio136", "gpio137", "gpio138", 246 "gpio139", "gpio140", "gpio141", "gpio142", 247 "gpio143", "gpio144", "gpio145", "gpio146", 248 "gpio147", "gpio148", "gpio149", "gpio150", 249 "gpio151", /* EBI2_OE_N */ 250 "gpio153", /* EBI2_ADV */ 251 "gpio157"; /* EBI2_WE_N */ 252 function = "ebi2"; 253 }; 254 }; 255 256 /* Interrupt line for the KXSD9 accelerometer */ 257 dragon_kxsd9_gpios: kxsd9 { 258 irq { 259 pins = "gpio57"; /* IRQ line */ 260 bias-pull-up; 261 }; 262 }; 263 }; 264 265 qcom,ssbi@500000 { 266 pmic@0 { 267 keypad@148 { 268 linux,keymap = < 269 MATRIX_KEY(0, 0, KEY_MENU) 270 MATRIX_KEY(0, 2, KEY_1) 271 MATRIX_KEY(0, 3, KEY_4) 272 MATRIX_KEY(0, 4, KEY_7) 273 MATRIX_KEY(1, 0, KEY_UP) 274 MATRIX_KEY(1, 1, KEY_LEFT) 275 MATRIX_KEY(1, 2, KEY_DOWN) 276 MATRIX_KEY(1, 3, KEY_5) 277 MATRIX_KEY(1, 3, KEY_8) 278 MATRIX_KEY(2, 0, KEY_HOME) 279 MATRIX_KEY(2, 1, KEY_REPLY) 280 MATRIX_KEY(2, 2, KEY_2) 281 MATRIX_KEY(2, 3, KEY_6) 282 MATRIX_KEY(3, 0, KEY_VOLUMEUP) 283 MATRIX_KEY(3, 1, KEY_RIGHT) 284 MATRIX_KEY(3, 2, KEY_3) 285 MATRIX_KEY(3, 3, KEY_9) 286 MATRIX_KEY(3, 4, KEY_SWITCHVIDEOMODE) 287 MATRIX_KEY(4, 0, KEY_VOLUMEDOWN) 288 MATRIX_KEY(4, 1, KEY_BACK) 289 MATRIX_KEY(4, 2, KEY_CAMERA) 290 MATRIX_KEY(4, 3, KEY_KBDILLUMTOGGLE) 291 >; 292 keypad,num-rows = <6>; 293 keypad,num-columns = <5>; 294 }; 295 296 gpio@150 { 297 dragon_ethernet_gpios: ethernet-gpios { 298 pinconf { 299 pins = "gpio7"; 300 function = "normal"; 301 input-enable; 302 bias-disable; 303 power-source = <PM8058_GPIO_S3>; 304 }; 305 }; 306 dragon_bmp085_gpios: bmp085-gpios { 307 pinconf { 308 pins = "gpio16"; 309 function = "normal"; 310 input-enable; 311 bias-disable; 312 power-source = <PM8058_GPIO_S3>; 313 }; 314 }; 315 dragon_mpu3050_gpios: mpu3050-gpios { 316 pinconf { 317 pins = "gpio17"; 318 function = "normal"; 319 input-enable; 320 bias-disable; 321 power-source = <PM8058_GPIO_S3>; 322 }; 323 }; 324 dragon_sdcc3_gpios: sdcc3-gpios { 325 pinconf { 326 pins = "gpio22"; 327 function = "normal"; 328 input-enable; 329 bias-disable; 330 power-source = <PM8058_GPIO_S3>; 331 }; 332 }; 333 dragon_sdcc5_gpios: sdcc5-gpios { 334 pinconf { 335 pins = "gpio26"; 336 function = "normal"; 337 input-enable; 338 bias-pull-up; 339 qcom,pull-up-strength = <PMIC_GPIO_PULL_UP_30>; 340 power-source = <PM8058_GPIO_S3>; 341 }; 342 }; 343 dragon_ak8975_gpios: ak8975-gpios { 344 pinconf { 345 pins = "gpio33"; 346 function = "normal"; 347 input-enable; 348 bias-disable; 349 power-source = <PM8058_GPIO_S3>; 350 }; 351 }; 352 dragon_cm3605_gpios: cm3605-gpios { 353 /* Pin 34 connected to the proxy IRQ */ 354 pinconf_gpio34 { 355 pins = "gpio34"; 356 function = "normal"; 357 input-enable; 358 bias-disable; 359 power-source = <PM8058_GPIO_S3>; 360 }; 361 /* Pin 35 connected to ASET */ 362 pinconf_gpio35 { 363 pins = "gpio35"; 364 function = "normal"; 365 output-high; 366 bias-disable; 367 power-source = <PM8058_GPIO_S3>; 368 }; 369 }; 370 dragon_veth_gpios: veth-gpios { 371 pinconf { 372 pins = "gpio40"; 373 function = "normal"; 374 bias-disable; 375 drive-push-pull; 376 }; 377 }; 378 }; 379 380 mpps@50 { 381 dragon_cm3605_mpps: cm3605-mpps { 382 pinconf { 383 pins = "mpp5"; 384 function = "analog"; 385 input-enable; 386 bias-high-impedance; 387 /* Let's use channel 5 */ 388 qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH5>; 389 power-source = <PM8058_GPIO_S3>; 390 }; 391 }; 392 }; 393 394 xoadc@197 { 395 /* Reference voltage 2.2 V */ 396 xoadc-ref-supply = <&pm8058_l18>; 397 398 /* Board-specific channels */ 399 mpp5@5 { 400 /* Connected to AOUT of ALS sensor */ 401 reg = <0x00 0x05>; 402 }; 403 mpp6@6 { 404 /* Connected to test point TP43 */ 405 reg = <0x00 0x06>; 406 }; 407 mpp7@7 { 408 /* Connected to battery thermistor */ 409 reg = <0x00 0x07>; 410 }; 411 mpp8@8 { 412 /* Connected to battery ID detector */ 413 reg = <0x00 0x08>; 414 }; 415 mpp9@9 { 416 /* Connected to XO thermistor */ 417 reg = <0x00 0x09>; 418 }; 419 }; 420 421 led@48 { 422 /* 423 * The keypad LED @0x48 is routed to 424 * the sensor board where it is 425 * connected to an infrared LED 426 * SFH4650 (60mW, @850nm) next to the 427 * ambient light and proximity sensor 428 * Capella Microsystems CM3605. 429 */ 430 compatible = "qcom,pm8058-keypad-led"; 431 reg = <0x48>; 432 label = "pm8058:infrared:proximitysensor"; 433 default-state = "off"; 434 linux,default-trigger = "cm3605"; 435 }; 436 led@131 { 437 compatible = "qcom,pm8058-led"; 438 reg = <0x131>; 439 label = "pm8058:red"; 440 default-state = "off"; 441 }; 442 led@132 { 443 /* 444 * This is actually green too on my 445 * board, but documented as yellow. 446 */ 447 compatible = "qcom,pm8058-led"; 448 reg = <0x132>; 449 label = "pm8058:yellow"; 450 default-state = "off"; 451 linux,default-trigger = "mmc0"; 452 }; 453 led@133 { 454 compatible = "qcom,pm8058-led"; 455 reg = <0x133>; 456 label = "pm8058:green"; 457 default-state = "on"; 458 linux,default-trigger = "heartbeat"; 459 }; 460 }; 461 }; 462 463 gsbi@19800000 { 464 status = "ok"; 465 qcom,mode = <GSBI_PROT_I2C>; 466 467 i2c@19880000 { 468 status = "ok"; 469 pinctrl-names = "default"; 470 pinctrl-0 = <&dragon_gsbi8_i2c_pins>; 471 472 eeprom@52 { 473 /* A 16KiB Platform ID EEPROM on the CPU carrier board */ 474 compatible = "atmel,24c128"; 475 reg = <0x52>; 476 vcc-supply = <&pm8058_s3>; 477 pagesize = <64>; 478 }; 479 wm8903: wm8903@1a { 480 /* This Woolfson Micro device has an unrouted interrupt line */ 481 compatible = "wlf,wm8903"; 482 reg = <0x1a>; 483 484 AVDD-supply = <&pm8058_l16>; 485 CPVDD-supply = <&pm8058_l16>; 486 DBVDD-supply = <&pm8058_s3>; 487 DCVDD-supply = <&pm8058_l0>; 488 489 gpio-controller; 490 #gpio-cells = <2>; 491 492 micdet-cfg = <0>; 493 micdet-delay = <100>; 494 gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>; 495 }; 496 }; 497 }; 498 499 gsbi@19c00000 { 500 status = "ok"; 501 qcom,mode = <GSBI_PROT_I2C_UART>; 502 503 serial@19c40000 { 504 status = "ok"; 505 pinctrl-names = "default"; 506 pinctrl-0 = <&dragon_gsbi12_serial_pins>; 507 }; 508 509 i2c@19c80000 { 510 status = "ok"; 511 pinctrl-names = "default"; 512 pinctrl-0 = <&dragon_gsbi12_i2c_pins>; 513 514 ak8975@c { 515 compatible = "asahi-kasei,ak8975"; 516 reg = <0x0c>; 517 interrupt-parent = <&pm8058_gpio>; 518 interrupts = <33 IRQ_TYPE_EDGE_RISING>; 519 pinctrl-names = "default"; 520 pinctrl-0 = <&dragon_ak8975_gpios>; 521 vid-supply = <&pm8058_lvs0>; // 1.8V 522 vdd-supply = <&pm8058_l14>; // 2.85V 523 }; 524 bmp085@77 { 525 compatible = "bosch,bmp085"; 526 reg = <0x77>; 527 interrupt-parent = <&pm8058_gpio>; 528 interrupts = <16 IRQ_TYPE_EDGE_RISING>; 529 reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>; 530 pinctrl-names = "default"; 531 pinctrl-0 = <&dragon_bmp085_gpios>; 532 vddd-supply = <&pm8058_lvs0>; // 1.8V 533 vdda-supply = <&pm8058_l14>; // 2.85V 534 }; 535 mpu3050@68 { 536 compatible = "invensense,mpu3050"; 537 reg = <0x68>; 538 /* 539 * GPIO17 is pulled high by a 10k 540 * resistor to VLOGIC so needs to be 541 * active low/falling edge. 542 */ 543 interrupts-extended = <&pm8058_gpio 17 IRQ_TYPE_EDGE_FALLING>; 544 pinctrl-names = "default"; 545 pinctrl-0 = <&dragon_mpu3050_gpios>; 546 vlogic-supply = <&pm8058_lvs0>; // 1.8V 547 vdd-supply = <&pm8058_l14>; // 2.85V 548 549 /* 550 * The MPU-3050 acts as a hub for the 551 * accelerometer. 552 */ 553 i2c-gate { 554 #address-cells = <1>; 555 #size-cells = <0>; 556 557 kxsd9@18 { 558 compatible = "kionix,kxsd9"; 559 reg = <0x18>; 560 interrupt-parent = <&tlmm>; 561 interrupts = <57 IRQ_TYPE_EDGE_FALLING>; 562 pinctrl-names = "default"; 563 pinctrl-0 = <&dragon_kxsd9_gpios>; 564 iovdd-supply = <&pm8058_lvs0>; // 1.8V 565 vdd-supply = <&pm8058_l14>; // 2.85V 566 }; 567 }; 568 }; 569 }; 570 }; 571 572 external-bus@1a100000 { 573 /* The EBI2 will instantiate first, then populate its children */ 574 status = "ok"; 575 pinctrl-names = "default"; 576 pinctrl-0 = <&dragon_ebi2_pins>; 577 578 /* 579 * An on-board SMSC LAN9221 chip for "debug ethernet", 580 * which is actually just an ordinary ethernet on the 581 * EBI2. This has a 25MHz chrystal next to it, so no 582 * clocking is needed. 583 */ 584 ethernet-ebi2@2,0 { 585 compatible = "smsc,lan9221", "smsc,lan9115"; 586 reg = <2 0x0 0x100>; 587 /* 588 * The second interrupt is the PME interrupt 589 * for network wakeup, connected to the TLMM. 590 */ 591 interrupts-extended = <&pm8058_gpio 7 IRQ_TYPE_EDGE_FALLING>, 592 <&tlmm 29 IRQ_TYPE_EDGE_RISING>; 593 reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; 594 vdd33a-supply = <&dragon_veth>; 595 vddvario-supply = <&dragon_vario>; 596 pinctrl-names = "default"; 597 pinctrl-0 = <&dragon_ethernet_gpios>; 598 phy-mode = "mii"; 599 reg-io-width = <2>; 600 smsc,force-external-phy; 601 /* IRQ on edge falling = active low */ 602 smsc,irq-active-low; 603 smsc,irq-push-pull; 604 605 /* 606 * SLOW chipselect config 607 * Delay 9 cycles (140ns@64MHz) between SMSC 608 * LAN9221 Ethernet controller reads and writes 609 * on CS2. 610 */ 611 qcom,xmem-recovery-cycles = <0>; 612 qcom,xmem-write-hold-cycles = <3>; 613 qcom,xmem-write-delta-cycles = <31>; 614 qcom,xmem-read-delta-cycles = <28>; 615 qcom,xmem-write-wait-cycles = <9>; 616 qcom,xmem-read-wait-cycles = <9>; 617 }; 618 }; 619 620 rpm@104000 { 621 /* 622 * Set up of the PMIC RPM regulators for this board 623 * PM8901 supplies "preliminary regulators" whatever 624 * that means 625 */ 626 pm8901-regulators { 627 vdd_l0-supply = <&pm8901_s4>; 628 vdd_l1-supply = <&vph>; 629 vdd_l2-supply = <&vph>; 630 vdd_l3-supply = <&vph>; 631 vdd_l4-supply = <&vph>; 632 vdd_l5-supply = <&vph>; 633 vdd_l6-supply = <&vph>; 634 /* vdd_s0-supply, vdd_s1-supply: SAW regulators */ 635 vdd_s2-supply = <&vph>; 636 vdd_s3-supply = <&vph>; 637 vdd_s4-supply = <&vph>; 638 lvs0_in-supply = <&pm8058_s3>; 639 lvs1_in-supply = <&pm8901_s4>; 640 lvs2_in-supply = <&pm8058_l0>; 641 lvs3_in-supply = <&pm8058_s2>; 642 mvs_in-supply = <&pm8058_s3>; 643 644 l0 { 645 regulator-min-microvolt = <1200000>; 646 regulator-max-microvolt = <1200000>; 647 bias-pull-down; 648 }; 649 l1 { 650 regulator-min-microvolt = <3300000>; 651 regulator-max-microvolt = <3300000>; 652 bias-pull-down; 653 }; 654 l2 { 655 regulator-min-microvolt = <2850000>; 656 regulator-max-microvolt = <3300000>; 657 bias-pull-down; 658 }; 659 l3 { 660 regulator-min-microvolt = <3300000>; 661 regulator-max-microvolt = <3300000>; 662 bias-pull-down; 663 }; 664 l4 { 665 regulator-min-microvolt = <2600000>; 666 regulator-max-microvolt = <2600000>; 667 bias-pull-down; 668 }; 669 l5 { 670 regulator-min-microvolt = <2850000>; 671 regulator-max-microvolt = <2850000>; 672 bias-pull-down; 673 }; 674 l6 { 675 regulator-min-microvolt = <2200000>; 676 regulator-max-microvolt = <2200000>; 677 bias-pull-down; 678 }; 679 680 /* s0 and s1 are SAW regulators controlled over SPM */ 681 s2 { 682 regulator-min-microvolt = <1300000>; 683 regulator-max-microvolt = <1300000>; 684 qcom,switch-mode-frequency = <1600000>; 685 bias-pull-down; 686 }; 687 s3 { 688 regulator-min-microvolt = <1100000>; 689 regulator-max-microvolt = <1100000>; 690 qcom,switch-mode-frequency = <1600000>; 691 bias-pull-down; 692 }; 693 s4 { 694 regulator-min-microvolt = <1225000>; 695 regulator-max-microvolt = <1225000>; 696 qcom,switch-mode-frequency = <1600000>; 697 bias-pull-down; 698 }; 699 700 /* LVS0 thru 3 and mvs0 are just switches */ 701 lvs0 { 702 regulator-always-on; 703 }; 704 lvs1 { }; 705 lvs2 { }; 706 lvs3 { }; 707 mvs0 {}; 708 709 }; 710 711 pm8058-regulators { 712 vdd_l0_l1_lvs-supply = <&pm8058_s3>; 713 vdd_l2_l11_l12-supply = <&vph>; 714 vdd_l3_l4_l5-supply = <&vph>; 715 vdd_l6_l7-supply = <&vph>; 716 vdd_l8-supply = <&vph>; 717 vdd_l9-supply = <&vph>; 718 vdd_l10-supply = <&vph>; 719 vdd_l13_l16-supply = <&pm8058_s4>; 720 vdd_l14_l15-supply = <&vph>; 721 vdd_l17_l18-supply = <&vph>; 722 vdd_l19_l20-supply = <&vph>; 723 vdd_l21-supply = <&pm8058_s3>; 724 vdd_l22-supply = <&pm8058_s3>; 725 vdd_l23_l24_l25-supply = <&pm8058_s3>; 726 vdd_s0-supply = <&vph>; 727 vdd_s1-supply = <&vph>; 728 vdd_s2-supply = <&vph>; 729 vdd_s3-supply = <&vph>; 730 vdd_s4-supply = <&vph>; 731 vdd_ncp-supply = <&vph>; 732 733 l0 { 734 regulator-min-microvolt = <1200000>; 735 regulator-max-microvolt = <1200000>; 736 bias-pull-down; 737 }; 738 l1 { 739 regulator-min-microvolt = <1200000>; 740 regulator-max-microvolt = <1200000>; 741 bias-pull-down; 742 }; 743 l2 { 744 regulator-min-microvolt = <1800000>; 745 regulator-max-microvolt = <2600000>; 746 bias-pull-down; 747 }; 748 l3 { 749 regulator-min-microvolt = <1800000>; 750 regulator-max-microvolt = <1800000>; 751 bias-pull-down; 752 }; 753 l4 { 754 regulator-min-microvolt = <2850000>; 755 regulator-max-microvolt = <2850000>; 756 bias-pull-down; 757 }; 758 l5 { 759 regulator-min-microvolt = <2850000>; 760 regulator-max-microvolt = <2850000>; 761 bias-pull-down; 762 }; 763 l6 { 764 regulator-min-microvolt = <3000000>; 765 regulator-max-microvolt = <3600000>; 766 bias-pull-down; 767 }; 768 l7 { 769 regulator-min-microvolt = <1800000>; 770 regulator-max-microvolt = <1800000>; 771 bias-pull-down; 772 }; 773 l8 { 774 regulator-min-microvolt = <2900000>; 775 regulator-max-microvolt = <3050000>; 776 bias-pull-down; 777 }; 778 l9 { 779 regulator-min-microvolt = <1800000>; 780 regulator-max-microvolt = <1800000>; 781 bias-pull-down; 782 }; 783 l10 { 784 regulator-min-microvolt = <2600000>; 785 regulator-max-microvolt = <2600000>; 786 bias-pull-down; 787 }; 788 l11 { 789 regulator-min-microvolt = <1500000>; 790 regulator-max-microvolt = <1500000>; 791 bias-pull-down; 792 }; 793 l12 { 794 regulator-min-microvolt = <2900000>; 795 regulator-max-microvolt = <2900000>; 796 bias-pull-down; 797 }; 798 l13 { 799 regulator-min-microvolt = <2050000>; 800 regulator-max-microvolt = <2050000>; 801 bias-pull-down; 802 }; 803 l14 { 804 regulator-min-microvolt = <2850000>; 805 regulator-max-microvolt = <2850000>; 806 }; 807 l15 { 808 regulator-min-microvolt = <2850000>; 809 regulator-max-microvolt = <2850000>; 810 bias-pull-down; 811 }; 812 l16 { 813 regulator-min-microvolt = <1800000>; 814 regulator-max-microvolt = <1800000>; 815 bias-pull-down; 816 regulator-always-on; 817 }; 818 l17 { 819 // 1.5V according to schematic 820 regulator-min-microvolt = <2600000>; 821 regulator-max-microvolt = <2600000>; 822 bias-pull-down; 823 }; 824 l18 { 825 regulator-min-microvolt = <2200000>; 826 regulator-max-microvolt = <2200000>; 827 bias-pull-down; 828 }; 829 l19 { 830 regulator-min-microvolt = <2500000>; 831 regulator-max-microvolt = <2500000>; 832 bias-pull-down; 833 }; 834 l20 { 835 regulator-min-microvolt = <1800000>; 836 regulator-max-microvolt = <1800000>; 837 bias-pull-down; 838 }; 839 l21 { 840 // 1.1 V according to schematic 841 regulator-min-microvolt = <1200000>; 842 regulator-max-microvolt = <1200000>; 843 bias-pull-down; 844 regulator-always-on; 845 }; 846 l22 { 847 // 1.2 V according to schematic 848 regulator-min-microvolt = <1150000>; 849 regulator-max-microvolt = <1150000>; 850 bias-pull-down; 851 }; 852 l23 { 853 // Unused 854 regulator-min-microvolt = <1200000>; 855 regulator-max-microvolt = <1200000>; 856 bias-pull-down; 857 }; 858 l24 { 859 // Unused 860 regulator-min-microvolt = <1200000>; 861 regulator-max-microvolt = <1200000>; 862 bias-pull-down; 863 }; 864 l25 { 865 regulator-min-microvolt = <1200000>; 866 regulator-max-microvolt = <1200000>; 867 bias-pull-down; 868 }; 869 870 s0 { 871 // regulator-min-microvolt = <500000>; 872 // regulator-max-microvolt = <1325000>; 873 regulator-min-microvolt = <1100000>; 874 regulator-max-microvolt = <1100000>; 875 qcom,switch-mode-frequency = <1600000>; 876 bias-pull-down; 877 }; 878 s1 { 879 // regulator-min-microvolt = <500000>; 880 // regulator-max-microvolt = <1250000>; 881 regulator-min-microvolt = <1100000>; 882 regulator-max-microvolt = <1100000>; 883 qcom,switch-mode-frequency = <1600000>; 884 bias-pull-down; 885 }; 886 s2 { 887 // 1.3 V according to schematic 888 regulator-min-microvolt = <1200000>; 889 regulator-max-microvolt = <1400000>; 890 qcom,switch-mode-frequency = <1600000>; 891 bias-pull-down; 892 }; 893 s3 { 894 regulator-min-microvolt = <1800000>; 895 regulator-max-microvolt = <1800000>; 896 qcom,switch-mode-frequency = <1600000>; 897 regulator-always-on; 898 bias-pull-down; 899 }; 900 s4 { 901 regulator-min-microvolt = <2200000>; 902 regulator-max-microvolt = <2200000>; 903 qcom,switch-mode-frequency = <1600000>; 904 regulator-always-on; 905 bias-pull-down; 906 }; 907 908 /* LVS0 and LVS1 are just switches */ 909 lvs0 { 910 bias-pull-down; 911 }; 912 lvs1 { 913 bias-pull-down; 914 }; 915 916 ncp { 917 regulator-min-microvolt = <1800000>; 918 regulator-max-microvolt = <1800000>; 919 qcom,switch-mode-frequency = <1600000>; 920 }; 921 }; 922 }; 923 amba { 924 /* Internal 3.69 GiB eMMC */ 925 sdcc@12400000 { 926 status = "okay"; 927 pinctrl-names = "default"; 928 pinctrl-0 = <&dragon_sdcc1_pins>; 929 vmmc-supply = <&pm8901_l5>; 930 vqmmc-supply = <&pm8901_lvs0>; 931 }; 932 933 /* External micro SD card, directly connected, pulled up to 2.85 V */ 934 sdcc@12180000 { 935 status = "okay"; 936 /* Enable SSBI GPIO 22 as input, use for card detect */ 937 pinctrl-names = "default"; 938 pinctrl-0 = <&dragon_sdcc3_pins>, <&dragon_sdcc3_gpios>; 939 cd-gpios = <&pm8058_gpio 22 GPIO_ACTIVE_LOW>; 940 wp-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>; 941 vmmc-supply = <&pm8058_l14>; 942 }; 943 944 /* 945 * Second external micro SD card, using two TXB104RGYR levelshifters 946 * to lift from 1.8 V to 2.85 V 947 */ 948 sdcc@12200000 { 949 status = "okay"; 950 /* Enable SSBI GPIO 26 as input, use for card detect */ 951 pinctrl-names = "default"; 952 pinctrl-0 = <&dragon_sdcc5_pins>, <&dragon_sdcc5_gpios>; 953 cd-gpios = <&pm8058_gpio 26 GPIO_ACTIVE_LOW>; 954 wp-gpios = <&tlmm 106 GPIO_ACTIVE_HIGH>; 955 vmmc-supply = <&pm8058_l14>; 956 vqmmc-supply = <&dragon_vio_txb>; 957 }; 958 }; 959 }; 960}; 961