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