1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun#include "qcom-apq8064-v2.0.dtsi" 3*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 4*4882a593Smuzhiyun#include <dt-bindings/input/input.h> 5*4882a593Smuzhiyun#include <dt-bindings/mfd/qcom-rpm.h> 6*4882a593Smuzhiyun#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun/ { 9*4882a593Smuzhiyun model = "Sony Xperia Z"; 10*4882a593Smuzhiyun compatible = "sony,xperia-yuga", "qcom,apq8064"; 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun aliases { 13*4882a593Smuzhiyun serial0 = &gsbi5_serial; 14*4882a593Smuzhiyun }; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun chosen { 17*4882a593Smuzhiyun stdout-path = "serial0:115200n8"; 18*4882a593Smuzhiyun }; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun gpio-keys { 21*4882a593Smuzhiyun compatible = "gpio-keys"; 22*4882a593Smuzhiyun input-name = "gpio-keys"; 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun pinctrl-names = "default"; 25*4882a593Smuzhiyun pinctrl-0 = <&gpio_keys_pin_a>; 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun camera-focus { 28*4882a593Smuzhiyun label = "camera_focus"; 29*4882a593Smuzhiyun gpios = <&pm8921_gpio 3 GPIO_ACTIVE_LOW>; 30*4882a593Smuzhiyun linux,input-type = <1>; 31*4882a593Smuzhiyun linux,code = <KEY_CAMERA_FOCUS>; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun camera-snapshot { 35*4882a593Smuzhiyun label = "camera_snapshot"; 36*4882a593Smuzhiyun gpios = <&pm8921_gpio 4 GPIO_ACTIVE_LOW>; 37*4882a593Smuzhiyun linux,input-type = <1>; 38*4882a593Smuzhiyun linux,code = <KEY_CAMERA>; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun volume-down { 42*4882a593Smuzhiyun label = "volume_down"; 43*4882a593Smuzhiyun gpios = <&pm8921_gpio 29 GPIO_ACTIVE_LOW>; 44*4882a593Smuzhiyun linux,input-type = <1>; 45*4882a593Smuzhiyun linux,code = <KEY_VOLUMEDOWN>; 46*4882a593Smuzhiyun }; 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun volume-up { 49*4882a593Smuzhiyun label = "volume_up"; 50*4882a593Smuzhiyun gpios = <&pm8921_gpio 35 GPIO_ACTIVE_LOW>; 51*4882a593Smuzhiyun linux,input-type = <1>; 52*4882a593Smuzhiyun linux,code = <KEY_VOLUMEUP>; 53*4882a593Smuzhiyun }; 54*4882a593Smuzhiyun }; 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun soc { 57*4882a593Smuzhiyun pinctrl@800000 { 58*4882a593Smuzhiyun gsbi5_uart_pin_a: gsbi5-uart-pin-active { 59*4882a593Smuzhiyun rx { 60*4882a593Smuzhiyun pins = "gpio52"; 61*4882a593Smuzhiyun function = "gsbi5"; 62*4882a593Smuzhiyun drive-strength = <2>; 63*4882a593Smuzhiyun bias-pull-up; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun tx { 67*4882a593Smuzhiyun pins = "gpio51"; 68*4882a593Smuzhiyun function = "gsbi5"; 69*4882a593Smuzhiyun drive-strength = <4>; 70*4882a593Smuzhiyun bias-disable; 71*4882a593Smuzhiyun }; 72*4882a593Smuzhiyun }; 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun sdcc3_cd_pin_a: sdcc3-cd-pin-active { 76*4882a593Smuzhiyun pins = "gpio26"; 77*4882a593Smuzhiyun function = "gpio"; 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun drive-strength = <2>; 80*4882a593Smuzhiyun bias-disable; 81*4882a593Smuzhiyun }; 82*4882a593Smuzhiyun }; 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun rpm@108000 { 86*4882a593Smuzhiyun regulators { 87*4882a593Smuzhiyun vin_l1_l2_l12_l18-supply = <&pm8921_s4>; 88*4882a593Smuzhiyun vin_lvs_1_3_6-supply = <&pm8921_s4>; 89*4882a593Smuzhiyun vin_lvs_4_5_7-supply = <&pm8921_s4>; 90*4882a593Smuzhiyun vin_ncp-supply = <&pm8921_l6>; 91*4882a593Smuzhiyun vin_lvs2-supply = <&pm8921_s4>; 92*4882a593Smuzhiyun vin_l24-supply = <&pm8921_s1>; 93*4882a593Smuzhiyun vin_l25-supply = <&pm8921_s1>; 94*4882a593Smuzhiyun vin_l27-supply = <&pm8921_s7>; 95*4882a593Smuzhiyun vin_l28-supply = <&pm8921_s7>; 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun /* Buck SMPS */ 98*4882a593Smuzhiyun s1 { 99*4882a593Smuzhiyun regulator-always-on; 100*4882a593Smuzhiyun regulator-min-microvolt = <1225000>; 101*4882a593Smuzhiyun regulator-max-microvolt = <1225000>; 102*4882a593Smuzhiyun qcom,switch-mode-frequency = <3200000>; 103*4882a593Smuzhiyun bias-pull-down; 104*4882a593Smuzhiyun }; 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun s2 { 107*4882a593Smuzhiyun regulator-min-microvolt = <1300000>; 108*4882a593Smuzhiyun regulator-max-microvolt = <1300000>; 109*4882a593Smuzhiyun qcom,switch-mode-frequency = <1600000>; 110*4882a593Smuzhiyun bias-pull-down; 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun s3 { 114*4882a593Smuzhiyun regulator-min-microvolt = <500000>; 115*4882a593Smuzhiyun regulator-max-microvolt = <1150000>; 116*4882a593Smuzhiyun qcom,switch-mode-frequency = <4800000>; 117*4882a593Smuzhiyun bias-pull-down; 118*4882a593Smuzhiyun }; 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun s4 { 121*4882a593Smuzhiyun regulator-always-on; 122*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 123*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 124*4882a593Smuzhiyun qcom,switch-mode-frequency = <1600000>; 125*4882a593Smuzhiyun bias-pull-down; 126*4882a593Smuzhiyun qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>; 127*4882a593Smuzhiyun }; 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun s7 { 130*4882a593Smuzhiyun regulator-min-microvolt = <1300000>; 131*4882a593Smuzhiyun regulator-max-microvolt = <1300000>; 132*4882a593Smuzhiyun qcom,switch-mode-frequency = <3200000>; 133*4882a593Smuzhiyun }; 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun s8 { 136*4882a593Smuzhiyun regulator-min-microvolt = <2200000>; 137*4882a593Smuzhiyun regulator-max-microvolt = <2200000>; 138*4882a593Smuzhiyun qcom,switch-mode-frequency = <1600000>; 139*4882a593Smuzhiyun }; 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun /* PMOS LDO */ 142*4882a593Smuzhiyun l1 { 143*4882a593Smuzhiyun regulator-always-on; 144*4882a593Smuzhiyun regulator-min-microvolt = <1100000>; 145*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 146*4882a593Smuzhiyun bias-pull-down; 147*4882a593Smuzhiyun }; 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun l2 { 150*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 151*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 152*4882a593Smuzhiyun bias-pull-down; 153*4882a593Smuzhiyun }; 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun l3 { 156*4882a593Smuzhiyun regulator-min-microvolt = <3075000>; 157*4882a593Smuzhiyun regulator-max-microvolt = <3075000>; 158*4882a593Smuzhiyun bias-pull-down; 159*4882a593Smuzhiyun }; 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun l4 { 162*4882a593Smuzhiyun regulator-always-on; 163*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 164*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 165*4882a593Smuzhiyun bias-pull-down; 166*4882a593Smuzhiyun }; 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun l5 { 169*4882a593Smuzhiyun regulator-min-microvolt = <2950000>; 170*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 171*4882a593Smuzhiyun bias-pull-down; 172*4882a593Smuzhiyun }; 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun l6 { 175*4882a593Smuzhiyun regulator-min-microvolt = <2950000>; 176*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 177*4882a593Smuzhiyun bias-pull-down; 178*4882a593Smuzhiyun }; 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun l7 { 181*4882a593Smuzhiyun regulator-min-microvolt = <1850000>; 182*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 183*4882a593Smuzhiyun bias-pull-down; 184*4882a593Smuzhiyun }; 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun l8 { 187*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 188*4882a593Smuzhiyun regulator-max-microvolt = <2800000>; 189*4882a593Smuzhiyun bias-pull-down; 190*4882a593Smuzhiyun }; 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun l9 { 193*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 194*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 195*4882a593Smuzhiyun bias-pull-down; 196*4882a593Smuzhiyun }; 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun l10 { 199*4882a593Smuzhiyun regulator-min-microvolt = <2900000>; 200*4882a593Smuzhiyun regulator-max-microvolt = <2900000>; 201*4882a593Smuzhiyun bias-pull-down; 202*4882a593Smuzhiyun }; 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun l11 { 205*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 206*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 207*4882a593Smuzhiyun bias-pull-down; 208*4882a593Smuzhiyun }; 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun l12 { 211*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 212*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 213*4882a593Smuzhiyun bias-pull-down; 214*4882a593Smuzhiyun }; 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun l14 { 217*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 218*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 219*4882a593Smuzhiyun bias-pull-down; 220*4882a593Smuzhiyun }; 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun l15 { 223*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 224*4882a593Smuzhiyun regulator-max-microvolt = <2950000>; 225*4882a593Smuzhiyun bias-pull-down; 226*4882a593Smuzhiyun }; 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun l16 { 229*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 230*4882a593Smuzhiyun regulator-max-microvolt = <2800000>; 231*4882a593Smuzhiyun bias-pull-down; 232*4882a593Smuzhiyun }; 233*4882a593Smuzhiyun 234*4882a593Smuzhiyun l17 { 235*4882a593Smuzhiyun regulator-min-microvolt = <2000000>; 236*4882a593Smuzhiyun regulator-max-microvolt = <2000000>; 237*4882a593Smuzhiyun bias-pull-down; 238*4882a593Smuzhiyun }; 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun l18 { 241*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 242*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 243*4882a593Smuzhiyun bias-pull-down; 244*4882a593Smuzhiyun }; 245*4882a593Smuzhiyun 246*4882a593Smuzhiyun l21 { 247*4882a593Smuzhiyun regulator-min-microvolt = <1050000>; 248*4882a593Smuzhiyun regulator-max-microvolt = <1050000>; 249*4882a593Smuzhiyun bias-pull-down; 250*4882a593Smuzhiyun }; 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun l22 { 253*4882a593Smuzhiyun regulator-min-microvolt = <2600000>; 254*4882a593Smuzhiyun regulator-max-microvolt = <2600000>; 255*4882a593Smuzhiyun bias-pull-down; 256*4882a593Smuzhiyun }; 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun l23 { 259*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 260*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 261*4882a593Smuzhiyun bias-pull-down; 262*4882a593Smuzhiyun }; 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun l24 { 265*4882a593Smuzhiyun regulator-min-microvolt = <750000>; 266*4882a593Smuzhiyun regulator-max-microvolt = <1150000>; 267*4882a593Smuzhiyun bias-pull-down; 268*4882a593Smuzhiyun }; 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun l25 { 271*4882a593Smuzhiyun regulator-always-on; 272*4882a593Smuzhiyun regulator-min-microvolt = <1250000>; 273*4882a593Smuzhiyun regulator-max-microvolt = <1250000>; 274*4882a593Smuzhiyun bias-pull-down; 275*4882a593Smuzhiyun }; 276*4882a593Smuzhiyun 277*4882a593Smuzhiyun l27 { 278*4882a593Smuzhiyun regulator-min-microvolt = <1100000>; 279*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 280*4882a593Smuzhiyun }; 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun l28 { 283*4882a593Smuzhiyun regulator-min-microvolt = <1050000>; 284*4882a593Smuzhiyun regulator-max-microvolt = <1050000>; 285*4882a593Smuzhiyun bias-pull-down; 286*4882a593Smuzhiyun }; 287*4882a593Smuzhiyun 288*4882a593Smuzhiyun l29 { 289*4882a593Smuzhiyun regulator-min-microvolt = <2000000>; 290*4882a593Smuzhiyun regulator-max-microvolt = <2000000>; 291*4882a593Smuzhiyun bias-pull-down; 292*4882a593Smuzhiyun }; 293*4882a593Smuzhiyun 294*4882a593Smuzhiyun /* Low Voltage Switch */ 295*4882a593Smuzhiyun lvs1 { 296*4882a593Smuzhiyun bias-pull-down; 297*4882a593Smuzhiyun }; 298*4882a593Smuzhiyun 299*4882a593Smuzhiyun lvs2 { 300*4882a593Smuzhiyun bias-pull-down; 301*4882a593Smuzhiyun }; 302*4882a593Smuzhiyun 303*4882a593Smuzhiyun lvs3 { 304*4882a593Smuzhiyun bias-pull-down; 305*4882a593Smuzhiyun }; 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun lvs4 { 308*4882a593Smuzhiyun bias-pull-down; 309*4882a593Smuzhiyun }; 310*4882a593Smuzhiyun 311*4882a593Smuzhiyun lvs5 { 312*4882a593Smuzhiyun bias-pull-down; 313*4882a593Smuzhiyun }; 314*4882a593Smuzhiyun 315*4882a593Smuzhiyun lvs6 { 316*4882a593Smuzhiyun bias-pull-down; 317*4882a593Smuzhiyun }; 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun lvs7 { 320*4882a593Smuzhiyun bias-pull-down; 321*4882a593Smuzhiyun }; 322*4882a593Smuzhiyun 323*4882a593Smuzhiyun usb-switch {}; 324*4882a593Smuzhiyun 325*4882a593Smuzhiyun hdmi-switch {}; 326*4882a593Smuzhiyun 327*4882a593Smuzhiyun ncp { 328*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 329*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 330*4882a593Smuzhiyun qcom,switch-mode-frequency = <1600000>; 331*4882a593Smuzhiyun }; 332*4882a593Smuzhiyun }; 333*4882a593Smuzhiyun }; 334*4882a593Smuzhiyun 335*4882a593Smuzhiyun qcom,ssbi@500000 { 336*4882a593Smuzhiyun pmic@0 { 337*4882a593Smuzhiyun gpio@150 { 338*4882a593Smuzhiyun gpio_keys_pin_a: gpio-keys-pin-active { 339*4882a593Smuzhiyun pins = "gpio3", "gpio4", "gpio29", "gpio35"; 340*4882a593Smuzhiyun function = "normal"; 341*4882a593Smuzhiyun 342*4882a593Smuzhiyun bias-pull-up; 343*4882a593Smuzhiyun drive-push-pull; 344*4882a593Smuzhiyun input-enable; 345*4882a593Smuzhiyun power-source = <2>; 346*4882a593Smuzhiyun qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>; 347*4882a593Smuzhiyun qcom,pull-up-strength = <0>; 348*4882a593Smuzhiyun }; 349*4882a593Smuzhiyun }; 350*4882a593Smuzhiyun }; 351*4882a593Smuzhiyun }; 352*4882a593Smuzhiyun 353*4882a593Smuzhiyun usb@12500000 { 354*4882a593Smuzhiyun status = "okay"; 355*4882a593Smuzhiyun dr_mode = "otg"; 356*4882a593Smuzhiyun ulpi { 357*4882a593Smuzhiyun phy { 358*4882a593Smuzhiyun v3p3-supply = <&pm8921_l3>; 359*4882a593Smuzhiyun v1p8-supply = <&pm8921_l4>; 360*4882a593Smuzhiyun }; 361*4882a593Smuzhiyun }; 362*4882a593Smuzhiyun }; 363*4882a593Smuzhiyun 364*4882a593Smuzhiyun gsbi@1a200000 { 365*4882a593Smuzhiyun status = "ok"; 366*4882a593Smuzhiyun qcom,mode = <GSBI_PROT_I2C_UART>; 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun serial@1a240000 { 369*4882a593Smuzhiyun status = "ok"; 370*4882a593Smuzhiyun 371*4882a593Smuzhiyun pinctrl-names = "default"; 372*4882a593Smuzhiyun pinctrl-0 = <&gsbi5_uart_pin_a>; 373*4882a593Smuzhiyun }; 374*4882a593Smuzhiyun }; 375*4882a593Smuzhiyun 376*4882a593Smuzhiyun amba { 377*4882a593Smuzhiyun sdcc1: sdcc@12400000 { 378*4882a593Smuzhiyun status = "okay"; 379*4882a593Smuzhiyun 380*4882a593Smuzhiyun vmmc-supply = <&pm8921_l5>; 381*4882a593Smuzhiyun vqmmc-supply = <&pm8921_s4>; 382*4882a593Smuzhiyun }; 383*4882a593Smuzhiyun 384*4882a593Smuzhiyun sdcc3: sdcc@12180000 { 385*4882a593Smuzhiyun status = "okay"; 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun vmmc-supply = <&pm8921_l6>; 388*4882a593Smuzhiyun cd-gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>; 389*4882a593Smuzhiyun 390*4882a593Smuzhiyun pinctrl-names = "default"; 391*4882a593Smuzhiyun pinctrl-0 = <&sdcc3_pins>, <&sdcc3_cd_pin_a>; 392*4882a593Smuzhiyun }; 393*4882a593Smuzhiyun }; 394*4882a593Smuzhiyun 395*4882a593Smuzhiyun riva-pil@3204000 { 396*4882a593Smuzhiyun status = "okay"; 397*4882a593Smuzhiyun 398*4882a593Smuzhiyun pinctrl-names = "default"; 399*4882a593Smuzhiyun pinctrl-0 = <&riva_wlan_pin_a>, <&riva_bt_pin_a>, <&riva_fm_pin_a>; 400*4882a593Smuzhiyun }; 401*4882a593Smuzhiyun }; 402*4882a593Smuzhiyun}; 403