]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blame - arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
ARM: dts: add XOADC and IIO HWMON to MSM8660/APQ8060
[mirror_ubuntu-eoan-kernel.git] / arch / arm / boot / dts / qcom-apq8060-dragonboard.dts
CommitLineData
4892e075
LW
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 "qcom-msm8660.dtsi"
27
28/ {
29 model = "Qualcomm APQ8060 Dragonboard";
30 compatible = "qcom,apq8060-dragonboard", "qcom,msm8660";
31
32 aliases {
33 serial0 = &gsbi12_serial;
34 };
35
36 chosen {
37 stdout-path = "serial0:115200n8";
38 };
39
40 regulators {
41 compatible = "simple-bus";
42
43 /* Main power of the board: 3.7V */
44 vph: regulator-fixed {
45 compatible = "regulator-fixed";
46 regulator-min-microvolt = <3700000>;
47 regulator-max-microvolt = <3700000>;
48 regulator-name = "VPH";
49 regulator-type = "voltage";
50 regulator-always-on;
51 regulator-boot-on;
52 };
53
4c52ffc7
LW
54 /* GPIO controlled ethernet power regulator */
55 dragon_veth: xc622a331mrg {
56 compatible = "regulator-fixed";
57 regulator-name = "XC6222A331MR-G";
58 regulator-min-microvolt = <3300000>;
59 regulator-max-microvolt = <3300000>;
60 vin-supply = <&vph>;
61 gpio = <&pm8058_gpio 40 GPIO_ACTIVE_HIGH>;
62 enable-active-high;
63 pinctrl-names = "default";
64 pinctrl-0 = <&dragon_veth_gpios>;
65 regulator-always-on;
66 };
67
68 /* VDDvario fixed regulator */
69 dragon_vario: nds332p {
70 compatible = "regulator-fixed";
71 regulator-name = "NDS332P";
72 regulator-min-microvolt = <1800000>;
73 regulator-max-microvolt = <1800000>;
74 vin-supply = <&pm8058_s3>;
75 };
76
4892e075
LW
77 /* This is a levelshifter for SDCC5 */
78 dragon_vio_txb: txb0104rgyr {
79 compatible = "regulator-fixed";
80 regulator-name = "Dragon SDCC levelshifter";
81 vin-supply = <&pm8058_l14>;
82 regulator-always-on;
83 };
84 };
85
86 soc {
87 pinctrl@800000 {
88 /* eMMMC pins, all 8 data lines connected */
89 dragon_sdcc1_pins: sdcc1 {
90 mux {
91 pins = "gpio159", "gpio160", "gpio161",
92 "gpio162", "gpio163", "gpio164",
93 "gpio165", "gpio166", "gpio167",
94 "gpio168";
95 function = "sdc1";
96 };
97 clk {
3869fd6a 98 pins = "gpio167"; /* SDC1 CLK */
4892e075
LW
99 drive-strength = <16>;
100 bias-disable;
101 };
102 cmd {
3869fd6a 103 pins = "gpio168"; /* SDC1 CMD */
4892e075
LW
104 drive-strength = <10>;
105 bias-pull-up;
106 };
107 data {
3869fd6a 108 /* SDC1 D0 to D7 */
4892e075
LW
109 pins = "gpio159", "gpio160", "gpio161", "gpio162",
110 "gpio163", "gpio164", "gpio165", "gpio166";
111 drive-strength = <10>;
112 bias-pull-up;
113 };
114 };
115
116 /*
117 * The SDCC3 pins are hardcoded (non-muxable) but need some pin
118 * configuration.
119 */
120 dragon_sdcc3_pins: sdcc3 {
121 clk {
122 pins = "sdc3_clk";
123 drive-strength = <8>;
124 bias-disable;
125 };
126 cmd {
127 pins = "sdc3_cmd";
128 drive-strength = <8>;
129 bias-pull-up;
130 };
131 data {
132 pins = "sdc3_data";
133 drive-strength = <8>;
134 bias-pull-up;
135 };
136 };
137
138 /* Second SD card slot pins */
139 dragon_sdcc5_pins: sdcc5 {
140 mux {
141 pins = "gpio95", "gpio96", "gpio97",
142 "gpio98", "gpio99", "gpio100";
143 function = "sdc5";
144 };
145 clk {
146 pins = "gpio97"; /* SDC5 CLK */
147 drive-strength = <16>;
148 bias-disable;
149 };
150 cmd {
151 pins = "gpio95"; /* SDC5 CMD */
152 drive-strength = <10>;
153 bias-pull-up;
154 };
155 data {
156 /* SDC5 D0 to D3 */
157 pins = "gpio96", "gpio98", "gpio99", "gpio100";
158 drive-strength = <10>;
159 bias-pull-up;
160 };
161 };
162
163 dragon_gsbi12_i2c_pins: gsbi12_i2c {
164 mux {
165 pins = "gpio115", "gpio116";
166 function = "gsbi12";
167 };
168 pinconf {
169 pins = "gpio115", "gpio116";
170 drive-strength = <16>;
171 /* These have external pull-up 4.7kOhm to 1.8V */
172 bias-disable;
173 };
174 };
175
176 /* Primary serial port uart 0 pins */
177 dragon_gsbi12_serial_pins: gsbi12_serial {
178 mux {
179 pins = "gpio117", "gpio118";
180 function = "gsbi12";
181 };
182 tx {
183 pins = "gpio117";
184 drive-strength = <8>;
185 bias-disable;
186 };
187 rx {
188 pins = "gpio118";
189 drive-strength = <2>;
190 bias-pull-up;
191 };
192 };
4c52ffc7
LW
193
194 dragon_ebi2_pins: ebi2 {
195 /*
196 * Pins used by EBI2 on the Dragonboard, actually only
197 * CS2 is used by a real peripheral. CS0 is just
198 * routed to a test point.
199 */
200 mux0 {
201 pins =
202 /* "gpio39", CS1A_N this is not good to mux */
203 "gpio40", /* CS2A_N */
204 "gpio134"; /* CS0_N testpoint TP29 */
205 function = "ebi2cs";
206 };
207 mux1 {
208 pins =
209 /* EBI2_ADDR_7 downto EBI2_ADDR_0 address bus */
210 "gpio123", "gpio124", "gpio125", "gpio126",
211 "gpio127", "gpio128", "gpio129", "gpio130",
212 /* EBI2_DATA_15 downto EBI2_DATA_0 data bus */
213 "gpio135", "gpio136", "gpio137", "gpio138",
214 "gpio139", "gpio140", "gpio141", "gpio142",
215 "gpio143", "gpio144", "gpio145", "gpio146",
216 "gpio147", "gpio148", "gpio149", "gpio150",
217 "gpio151", /* EBI2_OE_N */
218 "gpio153", /* EBI2_ADV */
219 "gpio157"; /* EBI2_WE_N */
220 function = "ebi2";
221 };
222 };
d724d6ba
LW
223
224 /* Interrupt line for the KXSD9 accelerometer */
225 dragon_kxsd9_gpios: kxsd9 {
226 irq {
227 pins = "gpio57"; /* IRQ line */
228 bias-pull-up;
229 };
230 };
4892e075
LW
231 };
232
233 qcom,ssbi@500000 {
234 pmic@0 {
235 keypad@148 {
236 linux,keymap = <
237 MATRIX_KEY(0, 0, KEY_MENU)
238 MATRIX_KEY(0, 2, KEY_1)
239 MATRIX_KEY(0, 3, KEY_4)
240 MATRIX_KEY(0, 4, KEY_7)
241 MATRIX_KEY(1, 0, KEY_UP)
242 MATRIX_KEY(1, 1, KEY_LEFT)
243 MATRIX_KEY(1, 2, KEY_DOWN)
244 MATRIX_KEY(1, 3, KEY_5)
245 MATRIX_KEY(1, 3, KEY_8)
246 MATRIX_KEY(2, 0, KEY_HOME)
247 MATRIX_KEY(2, 1, KEY_REPLY)
248 MATRIX_KEY(2, 2, KEY_2)
249 MATRIX_KEY(2, 3, KEY_6)
250 MATRIX_KEY(3, 0, KEY_VOLUMEUP)
251 MATRIX_KEY(3, 1, KEY_RIGHT)
252 MATRIX_KEY(3, 2, KEY_3)
253 MATRIX_KEY(3, 3, KEY_9)
254 MATRIX_KEY(3, 4, KEY_SWITCHVIDEOMODE)
255 MATRIX_KEY(4, 0, KEY_VOLUMEDOWN)
256 MATRIX_KEY(4, 1, KEY_BACK)
257 MATRIX_KEY(4, 2, KEY_CAMERA)
258 MATRIX_KEY(4, 3, KEY_KBDILLUMTOGGLE)
259 >;
260 keypad,num-rows = <6>;
261 keypad,num-columns = <5>;
262 };
263
264 gpio@150 {
4c52ffc7
LW
265 dragon_ethernet_gpios: ethernet-gpios {
266 pinconf {
267 pins = "gpio7";
268 function = "normal";
269 input-enable;
270 bias-disable;
271 power-source = <PM8058_GPIO_S3>;
272 };
273 };
4892e075
LW
274 dragon_bmp085_gpios: bmp085-gpios {
275 pinconf {
276 pins = "gpio16";
277 function = "normal";
278 input-enable;
279 bias-disable;
280 power-source = <PM8058_GPIO_S3>;
281 };
282 };
d724d6ba
LW
283 dragon_mpu3050_gpios: mpu3050-gpios {
284 pinconf {
285 pins = "gpio17";
286 function = "normal";
287 input-enable;
288 bias-disable;
289 power-source = <PM8058_GPIO_S3>;
290 };
291 };
4892e075
LW
292 dragon_sdcc3_gpios: sdcc3-gpios {
293 pinconf {
294 pins = "gpio22";
295 function = "normal";
296 input-enable;
297 bias-disable;
298 power-source = <PM8058_GPIO_S3>;
299 };
300 };
301 dragon_sdcc5_gpios: sdcc5-gpios {
302 pinconf {
303 pins = "gpio26";
304 function = "normal";
305 input-enable;
306 bias-pull-up;
307 qcom,pull-up-strength = <PMIC_GPIO_PULL_UP_30>;
308 power-source = <PM8058_GPIO_S3>;
309 };
310 };
311 dragon_ak8975_gpios: ak8975-gpios {
312 pinconf {
313 pins = "gpio33";
314 function = "normal";
315 input-enable;
316 bias-disable;
317 power-source = <PM8058_GPIO_S3>;
318 };
319 };
4c52ffc7
LW
320 dragon_veth_gpios: veth-gpios {
321 pinconf {
322 pins = "gpio40";
323 function = "normal";
324 bias-disable;
325 drive-push-pull;
326 };
327 };
4892e075 328 };
20fac0ce
LW
329
330 led@48 {
331 /*
332 * The keypad LED @0x48 is routed to
333 * the sensor board where it is
334 * connected to an infrared LED
335 * SFH4650 (60mW, @850nm) next to the
336 * ambient light and proximity sensor
337 * Capella Microsystems CM3605.
338 */
339 compatible = "qcom,pm8058-keypad-led";
340 reg = <0x48>;
341 label = "pm8058:infrared:proximitysensor";
342 default-state = "off";
343 };
344 led@131 {
345 compatible = "qcom,pm8058-led";
346 reg = <0x131>;
347 label = "pm8058:red";
348 default-state = "off";
349 };
350 led@132 {
351 /*
352 * This is actually green too on my
353 * board, but documented as yellow.
354 */
355 compatible = "qcom,pm8058-led";
356 reg = <0x132>;
357 label = "pm8058:yellow";
358 default-state = "off";
359 linux,default-trigger = "mmc0";
360 };
361 led@133 {
362 compatible = "qcom,pm8058-led";
363 reg = <0x133>;
364 label = "pm8058:green";
365 default-state = "on";
366 linux,default-trigger = "heartbeat";
367 };
4892e075
LW
368 };
369 };
370
371 gsbi@19c00000 {
372 status = "ok";
373 qcom,mode = <GSBI_PROT_I2C_UART>;
374
375 serial@19c40000 {
376 status = "ok";
377 pinctrl-names = "default";
378 pinctrl-0 = <&dragon_gsbi12_serial_pins>;
379 };
380
381 i2c@19c80000 {
382 status = "ok";
383 pinctrl-names = "default";
384 pinctrl-0 = <&dragon_gsbi12_i2c_pins>;
385
386 ak8975@0c {
387 compatible = "asahi-kasei,ak8975";
388 reg = <0x0c>;
97fdcaac
LW
389 /* FIXME: GPIO33 has interrupt 224 on the PM8058 */
390 interrupt-parent = <&pm8058>;
4892e075
LW
391 interrupts = <224 IRQ_TYPE_EDGE_RISING>;
392 pinctrl-names = "default";
393 pinctrl-0 = <&dragon_ak8975_gpios>;
394 vid-supply = <&pm8058_lvs0>; // 1.8V
395 vdd-supply = <&pm8058_l14>; // 2.85V
396 };
397 bmp085@77 {
398 compatible = "bosch,bmp085";
399 reg = <0x77>;
97fdcaac
LW
400 /* FIXME: GPIO16 has interrupt 207 on the PM8058 */
401 interrupt-parent = <&pm8058>;
4892e075
LW
402 interrupts = <207 IRQ_TYPE_EDGE_RISING>;
403 reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>;
404 pinctrl-names = "default";
405 pinctrl-0 = <&dragon_bmp085_gpios>;
406 vddd-supply = <&pm8058_lvs0>; // 1.8V
407 vdda-supply = <&pm8058_l14>; // 2.85V
408 };
d724d6ba
LW
409 mpu3050@68 {
410 compatible = "invensense,mpu3050";
411 reg = <0x68>;
412 /*
413 * GPIO17 has interrupt 208 on the
414 * PM8058, it is pulled high by a 10k
415 * resistor to VLOGIC so needs to be
416 * active low/falling edge.
417 */
418 interrupts-extended = <&pm8058 208 IRQ_TYPE_EDGE_FALLING>;
419 pinctrl-names = "default";
420 pinctrl-0 = <&dragon_mpu3050_gpios>;
421 vlogic-supply = <&pm8058_lvs0>; // 1.8V
422 vdd-supply = <&pm8058_l14>; // 2.85V
423
424 /*
425 * The MPU-3050 acts as a hub for the
426 * accelerometer.
427 */
428 i2c-gate {
429 #address-cells = <1>;
430 #size-cells = <0>;
431
432 kxsd9@18 {
433 compatible = "kionix,kxsd9";
434 reg = <0x18>;
435 interrupt-parent = <&tlmm>;
436 interrupts = <57 IRQ_TYPE_EDGE_FALLING>;
437 pinctrl-names = "default";
438 pinctrl-0 = <&dragon_kxsd9_gpios>;
439 iovdd-supply = <&pm8058_lvs0>; // 1.8V
440 vdd-supply = <&pm8058_l14>; // 2.85V
441 };
442 };
443 };
4892e075
LW
444 };
445 };
446
4c52ffc7
LW
447 external-bus@1a100000 {
448 /* The EBI2 will instantiate first, then populate its children */
449 status = "ok";
450 pinctrl-names = "default";
451 pinctrl-0 = <&dragon_ebi2_pins>;
452
453 /*
454 * An on-board SMSC LAN9221 chip for "debug ethernet",
455 * which is actually just an ordinary ethernet on the
456 * EBI2. This has a 25MHz chrystal next to it, so no
457 * clocking is needed.
458 */
459 ethernet-ebi2@2,0 {
460 compatible = "smsc,lan9221", "smsc,lan9115";
461 reg = <2 0x0 0x100>;
462 /*
463 * GPIO7 has interrupt 198 on the PM8058
464 * The second interrupt is the PME interrupt
465 * for network wakeup, connected to the TLMM.
466 */
86e06f02 467 interrupts-extended = <&pm8058 198 IRQ_TYPE_EDGE_FALLING>,
4c52ffc7
LW
468 <&tlmm 29 IRQ_TYPE_EDGE_RISING>;
469 reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
470 vdd33a-supply = <&dragon_veth>;
471 vddvario-supply = <&dragon_vario>;
472 pinctrl-names = "default";
473 pinctrl-0 = <&dragon_ethernet_gpios>;
474 phy-mode = "mii";
475 reg-io-width = <2>;
476 smsc,force-external-phy;
477 /* IRQ on edge falling = active low */
478 smsc,irq-active-low;
479 smsc,irq-push-pull;
480
481 /*
482 * SLOW chipselect config
483 * Delay 9 cycles (140ns@64MHz) between SMSC
484 * LAN9221 Ethernet controller reads and writes
485 * on CS2.
486 */
487 qcom,xmem-recovery-cycles = <0>;
488 qcom,xmem-write-hold-cycles = <3>;
489 qcom,xmem-write-delta-cycles = <31>;
490 qcom,xmem-read-delta-cycles = <28>;
491 qcom,xmem-write-wait-cycles = <9>;
492 qcom,xmem-read-wait-cycles = <9>;
493 };
494 };
495
4892e075
LW
496 rpm@104000 {
497 /*
498 * Set up of the PMIC RPM regulators for this board
499 * PM8901 supplies "preliminary regulators" whatever
500 * that means
501 */
502 pm8901-regulators {
503 vdd_l0-supply = <&pm8901_s4>;
504 vdd_l1-supply = <&vph>;
505 vdd_l2-supply = <&vph>;
506 vdd_l3-supply = <&vph>;
507 vdd_l4-supply = <&vph>;
508 vdd_l5-supply = <&vph>;
509 vdd_l6-supply = <&vph>;
510 /* vdd_s0-supply, vdd_s1-supply: SAW regulators */
511 vdd_s2-supply = <&vph>;
512 vdd_s3-supply = <&vph>;
513 vdd_s4-supply = <&vph>;
514 lvs0_in-supply = <&pm8058_s3>;
515 lvs1_in-supply = <&pm8901_s4>;
516 lvs2_in-supply = <&pm8058_l0>;
517 lvs3_in-supply = <&pm8058_s2>;
518 mvs_in-supply = <&pm8058_s3>;
519
520 l0 {
521 regulator-min-microvolt = <1200000>;
522 regulator-max-microvolt = <1200000>;
523 bias-pull-down;
524 };
525 l1 {
526 regulator-min-microvolt = <3300000>;
527 regulator-max-microvolt = <3300000>;
528 bias-pull-down;
529 };
530 l2 {
531 regulator-min-microvolt = <2850000>;
532 regulator-max-microvolt = <3300000>;
533 bias-pull-down;
534 };
535 l3 {
536 regulator-min-microvolt = <3300000>;
537 regulator-max-microvolt = <3300000>;
538 bias-pull-down;
539 };
540 l4 {
541 regulator-min-microvolt = <2600000>;
542 regulator-max-microvolt = <2600000>;
543 bias-pull-down;
544 };
545 l5 {
546 regulator-min-microvolt = <2850000>;
547 regulator-max-microvolt = <2850000>;
548 bias-pull-down;
549 };
550 l6 {
551 regulator-min-microvolt = <2200000>;
552 regulator-max-microvolt = <2200000>;
553 bias-pull-down;
554 };
555
556 /* s0 and s1 are SAW regulators controlled over SPM */
557 s2 {
558 regulator-min-microvolt = <1300000>;
559 regulator-max-microvolt = <1300000>;
560 qcom,switch-mode-frequency = <1600000>;
561 bias-pull-down;
562 };
563 s3 {
564 regulator-min-microvolt = <1100000>;
565 regulator-max-microvolt = <1100000>;
566 qcom,switch-mode-frequency = <1600000>;
567 bias-pull-down;
568 };
569 s4 {
570 regulator-min-microvolt = <1225000>;
571 regulator-max-microvolt = <1225000>;
572 qcom,switch-mode-frequency = <1600000>;
573 bias-pull-down;
574 };
575
576 /* LVS0 thru 3 and mvs0 are just switches */
577 lvs0 {
578 regulator-always-on;
579 };
580 lvs1 { };
581 lvs2 { };
582 lvs3 { };
583 mvs0 {};
584
585 };
586
587 pm8058-regulators {
588 vdd_l0_l1_lvs-supply = <&pm8058_s3>;
589 vdd_l2_l11_l12-supply = <&vph>;
590 vdd_l3_l4_l5-supply = <&vph>;
591 vdd_l6_l7-supply = <&vph>;
592 vdd_l8-supply = <&vph>;
593 vdd_l9-supply = <&vph>;
594 vdd_l10-supply = <&vph>;
595 vdd_l13_l16-supply = <&pm8058_s4>;
596 vdd_l14_l15-supply = <&vph>;
597 vdd_l17_l18-supply = <&vph>;
598 vdd_l19_l20-supply = <&vph>;
599 vdd_l21-supply = <&pm8058_s3>;
600 vdd_l22-supply = <&pm8058_s3>;
601 vdd_l23_l24_l25-supply = <&pm8058_s3>;
602 vdd_s0-supply = <&vph>;
603 vdd_s1-supply = <&vph>;
604 vdd_s2-supply = <&vph>;
605 vdd_s3-supply = <&vph>;
606 vdd_s4-supply = <&vph>;
607 vdd_ncp-supply = <&vph>;
608
609 l0 {
610 regulator-min-microvolt = <1200000>;
611 regulator-max-microvolt = <1200000>;
612 bias-pull-down;
613 };
614 l1 {
615 regulator-min-microvolt = <1200000>;
616 regulator-max-microvolt = <1200000>;
617 bias-pull-down;
618 };
619 l2 {
620 regulator-min-microvolt = <1800000>;
621 regulator-max-microvolt = <2600000>;
622 bias-pull-down;
623 };
624 l3 {
625 regulator-min-microvolt = <1800000>;
626 regulator-max-microvolt = <1800000>;
627 bias-pull-down;
628 };
629 l4 {
630 regulator-min-microvolt = <2850000>;
631 regulator-max-microvolt = <2850000>;
632 bias-pull-down;
633 };
634 l5 {
635 regulator-min-microvolt = <2850000>;
636 regulator-max-microvolt = <2850000>;
637 bias-pull-down;
638 };
639 l6 {
640 regulator-min-microvolt = <3000000>;
641 regulator-max-microvolt = <3600000>;
642 bias-pull-down;
643 };
644 l7 {
645 regulator-min-microvolt = <1800000>;
646 regulator-max-microvolt = <1800000>;
647 bias-pull-down;
648 };
649 l8 {
650 regulator-min-microvolt = <2900000>;
651 regulator-max-microvolt = <3050000>;
652 bias-pull-down;
653 };
654 l9 {
655 regulator-min-microvolt = <1800000>;
656 regulator-max-microvolt = <1800000>;
657 bias-pull-down;
658 };
659 l10 {
660 regulator-min-microvolt = <2600000>;
661 regulator-max-microvolt = <2600000>;
662 bias-pull-down;
663 };
664 l11 {
665 regulator-min-microvolt = <1500000>;
666 regulator-max-microvolt = <1500000>;
667 bias-pull-down;
668 };
669 l12 {
670 regulator-min-microvolt = <2900000>;
671 regulator-max-microvolt = <2900000>;
672 bias-pull-down;
673 };
674 l13 {
675 regulator-min-microvolt = <2050000>;
676 regulator-max-microvolt = <2050000>;
677 bias-pull-down;
678 };
679 l14 {
680 regulator-min-microvolt = <2850000>;
681 regulator-max-microvolt = <2850000>;
682 };
683 l15 {
684 regulator-min-microvolt = <2850000>;
685 regulator-max-microvolt = <2850000>;
686 bias-pull-down;
687 };
688 l16 {
689 regulator-min-microvolt = <1800000>;
690 regulator-max-microvolt = <1800000>;
691 bias-pull-down;
692 regulator-always-on;
693 };
694 l17 {
695 // 1.5V according to schematic
696 regulator-min-microvolt = <2600000>;
697 regulator-max-microvolt = <2600000>;
698 bias-pull-down;
699 };
700 l18 {
701 regulator-min-microvolt = <2200000>;
702 regulator-max-microvolt = <2200000>;
703 bias-pull-down;
704 };
705 l19 {
706 regulator-min-microvolt = <2500000>;
707 regulator-max-microvolt = <2500000>;
708 bias-pull-down;
709 };
710 l20 {
711 regulator-min-microvolt = <1800000>;
712 regulator-max-microvolt = <1800000>;
713 bias-pull-down;
714 };
715 l21 {
716 // 1.1 V according to schematic
717 regulator-min-microvolt = <1200000>;
718 regulator-max-microvolt = <1200000>;
719 bias-pull-down;
720 regulator-always-on;
721 };
722 l22 {
723 // 1.2 V according to schematic
724 regulator-min-microvolt = <1150000>;
725 regulator-max-microvolt = <1150000>;
726 bias-pull-down;
727 };
728 l23 {
729 // Unused
730 regulator-min-microvolt = <1200000>;
731 regulator-max-microvolt = <1200000>;
732 bias-pull-down;
733 };
734 l24 {
735 // Unused
736 regulator-min-microvolt = <1200000>;
737 regulator-max-microvolt = <1200000>;
738 bias-pull-down;
739 };
740 l25 {
741 regulator-min-microvolt = <1200000>;
742 regulator-max-microvolt = <1200000>;
743 bias-pull-down;
744 };
745
746 s0 {
747 // regulator-min-microvolt = <500000>;
748 // regulator-max-microvolt = <1325000>;
749 regulator-min-microvolt = <1100000>;
750 regulator-max-microvolt = <1100000>;
751 qcom,switch-mode-frequency = <1600000>;
752 bias-pull-down;
753 };
754 s1 {
755 // regulator-min-microvolt = <500000>;
756 // regulator-max-microvolt = <1250000>;
757 regulator-min-microvolt = <1100000>;
758 regulator-max-microvolt = <1100000>;
759 qcom,switch-mode-frequency = <1600000>;
760 bias-pull-down;
761 };
762 s2 {
763 // 1.3 V according to schematic
764 regulator-min-microvolt = <1200000>;
765 regulator-max-microvolt = <1400000>;
766 qcom,switch-mode-frequency = <1600000>;
767 bias-pull-down;
768 };
769 s3 {
770 regulator-min-microvolt = <1800000>;
771 regulator-max-microvolt = <1800000>;
772 qcom,switch-mode-frequency = <1600000>;
773 regulator-always-on;
774 bias-pull-down;
775 };
776 s4 {
777 regulator-min-microvolt = <2200000>;
778 regulator-max-microvolt = <2200000>;
779 qcom,switch-mode-frequency = <1600000>;
780 regulator-always-on;
781 bias-pull-down;
782 };
783
784 /* LVS0 and LVS1 are just switches */
785 lvs0 {
786 bias-pull-down;
787 };
788 lvs1 {
789 bias-pull-down;
790 };
791
792 ncp {
793 regulator-min-microvolt = <1800000>;
794 regulator-max-microvolt = <1800000>;
795 qcom,switch-mode-frequency = <1600000>;
796 };
797 };
798 };
799 amba {
800 /* Internal 3.69 GiB eMMC */
801 sdcc@12400000 {
802 status = "okay";
803 pinctrl-names = "default";
804 pinctrl-0 = <&dragon_sdcc1_pins>;
805 vmmc-supply = <&pm8901_l5>;
806 vqmmc-supply = <&pm8901_lvs0>;
807 };
808
809 /* External micro SD card, directly connected, pulled up to 2.85 V */
810 sdcc@12180000 {
811 status = "okay";
812 /* Enable SSBI GPIO 22 as input, use for card detect */
813 pinctrl-names = "default";
814 pinctrl-0 = <&dragon_sdcc3_pins>, <&dragon_sdcc3_gpios>;
815 cd-gpios = <&pm8058_gpio 22 GPIO_ACTIVE_LOW>;
816 wp-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
817 vmmc-supply = <&pm8058_l14>;
818 };
819
820 /*
821 * Second external micro SD card, using two TXB104RGYR levelshifters
822 * to lift from 1.8 V to 2.85 V
823 */
824 sdcc@12200000 {
825 status = "okay";
826 /* Enable SSBI GPIO 26 as input, use for card detect */
827 pinctrl-names = "default";
828 pinctrl-0 = <&dragon_sdcc5_pins>, <&dragon_sdcc5_gpios>;
829 cd-gpios = <&pm8058_gpio 26 GPIO_ACTIVE_LOW>;
830 wp-gpios = <&tlmm 106 GPIO_ACTIVE_HIGH>;
831 vmmc-supply = <&pm8058_l14>;
832 vqmmc-supply = <&dragon_vio_txb>;
833 };
834 };
835 };
836};