/* Copyright (c) 2012-2014, 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-camera-sensor-mtp.dtsi"
/include/ "msm8974-leds.dtsi"

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

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

	qcom,mdss_dsi@fd922800 {
		qcom,dsi-pref-prim-pan = <&dsi_tosh_720_vid>;
	};

	qcom,mdss_mdp@fd900000 {
		qcom,mdss-pref-prim-intf = "dsi";
		batfet-supply = <&pm8941_chg_batif>;
	};

	qcom,hdmi_tx@fd922100 {
		status = "disabled";
	};

	i2c@f9924000 {
		synaptics@20 {
			compatible = "synaptics,rmi4";
			reg = <0x20>;
			interrupt-parent = <&msmgpio>;
			interrupts = <61 0x2008>;
			vdd-supply = <&pm8941_l18>;
			vcc_i2c-supply = <&pm8941_lvs1>;
			synaptics,reset-gpio = <&msmgpio 60 0x00>;
			synaptics,irq-gpio = <&msmgpio 61 0x2008>;
			synaptics,display-coords = <0 0 1079 1919>;
			synaptics,i2c-pull-up;
			synaptics,power-down;
			synaptics,disable-gpios;
			synaptics,do-lockdown;
		};

		atmel_mxt_ts@4a {
			compatible = "atmel,mxt-ts";
			reg = <0x4a>;
			interrupt-parent = <&msmgpio>;
			interrupts = <61 0x2>;
			vdd_ana-supply = <&pm8941_l18>;
			vcc_i2c-supply = <&pm8941_lvs1>;
			atmel,reset-gpio = <&msmgpio 60 0x00>;
			atmel,irq-gpio = <&msmgpio 61 0x00>;
			atmel,panel-coords = <0  0 760 1424>;
			atmel,display-coords = <0 0 720 1280>;
			atmel,i2c-pull-up;
			atmel,no-force-update;
			atmel,cfg_1 {
				atmel,fw-name = "atmel_8974_fluid_v1_0_AA.hex";
				atmel,family-id = <0x82>;
				atmel,variant-id = <0x19>;
				atmel,version = <0x10>;
				atmel,build = <0xaa>;
				atmel,config = [
					/* Object 6, Instance = 0 */
					00 00 00 00 00 00
					/* Object 38, Instance = 0 */
					15 01 00 03 0A 0C 00 00
					/* Object 7, Instance = 0 */
					20 08 32 03
					/* Object 8, Instance = 0 */
					0F 00 0A 0A 00 00 0A 0A 00 00
					/* Object 9, Instance = 0 */
					83 00 00 18 0E 00 70 46 02 01
					00 0A 03 31 04 05 0A 0A 90 05
					F8 02 05 F1 F1 0F 00 00 08 2D
					12 06 00 00 00 01
					/* Object 15, Instance = 0 */
					00 00 00 00 00 00 00 00 00 00
					00
					/* Object 18, Instance = 0 */
					00 00
					/* Object 19, Instance = 0 */
					00 00 00 00 00 00
					/* Object 23, Instance = 0 */
					00 00 00 00 00 00 00 00 00 00
					00 00 00 00 00
					/* Object 25, Instance = 0 */
					00 00 00 00 00 00 00 00 00 00
					00 00 00 00 00
					/* Object 40, Instance = 0 */
					00 00 00 00 00
					/* Object 42, Instance = 0 */
					33 1E 19 10 80 00 00 00 FF 00
					/* Object 46, Instance = 0 */
					00 00 10 10 00 00 03 00 00 01
					/* Object 47, Instance = 0 */
					08 0A 28 0A 02 0A 00 8C 00 20
					00 00 00
					/* Object 55, Instance = 0 */
					00 00 00 00 00 00
					/* Object 56, Instance = 0 */
					00 00 00 18 05 05 05 05 05 05
					05 05 05 05 05 05 05 05 05 05
					05 05 05 05 05 05 05 05 00 00
					00 00 00 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 */
					01 2A 00 16 00 00 00 00 0B 01
					02 03 04 08 00 00 08 10 18 05
					00 0A 05 05 50 14 19 34 1A 7F
					00 00 00 00 00 00 00 00 00 30
					05 02 00 01 00 05 00 00 00 00
					00 00 00 00
					];
			};
		};
	};

	gen-vkeys {
		compatible = "qcom,gen-vkeys";
		label = "atmel_mxt_ts";
		qcom,disp-maxx = <720>;
		qcom,disp-maxy = <1280>;
		qcom,panel-maxx = <760>;
		qcom,panel-maxy = <1424>;
		qcom,key-codes = <158 139 102 217>;
	};

	i2c@f9967000 {
		isa1200@48 {
			status = "okay";
			reg = <0x48>;
			vcc_i2c-supply = <&pm8941_s3>;
			compatible = "imagis,isa1200";
			label = "vibrator";
			imagis,chip-en;
			imagis,need-pwm-clk;
			imagis,ext-clk-en;
			imagis,hap-en-gpio = <&msmgpio 86 0x00>;
			imagis,max-timeout = <15000>;
			imagis,pwm-div = <256>;
			imagis,mode-ctrl = <2>;
			imagis,regulator {
				regulator-name = "vcc_i2c";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-max-microamp = <9360>;
			};
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		input-name = "gpio-keys";

		camera_snapshot {
			label = "camera_snapshot";
			gpios = <&pm8941_gpios 3 0x1>;
			linux,input-type = <1>;
			linux,code = <0x2fe>;
			gpio-key,wakeup;
			debounce-interval = <15>;
		};

		camera_focus {
			label = "camera_focus";
			gpios = <&pm8941_gpios 4 0x1>;
			linux,input-type = <1>;
			linux,code = <0x210>;
			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>;
		};
	};

	spi@f9923000 {
		ethernet-switch@2 {
			compatible = "micrel,ks8851";
			reg = <2>;
			interrupt-parent = <&msmgpio>;
			interrupts = <94 0>;
			spi-max-frequency = <4800000>;
			rst-gpio = <&pm8941_mpps 6 0>;
			vdd-io-supply = <&spi_eth_vreg>;
			vdd-phy-supply = <&spi_eth_vreg>;
		};
	};

	sound {
		qcom,model = "msm8974-taiko-mtp-snd-card";
		qcom,cdc-micbias2-headset-only;
		qcom,mbhc-audio-jack-type = "6-pole-jack";
	};
};

&pm8941_lsid1 {
	qcom,leds@d800 {
		status = "okay";
		qcom,wled_0 {
			label = "wled";
			linux,name = "wled:backlight";
			linux,default-trigger = "bkl-trigger";
			qcom,cs-out-en;
			qcom,op-fdbck = <1>;
			qcom,default-state = "on";
			qcom,max-current = <25>;
			qcom,ctrl-delay-us = <0>;
			qcom,boost-curr-lim = <5>;
			qcom,cp-sel = <0>;
			qcom,switch-freq = <11>;
			qcom,ovp-val = <2>;
			qcom,num-strings = <3>;
			qcom,id = <0>;
		};
	};

	qcom,leds@d900 {
		status = "disabled";
	};

	qcom,leds@da00 {
		status = "disabled";
	};

	qcom,leds@db00 {
		status = "disabled";
	};

	qcom,leds@dc00 {
		status = "disabled";
	};

	qcom,leds@dd00 {
		status = "disabled";
	};

	qcom,leds@de00 {
		status = "disabled";
	};

	qcom,leds@df00 {
		status = "disabled";
	};

	qcom,leds@e000 {
		status = "disabled";
	};

	qcom,leds@e100 {
		status = "disabled";
	};
};

&sdcc1 {
       status = "disabled";
};

&sdcc2 {
	#address-cells = <0>;
	interrupt-parent = <&sdcc2>;
	interrupts = <0 1 2>;
	#interrupt-cells = <1>;
	interrupt-map-mask = <0xffffffff>;
	interrupt-map = <0 &intc 0 125 0
			1 &intc 0 220 0
			2 &msmgpio 62 0x3>;
	interrupt-names = "core_irq", "bam_irq", "status_irq";
	cd-gpios = <&msmgpio 62 0x1>;
	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 {
	#address-cells = <0>;
	interrupt-parent = <&sdhc_2>;
	interrupts = <0 1 2>;
	#interrupt-cells = <1>;
	interrupt-map-mask = <0xffffffff>;
	interrupt-map = <0 &intc 0 125 0
			1 &intc 0 221 0
			2 &msmgpio 62 0x3>;
	interrupt-names = "hc_irq", "pwr_irq", "status_irq";
	cd-gpios = <&msmgpio 62 0x1>;

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

&usb_otg {
	qcom,hsusb-otg-otg-control = <2>;
};

&uart7 {
	status = "ok";
};

&usb3 {
	qcom,otg-capability;
};

/ {
	mtp_batterydata: qcom,battery-data {
		qcom,rpull-up-kohm = <100>;
		qcom,vref-batt-therm = <1800000>;

		/include/ "batterydata-palladium.dtsi"
		/include/ "batterydata-mtp-3000mah.dtsi"
	};
};

&pm8941_bms {
	qcom,enable-fcc-learning;
	qcom,min-fcc-learning-soc = <20>;
	qcom,min-fcc-ocv-pc = <30>;
	qcom,min-fcc-learning-samples = <5>;
	qcom,fcc-resolution = <10>;
	status = "ok";
	qcom,battery-data = <&mtp_batterydata>;
};

&pm8941_chg {
	status = "ok";
	qcom,charging-disabled;
	qcom,battery-data = <&mtp_batterydata>;

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

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

	qcom,bat-if@1200 {
		status = "ok";
	};

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

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

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

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

&pm8941_gpios {
	gpio@c000 { /* GPIO 1 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <0>;        /* QPNP_PIN_PULL_UP_30  */
		qcom,master-en = <1>;
	};

	gpio@c100 { /* GPIO 2 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <0>;        /* QPNP_PIN_PULL_UP_30  */
		qcom,master-en = <1>;
	};

	gpio@c200 { /* GPIO 3 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <0>;        /* QPNP_PIN_PULL_UP_30  */
		qcom,vin-sel = <2>;
		qcom,src-sel = <0>;	/* QPNP_PIN_SEL_FUNC_CONSTANT */
		qcom,master-en = <1>;
	};

	gpio@c300 { /* GPIO 4 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <0>;        /* QPNP_PIN_PULL_UP_30  */
		qcom,vin-sel = <2>;     /* QPNP_PIN_VIN2  */
		qcom,src-sel = <0>;	/* QPNP_PIN_SEL_FUNC_CONSTANT */
		qcom,master-en = <1>;
	};

	gpio@c400 { /* GPIO 5 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <0>;        /* QPNP_PIN_PULL_UP_30  */
		qcom,vin-sel = <2>;     /* QPNP_PIN_VIN2  */
		qcom,src-sel = <0>;	/* QPNP_PIN_SEL_FUNC_CONSTANT */
		qcom,master-en = <1>;
	};

	gpio@c500 { /* GPIO 6 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <0>;        /* QPNP_PIN_PULL_UP_30  */
		qcom,master-en = <1>;
	};

	gpio@c600 { /* GPIO 7 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <0>;        /* QPNP_PIN_PULL_UP_30  */
		qcom,master-en = <1>;
	};

	gpio@c700 { /* GPIO 8 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <0>;        /* QPNP_PIN_PULL_UP_30  */
		qcom,master-en = <1>;
	};

	gpio@c800 { /* GPIO 9 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <2>;       /* QPNP_PIN_SEL_FUNC_1  */
		qcom,master-en = <1>;
	};

	gpio@c900 { /* GPIO 10 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <2>;       /* QPNP_PIN_SEL_FUNC_1  */
		qcom,master-en = <1>;
	};

	gpio@ca00 { /* GPIO 11 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <2>;       /* QPNP_PIN_SEL_FUNC_1  */
		qcom,master-en = <1>;
	};

	gpio@cb00 { /* GPIO 12 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <2>;       /* QPNP_PIN_SEL_FUNC_1  */
		qcom,master-en = <1>;
	};

	gpio@cc00 { /* GPIO 13 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <2>;       /* QPNP_PIN_SEL_FUNC_1  */
		qcom,master-en = <1>;
	};

	gpio@cd00 { /* GPIO 14 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <2>;       /* QPNP_PIN_SEL_FUNC_1  */
		qcom,master-en = <1>;
	};

	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 */
		qcom,mode = <1>;
		qcom,output-type = <0>;
		qcom,pull = <5>;
		qcom,vin-sel = <2>;
		qcom,out-strength = <3>;
		qcom,src-sel = <3>;       /* QPNP_PIN_SEL_FUNC_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 = <1>;	/* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <0>;		/* QPNP_PIN_SEL_FUNC_CONSTANT */
		qcom,master-en = <1>;
	};

	gpio@d300 { /* GPIO 20 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <2>;       /* QPNP_PIN_SEL_FUNC_1  */
		qcom,master-en = <1>;
	};

	gpio@d400 { /* GPIO 21 */
	};

	gpio@d500 { /* GPIO 22 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <4>;	/* QPNP_PIN_PULL_DN */
		qcom,master-en = <1>;
	};

	gpio@d600 { /* GPIO 23 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <2>;       /* QPNP_PIN_SEL_FUNC_1  */
		qcom,master-en = <1>;
	};

	gpio@d700 { /* GPIO 24 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <2>;       /* QPNP_PIN_SEL_FUNC_1  */
		qcom,master-en = <1>;
	};

	gpio@d800 { /* GPIO 25 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <2>;       /* QPNP_PIN_SEL_FUNC_1  */
		qcom,master-en = <1>;
	};

	gpio@d900 { /* GPIO 26 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <2>;       /* QPNP_PIN_SEL_FUNC_1  */
		qcom,master-en = <1>;
	};

	gpio@da00 { /* GPIO 27 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <4>;	/* QPNP_PIN_PULL_DN */
		qcom,master-en = <1>;
	};

	gpio@db00 { /* GPIO 28 */
	};

	gpio@dc00 { /* GPIO 29 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,src-sel = <2>;       /* QPNP_PIN_SEL_FUNC_1  */
		qcom,master-en = <1>;
	};

	gpio@dd00 { /* GPIO 30 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <4>;	/* QPNP_PIN_PULL_DN */
		qcom,master-en = <1>;
	};

	gpio@de00 { /* GPIO 31 */
	};

	gpio@df00 { /* GPIO 32 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <4>;	/* QPNP_PIN_PULL_DN */
		qcom,master-en = <1>;
	};

	gpio@e000 { /* GPIO 33 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <4>;	/* QPNP_PIN_PULL_DN */
		qcom,master-en = <1>;
	};

	gpio@e100 { /* GPIO 34 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <4>;	/* QPNP_PIN_PULL_DN */
		qcom,master-en = <1>;
	};

	gpio@e200 { /* GPIO 35 */
		qcom,mode = <0>;        /* QPNP_PIN_MODE_DIG_IN */
		qcom,pull = <4>;	/* QPNP_PIN_PULL_DN */
		qcom,master-en = <1>;
	};

	gpio@e300 { /* GPIO 36 */
	};
};

&pm8941_mpps {

	mpp@a000 { /* MPP 1 */
		status = "disabled";
	};

	mpp@a100 { /* MPP 2 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,master-en = <1>;
	};

	mpp@a200 { /* MPP 3 */
	};

	mpp@a300 { /* MPP 4 */
	};

	mpp@a400 { /* MPP 5 */
	};

	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,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,master-en = <1>; /* ENABLE MPP */
	};

	mpp@a600 { /* MPP 7 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,master-en = <1>;
	};

	mpp@a700 { /* MPP 8 */
		qcom,mode = <1>;          /* QPNP_PIN_MODE_DIG_OUT */
		qcom,out-strength = <1>;  /* QPNP_PIN_OUT_STRENGTH_LOW */
		qcom,master-en = <1>;
	};
};

&slim_msm {
	taiko_codec {
		qcom,cdc-micbias1-ext-cap;
		qcom,cdc-micbias2-ext-cap;
		qcom,cdc-micbias3-ext-cap;
		qcom,cdc-micbias4-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 = <100 100 100 50 100 100 1 100 1 50
				1 100 1 100 50 50 50 50 50 50
				100 50 100 50 50 50 50 50 50 50
				50>;
		qcom,rsense = <2 2 2 200 20 2 1 2 1 30
				1 10 1 30 50 30 500 30 100 30
				100 500 20 200 1000 20 1000 1000 70 200
				50>;
		qcom,channel-type = <0x1540>;
	};
};

&dsi_tosh_720_vid {
       qcom,cont-splash-enabled;
};

&dsi_generic_720p_cmd {
       qcom,cont-splash-enabled;
};

&dsi_jdi_1080_vid {
       qcom,cont-splash-enabled;
};
