1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun#include <dt-bindings/input/input.h> 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun#include "qcom-msm8960.dtsi" 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun/ { 7*4882a593Smuzhiyun model = "Qualcomm MSM8960 CDP"; 8*4882a593Smuzhiyun compatible = "qcom,msm8960-cdp", "qcom,msm8960"; 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun aliases { 11*4882a593Smuzhiyun serial0 = &gsbi5_serial; 12*4882a593Smuzhiyun }; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun chosen { 15*4882a593Smuzhiyun stdout-path = "serial0:115200n8"; 16*4882a593Smuzhiyun }; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun soc { 19*4882a593Smuzhiyun gsbi@16400000 { 20*4882a593Smuzhiyun status = "ok"; 21*4882a593Smuzhiyun qcom,mode = <GSBI_PROT_I2C_UART>; 22*4882a593Smuzhiyun serial@16440000 { 23*4882a593Smuzhiyun status = "ok"; 24*4882a593Smuzhiyun }; 25*4882a593Smuzhiyun }; 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun amba { 28*4882a593Smuzhiyun /* eMMC */ 29*4882a593Smuzhiyun sdcc1: sdcc@12400000 { 30*4882a593Smuzhiyun status = "okay"; 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun /* External micro SD card */ 34*4882a593Smuzhiyun sdcc3: sdcc@12180000 { 35*4882a593Smuzhiyun status = "okay"; 36*4882a593Smuzhiyun }; 37*4882a593Smuzhiyun }; 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun rpm@108000 { 40*4882a593Smuzhiyun regulators { 41*4882a593Smuzhiyun compatible = "qcom,rpm-pm8921-regulators"; 42*4882a593Smuzhiyun vin_lvs1_3_6-supply = <&pm8921_s4>; 43*4882a593Smuzhiyun vin_lvs2-supply = <&pm8921_s4>; 44*4882a593Smuzhiyun vin_lvs4_5_7-supply = <&pm8921_s4>; 45*4882a593Smuzhiyun vdd_ncp-supply = <&pm8921_l6>; 46*4882a593Smuzhiyun vdd_l1_l2_l12_l18-supply = <&pm8921_s4>; 47*4882a593Smuzhiyun vdd_l21_l23_l29-supply = <&pm8921_s8>; 48*4882a593Smuzhiyun vdd_l24-supply = <&pm8921_s1>; 49*4882a593Smuzhiyun vdd_l25-supply = <&pm8921_s1>; 50*4882a593Smuzhiyun vdd_l27-supply = <&pm8921_s7>; 51*4882a593Smuzhiyun vdd_l28-supply = <&pm8921_s7>; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun /* Buck SMPS */ 54*4882a593Smuzhiyun pm8921_s1: s1 { 55*4882a593Smuzhiyun regulator-always-on; 56*4882a593Smuzhiyun regulator-min-microvolt = <1225000>; 57*4882a593Smuzhiyun regulator-max-microvolt = <1225000>; 58*4882a593Smuzhiyun qcom,switch-mode-frequency = <3200000>; 59*4882a593Smuzhiyun bias-pull-down; 60*4882a593Smuzhiyun }; 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun pm8921_s2: s2 { 63*4882a593Smuzhiyun regulator-min-microvolt = <1300000>; 64*4882a593Smuzhiyun regulator-max-microvolt = <1300000>; 65*4882a593Smuzhiyun qcom,switch-mode-frequency = <1600000>; 66*4882a593Smuzhiyun bias-pull-down; 67*4882a593Smuzhiyun }; 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun pm8921_s3: s3 { 70*4882a593Smuzhiyun regulator-min-microvolt = <500000>; 71*4882a593Smuzhiyun regulator-max-microvolt = <1150000>; 72*4882a593Smuzhiyun qcom,switch-mode-frequency = <4800000>; 73*4882a593Smuzhiyun bias-pull-down; 74*4882a593Smuzhiyun }; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun pm8921_s4: s4 { 77*4882a593Smuzhiyun regulator-always-on; 78*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 79*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 80*4882a593Smuzhiyun qcom,switch-mode-frequency = <1600000>; 81*4882a593Smuzhiyun bias-pull-down; 82*4882a593Smuzhiyun qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>; 83*4882a593Smuzhiyun }; 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun pm8921_s7: s7 { 86*4882a593Smuzhiyun regulator-min-microvolt = <1150000>; 87*4882a593Smuzhiyun regulator-max-microvolt = <1150000>; 88*4882a593Smuzhiyun qcom,switch-mode-frequency = <3200000>; 89*4882a593Smuzhiyun bias-pull-down; 90*4882a593Smuzhiyun }; 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun pm8921_s8: s8 { 93*4882a593Smuzhiyun regulator-always-on; 94*4882a593Smuzhiyun regulator-min-microvolt = <2050000>; 95*4882a593Smuzhiyun regulator-max-microvolt = <2050000>; 96*4882a593Smuzhiyun qcom,switch-mode-frequency = <1600000>; 97*4882a593Smuzhiyun bias-pull-down; 98*4882a593Smuzhiyun }; 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun /* PMOS LDO */ 101*4882a593Smuzhiyun pm8921_l1: l1 { 102*4882a593Smuzhiyun regulator-always-on; 103*4882a593Smuzhiyun regulator-min-microvolt = <1050000>; 104*4882a593Smuzhiyun regulator-max-microvolt = <1050000>; 105*4882a593Smuzhiyun bias-pull-down; 106*4882a593Smuzhiyun }; 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun pm8921_l2: l2 { 109*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 110*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 111*4882a593Smuzhiyun bias-pull-down; 112*4882a593Smuzhiyun }; 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun pm8921_l3: l3 { 115*4882a593Smuzhiyun regulator-min-microvolt = <3075000>; 116*4882a593Smuzhiyun regulator-max-microvolt = <3075000>; 117*4882a593Smuzhiyun bias-pull-down; 118*4882a593Smuzhiyun }; 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun pm8921_l4: l4 { 121*4882a593Smuzhiyun regulator-always-on; 122*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 123*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 124*4882a593Smuzhiyun bias-pull-down; 125*4882a593Smuzhiyun }; 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun pm8921_l5: l5 { 128*4882a593Smuzhiyun regulator-min-microvolt = <2950000>; 129*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 130*4882a593Smuzhiyun bias-pull-down; 131*4882a593Smuzhiyun }; 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun pm8921_l6: l6 { 134*4882a593Smuzhiyun regulator-min-microvolt = <2950000>; 135*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 136*4882a593Smuzhiyun bias-pull-down; 137*4882a593Smuzhiyun }; 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun pm8921_l7: l7 { 140*4882a593Smuzhiyun regulator-always-on; 141*4882a593Smuzhiyun regulator-min-microvolt = <1850000>; 142*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 143*4882a593Smuzhiyun bias-pull-down; 144*4882a593Smuzhiyun }; 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun pm8921_l8: l8 { 147*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 148*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 149*4882a593Smuzhiyun bias-pull-down; 150*4882a593Smuzhiyun }; 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun pm8921_l9: l9 { 153*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 154*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 155*4882a593Smuzhiyun bias-pull-down; 156*4882a593Smuzhiyun }; 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun pm8921_l10: l10 { 159*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 160*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 161*4882a593Smuzhiyun bias-pull-down; 162*4882a593Smuzhiyun }; 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun pm8921_l11: l11 { 165*4882a593Smuzhiyun regulator-min-microvolt = <2850000>; 166*4882a593Smuzhiyun regulator-max-microvolt = <2850000>; 167*4882a593Smuzhiyun bias-pull-down; 168*4882a593Smuzhiyun }; 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun pm8921_l12: l12 { 171*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 172*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 173*4882a593Smuzhiyun bias-pull-down; 174*4882a593Smuzhiyun }; 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun pm8921_l14: l14 { 177*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 178*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 179*4882a593Smuzhiyun bias-pull-down; 180*4882a593Smuzhiyun }; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun pm8921_l15: l15 { 183*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 184*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 185*4882a593Smuzhiyun bias-pull-down; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun pm8921_l16: l16 { 189*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 190*4882a593Smuzhiyun regulator-max-microvolt = <2800000>; 191*4882a593Smuzhiyun bias-pull-down; 192*4882a593Smuzhiyun }; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun pm8921_l17: l17 { 195*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 196*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 197*4882a593Smuzhiyun bias-pull-down; 198*4882a593Smuzhiyun }; 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun pm8921_l18: l18 { 201*4882a593Smuzhiyun regulator-min-microvolt = <1300000>; 202*4882a593Smuzhiyun regulator-max-microvolt = <1300000>; 203*4882a593Smuzhiyun bias-pull-down; 204*4882a593Smuzhiyun }; 205*4882a593Smuzhiyun 206*4882a593Smuzhiyun pm8921_l21: l21 { 207*4882a593Smuzhiyun regulator-min-microvolt = <1900000>; 208*4882a593Smuzhiyun regulator-max-microvolt = <1900000>; 209*4882a593Smuzhiyun bias-pull-down; 210*4882a593Smuzhiyun }; 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun pm8921_l22: l22 { 213*4882a593Smuzhiyun regulator-min-microvolt = <2750000>; 214*4882a593Smuzhiyun regulator-max-microvolt = <2750000>; 215*4882a593Smuzhiyun bias-pull-down; 216*4882a593Smuzhiyun }; 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun pm8921_l23: l23 { 219*4882a593Smuzhiyun regulator-always-on; 220*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 221*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 222*4882a593Smuzhiyun bias-pull-down; 223*4882a593Smuzhiyun }; 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun pm8921_l24: l24 { 226*4882a593Smuzhiyun regulator-min-microvolt = <750000>; 227*4882a593Smuzhiyun regulator-max-microvolt = <1150000>; 228*4882a593Smuzhiyun bias-pull-down; 229*4882a593Smuzhiyun }; 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun pm8921_l25: l25 { 232*4882a593Smuzhiyun regulator-always-on; 233*4882a593Smuzhiyun regulator-min-microvolt = <1250000>; 234*4882a593Smuzhiyun regulator-max-microvolt = <1250000>; 235*4882a593Smuzhiyun bias-pull-down; 236*4882a593Smuzhiyun }; 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun /* Low Voltage Switch */ 239*4882a593Smuzhiyun pm8921_lvs1: lvs1 { 240*4882a593Smuzhiyun bias-pull-down; 241*4882a593Smuzhiyun }; 242*4882a593Smuzhiyun 243*4882a593Smuzhiyun pm8921_lvs2: lvs2 { 244*4882a593Smuzhiyun bias-pull-down; 245*4882a593Smuzhiyun }; 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun pm8921_lvs3: lvs3 { 248*4882a593Smuzhiyun bias-pull-down; 249*4882a593Smuzhiyun }; 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun pm8921_lvs4: lvs4 { 252*4882a593Smuzhiyun bias-pull-down; 253*4882a593Smuzhiyun }; 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun pm8921_lvs5: lvs5 { 256*4882a593Smuzhiyun bias-pull-down; 257*4882a593Smuzhiyun }; 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun pm8921_lvs6: lvs6 { 260*4882a593Smuzhiyun bias-pull-down; 261*4882a593Smuzhiyun }; 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun pm8921_lvs7: lvs7 { 264*4882a593Smuzhiyun bias-pull-down; 265*4882a593Smuzhiyun }; 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun pm8921_ncp: ncp { 268*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 269*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 270*4882a593Smuzhiyun qcom,switch-mode-frequency = <1600000>; 271*4882a593Smuzhiyun }; 272*4882a593Smuzhiyun }; 273*4882a593Smuzhiyun }; 274*4882a593Smuzhiyun 275*4882a593Smuzhiyun gsbi@16000000 { 276*4882a593Smuzhiyun status = "ok"; 277*4882a593Smuzhiyun qcom,mode = <GSBI_PROT_SPI>; 278*4882a593Smuzhiyun pinctrl-names = "default"; 279*4882a593Smuzhiyun pinctrl-0 = <&spi1_default>; 280*4882a593Smuzhiyun spi@16080000 { 281*4882a593Smuzhiyun status = "ok"; 282*4882a593Smuzhiyun eth@0 { 283*4882a593Smuzhiyun compatible = "micrel,ks8851"; 284*4882a593Smuzhiyun reg = <0>; 285*4882a593Smuzhiyun interrupt-parent = <&msmgpio>; 286*4882a593Smuzhiyun interrupts = <90 8>; 287*4882a593Smuzhiyun spi-max-frequency = <5400000>; 288*4882a593Smuzhiyun vdd-supply = <&ext_l2>; 289*4882a593Smuzhiyun vdd-io-supply = <&pm8921_lvs6>; 290*4882a593Smuzhiyun reset-gpios = <&msmgpio 89 0>; 291*4882a593Smuzhiyun }; 292*4882a593Smuzhiyun }; 293*4882a593Smuzhiyun }; 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun pinctrl@800000 { 296*4882a593Smuzhiyun spi1_default: spi1_default { 297*4882a593Smuzhiyun mux { 298*4882a593Smuzhiyun pins = "gpio6", "gpio7", "gpio9"; 299*4882a593Smuzhiyun function = "gsbi1"; 300*4882a593Smuzhiyun }; 301*4882a593Smuzhiyun 302*4882a593Smuzhiyun mosi { 303*4882a593Smuzhiyun pins = "gpio6"; 304*4882a593Smuzhiyun drive-strength = <12>; 305*4882a593Smuzhiyun bias-disable; 306*4882a593Smuzhiyun }; 307*4882a593Smuzhiyun 308*4882a593Smuzhiyun miso { 309*4882a593Smuzhiyun pins = "gpio7"; 310*4882a593Smuzhiyun drive-strength = <12>; 311*4882a593Smuzhiyun bias-disable; 312*4882a593Smuzhiyun }; 313*4882a593Smuzhiyun 314*4882a593Smuzhiyun cs { 315*4882a593Smuzhiyun pins = "gpio8"; 316*4882a593Smuzhiyun drive-strength = <12>; 317*4882a593Smuzhiyun bias-disable; 318*4882a593Smuzhiyun output-low; 319*4882a593Smuzhiyun }; 320*4882a593Smuzhiyun 321*4882a593Smuzhiyun clk { 322*4882a593Smuzhiyun pins = "gpio9"; 323*4882a593Smuzhiyun drive-strength = <12>; 324*4882a593Smuzhiyun bias-disable; 325*4882a593Smuzhiyun }; 326*4882a593Smuzhiyun }; 327*4882a593Smuzhiyun }; 328*4882a593Smuzhiyun }; 329*4882a593Smuzhiyun 330*4882a593Smuzhiyun regulators { 331*4882a593Smuzhiyun compatible = "simple-bus"; 332*4882a593Smuzhiyun 333*4882a593Smuzhiyun ext_l2: gpio-regulator@91 { 334*4882a593Smuzhiyun compatible = "regulator-fixed"; 335*4882a593Smuzhiyun regulator-name = "ext_l2"; 336*4882a593Smuzhiyun gpio = <&msmgpio 91 0>; 337*4882a593Smuzhiyun startup-delay-us = <10000>; 338*4882a593Smuzhiyun enable-active-high; 339*4882a593Smuzhiyun }; 340*4882a593Smuzhiyun }; 341*4882a593Smuzhiyun}; 342*4882a593Smuzhiyun 343*4882a593Smuzhiyun&pmicintc { 344*4882a593Smuzhiyun keypad@148 { 345*4882a593Smuzhiyun linux,keymap = < 346*4882a593Smuzhiyun MATRIX_KEY(0, 0, KEY_VOLUMEUP) 347*4882a593Smuzhiyun MATRIX_KEY(0, 1, KEY_VOLUMEDOWN) 348*4882a593Smuzhiyun MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS) 349*4882a593Smuzhiyun MATRIX_KEY(0, 3, KEY_CAMERA) 350*4882a593Smuzhiyun >; 351*4882a593Smuzhiyun keypad,num-rows = <1>; 352*4882a593Smuzhiyun keypad,num-columns = <5>; 353*4882a593Smuzhiyun }; 354*4882a593Smuzhiyun}; 355