Back to home page

OSCL-LXR

 
 

    


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