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