blob: ec723a714eeb39b529f475459ea636b012d2bc16 [file] [log] [blame]
/* Copyright (c) 2012, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/include/ "msm8974-leds.dtsi"
/include/ "msm8974-camera-sensor-liquid.dtsi"
/ {
serial@f991e000 {
status = "ok";
};
qcom,mdss_edp@fd923400 {
status = "ok";
};
i2c@f9967000 {
battery@b {
compatible = "ti,bq28400-battery";
reg = <0xb>;
};
charger@2b {
compatible = "summit,smb350-charger";
reg = <0x2b>; /* 0x56/0x57 */
summit,stat-gpio = <&pm8941_gpios 30 0x00>;
summit,chg-en-n-gpio = <&pm8941_gpios 10 0x00>;
summit,chg-susp-n-gpio = <&pm8941_gpios 13 0x00>;
summit,chg-current-ma = <1600>;
summit,term-current-ma = <300>;
};
};
gpio_keys {
compatible = "gpio-keys";
input-name = "gpio-keys";
home {
label = "home";
gpios = <&pm8941_gpios 1 0x1>;
linux,input-type = <1>;
linux,code = <102>;
gpio-key,wakeup;
debounce-interval = <15>;
};
vol_down {
label = "volume_down";
gpios = <&pm8941_gpios 2 0x1>;
linux,input-type = <1>;
linux,code = <114>;
gpio-key,wakeup;
debounce-interval = <15>;
};
vol_up {
label = "volume_up";
gpios = <&pm8941_gpios 5 0x1>;
linux,input-type = <1>;
linux,code = <115>;
gpio-key,wakeup;
debounce-interval = <15>;
};
};
qcom,mdss_mdp@fd900000 {
qcom,memory-reservation-size = <0x1000000>; /* size 16MB */
};
qcom,hdmi_tx@fd922100 {
status = "ok";
qcom,hdmi-tx-mux-sel = <&pm8841_mpps 3 0>;
qcom,hdmi-tx-mux-en = <&pm8841_mpps 4 0>;
};
drv2667_vreg: drv2667_vdd_vreg {
compatible = "regulator-fixed";
regulator-name = "vdd_drv2667";
};
i2c@f9967000 {
ti-drv2667@59 {
compatible = "ti,drv2667";
reg = <0x59>;
vdd-supply = <&drv2667_vreg>;
vdd-i2c-supply = <&pm8941_s3>;
ti,label = "vibrator";
ti,gain = <2>;
ti,idle-timeout-ms = <20>;
ti,max-runtime-ms = <15000>;
ti,mode = <2>;
ti,wav-seq = [
/* wave form id */
01
/* header size, start and stop bytes */
05 80 06 00 09
/* repeat, amp, freq, duration, envelope */
01 ff 19 02 00];
};
};
i2c@f9924000 {
atmel_mxt_ts@4a {
compatible = "atmel,mxt-ts";
reg = <0x4a>;
interrupt-parent = <&msmgpio>;
interrupts = <61 0x2>;
vdd_ana-supply = <&pm8941_l22>;
vcc_i2c-supply = <&pm8941_s3>;
atmel,reset-gpio = <&msmgpio 60 0x00>;
atmel,irq-gpio = <&msmgpio 61 0x00>;
atmel,panel-coords = <0 0 1080 1920>;
atmel,display-coords = <0 0 1080 1920>;
atmel,i2c-pull-up;
atmel,no-force-update;
atmel,cfg_1 {
atmel,family-id = <0xa2>;
atmel,variant-id = <0x00>;
atmel,version = <0x11>;
atmel,build = <0xaa>;
atmel,config = [
/* Object 6, Instance = 0 */
00 00 00 00 00 00
/* Object 38, Instance = 0 */
16 00 00 14 09 0C 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00
/* Object 7, Instance = 0 */
FF FF 0A 03
/* Object 8, Instance = 0 */
5F 00 14 14 00 00 00 01 00 00
/* Object 9, Instance = 0 */
8F 00 00 20 34 00 87 3C 08 03
00 05 03 80 0A 14 14 0A 80 07
38 04 00 00 00 00 00 00 00 00
0F 0F 2E 33 02 00
/* Object 15, Instance = 0 */
00 00 00 00 00 00 00 00 00 00
00
/* Object 18, Instance = 0 */
04 00
/* Object 24, Instance = 0 */
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00
/* Object 25, Instance = 0 */
00 00 54 6F F0 55 00 00 00 00
00 00 00 00 00
/* Object 27, Instance = 0 */
00 00 00 00 00 00 00
/* Object 40, Instance = 0 */
00 14 14 14 14
/* Object 42, Instance = 0 */
20 14 00 00 00 14 11 00 03 00
/* Object 43, Instance = 0 */
09 00 01 01 91 00 80 00 00 00
00 00
/* Object 46, Instance = 0 */
00 00 10 10 00 00 01 00 00 0F
0A
/* Object 47, Instance = 0 */
00 14 23 02 05 1E 01 78 03 10
00 00 0C 00 00 00 00 00 00 00
00 00
/* Object 55, Instance = 0 */
00 00 00 00 00 00 00
/* Object 56, Instance = 0 */
02 00 01 30 13 14 14 14 15 15
15 15 15 15 15 16 16 16 16 16
16 16 16 16 16 15 14 14 14 14
15 14 14 14 14 13 00 00 01 02
05 05 00 00 00 00 00 00 00 00
00
/* Object 57, Instance = 0 */
00 00 00
/* Object 61, Instance = 0 */
00 00 00 00 00
/* Object 62, Instance = 0 */
00 01 03 01 00 00 00 00 00 0A
0F 14 19 23 05 00 0A 05 05 69
23 23 34 11 64 06 06 04 40 00
00 00 00 00 69 4B 02 00 00 80
0A 14 14 18 18 10 10 80 00 80
00 00 0F 02 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00
/* Object 63, Instance = 0 */
00 00 00 00 00 00 00 00 00 00
00 00
];
};
};
};
ext_5v: regulator-smb210 {
compatible = "regulator-fixed";
regulator-name = "ext_5v";
gpio = <&pm8941_mpps 2 0>;
startup-delay-us = <12000>;
enable-active-high;
};
sound {
qcom,model = "msm8974-taiko-liquid-snd-card";
qcom,ext-spk-amp-supply = <&ext_5v>;
qcom,ext-spk-amp-gpio = <&pm8841_mpps 1 0>;
};
};
&usb3 {
qcom,charging-disabled;
};
&pm8941_mvs1 {
parent-supply = <&ext_5v>;
};
&pm8941_mvs2 {
parent-supply = <&ext_5v>;
};
&pm8941_gpios {
gpio@c000 { /* GPIO 1 */
qcom,mode = <0>;
qcom,pull = <0>;
qcom,vin-sel = <2>;
qcom,src-sel = <0>;
};
gpio@c100 { /* GPIO 2 */
qcom,mode = <0>;
qcom,pull = <0>;
qcom,vin-sel = <2>;
qcom,src-sel = <0>;
};
gpio@c200 { /* GPIO 3 */
};
gpio@c300 { /* GPIO 4 */
};
gpio@c400 { /* GPIO 5 */
qcom,mode = <0>;
qcom,pull = <0>;
qcom,vin-sel = <2>;
qcom,src-sel = <0>;
};
gpio@c500 { /* GPIO 6 */
};
gpio@c600 { /* GPIO 7 */
};
gpio@c700 { /* GPIO 8 */
};
gpio@c800 { /* GPIO 9 */
};
gpio@c900 { /* GPIO 10 */
/* SMB350-CHG-EN-N */
qcom,mode = <1>; /* DIG_OUT */
qcom,output-type = <0>; /* CMOS */
qcom,pull = <5>; /* PULL_NO */
qcom,vin-sel = <0>; /* VPH */
qcom,out-strength = <2>; /* STRENGTH_MED */
qcom,src-sel = <0>; /* CONSTANT */
qcom,master-en = <1>;
};
gpio@ca00 { /* GPIO 11 */
};
gpio@cb00 { /* GPIO 12 */
};
gpio@cc00 { /* GPIO 13 */
/* SMB350-CHG-SUSP-N */
qcom,mode = <1>; /* DIG_OUT */
qcom,output-type = <0>; /* CMOS */
qcom,pull = <5>; /* PULL_NO */
qcom,vin-sel = <0>; /* VPH */
qcom,out-strength = <2>; /* STRENGTH_MED */
qcom,src-sel = <0>; /* CONSTANT */
qcom,master-en = <1>;
};
gpio@cd00 { /* GPIO 14 */
};
gpio@ce00 { /* GPIO 15 */
qcom,mode = <1>;
qcom,output-type = <0>;
qcom,pull = <5>;
qcom,vin-sel = <2>;
qcom,out-strength = <3>;
qcom,src-sel = <2>;
qcom,master-en = <1>;
};
gpio@cf00 { /* GPIO 16 */
};
gpio@d000 { /* GPIO 17 */
};
gpio@d100 { /* GPIO 18 */
};
gpio@d200 { /* GPIO 19 */
qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */
qcom,output-type = <0>; /* QPNP_PIN_OUT_BUF_CMOS */
qcom,pull = <5>; /* QPNP_PIN_PULL_NO */
qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */
qcom,out-strength = <2>; /* QPNP_PIN_OUT_STRENGTH_MED */
qcom,src-sel = <0>; /* QPNP_PIN_SEL_FUNC_CONSTANT */
qcom,master-en = <1>;
};
gpio@d300 { /* GPIO 20 */
};
gpio@d400 { /* GPIO 21 */
};
gpio@d500 { /* GPIO 22 */
};
gpio@d600 { /* GPIO 23 */
};
gpio@d700 { /* GPIO 24 */
};
gpio@d800 { /* GPIO 25 */
};
gpio@d900 { /* GPIO 26 */
};
gpio@da00 { /* GPIO 27 */
};
gpio@db00 { /* GPIO 28 */
};
gpio@dc00 { /* GPIO 29 */
qcom,pull = <0>; /* set to default pull */
qcom,master-en = <1>;
qcom,vin-sel = <2>; /* select 1.8 V source */
};
gpio@dd00 { /* GPIO 30 */
/* SMB350-STAT */
qcom,mode = <0>; /* DIG_IN */
qcom,pull = <5>; /* PULL_NO */
qcom,vin-sel = <2>; /* S3 1.8V */
qcom,src-sel = <0>; /* CONSTANT */
qcom,master-en = <1>;
};
gpio@de00 { /* GPIO 31 */
};
gpio@df00 { /* GPIO 32 */
};
gpio@e000 { /* GPIO 33 */
qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */
qcom,output-type = <0>; /* QPNP_PIN_OUT_BUF_CMOS */
qcom,pull = <5>; /* QPNP_PIN_PULL_NO */
qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */
qcom,out-strength = <2>; /* QPNP_PIN_OUT_STRENGTH_MED */
qcom,src-sel = <0>; /* QPNP_PIN_SEL_FUNC_CONSTANT */
qcom,invert = <1>;
qcom,master-en = <1>;
};
gpio@e100 { /* GPIO 34 */
qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */
qcom,output-type = <0>; /* QPNP_PIN_OUT_BUF_CMOS */
qcom,pull = <5>; /* QPNP_PIN_PULL_NO */
qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */
qcom,out-strength = <2>; /* QPNP_PIN_OUT_STRENGTH_MED */
qcom,src-sel = <0>; /* QPNP_PIN_SEL_FUNC_CONSTANT */
qcom,invert = <0>;
qcom,master-en = <1>;
};
gpio@e200 { /* GPIO 35 */
};
gpio@e300 { /* GPIO 36 */
qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */
qcom,output-type = <0>; /* QPNP_PIN_OUT_BUF_CMOS */
qcom,pull = <5>; /* QPNP_PIN_PULL_NO */
qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */
qcom,out-strength = <3>; /* QPNP_PIN_OUT_STRENGTH_HIGH */
qcom,src-sel = <3>; /* QPNP_PIN_SEL_FUNC_2 */
qcom,master-en = <1>;
};
};
&pm8941_mpps {
mpp@a000 { /* MPP 1 */
};
mpp@a100 { /* MPP 2 */
/* ext_5v regulator enable */
qcom,mode = <1>; /* Digital output */
qcom,invert = <0>; /* Output low initially */
qcom,vin-sel = <2>; /* PM8941 S3 = 1.8 V */
qcom,src-sel = <0>; /* Constant */
qcom,master-en = <1>; /* Enable MPP */
};
mpp@a200 { /* MPP 3 */
};
mpp@a300 { /* MPP 4 */
};
mpp@a400 { /* MPP 5 */
/* SPI_ETH config */
qcom,mode = <1>; /* DIG_OUT */
qcom,output-type = <0>; /* CMOS */
qcom,vin-sel = <2>; /* PM8941_S3 1.8V > 1.6V */
qcom,src-sel = <0>; /* CONSTANT */
qcom,master-en = <1>; /* ENABLE MPP */
};
mpp@a500 { /* MPP 6 */
/* SPI_ETH_RST config */
qcom,mode = <1>; /* DIG_OUT */
qcom,output-type = <0>; /* CMOS */
qcom,vin-sel = <2>; /* PM8941_S3 1.8V > 1.6V */
qcom,src-sel = <0>; /* CONSTANT */
qcom,master-en = <1>; /* ENABLE MPP */
};
mpp@a600 { /* MPP 7 */
};
mpp@a700 { /* MPP 8 */
};
};
&pm8841_mpps {
mpp@a000 { /* MPP 1 */
/* CLASS_D_EN speakers PA */
qcom,mode = <1>; /* DIG_OUT */
qcom,output-type = <0>; /* PNP_PIN_OUT_BUF_CMOS */
qcom,vin-sel = <2>; /* S3A 1.8v */
qcom,src-select = <0>; /* CONSTANT */
qcom,master-en = <1>; /* ENABLE MPP */
};
mpp@a100 { /* MPP 2 */
};
mpp@a200 { /* HDMI_MUX_SEL MPP 3*/
status = "ok";
qcom,mode = <1>; /* DIG_OUT */
qcom,output-type = <0>; /* CMOS */
qcom,vin-sel = <2>; /* PM8841_S3A 1.8V */
qcom,src-sel = <0>; /* CONSTANT */
qcom,master-en = <1>; /* ENABLE MPP */
};
mpp@a300 { /* HDMI_MUX_EN MPP 4*/
status = "ok";
qcom,mode = <1>; /* DIG_OUT */
qcom,output-type = <0>; /* CMOS */
qcom,vin-sel = <0>; /* PM8841_VPH 3.4V */
qcom,src-sel = <0>; /* CONSTANT */
qcom,master-en = <1>; /* ENABLE MPP */
};
};