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