1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun#include "qcom-msm8974.dtsi" 3*4882a593Smuzhiyun#include "qcom-pm8841.dtsi" 4*4882a593Smuzhiyun#include "qcom-pm8941.dtsi" 5*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 6*4882a593Smuzhiyun#include <dt-bindings/input/input.h> 7*4882a593Smuzhiyun#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun/ { 10*4882a593Smuzhiyun model = "LGE MSM 8974 HAMMERHEAD"; 11*4882a593Smuzhiyun compatible = "lge,hammerhead", "qcom,msm8974"; 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun aliases { 14*4882a593Smuzhiyun serial0 = &blsp1_uart1; 15*4882a593Smuzhiyun serial1 = &blsp2_uart10; 16*4882a593Smuzhiyun }; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun chosen { 19*4882a593Smuzhiyun stdout-path = "serial0:115200n8"; 20*4882a593Smuzhiyun }; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun smd { 23*4882a593Smuzhiyun rpm { 24*4882a593Smuzhiyun rpm_requests { 25*4882a593Smuzhiyun pm8841-regulators { 26*4882a593Smuzhiyun s1 { 27*4882a593Smuzhiyun regulator-min-microvolt = <675000>; 28*4882a593Smuzhiyun regulator-max-microvolt = <1050000>; 29*4882a593Smuzhiyun }; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun s2 { 32*4882a593Smuzhiyun regulator-min-microvolt = <500000>; 33*4882a593Smuzhiyun regulator-max-microvolt = <1050000>; 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun s3 { 37*4882a593Smuzhiyun regulator-min-microvolt = <1050000>; 38*4882a593Smuzhiyun regulator-max-microvolt = <1050000>; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun s4 { 42*4882a593Smuzhiyun regulator-min-microvolt = <815000>; 43*4882a593Smuzhiyun regulator-max-microvolt = <900000>; 44*4882a593Smuzhiyun }; 45*4882a593Smuzhiyun }; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun pm8941-regulators { 48*4882a593Smuzhiyun vdd_l1_l3-supply = <&pm8941_s1>; 49*4882a593Smuzhiyun vdd_l2_lvs1_2_3-supply = <&pm8941_s3>; 50*4882a593Smuzhiyun vdd_l4_l11-supply = <&pm8941_s1>; 51*4882a593Smuzhiyun vdd_l5_l7-supply = <&pm8941_s2>; 52*4882a593Smuzhiyun vdd_l6_l12_l14_l15-supply = <&pm8941_s2>; 53*4882a593Smuzhiyun vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>; 54*4882a593Smuzhiyun vdd_l9_l10_l17_l22-supply = <&vreg_boost>; 55*4882a593Smuzhiyun vdd_l13_l20_l23_l24-supply = <&vreg_boost>; 56*4882a593Smuzhiyun vdd_l21-supply = <&vreg_boost>; 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun s1 { 59*4882a593Smuzhiyun regulator-min-microvolt = <1300000>; 60*4882a593Smuzhiyun regulator-max-microvolt = <1300000>; 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun regulator-always-on; 63*4882a593Smuzhiyun regulator-boot-on; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun s2 { 67*4882a593Smuzhiyun regulator-min-microvolt = <2150000>; 68*4882a593Smuzhiyun regulator-max-microvolt = <2150000>; 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun regulator-boot-on; 71*4882a593Smuzhiyun }; 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun s3 { 74*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 75*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun regulator-always-on; 78*4882a593Smuzhiyun regulator-boot-on; 79*4882a593Smuzhiyun }; 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun l1 { 82*4882a593Smuzhiyun regulator-min-microvolt = <1225000>; 83*4882a593Smuzhiyun regulator-max-microvolt = <1225000>; 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun regulator-always-on; 86*4882a593Smuzhiyun regulator-boot-on; 87*4882a593Smuzhiyun }; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun l2 { 90*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 91*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 92*4882a593Smuzhiyun }; 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun l3 { 95*4882a593Smuzhiyun regulator-min-microvolt = <1225000>; 96*4882a593Smuzhiyun regulator-max-microvolt = <1225000>; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun l4 { 100*4882a593Smuzhiyun regulator-min-microvolt = <1225000>; 101*4882a593Smuzhiyun regulator-max-microvolt = <1225000>; 102*4882a593Smuzhiyun }; 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun l5 { 105*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 106*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 107*4882a593Smuzhiyun }; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun l6 { 110*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 111*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun regulator-boot-on; 114*4882a593Smuzhiyun }; 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun l7 { 117*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 118*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun regulator-boot-on; 121*4882a593Smuzhiyun }; 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun l8 { 124*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 125*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 126*4882a593Smuzhiyun }; 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun l9 { 129*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 130*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 131*4882a593Smuzhiyun }; 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun l10 { 134*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 135*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 136*4882a593Smuzhiyun }; 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun l11 { 139*4882a593Smuzhiyun regulator-min-microvolt = <1300000>; 140*4882a593Smuzhiyun regulator-max-microvolt = <1300000>; 141*4882a593Smuzhiyun }; 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun l12 { 144*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 145*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun regulator-always-on; 148*4882a593Smuzhiyun regulator-boot-on; 149*4882a593Smuzhiyun }; 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun l13 { 152*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 153*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun regulator-boot-on; 156*4882a593Smuzhiyun }; 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun l14 { 159*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 160*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 161*4882a593Smuzhiyun }; 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun l15 { 164*4882a593Smuzhiyun regulator-min-microvolt = <2050000>; 165*4882a593Smuzhiyun regulator-max-microvolt = <2050000>; 166*4882a593Smuzhiyun }; 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun l16 { 169*4882a593Smuzhiyun regulator-min-microvolt = <2700000>; 170*4882a593Smuzhiyun regulator-max-microvolt = <2700000>; 171*4882a593Smuzhiyun }; 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun l17 { 174*4882a593Smuzhiyun regulator-min-microvolt = <2850000>; 175*4882a593Smuzhiyun regulator-max-microvolt = <2850000>; 176*4882a593Smuzhiyun }; 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun l18 { 179*4882a593Smuzhiyun regulator-min-microvolt = <2850000>; 180*4882a593Smuzhiyun regulator-max-microvolt = <2850000>; 181*4882a593Smuzhiyun }; 182*4882a593Smuzhiyun 183*4882a593Smuzhiyun l19 { 184*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 185*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun l20 { 189*4882a593Smuzhiyun regulator-min-microvolt = <2950000>; 190*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun regulator-boot-on; 193*4882a593Smuzhiyun regulator-system-load = <200000>; 194*4882a593Smuzhiyun regulator-allow-set-load; 195*4882a593Smuzhiyun }; 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun l21 { 198*4882a593Smuzhiyun regulator-min-microvolt = <2950000>; 199*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun regulator-boot-on; 202*4882a593Smuzhiyun }; 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun l22 { 205*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 206*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 207*4882a593Smuzhiyun }; 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun l23 { 210*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 211*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 212*4882a593Smuzhiyun }; 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun l24 { 215*4882a593Smuzhiyun regulator-min-microvolt = <3075000>; 216*4882a593Smuzhiyun regulator-max-microvolt = <3075000>; 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun regulator-boot-on; 219*4882a593Smuzhiyun }; 220*4882a593Smuzhiyun }; 221*4882a593Smuzhiyun }; 222*4882a593Smuzhiyun }; 223*4882a593Smuzhiyun }; 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun vreg_wlan: wlan-regulator { 226*4882a593Smuzhiyun compatible = "regulator-fixed"; 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun regulator-name = "wl-reg"; 229*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 230*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 231*4882a593Smuzhiyun 232*4882a593Smuzhiyun gpio = <&msmgpio 26 GPIO_ACTIVE_HIGH>; 233*4882a593Smuzhiyun enable-active-high; 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun pinctrl-names = "default"; 236*4882a593Smuzhiyun pinctrl-0 = <&wlan_regulator_pin>; 237*4882a593Smuzhiyun }; 238*4882a593Smuzhiyun}; 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun&soc { 241*4882a593Smuzhiyun serial@f991d000 { 242*4882a593Smuzhiyun status = "ok"; 243*4882a593Smuzhiyun }; 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun pinctrl@fd510000 { 246*4882a593Smuzhiyun sdhc1_pin_a: sdhc1-pin-active { 247*4882a593Smuzhiyun clk { 248*4882a593Smuzhiyun pins = "sdc1_clk"; 249*4882a593Smuzhiyun drive-strength = <16>; 250*4882a593Smuzhiyun bias-disable; 251*4882a593Smuzhiyun }; 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun cmd-data { 254*4882a593Smuzhiyun pins = "sdc1_cmd", "sdc1_data"; 255*4882a593Smuzhiyun drive-strength = <10>; 256*4882a593Smuzhiyun bias-pull-up; 257*4882a593Smuzhiyun }; 258*4882a593Smuzhiyun }; 259*4882a593Smuzhiyun 260*4882a593Smuzhiyun sdhc2_pin_a: sdhc2-pin-active { 261*4882a593Smuzhiyun clk { 262*4882a593Smuzhiyun pins = "sdc2_clk"; 263*4882a593Smuzhiyun drive-strength = <6>; 264*4882a593Smuzhiyun bias-disable; 265*4882a593Smuzhiyun }; 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun cmd-data { 268*4882a593Smuzhiyun pins = "sdc2_cmd", "sdc2_data"; 269*4882a593Smuzhiyun drive-strength = <6>; 270*4882a593Smuzhiyun bias-pull-up; 271*4882a593Smuzhiyun }; 272*4882a593Smuzhiyun }; 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun i2c1_pins: i2c1 { 275*4882a593Smuzhiyun mux { 276*4882a593Smuzhiyun pins = "gpio2", "gpio3"; 277*4882a593Smuzhiyun function = "blsp_i2c1"; 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun drive-strength = <2>; 280*4882a593Smuzhiyun bias-disable; 281*4882a593Smuzhiyun }; 282*4882a593Smuzhiyun }; 283*4882a593Smuzhiyun 284*4882a593Smuzhiyun i2c2_pins: i2c2 { 285*4882a593Smuzhiyun mux { 286*4882a593Smuzhiyun pins = "gpio6", "gpio7"; 287*4882a593Smuzhiyun function = "blsp_i2c2"; 288*4882a593Smuzhiyun 289*4882a593Smuzhiyun drive-strength = <2>; 290*4882a593Smuzhiyun bias-disable; 291*4882a593Smuzhiyun }; 292*4882a593Smuzhiyun }; 293*4882a593Smuzhiyun 294*4882a593Smuzhiyun i2c3_pins: i2c3 { 295*4882a593Smuzhiyun mux { 296*4882a593Smuzhiyun pins = "gpio10", "gpio11"; 297*4882a593Smuzhiyun function = "blsp_i2c3"; 298*4882a593Smuzhiyun drive-strength = <2>; 299*4882a593Smuzhiyun bias-disable; 300*4882a593Smuzhiyun }; 301*4882a593Smuzhiyun }; 302*4882a593Smuzhiyun 303*4882a593Smuzhiyun i2c11_pins: i2c11 { 304*4882a593Smuzhiyun mux { 305*4882a593Smuzhiyun pins = "gpio83", "gpio84"; 306*4882a593Smuzhiyun function = "blsp_i2c11"; 307*4882a593Smuzhiyun 308*4882a593Smuzhiyun drive-strength = <2>; 309*4882a593Smuzhiyun bias-disable; 310*4882a593Smuzhiyun }; 311*4882a593Smuzhiyun }; 312*4882a593Smuzhiyun 313*4882a593Smuzhiyun i2c12_pins: i2c12 { 314*4882a593Smuzhiyun mux { 315*4882a593Smuzhiyun pins = "gpio87", "gpio88"; 316*4882a593Smuzhiyun function = "blsp_i2c12"; 317*4882a593Smuzhiyun drive-strength = <2>; 318*4882a593Smuzhiyun bias-disable; 319*4882a593Smuzhiyun }; 320*4882a593Smuzhiyun }; 321*4882a593Smuzhiyun 322*4882a593Smuzhiyun mpu6515_pin: mpu6515 { 323*4882a593Smuzhiyun irq { 324*4882a593Smuzhiyun pins = "gpio73"; 325*4882a593Smuzhiyun function = "gpio"; 326*4882a593Smuzhiyun bias-disable; 327*4882a593Smuzhiyun input-enable; 328*4882a593Smuzhiyun }; 329*4882a593Smuzhiyun }; 330*4882a593Smuzhiyun 331*4882a593Smuzhiyun touch_pin: touch { 332*4882a593Smuzhiyun int { 333*4882a593Smuzhiyun pins = "gpio5"; 334*4882a593Smuzhiyun function = "gpio"; 335*4882a593Smuzhiyun 336*4882a593Smuzhiyun drive-strength = <2>; 337*4882a593Smuzhiyun bias-disable; 338*4882a593Smuzhiyun input-enable; 339*4882a593Smuzhiyun }; 340*4882a593Smuzhiyun 341*4882a593Smuzhiyun reset { 342*4882a593Smuzhiyun pins = "gpio8"; 343*4882a593Smuzhiyun function = "gpio"; 344*4882a593Smuzhiyun 345*4882a593Smuzhiyun drive-strength = <2>; 346*4882a593Smuzhiyun bias-pull-up; 347*4882a593Smuzhiyun }; 348*4882a593Smuzhiyun }; 349*4882a593Smuzhiyun 350*4882a593Smuzhiyun panel_pin: panel { 351*4882a593Smuzhiyun te { 352*4882a593Smuzhiyun pins = "gpio12"; 353*4882a593Smuzhiyun function = "mdp_vsync"; 354*4882a593Smuzhiyun 355*4882a593Smuzhiyun drive-strength = <2>; 356*4882a593Smuzhiyun bias-disable; 357*4882a593Smuzhiyun }; 358*4882a593Smuzhiyun }; 359*4882a593Smuzhiyun 360*4882a593Smuzhiyun bt_pin: bt { 361*4882a593Smuzhiyun hostwake { 362*4882a593Smuzhiyun pins = "gpio42"; 363*4882a593Smuzhiyun function = "gpio"; 364*4882a593Smuzhiyun }; 365*4882a593Smuzhiyun 366*4882a593Smuzhiyun devwake { 367*4882a593Smuzhiyun pins = "gpio62"; 368*4882a593Smuzhiyun function = "gpio"; 369*4882a593Smuzhiyun }; 370*4882a593Smuzhiyun 371*4882a593Smuzhiyun shutdown { 372*4882a593Smuzhiyun pins = "gpio41"; 373*4882a593Smuzhiyun function = "gpio"; 374*4882a593Smuzhiyun }; 375*4882a593Smuzhiyun }; 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun blsp2_uart10_pin_a: blsp2-uart10-pin-active { 378*4882a593Smuzhiyun tx { 379*4882a593Smuzhiyun pins = "gpio53"; 380*4882a593Smuzhiyun function = "blsp_uart10"; 381*4882a593Smuzhiyun 382*4882a593Smuzhiyun drive-strength = <2>; 383*4882a593Smuzhiyun bias-disable; 384*4882a593Smuzhiyun }; 385*4882a593Smuzhiyun 386*4882a593Smuzhiyun rx { 387*4882a593Smuzhiyun pins = "gpio54"; 388*4882a593Smuzhiyun function = "blsp_uart10"; 389*4882a593Smuzhiyun 390*4882a593Smuzhiyun drive-strength = <2>; 391*4882a593Smuzhiyun bias-pull-up; 392*4882a593Smuzhiyun }; 393*4882a593Smuzhiyun 394*4882a593Smuzhiyun cts { 395*4882a593Smuzhiyun pins = "gpio55"; 396*4882a593Smuzhiyun function = "blsp_uart10"; 397*4882a593Smuzhiyun 398*4882a593Smuzhiyun drive-strength = <2>; 399*4882a593Smuzhiyun bias-pull-up; 400*4882a593Smuzhiyun }; 401*4882a593Smuzhiyun 402*4882a593Smuzhiyun rts { 403*4882a593Smuzhiyun pins = "gpio56"; 404*4882a593Smuzhiyun function = "blsp_uart10"; 405*4882a593Smuzhiyun 406*4882a593Smuzhiyun drive-strength = <2>; 407*4882a593Smuzhiyun bias-disable; 408*4882a593Smuzhiyun }; 409*4882a593Smuzhiyun }; 410*4882a593Smuzhiyun }; 411*4882a593Smuzhiyun 412*4882a593Smuzhiyun sdhci@f9824900 { 413*4882a593Smuzhiyun status = "ok"; 414*4882a593Smuzhiyun 415*4882a593Smuzhiyun vmmc-supply = <&pm8941_l20>; 416*4882a593Smuzhiyun vqmmc-supply = <&pm8941_s3>; 417*4882a593Smuzhiyun 418*4882a593Smuzhiyun bus-width = <8>; 419*4882a593Smuzhiyun non-removable; 420*4882a593Smuzhiyun 421*4882a593Smuzhiyun pinctrl-names = "default"; 422*4882a593Smuzhiyun pinctrl-0 = <&sdhc1_pin_a>; 423*4882a593Smuzhiyun }; 424*4882a593Smuzhiyun 425*4882a593Smuzhiyun sdhci@f98a4900 { 426*4882a593Smuzhiyun status = "ok"; 427*4882a593Smuzhiyun 428*4882a593Smuzhiyun max-frequency = <100000000>; 429*4882a593Smuzhiyun bus-width = <4>; 430*4882a593Smuzhiyun non-removable; 431*4882a593Smuzhiyun vmmc-supply = <&vreg_wlan>; 432*4882a593Smuzhiyun vqmmc-supply = <&pm8941_s3>; 433*4882a593Smuzhiyun 434*4882a593Smuzhiyun pinctrl-names = "default"; 435*4882a593Smuzhiyun pinctrl-0 = <&sdhc2_pin_a>; 436*4882a593Smuzhiyun 437*4882a593Smuzhiyun #address-cells = <1>; 438*4882a593Smuzhiyun #size-cells = <0>; 439*4882a593Smuzhiyun 440*4882a593Smuzhiyun bcrmf@1 { 441*4882a593Smuzhiyun compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac"; 442*4882a593Smuzhiyun reg = <1>; 443*4882a593Smuzhiyun 444*4882a593Smuzhiyun brcm,drive-strength = <10>; 445*4882a593Smuzhiyun 446*4882a593Smuzhiyun pinctrl-names = "default"; 447*4882a593Smuzhiyun pinctrl-0 = <&wlan_sleep_clk_pin>; 448*4882a593Smuzhiyun }; 449*4882a593Smuzhiyun }; 450*4882a593Smuzhiyun 451*4882a593Smuzhiyun gpio-keys { 452*4882a593Smuzhiyun compatible = "gpio-keys"; 453*4882a593Smuzhiyun input-name = "gpio-keys"; 454*4882a593Smuzhiyun 455*4882a593Smuzhiyun pinctrl-names = "default"; 456*4882a593Smuzhiyun pinctrl-0 = <&gpio_keys_pin_a>; 457*4882a593Smuzhiyun 458*4882a593Smuzhiyun volume-up { 459*4882a593Smuzhiyun label = "volume_up"; 460*4882a593Smuzhiyun gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>; 461*4882a593Smuzhiyun linux,input-type = <1>; 462*4882a593Smuzhiyun linux,code = <KEY_VOLUMEUP>; 463*4882a593Smuzhiyun }; 464*4882a593Smuzhiyun 465*4882a593Smuzhiyun volume-down { 466*4882a593Smuzhiyun label = "volume_down"; 467*4882a593Smuzhiyun gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>; 468*4882a593Smuzhiyun linux,input-type = <1>; 469*4882a593Smuzhiyun linux,code = <KEY_VOLUMEDOWN>; 470*4882a593Smuzhiyun }; 471*4882a593Smuzhiyun }; 472*4882a593Smuzhiyun 473*4882a593Smuzhiyun serial@f9960000 { 474*4882a593Smuzhiyun status = "ok"; 475*4882a593Smuzhiyun 476*4882a593Smuzhiyun pinctrl-names = "default"; 477*4882a593Smuzhiyun pinctrl-0 = <&blsp2_uart10_pin_a>; 478*4882a593Smuzhiyun 479*4882a593Smuzhiyun bluetooth { 480*4882a593Smuzhiyun compatible = "brcm,bcm43438-bt"; 481*4882a593Smuzhiyun max-speed = <3000000>; 482*4882a593Smuzhiyun 483*4882a593Smuzhiyun pinctrl-names = "default"; 484*4882a593Smuzhiyun pinctrl-0 = <&bt_pin>; 485*4882a593Smuzhiyun 486*4882a593Smuzhiyun host-wakeup-gpios = <&msmgpio 42 GPIO_ACTIVE_HIGH>; 487*4882a593Smuzhiyun device-wakeup-gpios = <&msmgpio 62 GPIO_ACTIVE_HIGH>; 488*4882a593Smuzhiyun shutdown-gpios = <&msmgpio 41 GPIO_ACTIVE_HIGH>; 489*4882a593Smuzhiyun }; 490*4882a593Smuzhiyun }; 491*4882a593Smuzhiyun 492*4882a593Smuzhiyun i2c@f9967000 { 493*4882a593Smuzhiyun status = "ok"; 494*4882a593Smuzhiyun pinctrl-names = "default"; 495*4882a593Smuzhiyun pinctrl-0 = <&i2c11_pins>; 496*4882a593Smuzhiyun clock-frequency = <355000>; 497*4882a593Smuzhiyun qcom,src-freq = <50000000>; 498*4882a593Smuzhiyun 499*4882a593Smuzhiyun led-controller@38 { 500*4882a593Smuzhiyun compatible = "ti,lm3630a"; 501*4882a593Smuzhiyun status = "ok"; 502*4882a593Smuzhiyun reg = <0x38>; 503*4882a593Smuzhiyun 504*4882a593Smuzhiyun #address-cells = <1>; 505*4882a593Smuzhiyun #size-cells = <0>; 506*4882a593Smuzhiyun 507*4882a593Smuzhiyun led@0 { 508*4882a593Smuzhiyun reg = <0>; 509*4882a593Smuzhiyun led-sources = <0 1>; 510*4882a593Smuzhiyun label = "lcd-backlight"; 511*4882a593Smuzhiyun default-brightness = <200>; 512*4882a593Smuzhiyun }; 513*4882a593Smuzhiyun }; 514*4882a593Smuzhiyun }; 515*4882a593Smuzhiyun 516*4882a593Smuzhiyun i2c@f9968000 { 517*4882a593Smuzhiyun status = "ok"; 518*4882a593Smuzhiyun pinctrl-names = "default"; 519*4882a593Smuzhiyun pinctrl-0 = <&i2c12_pins>; 520*4882a593Smuzhiyun clock-frequency = <100000>; 521*4882a593Smuzhiyun qcom,src-freq = <50000000>; 522*4882a593Smuzhiyun 523*4882a593Smuzhiyun mpu6515@68 { 524*4882a593Smuzhiyun compatible = "invensense,mpu6515"; 525*4882a593Smuzhiyun reg = <0x68>; 526*4882a593Smuzhiyun interrupts-extended = <&msmgpio 73 IRQ_TYPE_EDGE_FALLING>; 527*4882a593Smuzhiyun vddio-supply = <&pm8941_lvs1>; 528*4882a593Smuzhiyun 529*4882a593Smuzhiyun pinctrl-names = "default"; 530*4882a593Smuzhiyun pinctrl-0 = <&mpu6515_pin>; 531*4882a593Smuzhiyun 532*4882a593Smuzhiyun i2c-gate { 533*4882a593Smuzhiyun #address-cells = <1>; 534*4882a593Smuzhiyun #size-cells = <0>; 535*4882a593Smuzhiyun ak8963@f { 536*4882a593Smuzhiyun compatible = "asahi-kasei,ak8963"; 537*4882a593Smuzhiyun reg = <0x0f>; 538*4882a593Smuzhiyun gpios = <&msmgpio 67 0>; 539*4882a593Smuzhiyun vid-supply = <&pm8941_lvs1>; 540*4882a593Smuzhiyun vdd-supply = <&pm8941_l17>; 541*4882a593Smuzhiyun }; 542*4882a593Smuzhiyun 543*4882a593Smuzhiyun bmp280@76 { 544*4882a593Smuzhiyun compatible = "bosch,bmp280"; 545*4882a593Smuzhiyun reg = <0x76>; 546*4882a593Smuzhiyun vdda-supply = <&pm8941_lvs1>; 547*4882a593Smuzhiyun vddd-supply = <&pm8941_l17>; 548*4882a593Smuzhiyun }; 549*4882a593Smuzhiyun }; 550*4882a593Smuzhiyun }; 551*4882a593Smuzhiyun }; 552*4882a593Smuzhiyun 553*4882a593Smuzhiyun i2c@f9923000 { 554*4882a593Smuzhiyun status = "ok"; 555*4882a593Smuzhiyun pinctrl-names = "default"; 556*4882a593Smuzhiyun pinctrl-0 = <&i2c1_pins>; 557*4882a593Smuzhiyun clock-frequency = <100000>; 558*4882a593Smuzhiyun qcom,src-freq = <50000000>; 559*4882a593Smuzhiyun 560*4882a593Smuzhiyun charger: bq24192@6b { 561*4882a593Smuzhiyun compatible = "ti,bq24192"; 562*4882a593Smuzhiyun reg = <0x6b>; 563*4882a593Smuzhiyun interrupts-extended = <&spmi_bus 0 0xd5 0 IRQ_TYPE_EDGE_FALLING>; 564*4882a593Smuzhiyun 565*4882a593Smuzhiyun omit-battery-class; 566*4882a593Smuzhiyun 567*4882a593Smuzhiyun usb_otg_vbus: usb-otg-vbus { }; 568*4882a593Smuzhiyun }; 569*4882a593Smuzhiyun }; 570*4882a593Smuzhiyun 571*4882a593Smuzhiyun i2c@f9924000 { 572*4882a593Smuzhiyun status = "ok"; 573*4882a593Smuzhiyun 574*4882a593Smuzhiyun clock-frequency = <355000>; 575*4882a593Smuzhiyun qcom,src-freq = <50000000>; 576*4882a593Smuzhiyun 577*4882a593Smuzhiyun pinctrl-names = "default"; 578*4882a593Smuzhiyun pinctrl-0 = <&i2c2_pins>; 579*4882a593Smuzhiyun 580*4882a593Smuzhiyun synaptics@70 { 581*4882a593Smuzhiyun compatible = "syna,rmi4-i2c"; 582*4882a593Smuzhiyun reg = <0x70>; 583*4882a593Smuzhiyun 584*4882a593Smuzhiyun interrupts-extended = <&msmgpio 5 IRQ_TYPE_EDGE_FALLING>; 585*4882a593Smuzhiyun vdd-supply = <&pm8941_l22>; 586*4882a593Smuzhiyun vio-supply = <&pm8941_lvs3>; 587*4882a593Smuzhiyun 588*4882a593Smuzhiyun pinctrl-names = "default"; 589*4882a593Smuzhiyun pinctrl-0 = <&touch_pin>; 590*4882a593Smuzhiyun 591*4882a593Smuzhiyun #address-cells = <1>; 592*4882a593Smuzhiyun #size-cells = <0>; 593*4882a593Smuzhiyun 594*4882a593Smuzhiyun rmi4-f01@1 { 595*4882a593Smuzhiyun reg = <0x1>; 596*4882a593Smuzhiyun syna,nosleep-mode = <1>; 597*4882a593Smuzhiyun }; 598*4882a593Smuzhiyun 599*4882a593Smuzhiyun rmi4-f12@12 { 600*4882a593Smuzhiyun reg = <0x12>; 601*4882a593Smuzhiyun syna,sensor-type = <1>; 602*4882a593Smuzhiyun }; 603*4882a593Smuzhiyun }; 604*4882a593Smuzhiyun }; 605*4882a593Smuzhiyun 606*4882a593Smuzhiyun i2c@f9925000 { 607*4882a593Smuzhiyun status = "ok"; 608*4882a593Smuzhiyun pinctrl-names = "default"; 609*4882a593Smuzhiyun pinctrl-0 = <&i2c3_pins>; 610*4882a593Smuzhiyun clock-frequency = <100000>; 611*4882a593Smuzhiyun qcom,src-freq = <50000000>; 612*4882a593Smuzhiyun 613*4882a593Smuzhiyun avago_apds993@39 { 614*4882a593Smuzhiyun compatible = "avago,apds9930"; 615*4882a593Smuzhiyun reg = <0x39>; 616*4882a593Smuzhiyun interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>; 617*4882a593Smuzhiyun vdd-supply = <&pm8941_l17>; 618*4882a593Smuzhiyun vddio-supply = <&pm8941_lvs1>; 619*4882a593Smuzhiyun led-max-microamp = <100000>; 620*4882a593Smuzhiyun amstaos,proximity-diodes = <0>; 621*4882a593Smuzhiyun }; 622*4882a593Smuzhiyun }; 623*4882a593Smuzhiyun 624*4882a593Smuzhiyun usb@f9a55000 { 625*4882a593Smuzhiyun status = "ok"; 626*4882a593Smuzhiyun 627*4882a593Smuzhiyun phys = <&usb_hs1_phy>; 628*4882a593Smuzhiyun phy-select = <&tcsr 0xb000 0>; 629*4882a593Smuzhiyun 630*4882a593Smuzhiyun extcon = <&charger>, <&usb_id>; 631*4882a593Smuzhiyun vbus-supply = <&usb_otg_vbus>; 632*4882a593Smuzhiyun 633*4882a593Smuzhiyun hnp-disable; 634*4882a593Smuzhiyun srp-disable; 635*4882a593Smuzhiyun adp-disable; 636*4882a593Smuzhiyun 637*4882a593Smuzhiyun ulpi { 638*4882a593Smuzhiyun phy@a { 639*4882a593Smuzhiyun status = "ok"; 640*4882a593Smuzhiyun 641*4882a593Smuzhiyun v1p8-supply = <&pm8941_l6>; 642*4882a593Smuzhiyun v3p3-supply = <&pm8941_l24>; 643*4882a593Smuzhiyun 644*4882a593Smuzhiyun qcom,init-seq = /bits/ 8 <0x1 0x64>; 645*4882a593Smuzhiyun }; 646*4882a593Smuzhiyun }; 647*4882a593Smuzhiyun }; 648*4882a593Smuzhiyun 649*4882a593Smuzhiyun mdss@fd900000 { 650*4882a593Smuzhiyun status = "ok"; 651*4882a593Smuzhiyun 652*4882a593Smuzhiyun mdp@fd900000 { 653*4882a593Smuzhiyun status = "ok"; 654*4882a593Smuzhiyun }; 655*4882a593Smuzhiyun 656*4882a593Smuzhiyun dsi@fd922800 { 657*4882a593Smuzhiyun status = "ok"; 658*4882a593Smuzhiyun 659*4882a593Smuzhiyun vdda-supply = <&pm8941_l2>; 660*4882a593Smuzhiyun vdd-supply = <&pm8941_lvs3>; 661*4882a593Smuzhiyun vddio-supply = <&pm8941_l12>; 662*4882a593Smuzhiyun 663*4882a593Smuzhiyun #address-cells = <1>; 664*4882a593Smuzhiyun #size-cells = <0>; 665*4882a593Smuzhiyun 666*4882a593Smuzhiyun ports { 667*4882a593Smuzhiyun port@1 { 668*4882a593Smuzhiyun endpoint { 669*4882a593Smuzhiyun remote-endpoint = <&panel_in>; 670*4882a593Smuzhiyun data-lanes = <0 1 2 3>; 671*4882a593Smuzhiyun }; 672*4882a593Smuzhiyun }; 673*4882a593Smuzhiyun }; 674*4882a593Smuzhiyun 675*4882a593Smuzhiyun panel: panel@0 { 676*4882a593Smuzhiyun reg = <0>; 677*4882a593Smuzhiyun compatible = "lg,acx467akm-7"; 678*4882a593Smuzhiyun 679*4882a593Smuzhiyun pinctrl-names = "default"; 680*4882a593Smuzhiyun pinctrl-0 = <&panel_pin>; 681*4882a593Smuzhiyun 682*4882a593Smuzhiyun port { 683*4882a593Smuzhiyun panel_in: endpoint { 684*4882a593Smuzhiyun remote-endpoint = <&dsi0_out>; 685*4882a593Smuzhiyun }; 686*4882a593Smuzhiyun }; 687*4882a593Smuzhiyun }; 688*4882a593Smuzhiyun }; 689*4882a593Smuzhiyun 690*4882a593Smuzhiyun dsi-phy@fd922a00 { 691*4882a593Smuzhiyun status = "ok"; 692*4882a593Smuzhiyun 693*4882a593Smuzhiyun vddio-supply = <&pm8941_l12>; 694*4882a593Smuzhiyun }; 695*4882a593Smuzhiyun }; 696*4882a593Smuzhiyun}; 697*4882a593Smuzhiyun 698*4882a593Smuzhiyun&spmi_bus { 699*4882a593Smuzhiyun pm8941@0 { 700*4882a593Smuzhiyun gpios@c000 { 701*4882a593Smuzhiyun gpio_keys_pin_a: gpio-keys-active { 702*4882a593Smuzhiyun pins = "gpio2", "gpio3"; 703*4882a593Smuzhiyun function = "normal"; 704*4882a593Smuzhiyun 705*4882a593Smuzhiyun bias-pull-up; 706*4882a593Smuzhiyun power-source = <PM8941_GPIO_S3>; 707*4882a593Smuzhiyun }; 708*4882a593Smuzhiyun 709*4882a593Smuzhiyun wlan_sleep_clk_pin: wl-sleep-clk { 710*4882a593Smuzhiyun pins = "gpio16"; 711*4882a593Smuzhiyun function = "func2"; 712*4882a593Smuzhiyun 713*4882a593Smuzhiyun output-high; 714*4882a593Smuzhiyun power-source = <PM8941_GPIO_S3>; 715*4882a593Smuzhiyun }; 716*4882a593Smuzhiyun 717*4882a593Smuzhiyun wlan_regulator_pin: wl-reg-active { 718*4882a593Smuzhiyun pins = "gpio17"; 719*4882a593Smuzhiyun function = "normal"; 720*4882a593Smuzhiyun 721*4882a593Smuzhiyun bias-disable; 722*4882a593Smuzhiyun power-source = <PM8941_GPIO_S3>; 723*4882a593Smuzhiyun }; 724*4882a593Smuzhiyun 725*4882a593Smuzhiyun otg { 726*4882a593Smuzhiyun gpio-hog; 727*4882a593Smuzhiyun gpios = <35 GPIO_ACTIVE_HIGH>; 728*4882a593Smuzhiyun output-high; 729*4882a593Smuzhiyun line-name = "otg-gpio"; 730*4882a593Smuzhiyun }; 731*4882a593Smuzhiyun }; 732*4882a593Smuzhiyun }; 733*4882a593Smuzhiyun}; 734