/* 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"

/ {
	serial@f991e000 {
		status = "ok";
	};

	qcom,mdss_edp@fd923400 {
		status = "ok";
	};

	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 01 00 0D 02 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 40 0A 14 14 0A 80 07
					38 04 03 03 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 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 */
					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;
	};

	bt_ar3002 {
		compatible = "qca,ar3002";
		qca,bt-reset-gpio = <&pm8941_gpios 34 0>;
	};

	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",
			"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,hdmi-audio-rx;
	};

	hsic_hub {
		compatible = "qcom,hsic-smsc-hub";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;
		smsc,reset-gpio = <&pm8941_gpios 8 0x00>;
		smsc,refclk-gpio = <&pm8941_gpios 16 0x00>;
		smsc,int-gpio = <&msmgpio 50 0x00>;
		hub_int-supply = <&pm8941_l10>;
		hub_vbus-supply = <&ext_5v>;

		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_VDDCX-supply = <&pm8841_s2>;
			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,msm-bus,name = "hsic";
			qcom,msm-bus,num-cases = <2>;
			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>;
		};
	};
};

&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_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 */
		/* 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 = <3>;
		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 */
	};
};

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

&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 50 50 50
				50 50 50 50 100 50 50 50 50 100
				50 50 50 100 50 50 50 1 1 1
				1>;
		qcom,rsense = <40 10 10 25 10 1000 75 25 10 25
				33 500 200 10 500 100 33 200 25 100
				75 500 50 200 5 5 3 1 1 1
				1>;
		qcom,channel-type = <0xf0000000>;
	};
};

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

&pm8941_chg {
	status = "ok";

	qcom,chg-charging-disabled;

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

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

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

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

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

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

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

	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 = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */
	qcom,pad-drv-off = <0x0 0x0 0x0>; /* 2mA, 2mA, 2mA */

	qcom,nonremovable;
};

&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-always-on;
	qcom,vdd-io-lpm-sup;
	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 = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */
	qcom,pad-drv-off = <0x0 0x0 0x0>; /* 2mA, 2mA, 2mA */
};
