/* Copyright (c) 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.
 */

/dts-v1/;

/include/ "msm9625-v2.dtsi"

/ {
	model = "Qualcomm MSM 9625V2 MTP";
	compatible = "qcom,msm9625-mtp", "qcom,msm9625";
	qcom,msm-id = <134 7 0x20000>, <152 7 0x20000>, <149 7 0x20000>,
		      <150 7 0x20000>, <151 7 0x20000>, <148 7 0x20000>,
		      <173 7 0x20000>, <174 7 0x20000>, <175 7 0x20000>;

	i2c@f9925000 {
		charger@57 {
			compatible = "summit,smb137c";
			reg = <0x57>;
			summit,chg-current-ma = <1500>;
			summit,term-current-ma = <50>;
			summit,pre-chg-current-ma = <100>;
			summit,float-voltage-mv = <4200>;
			summit,thresh-voltage-mv = <3000>;
			summit,recharge-thresh-mv = <75>;
			summit,system-voltage-mv = <4250>;
			summit,charging-timeout = <382>;
			summit,pre-charge-timeout = <48>;
			summit,therm-current-ua = <10>;
			summit,temperature-min = <4>; /*  0 C */
			summit,temperature-max = <3>; /* 45 C */
		};
	};

	wlan0: qca,wlan {
		cell-index = <0>;
		compatible = "qca,ar6004-hsic";
		qca,chip-pwd-l-gpios = <&msmgpio 62 0>;
		qca,pm-enable-gpios = <&pm8019_gpios 3 0x0>;
		qca,vdd-io-supply = <&pm8019_l11>;
	};

	qca,wlan_ar6003 {
		cell-index = <0>;
		compatible = "qca,ar6003-sdio";
		qca,chip-pwd-l-gpios = <&msmgpio 62 0>;
		qca,pm-enable-gpios = <&pm8019_gpios 3 0x0>;
		qca,vdd-io-supply = <&pm8019_l11>;
	};
};

/* PM8019 GPIO and MPP configuration */
&pm8019_gpios {
	gpio@c000 { /* GPIO 1 */
	};

	gpio@c100 { /* GPIO 2 */
	};

	gpio@c200 { /* GPIO 3 */
	};

	gpio@c300 { /* GPIO 4 */
		/* ext_2p95v regulator enable config */
		qcom,mode = <1>; /* Digital output */
		qcom,output-type = <0>; /* CMOS */
		qcom,invert = <0>; /* Output low */
		qcom,out-strength = <1>; /* Low */
		qcom,vin-sel = <2>; /* PM8019 L11 - 1.8V */
		qcom,src-sel = <0>; /* Constant */
		qcom,master-en = <1>; /* Enable GPIO */
	};

	gpio@c400 { /* GPIO 5 */
	};

	gpio@c500 { /* GPIO 6 */
	};
};

&pm8019_mpps {
	mpp@a000 { /* MPP 1 */
	};

	mpp@a100 { /* MPP 2 */
	};

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

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

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

	mpp@a500 { /* MPP 6 */
	};
};
