/* Copyright (c) 2012-2013, 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"

/ {
	aliases {
		serial0 = &blsp1_uart1;
	};
};

&soc {
	serial@f991e000 {
		status = "ok";
	};

        qcom,mdss_mdp@fd900000 {
                qcom,mdss-pref-prim-intf = "edp";
        };

	qcom,mdss_edp@fd923400 {
		status = "ok";
		qcom,cont-splash-enabled;
		qcom,panel-lpg-channel = <7>; /* LPG Channel 8 */
		qcom,panel-pwm-period = <53>;
	};

	i2c@f9967000 {
		battery@b {
			compatible = "ti,bq28400-battery";
			reg = <0xb>;
			ti,temp-cold = <2>; /* degree celsius */
			ti,temp-hot = <43>; /* degree celsius */
		};

		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,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
					];
			};
			atmel,cfg_2 {
				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 */
					19 04 00 07 08 0D 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 */
					20 08 32 C3
					/* Object 8, Instance = 0 */
					41 00 14 14 00 00 00 01 00 00
					/* Object 9, Instance = 0 */
					8F 00 00 20 34 00 87 4B 02 03
					00 05 03 41 0A 14 14 0A 80 07
					38 04 00 00 03 03 08 28 02 3C
					0F 0F 2E 33 01 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 0C
					/* Object 27, Instance = 0 */
					00 00 00 00 00 00 00
					/* Object 40, Instance = 0 */
					00 14 14 14 14
					/* Object 42, Instance = 0 */
					23 32 14 14 80 00 0A 00 05 05
					/* Object 43, Instance = 0 */
					08 00 01 01 91 00 80 00 00 00
					00 00
					/* Object 46, Instance = 0 */
					00 00 18 18 00 00 01 00 00 0F
					0A
					/* Object 47, Instance = 0 */
					00 14 28 02 05 28 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 */
					01 00 00 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 03 20 03 01
					0A 04 00 00 00 00 00 00 00 00
					1A
					/* Object 57, Instance = 0 */
					00 00 00
					/* Object 61, Instance = 0 */
					00 00 00 00 00
					/* Object 62, Instance = 0 */
					00 03 00 07 02 00 00 00 00 00
					0F 17 23 2D 05 00 05 03 03 69
					14 14 34 11 64 06 06 04 40 00
					00 00 00 00 69 3C 02 04 01 00
					0A 14 14 03 03 03 03 00 00 00
					00 64 1E 01 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
					/* Object 65, Instance = 0 */
					00 00 00 00 00 00 00 00 00 00
					00 00 00 00 00 00 00
					/* Object 66, Instance = 0 */
					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;
	};

	ath_chip_pwd_l: ath_chip_reset {
		compatible = "regulator-fixed";
		regulator-name = "ath_chip_pwd_l";
		gpio = <&pm8941_gpios 33 0>;
		enable-active-high;
	};

	bt_ar3002 {
		compatible = "qca,ar3002";
		qca,bt-reset-gpio = <&pm8941_gpios 34 0>;
		qca,bt-chip-pwd-supply = <&ath_chip_pwd_l>;
		qca,bt-vdd-io-supply = <&pm8941_l10>;
		qca,bt-vdd-pa-supply = <&pm8941_l19>;
	};

	bt_ar3002_sleep {
		compatible = "qca,ar3002_bluesleep";
		host-wake-gpio = <&msmgpio 79 0>;
		ext-wake-gpio = <&msmgpio 51 0>;
		interrupt-parent = <&msmgpio>;
		interrupts = <79 2>;
		interrupt-names = "host_wake";
	};

	sound {
		qcom,model = "msm8974-taiko-liquid-snd-card";

		qcom,audio-routing =
			"RX_BIAS", "MCLK",
			"LDO_H", "MCLK",
			"Lineout_1 amp", "LINEOUT1",
			"Lineout_3 amp", "LINEOUT3",
			"Lineout_2 amp", "LINEOUT2",
			"Lineout_4 amp", "LINEOUT4",
			"SPK_ultrasound amp", "SPK_OUT",
			"AMIC1", "MIC BIAS4 External",
			"MIC BIAS4 External", "Analog Mic4",
			"AMIC2", "MIC BIAS2 External",
			"MIC BIAS2 External", "Headset Mic",
			"AMIC3", "MIC BIAS2 External",
			"MIC BIAS2 External", "ANCRight Headset Mic",
			"AMIC4", "MIC BIAS2 External",
			"MIC BIAS2 External", "ANCLeft Headset Mic",
			"AMIC5", "MIC BIAS1 External",
			"MIC BIAS1 External", "Analog Mic6",
			"AMIC6", "MIC BIAS1 External",
			"MIC BIAS1 External", "Analog Mic7",
			"DMIC1", "MIC BIAS3 External",
			"MIC BIAS3 External", "Digital Mic1",
			"DMIC2", "MIC BIAS3 External",
			"MIC BIAS3 External", "Digital Mic2",
			"DMIC3", "MIC BIAS2 External",
			"MIC BIAS2 External", "Digital Mic3",
			"DMIC4", "MIC BIAS3 External",
			"MIC BIAS3 External", "Digital Mic4",
			"DMIC5", "MIC BIAS2 External",
			"MIC BIAS2 External", "Digital Mic5",
			"DMIC6", "MIC BIAS2 External",
			"MIC BIAS2 External", "Digital Mic6";

		qcom,ext-spk-amp-supply = <&ext_5v>;
		qcom,ext-spk-amp-gpio = <&pm8841_mpps 1 0>;
		qcom,dock-plug-det-irq = <&pm8841_mpps 2 0>;
		qcom,ext-ult-spk-amp-gpio = <&pm8941_gpios 6 0>;
		qcom,hdmi-audio-rx;

		qcom,prim-auxpcm-gpio-clk  = <&msmgpio 74 0>;
		qcom,prim-auxpcm-gpio-sync = <&msmgpio 75 0>;
		qcom,prim-auxpcm-gpio-din  = <&msmgpio 76 0>;
		qcom,prim-auxpcm-gpio-dout = <&msmgpio 77 0>;
		qcom,prim-auxpcm-gpio-set = "prim-gpio-tert";
	};

	hsic_host: hsic@f9a00000 {
		compatible = "qcom,hsic-host";
		reg = <0xf9a00000 0x400>;
		#address-cells = <0>;
	        interrupt-parent = <&hsic_host>;
		interrupts = <0 1 2>;
		#interrupt-cells = <1>;
		interrupt-map-mask = <0xffffffff>;
		interrupt-map = <0 &intc 0 136 0
	                1 &intc 0 148 0
	                2 &msmgpio 144 0x8>;
		interrupt-names = "core_irq", "async_irq", "wakeup";
		hsic_vdd_dig-supply = <&pm8841_s2_corner>;
		HSIC_GDSC-supply = <&gdsc_usb_hsic>;
		hsic,strobe-gpio = <&msmgpio 144 0x00>;
		hsic,data-gpio = <&msmgpio 145 0x00>;
		hsic,ignore-cal-pad-config;
		hsic,strobe-pad-offset = <0x2050>;
		hsic,data-pad-offset = <0x2054>;
		qcom,phy-susp-sof-workaround;
		hsic,vdd-voltage-level = <1 5 7>;

		qcom,msm-bus,name = "hsic";
		qcom,msm-bus,num-cases = <2>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps =
				<85 512 0 0>,
				<85 512 40000 160000>;
	};

        wlan0: qca,wlan {
                compatible = "qca,ar6004-hsic";
                qcom,msm-bus,name = "wlan";
                qca,wifi-chip-pwd-supply = <&ath_chip_pwd_l>;
                qca,wifi-vddpa-supply = <&pm8941_l19>;
                qca,wifi-vddio-supply = <&pm8941_l10>;
                qcom,msm-bus,num-cases = <5>;
                qcom,msm-bus,active-only = <0>;
                qcom,msm-bus,num-paths = <1>;
                qcom,msm-bus,vectors-KBps =
                        <85 512 0 0>,
                        <85 512 40000 160000>,
                        <85 512 40000 320000>,
                        <85 512 40000 480000>,
                        <85 512 40000 800000>;
        };

        wlan_sdio:qca,wlan_sdio {
                compatible = "qca,ar6004-sdio";
                qcom,msm-bus,name = "wlan_sdio";
                qca,wifi-chip-pwd-supply = <&ath_chip_pwd_l>;
        };

	qcom,pronto@fb21b000 {
		status = "disabled";
	};

	qcom,iris-fm {
		status = "disabled";
	};

	qcom,wcnss-wlan@fb000000 {
		status = "disabled";
	};

	qcom,smd-wcnss {
		status = "disabled";
	};

	qcom,smsm-wcnss {
		status = "disabled";
	};
};

&pm8941_l19 {
	regulator-min-microvolt = <3300000>;
	regulator-max-microvolt = <3300000>;
	qcom,init-voltage = <3300000>;
};

&pm8941_l10 {
	regulator-min-microvolt = <1800000>;
	regulator-max-microvolt = <1800000>;
	qcom,init-voltage = <1800000>;
};

&mdss_fb0 {
	qcom,memory-reservation-size = <0x1000000>; /* size 16MB */
};

&uart7 {
	status = "ok";
	qcom,tx-gpio = <&msmgpio 41 0x00>;
	qcom,rx-gpio = <&msmgpio 42 0x00>;
	qcom,cts-gpio = <&msmgpio 43 0x00>;
	qcom,rfr-gpio = <&msmgpio 44 0x00>;
};

&usb3 {
	qcom,otg-capability;
};

&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 */
		/* ULTRASOUND_EN_1 PA AB enable */
		qcom,mode = <1>; /* DIG_OUT */
		qcom,output-type = <0>; /* CMOS */
		qcom,pull = <4>; /* PULL_DOWN */
		qcom,vin-sel = <0>; /* VPH */
		qcom,out-strength = <2>; /* STRENGTH_MED */
		qcom,src-sel = <0>; /* CONSTANT */
		qcom,master-en = <1>;
	};

	gpio@c600 { /* GPIO 7 */
	};

	gpio@c700 { /* GPIO 8 */
		/* HSIC_HUB-RESET */
		qcom,mode = <1>;		/* DIG_OUT */
		qcom,pull = <5>;		/* PULL_NO */
		qcom,out-strength = <2>;	/* STRENGTH_MED */
		qcom,master-en = <1>;
	};

	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 = <1>;
		qcom,src-sel = <2>;
		qcom,master-en = <1>;
	};

	gpio@cf00 { /* GPIO 16 */
		/* HSIC_HUB-INT_N */
		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@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 */
		status = "disabled";
	};

	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 */
		/* DOCK_PLUG_DET speakers+docking detect irq*/
		qcom,mode = <0>; /* DIG_IN */
		qcom,vin-sel = <2>; /* S3A 1.8v */
		qcom,src-sel = <0>; /* CONSTANT */
		qcom,master-en = <1>; /* ENABLE MPP */
	};

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

&vph_pwr_vreg {
	status = "ok";
};

&slim_msm {
	taiko_codec {
		qcom,cdc-micbias1-ext-cap;
		qcom,cdc-micbias2-ext-cap;
		qcom,cdc-micbias3-ext-cap;
		qcom,cdc-micbias4-ext-cap;

		/*
		 * Liquid has external spkrdrv supply. Give a dummy supply to
		 * make codec driver's happy.
		 */
		cdc-vdd-spkdrv-supply = <&vph_pwr_vreg>;
		qcom,cdc-vdd-spkdrv-voltage = <0 0>;
		qcom,cdc-vdd-spkdrv-current = <0>;

		qcom,cdc-on-demand-supplies = "cdc-vdd-spkdrv";
	};
};

&spi_epm {
	epm-adc@0 {
		compatible = "cy,epm-adc-cy8c5568lti-114";
		reg = <0>;
		interrupt-parent = <&msmgpio>;
		spi-max-frequency = <960000>;
		qcom,channels = <31>;
		qcom,gain = <50 50 50 50 50 100 50 100 50 50
				100 50 50 50 50 50 50 50 50 50
				50 50 50 100 50 50 50 1 1 1
				1>;
		qcom,rsense = <50 100 500 10 25 1000 40 200 200 5
				500 500 75 10 5 25 33 75 25 200
				10 25 33 100 10 10 3 1000 1000 1000
				1000>;
		qcom,channel-type = <0xf0000000>;
	};
};

&pm8941_lsid1 {
	qcom,leds@d000 {
		qcom,rgb_2 {
			status = "ok";
			qcom,default-state = "on";
			qcom,turn-off-delay-ms = <1000>;
		};
	};
};

&pm8941_chg {
	status = "ok";
	otg-parent-supply = <&ext_5v>;

	qcom,charging-disabled;

	qcom,chgr@1000 {
		status = "ok";
	};

	qcom,buck@1100 {
		status = "ok";
	};

	qcom,usb-chgpth@1300 {
		status = "ok";
	};

	qcom,dc-chgpth@1400 {
		status = "disabled";
	};

	qcom,boost@1500 {
		status = "ok";
	};

	qcom,chg-misc@1600 {
		status = "ok";
	};
};

&sdcc1 {
       status = "disabled";
};

&sdcc2 {
       status = "disabled";
};

&sdhc_1 {
	vdd-supply = <&pm8941_l20>;
	vdd-io-supply = <&pm8941_s3>;

	qcom,vdd-always-on;
	qcom,vdd-lpm-sup;
	qcom,vdd-voltage-level = <2950000 2950000>;
	qcom,vdd-current-level = <800 500000>;

	qcom,vdd-io-always-on;
	qcom,vdd-io-voltage-level = <1800000 1800000>;
	qcom,vdd-io-current-level = <250 154000>;

	qcom,pad-pull-on = <0x0 0x3 0x3>; /* no-pull, pull-up, pull-up */
	qcom,pad-pull-off = <0x0 0x3 0x3>; /* no-pull, pull-up, pull-up */
	qcom,pad-drv-on = <0x4 0x4 0x4>; /* 10mA, 10mA, 10mA */
	qcom,pad-drv-off = <0x0 0x0 0x0>; /* 2mA, 2mA, 2mA */

	qcom,nonremovable;
	status = "ok";
};

&sdhc_2 {
	vdd-supply = <&pm8941_l21>;
	vdd-io-supply = <&pm8941_l13>;

	qcom,vdd-voltage-level = <2950000 2950000>;
	qcom,vdd-current-level = <9000 800000>;

	qcom,vdd-io-voltage-level = <1800000 2950000>;
	qcom,vdd-io-current-level = <6 22000>;

	qcom,pad-pull-on = <0x0 0x3 0x3>; /* no-pull, pull-up, pull-up */
	qcom,pad-pull-off = <0x0 0x3 0x3>; /* no-pull, pull-up, pull-up */
	qcom,pad-drv-on = <0x4 0x4 0x4>; /* 10mA, 10mA, 10mA */
	qcom,pad-drv-off = <0x0 0x0 0x0>; /* 2mA, 2mA, 2mA */
	status = "ok";
};

/* Drive strength recommendations for clock line from hardware team is 10 mA.
 * But since the driver has been been using the below values from the start
 * without any problems, continue to use those.
 */
&sdcc1 {
	qcom,pad-drv-on = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */
};

&sdcc2 {
	qcom,pad-drv-on = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */
};

&sdhc_1 {
	qcom,pad-drv-on = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */
};

&sdhc_2 {
	qcom,pad-drv-on = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */
};
