0001 // SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 #include <dt-bindings/input/input.h>
0003 #include <dt-bindings/gpio/gpio.h>
0004 #include <dt-bindings/leds/common.h>
0005 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
0006 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
0007 #include "qcom-msm8660.dtsi"
0008
0009 / {
0010 model = "Qualcomm APQ8060 Dragonboard";
0011 compatible = "qcom,apq8060-dragonboard", "qcom,msm8660";
0012
0013 aliases {
0014 serial0 = &gsbi12_serial;
0015 };
0016
0017 chosen {
0018 stdout-path = "serial0:115200n8";
0019 };
0020
0021 regulators {
0022 compatible = "simple-bus";
0023
0024 /* Main power of the board: 3.7V */
0025 vph: regulator-fixed {
0026 compatible = "regulator-fixed";
0027 regulator-min-microvolt = <3700000>;
0028 regulator-max-microvolt = <3700000>;
0029 regulator-name = "VPH";
0030 regulator-type = "voltage";
0031 regulator-always-on;
0032 regulator-boot-on;
0033 };
0034
0035 /* GPIO controlled ethernet power regulator */
0036 dragon_veth: xc622a331mrg {
0037 compatible = "regulator-fixed";
0038 regulator-name = "XC6222A331MR-G";
0039 regulator-min-microvolt = <3300000>;
0040 regulator-max-microvolt = <3300000>;
0041 vin-supply = <&vph>;
0042 gpio = <&pm8058_gpio 40 GPIO_ACTIVE_HIGH>;
0043 enable-active-high;
0044 pinctrl-names = "default";
0045 pinctrl-0 = <&dragon_veth_gpios>;
0046 regulator-always-on;
0047 };
0048
0049 /* VDDvario fixed regulator */
0050 dragon_vario: nds332p {
0051 compatible = "regulator-fixed";
0052 regulator-name = "NDS332P";
0053 regulator-min-microvolt = <1800000>;
0054 regulator-max-microvolt = <1800000>;
0055 vin-supply = <&pm8058_s3>;
0056 };
0057
0058 /* This is a levelshifter for SDCC5 */
0059 dragon_vio_txb: txb0104rgyr {
0060 compatible = "regulator-fixed";
0061 regulator-name = "Dragon SDCC levelshifter";
0062 vin-supply = <&pm8058_l14>;
0063 regulator-always-on;
0064 };
0065 };
0066
0067 /*
0068 * Capella CM3605 light and proximity sensor mounted directly
0069 * on the sensor board.
0070 */
0071 cm3605 {
0072 compatible = "capella,cm3605";
0073 vdd-supply = <&pm8058_l14>; // 2.85V
0074 aset-gpios = <&pm8058_gpio 35 GPIO_ACTIVE_LOW>;
0075 capella,aset-resistance-ohms = <100000>;
0076 /* Trig on both edges - getting close or far away */
0077 interrupts-extended = <&pm8058_gpio 34 IRQ_TYPE_EDGE_BOTH>;
0078 /* MPP05 analog input to the XOADC */
0079 io-channels = <&xoadc 0x00 0x05>;
0080 io-channel-names = "aout";
0081 pinctrl-names = "default";
0082 pinctrl-0 = <&dragon_cm3605_gpios>, <&dragon_cm3605_mpps>;
0083 };
0084
0085 soc {
0086 pinctrl@800000 {
0087 /* eMMC pins, all 8 data lines connected */
0088 dragon_sdcc1_pins: sdcc1 {
0089 mux {
0090 pins = "gpio159", "gpio160", "gpio161",
0091 "gpio162", "gpio163", "gpio164",
0092 "gpio165", "gpio166", "gpio167",
0093 "gpio168";
0094 function = "sdc1";
0095 };
0096 clk {
0097 pins = "gpio167"; /* SDC1 CLK */
0098 drive-strength = <16>;
0099 bias-disable;
0100 };
0101 cmd {
0102 pins = "gpio168"; /* SDC1 CMD */
0103 drive-strength = <10>;
0104 bias-pull-up;
0105 };
0106 data {
0107 /* SDC1 D0 to D7 */
0108 pins = "gpio159", "gpio160", "gpio161", "gpio162",
0109 "gpio163", "gpio164", "gpio165", "gpio166";
0110 drive-strength = <10>;
0111 bias-pull-up;
0112 };
0113 };
0114
0115 /*
0116 * The SDCC3 pins are hardcoded (non-muxable) but need some pin
0117 * configuration.
0118 */
0119 dragon_sdcc3_pins: sdcc3 {
0120 clk {
0121 pins = "sdc3_clk";
0122 drive-strength = <8>;
0123 bias-disable;
0124 };
0125 cmd {
0126 pins = "sdc3_cmd";
0127 drive-strength = <8>;
0128 bias-pull-up;
0129 };
0130 data {
0131 pins = "sdc3_data";
0132 drive-strength = <8>;
0133 bias-pull-up;
0134 };
0135 };
0136
0137 /* Second SD card slot pins */
0138 dragon_sdcc5_pins: sdcc5 {
0139 mux {
0140 pins = "gpio95", "gpio96", "gpio97",
0141 "gpio98", "gpio99", "gpio100";
0142 function = "sdc5";
0143 };
0144 clk {
0145 pins = "gpio97"; /* SDC5 CLK */
0146 drive-strength = <16>;
0147 bias-disable;
0148 };
0149 cmd {
0150 pins = "gpio95"; /* SDC5 CMD */
0151 drive-strength = <10>;
0152 bias-pull-up;
0153 };
0154 data {
0155 /* SDC5 D0 to D3 */
0156 pins = "gpio96", "gpio98", "gpio99", "gpio100";
0157 drive-strength = <10>;
0158 bias-pull-up;
0159 };
0160 };
0161
0162 dragon_gsbi8_i2c_pins: gsbi8_i2c {
0163 mux {
0164 pins = "gpio64", "gpio65";
0165 function = "gsbi8";
0166 };
0167 pinconf {
0168 pins = "gpio64", "gpio65";
0169 drive-strength = <16>;
0170 /* These have external pull-up 2.2kOhm to 1.8V */
0171 bias-disable;
0172 };
0173 };
0174
0175 dragon_gsbi12_i2c_pins: gsbi12_i2c {
0176 mux {
0177 pins = "gpio115", "gpio116";
0178 function = "gsbi12";
0179 };
0180 pinconf {
0181 pins = "gpio115", "gpio116";
0182 drive-strength = <16>;
0183 /* These have external pull-up 4.7kOhm to 1.8V */
0184 bias-disable;
0185 };
0186 };
0187
0188 /* Primary serial port uart 0 pins */
0189 dragon_gsbi12_serial_pins: gsbi12_serial {
0190 mux {
0191 pins = "gpio117", "gpio118";
0192 function = "gsbi12";
0193 };
0194 tx {
0195 pins = "gpio117";
0196 drive-strength = <8>;
0197 bias-disable;
0198 };
0199 rx {
0200 pins = "gpio118";
0201 drive-strength = <2>;
0202 bias-pull-up;
0203 };
0204 };
0205
0206 dragon_ebi2_pins: ebi2 {
0207 /*
0208 * Pins used by EBI2 on the Dragonboard, actually only
0209 * CS2 is used by a real peripheral. CS0 is just
0210 * routed to a test point.
0211 */
0212 mux0 {
0213 pins =
0214 /* "gpio39", CS1A_N this is not good to mux */
0215 "gpio40", /* CS2A_N */
0216 "gpio134"; /* CS0_N testpoint TP29 */
0217 function = "ebi2cs";
0218 };
0219 mux1 {
0220 pins =
0221 /* EBI2_ADDR_7 downto EBI2_ADDR_0 address bus */
0222 "gpio123", "gpio124", "gpio125", "gpio126",
0223 "gpio127", "gpio128", "gpio129", "gpio130",
0224 /* EBI2_DATA_15 downto EBI2_DATA_0 data bus */
0225 "gpio135", "gpio136", "gpio137", "gpio138",
0226 "gpio139", "gpio140", "gpio141", "gpio142",
0227 "gpio143", "gpio144", "gpio145", "gpio146",
0228 "gpio147", "gpio148", "gpio149", "gpio150",
0229 "gpio151", /* EBI2_OE_N */
0230 "gpio153", /* EBI2_ADV */
0231 "gpio157"; /* EBI2_WE_N */
0232 function = "ebi2";
0233 };
0234 };
0235
0236 /* Interrupt line for the KXSD9 accelerometer */
0237 dragon_kxsd9_gpios: kxsd9 {
0238 irq {
0239 pins = "gpio57"; /* IRQ line */
0240 bias-pull-up;
0241 };
0242 };
0243 };
0244
0245 qcom,ssbi@500000 {
0246 pmic@0 {
0247 keypad@148 {
0248 linux,keymap = <
0249 MATRIX_KEY(0, 0, KEY_MENU)
0250 MATRIX_KEY(0, 2, KEY_1)
0251 MATRIX_KEY(0, 3, KEY_4)
0252 MATRIX_KEY(0, 4, KEY_7)
0253 MATRIX_KEY(1, 0, KEY_UP)
0254 MATRIX_KEY(1, 1, KEY_LEFT)
0255 MATRIX_KEY(1, 2, KEY_DOWN)
0256 MATRIX_KEY(1, 3, KEY_5)
0257 MATRIX_KEY(1, 3, KEY_8)
0258 MATRIX_KEY(2, 0, KEY_HOME)
0259 MATRIX_KEY(2, 1, KEY_REPLY)
0260 MATRIX_KEY(2, 2, KEY_2)
0261 MATRIX_KEY(2, 3, KEY_6)
0262 MATRIX_KEY(3, 0, KEY_VOLUMEUP)
0263 MATRIX_KEY(3, 1, KEY_RIGHT)
0264 MATRIX_KEY(3, 2, KEY_3)
0265 MATRIX_KEY(3, 3, KEY_9)
0266 MATRIX_KEY(3, 4, KEY_SWITCHVIDEOMODE)
0267 MATRIX_KEY(4, 0, KEY_VOLUMEDOWN)
0268 MATRIX_KEY(4, 1, KEY_BACK)
0269 MATRIX_KEY(4, 2, KEY_CAMERA)
0270 MATRIX_KEY(4, 3, KEY_KBDILLUMTOGGLE)
0271 >;
0272 keypad,num-rows = <6>;
0273 keypad,num-columns = <5>;
0274 };
0275
0276 gpio@150 {
0277 dragon_ethernet_gpios: ethernet-state {
0278 pinconf {
0279 pins = "gpio7";
0280 function = "normal";
0281 input-enable;
0282 bias-disable;
0283 power-source = <PM8058_GPIO_S3>;
0284 };
0285 };
0286 dragon_bmp085_gpios: bmp085-state {
0287 pinconf {
0288 pins = "gpio16";
0289 function = "normal";
0290 input-enable;
0291 bias-disable;
0292 power-source = <PM8058_GPIO_S3>;
0293 };
0294 };
0295 dragon_mpu3050_gpios: mpu3050-state {
0296 pinconf {
0297 pins = "gpio17";
0298 function = "normal";
0299 input-enable;
0300 bias-disable;
0301 power-source = <PM8058_GPIO_S3>;
0302 };
0303 };
0304 dragon_sdcc3_gpios: sdcc3-state {
0305 pinconf {
0306 pins = "gpio22";
0307 function = "normal";
0308 input-enable;
0309 bias-disable;
0310 power-source = <PM8058_GPIO_S3>;
0311 };
0312 };
0313 dragon_sdcc5_gpios: sdcc5-state {
0314 pinconf {
0315 pins = "gpio26";
0316 function = "normal";
0317 input-enable;
0318 bias-pull-up;
0319 qcom,pull-up-strength = <PMIC_GPIO_PULL_UP_30>;
0320 power-source = <PM8058_GPIO_S3>;
0321 };
0322 };
0323 dragon_ak8975_gpios: ak8975-state {
0324 pinconf {
0325 pins = "gpio33";
0326 function = "normal";
0327 input-enable;
0328 bias-disable;
0329 power-source = <PM8058_GPIO_S3>;
0330 };
0331 };
0332 dragon_cm3605_gpios: cm3605-state {
0333 /* Pin 34 connected to the proxy IRQ */
0334 gpio34-pins {
0335 pins = "gpio34";
0336 function = "normal";
0337 input-enable;
0338 bias-disable;
0339 power-source = <PM8058_GPIO_S3>;
0340 };
0341 /* Pin 35 connected to ASET */
0342 gpio35-pins {
0343 pins = "gpio35";
0344 function = "normal";
0345 output-high;
0346 bias-disable;
0347 power-source = <PM8058_GPIO_S3>;
0348 };
0349 };
0350 dragon_veth_gpios: veth-state {
0351 pinconf {
0352 pins = "gpio40";
0353 function = "normal";
0354 bias-disable;
0355 drive-push-pull;
0356 };
0357 };
0358 };
0359
0360 mpps@50 {
0361 dragon_cm3605_mpps: cm3605-mpps-state {
0362 mpp5 {
0363 pins = "mpp5";
0364 function = "analog";
0365 input-enable;
0366 bias-high-impedance;
0367 /* Let's use channel 5 */
0368 qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH5>;
0369 power-source = <PM8058_GPIO_S3>;
0370 };
0371 };
0372 };
0373
0374 xoadc@197 {
0375 /* Reference voltage 2.2 V */
0376 xoadc-ref-supply = <&pm8058_l18>;
0377
0378 /* Board-specific channels */
0379 mpp5@5 {
0380 /* Connected to AOUT of ALS sensor */
0381 reg = <0x00 0x05>;
0382 };
0383 mpp6@6 {
0384 /* Connected to test point TP43 */
0385 reg = <0x00 0x06>;
0386 };
0387 mpp7@7 {
0388 /* Connected to battery thermistor */
0389 reg = <0x00 0x07>;
0390 };
0391 mpp8@8 {
0392 /* Connected to battery ID detector */
0393 reg = <0x00 0x08>;
0394 };
0395 mpp9@9 {
0396 /* Connected to XO thermistor */
0397 reg = <0x00 0x09>;
0398 };
0399 };
0400
0401 led@48 {
0402 /*
0403 * The keypad LED @0x48 is routed to
0404 * the sensor board where it is
0405 * connected to an infrared LED
0406 * SFH4650 (60mW, @850nm) next to the
0407 * ambient light and proximity sensor
0408 * Capella Microsystems CM3605.
0409 */
0410 compatible = "qcom,pm8058-keypad-led";
0411 reg = <0x48>;
0412 label = "pm8058:infrared:proximitysensor";
0413 default-state = "off";
0414 linux,default-trigger = "cm3605";
0415 };
0416 led@131 {
0417 compatible = "qcom,pm8058-led";
0418 reg = <0x131>;
0419 label = "pm8058:red";
0420 color = <LED_COLOR_ID_RED>;
0421 default-state = "off";
0422 };
0423 led@132 {
0424 /*
0425 * This is actually green too on my
0426 * board, but documented as yellow.
0427 */
0428 compatible = "qcom,pm8058-led";
0429 reg = <0x132>;
0430 label = "pm8058:yellow";
0431 color = <LED_COLOR_ID_YELLOW>;
0432 default-state = "off";
0433 linux,default-trigger = "mmc0";
0434 };
0435 led@133 {
0436 compatible = "qcom,pm8058-led";
0437 reg = <0x133>;
0438 label = "pm8058:green";
0439 function = LED_FUNCTION_HEARTBEAT;
0440 color = <LED_COLOR_ID_GREEN>;
0441 default-state = "on";
0442 linux,default-trigger = "heartbeat";
0443 };
0444 };
0445 };
0446
0447 gsbi@19800000 {
0448 status = "okay";
0449 qcom,mode = <GSBI_PROT_I2C>;
0450
0451 i2c@19880000 {
0452 status = "okay";
0453 pinctrl-names = "default";
0454 pinctrl-0 = <&dragon_gsbi8_i2c_pins>;
0455
0456 eeprom@52 {
0457 /* A 16KiB Platform ID EEPROM on the CPU carrier board */
0458 compatible = "atmel,24c128";
0459 reg = <0x52>;
0460 vcc-supply = <&pm8058_s3>;
0461 pagesize = <64>;
0462 };
0463 wm8903: wm8903@1a {
0464 /* This Woolfson Micro device has an unrouted interrupt line */
0465 compatible = "wlf,wm8903";
0466 reg = <0x1a>;
0467
0468 AVDD-supply = <&pm8058_l16>;
0469 CPVDD-supply = <&pm8058_l16>;
0470 DBVDD-supply = <&pm8058_s3>;
0471 DCVDD-supply = <&pm8058_l0>;
0472
0473 gpio-controller;
0474 #gpio-cells = <2>;
0475
0476 micdet-cfg = <0>;
0477 micdet-delay = <100>;
0478 gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
0479 };
0480 };
0481 };
0482
0483 gsbi@19c00000 {
0484 status = "okay";
0485 qcom,mode = <GSBI_PROT_I2C_UART>;
0486
0487 serial@19c40000 {
0488 status = "okay";
0489 pinctrl-names = "default";
0490 pinctrl-0 = <&dragon_gsbi12_serial_pins>;
0491 };
0492
0493 i2c@19c80000 {
0494 status = "okay";
0495 pinctrl-names = "default";
0496 pinctrl-0 = <&dragon_gsbi12_i2c_pins>;
0497
0498 ak8975@c {
0499 compatible = "asahi-kasei,ak8975";
0500 reg = <0x0c>;
0501 interrupt-parent = <&pm8058_gpio>;
0502 interrupts = <33 IRQ_TYPE_EDGE_RISING>;
0503 pinctrl-names = "default";
0504 pinctrl-0 = <&dragon_ak8975_gpios>;
0505 vid-supply = <&pm8058_lvs0>; // 1.8V
0506 vdd-supply = <&pm8058_l14>; // 2.85V
0507 };
0508 bmp085@77 {
0509 compatible = "bosch,bmp085";
0510 reg = <0x77>;
0511 interrupt-parent = <&pm8058_gpio>;
0512 interrupts = <16 IRQ_TYPE_EDGE_RISING>;
0513 reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>;
0514 pinctrl-names = "default";
0515 pinctrl-0 = <&dragon_bmp085_gpios>;
0516 vddd-supply = <&pm8058_lvs0>; // 1.8V
0517 vdda-supply = <&pm8058_l14>; // 2.85V
0518 };
0519 mpu3050@68 {
0520 compatible = "invensense,mpu3050";
0521 reg = <0x68>;
0522 /*
0523 * GPIO17 is pulled high by a 10k
0524 * resistor to VLOGIC so needs to be
0525 * active low/falling edge.
0526 */
0527 interrupts-extended = <&pm8058_gpio 17 IRQ_TYPE_EDGE_FALLING>;
0528 pinctrl-names = "default";
0529 pinctrl-0 = <&dragon_mpu3050_gpios>;
0530 vlogic-supply = <&pm8058_lvs0>; // 1.8V
0531 vdd-supply = <&pm8058_l14>; // 2.85V
0532
0533 /*
0534 * The MPU-3050 acts as a hub for the
0535 * accelerometer.
0536 */
0537 i2c-gate {
0538 #address-cells = <1>;
0539 #size-cells = <0>;
0540
0541 kxsd9@18 {
0542 compatible = "kionix,kxsd9";
0543 reg = <0x18>;
0544 interrupt-parent = <&tlmm>;
0545 interrupts = <57 IRQ_TYPE_EDGE_FALLING>;
0546 pinctrl-names = "default";
0547 pinctrl-0 = <&dragon_kxsd9_gpios>;
0548 iovdd-supply = <&pm8058_lvs0>; // 1.8V
0549 vdd-supply = <&pm8058_l14>; // 2.85V
0550 };
0551 };
0552 };
0553 };
0554 };
0555
0556 external-bus@1a100000 {
0557 /* The EBI2 will instantiate first, then populate its children */
0558 status = "okay";
0559 pinctrl-names = "default";
0560 pinctrl-0 = <&dragon_ebi2_pins>;
0561
0562 /*
0563 * An on-board SMSC LAN9221 chip for "debug ethernet",
0564 * which is actually just an ordinary ethernet on the
0565 * EBI2. This has a 25MHz chrystal next to it, so no
0566 * clocking is needed.
0567 */
0568 ethernet@2,0 {
0569 compatible = "smsc,lan9221", "smsc,lan9115";
0570 reg = <2 0x0 0x100>;
0571 /*
0572 * The second interrupt is the PME interrupt
0573 * for network wakeup, connected to the TLMM.
0574 */
0575 interrupts-extended = <&pm8058_gpio 7 IRQ_TYPE_EDGE_FALLING>,
0576 <&tlmm 29 IRQ_TYPE_EDGE_RISING>;
0577 reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
0578 vdd33a-supply = <&dragon_veth>;
0579 vddvario-supply = <&dragon_vario>;
0580 pinctrl-names = "default";
0581 pinctrl-0 = <&dragon_ethernet_gpios>;
0582 phy-mode = "mii";
0583 reg-io-width = <2>;
0584 smsc,force-external-phy;
0585 smsc,irq-push-pull;
0586
0587 /*
0588 * SLOW chipselect config
0589 * Delay 9 cycles (140ns@64MHz) between SMSC
0590 * LAN9221 Ethernet controller reads and writes
0591 * on CS2.
0592 */
0593 qcom,xmem-recovery-cycles = <0>;
0594 qcom,xmem-write-hold-cycles = <3>;
0595 qcom,xmem-write-delta-cycles = <31>;
0596 qcom,xmem-read-delta-cycles = <28>;
0597 qcom,xmem-write-wait-cycles = <9>;
0598 qcom,xmem-read-wait-cycles = <9>;
0599 };
0600 };
0601
0602 rpm@104000 {
0603 /*
0604 * Set up of the PMIC RPM regulators for this board
0605 * PM8901 supplies "preliminary regulators" whatever
0606 * that means
0607 */
0608 pm8901-regulators {
0609 vdd_l0-supply = <&pm8901_s4>;
0610 vdd_l1-supply = <&vph>;
0611 vdd_l2-supply = <&vph>;
0612 vdd_l3-supply = <&vph>;
0613 vdd_l4-supply = <&vph>;
0614 vdd_l5-supply = <&vph>;
0615 vdd_l6-supply = <&vph>;
0616 /* vdd_s0-supply, vdd_s1-supply: SAW regulators */
0617 vdd_s2-supply = <&vph>;
0618 vdd_s3-supply = <&vph>;
0619 vdd_s4-supply = <&vph>;
0620 lvs0_in-supply = <&pm8058_s3>;
0621 lvs1_in-supply = <&pm8901_s4>;
0622 lvs2_in-supply = <&pm8058_l0>;
0623 lvs3_in-supply = <&pm8058_s2>;
0624 mvs_in-supply = <&pm8058_s3>;
0625
0626 l0 {
0627 regulator-min-microvolt = <1200000>;
0628 regulator-max-microvolt = <1200000>;
0629 bias-pull-down;
0630 };
0631 l1 {
0632 regulator-min-microvolt = <3300000>;
0633 regulator-max-microvolt = <3300000>;
0634 bias-pull-down;
0635 };
0636 l2 {
0637 regulator-min-microvolt = <2850000>;
0638 regulator-max-microvolt = <3300000>;
0639 bias-pull-down;
0640 };
0641 l3 {
0642 regulator-min-microvolt = <3300000>;
0643 regulator-max-microvolt = <3300000>;
0644 bias-pull-down;
0645 };
0646 l4 {
0647 regulator-min-microvolt = <2600000>;
0648 regulator-max-microvolt = <2600000>;
0649 bias-pull-down;
0650 };
0651 l5 {
0652 regulator-min-microvolt = <2850000>;
0653 regulator-max-microvolt = <2850000>;
0654 bias-pull-down;
0655 };
0656 l6 {
0657 regulator-min-microvolt = <2200000>;
0658 regulator-max-microvolt = <2200000>;
0659 bias-pull-down;
0660 };
0661
0662 /* s0 and s1 are SAW regulators controlled over SPM */
0663 s2 {
0664 regulator-min-microvolt = <1300000>;
0665 regulator-max-microvolt = <1300000>;
0666 qcom,switch-mode-frequency = <1600000>;
0667 bias-pull-down;
0668 };
0669 s3 {
0670 regulator-min-microvolt = <1100000>;
0671 regulator-max-microvolt = <1100000>;
0672 qcom,switch-mode-frequency = <1600000>;
0673 bias-pull-down;
0674 };
0675 s4 {
0676 regulator-min-microvolt = <1225000>;
0677 regulator-max-microvolt = <1225000>;
0678 qcom,switch-mode-frequency = <1600000>;
0679 bias-pull-down;
0680 };
0681
0682 /* LVS0 thru 3 and mvs are just switches */
0683 lvs0 {
0684 regulator-always-on;
0685 };
0686 lvs1 { };
0687 lvs2 { };
0688 lvs3 { };
0689 mvs { };
0690
0691 };
0692
0693 pm8058-regulators {
0694 vdd_l0_l1_lvs-supply = <&pm8058_s3>;
0695 vdd_l2_l11_l12-supply = <&vph>;
0696 vdd_l3_l4_l5-supply = <&vph>;
0697 vdd_l6_l7-supply = <&vph>;
0698 vdd_l8-supply = <&vph>;
0699 vdd_l9-supply = <&vph>;
0700 vdd_l10-supply = <&vph>;
0701 vdd_l13_l16-supply = <&pm8058_s4>;
0702 vdd_l14_l15-supply = <&vph>;
0703 vdd_l17_l18-supply = <&vph>;
0704 vdd_l19_l20-supply = <&vph>;
0705 vdd_l21-supply = <&pm8058_s3>;
0706 vdd_l22-supply = <&pm8058_s3>;
0707 vdd_l23_l24_l25-supply = <&pm8058_s3>;
0708 vdd_s0-supply = <&vph>;
0709 vdd_s1-supply = <&vph>;
0710 vdd_s2-supply = <&vph>;
0711 vdd_s3-supply = <&vph>;
0712 vdd_s4-supply = <&vph>;
0713 vdd_ncp-supply = <&vph>;
0714
0715 l0 {
0716 regulator-min-microvolt = <1200000>;
0717 regulator-max-microvolt = <1200000>;
0718 bias-pull-down;
0719 };
0720 l1 {
0721 regulator-min-microvolt = <1200000>;
0722 regulator-max-microvolt = <1200000>;
0723 bias-pull-down;
0724 };
0725 l2 {
0726 regulator-min-microvolt = <1800000>;
0727 regulator-max-microvolt = <2600000>;
0728 bias-pull-down;
0729 };
0730 l3 {
0731 regulator-min-microvolt = <1800000>;
0732 regulator-max-microvolt = <1800000>;
0733 bias-pull-down;
0734 };
0735 l4 {
0736 regulator-min-microvolt = <2850000>;
0737 regulator-max-microvolt = <2850000>;
0738 bias-pull-down;
0739 };
0740 l5 {
0741 regulator-min-microvolt = <2850000>;
0742 regulator-max-microvolt = <2850000>;
0743 bias-pull-down;
0744 };
0745 l6 {
0746 regulator-min-microvolt = <3000000>;
0747 regulator-max-microvolt = <3600000>;
0748 bias-pull-down;
0749 };
0750 l7 {
0751 regulator-min-microvolt = <1800000>;
0752 regulator-max-microvolt = <1800000>;
0753 bias-pull-down;
0754 };
0755 l8 {
0756 regulator-min-microvolt = <2900000>;
0757 regulator-max-microvolt = <3050000>;
0758 bias-pull-down;
0759 };
0760 l9 {
0761 regulator-min-microvolt = <1800000>;
0762 regulator-max-microvolt = <1800000>;
0763 bias-pull-down;
0764 };
0765 l10 {
0766 regulator-min-microvolt = <2600000>;
0767 regulator-max-microvolt = <2600000>;
0768 bias-pull-down;
0769 };
0770 l11 {
0771 regulator-min-microvolt = <1500000>;
0772 regulator-max-microvolt = <1500000>;
0773 bias-pull-down;
0774 };
0775 l12 {
0776 regulator-min-microvolt = <2900000>;
0777 regulator-max-microvolt = <2900000>;
0778 bias-pull-down;
0779 };
0780 l13 {
0781 regulator-min-microvolt = <2050000>;
0782 regulator-max-microvolt = <2050000>;
0783 bias-pull-down;
0784 };
0785 l14 {
0786 regulator-min-microvolt = <2850000>;
0787 regulator-max-microvolt = <2850000>;
0788 };
0789 l15 {
0790 regulator-min-microvolt = <2850000>;
0791 regulator-max-microvolt = <2850000>;
0792 bias-pull-down;
0793 };
0794 l16 {
0795 regulator-min-microvolt = <1800000>;
0796 regulator-max-microvolt = <1800000>;
0797 bias-pull-down;
0798 regulator-always-on;
0799 };
0800 l17 {
0801 // 1.5V according to schematic
0802 regulator-min-microvolt = <2600000>;
0803 regulator-max-microvolt = <2600000>;
0804 bias-pull-down;
0805 };
0806 l18 {
0807 regulator-min-microvolt = <2200000>;
0808 regulator-max-microvolt = <2200000>;
0809 bias-pull-down;
0810 };
0811 l19 {
0812 regulator-min-microvolt = <2500000>;
0813 regulator-max-microvolt = <2500000>;
0814 bias-pull-down;
0815 };
0816 l20 {
0817 regulator-min-microvolt = <1800000>;
0818 regulator-max-microvolt = <1800000>;
0819 bias-pull-down;
0820 };
0821 l21 {
0822 // 1.1 V according to schematic
0823 regulator-min-microvolt = <1200000>;
0824 regulator-max-microvolt = <1200000>;
0825 bias-pull-down;
0826 regulator-always-on;
0827 };
0828 l22 {
0829 // 1.2 V according to schematic
0830 regulator-min-microvolt = <1150000>;
0831 regulator-max-microvolt = <1150000>;
0832 bias-pull-down;
0833 };
0834 l23 {
0835 // Unused
0836 regulator-min-microvolt = <1200000>;
0837 regulator-max-microvolt = <1200000>;
0838 bias-pull-down;
0839 };
0840 l24 {
0841 // Unused
0842 regulator-min-microvolt = <1200000>;
0843 regulator-max-microvolt = <1200000>;
0844 bias-pull-down;
0845 };
0846 l25 {
0847 regulator-min-microvolt = <1200000>;
0848 regulator-max-microvolt = <1200000>;
0849 bias-pull-down;
0850 };
0851
0852 s0 {
0853 // regulator-min-microvolt = <500000>;
0854 // regulator-max-microvolt = <1325000>;
0855 regulator-min-microvolt = <1100000>;
0856 regulator-max-microvolt = <1100000>;
0857 qcom,switch-mode-frequency = <1600000>;
0858 bias-pull-down;
0859 };
0860 s1 {
0861 // regulator-min-microvolt = <500000>;
0862 // regulator-max-microvolt = <1250000>;
0863 regulator-min-microvolt = <1100000>;
0864 regulator-max-microvolt = <1100000>;
0865 qcom,switch-mode-frequency = <1600000>;
0866 bias-pull-down;
0867 };
0868 s2 {
0869 // 1.3 V according to schematic
0870 regulator-min-microvolt = <1200000>;
0871 regulator-max-microvolt = <1400000>;
0872 qcom,switch-mode-frequency = <1600000>;
0873 bias-pull-down;
0874 };
0875 s3 {
0876 regulator-min-microvolt = <1800000>;
0877 regulator-max-microvolt = <1800000>;
0878 qcom,switch-mode-frequency = <1600000>;
0879 regulator-always-on;
0880 bias-pull-down;
0881 };
0882 s4 {
0883 regulator-min-microvolt = <2200000>;
0884 regulator-max-microvolt = <2200000>;
0885 qcom,switch-mode-frequency = <1600000>;
0886 regulator-always-on;
0887 bias-pull-down;
0888 };
0889
0890 /* LVS0 and LVS1 are just switches */
0891 lvs0 {
0892 bias-pull-down;
0893 };
0894 lvs1 {
0895 bias-pull-down;
0896 };
0897
0898 ncp {
0899 regulator-min-microvolt = <1800000>;
0900 regulator-max-microvolt = <1800000>;
0901 qcom,switch-mode-frequency = <1600000>;
0902 };
0903 };
0904 };
0905 amba {
0906 /* Internal 3.69 GiB eMMC */
0907 mmc@12400000 {
0908 status = "okay";
0909 pinctrl-names = "default";
0910 pinctrl-0 = <&dragon_sdcc1_pins>;
0911 vmmc-supply = <&pm8901_l5>;
0912 vqmmc-supply = <&pm8901_lvs0>;
0913 };
0914
0915 /* External micro SD card, directly connected, pulled up to 2.85 V */
0916 mmc@12180000 {
0917 status = "okay";
0918 /* Enable SSBI GPIO 22 as input, use for card detect */
0919 pinctrl-names = "default";
0920 pinctrl-0 = <&dragon_sdcc3_pins>, <&dragon_sdcc3_gpios>;
0921 cd-gpios = <&pm8058_gpio 22 GPIO_ACTIVE_LOW>;
0922 wp-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
0923 vmmc-supply = <&pm8058_l14>;
0924 };
0925
0926 /*
0927 * Second external micro SD card, using two TXB104RGYR levelshifters
0928 * to lift from 1.8 V to 2.85 V
0929 */
0930 mmc@12200000 {
0931 status = "okay";
0932 /* Enable SSBI GPIO 26 as input, use for card detect */
0933 pinctrl-names = "default";
0934 pinctrl-0 = <&dragon_sdcc5_pins>, <&dragon_sdcc5_gpios>;
0935 cd-gpios = <&pm8058_gpio 26 GPIO_ACTIVE_LOW>;
0936 wp-gpios = <&tlmm 106 GPIO_ACTIVE_HIGH>;
0937 vmmc-supply = <&pm8058_l14>;
0938 vqmmc-supply = <&dragon_vio_txb>;
0939 };
0940 };
0941 };
0942 };