/* 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 */
	};
};
