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