/* Copyright (c) 2013-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/ "msm8926-v2.dtsi"

&i2c_0 {
	qcom,sda-gpio = <&msmgpio 14 0>;
	qcom,scl-gpio = <&msmgpio 15 0>;

	ncp6335d: ncp6335d-regulator@1c {
		compatible = "onnn,ncp6335d-regulator";
		reg = <0x1c>;
		onnn,vsel = <0>;
		onnn,slew-ns = <2666>;
		onnn,step-size = <10000>;
		onnn,min-slew-ns = <333>;
		onnn,max-slew-ns = <2666>;
		regulator-min-microvolt = <1050000>;
		regulator-max-microvolt = <1350000>;
		onnn,min-setpoint = <600000>;
		onnn,vsel-gpio = <&msmgpio 2 1>;
		onnn,discharge-enable;
		onnn,restore-reg;
		onnn,tlmm-config = <0x80 0x0>;
	};

	fan53555: fan53555-regulator@60 {
		compatible = "fairchild,fan53555-regulator";
		reg = <0x60>;
		fairchild,backup-vsel = <1>;
		regulator-min-microvolt = <1050000>;
		regulator-max-microvolt = <1350000>;
		regulator-ramp-delay = <8000>;
		fairchild,vsel-gpio = <&msmgpio 2 1>;
		fairchild,restore-reg;
		fairchild,disable-suspend;
	};
};

&apc_vreg_corner {
	vdd-apc-optional-prim-supply = <&ncp6335d>;
	vdd-apc-supply = <&fan53555>;
};

&soc {
	qcom,spm@f9012000 {
		compatible = "qcom,spm-v2";
		qcom,saw2-spm-cmd-pc-no-rpm = [00 32 10 e0 d0 6b c0 42 f0
				03 50 4e 02 02 c0 d0 12 e0 6b 02 32
				50 f0 0f];
		qcom,saw2-spm-cmd-pc = [00 32 10 e0 d0 6b c0 42 f0
				07 50 4e 02 02 c0 d0 12 e0 6b 02 32
				50 f0 0f];
	};

	qcom,lpm-levels {
		qcom,system-modes {
			compatible = "qcom,system-modes";
			qcom,system-modes@2 {
				qcom,l2 = "l2_cache_pc";
				qcom,latency-us = <13200>;
				qcom,ss-power = <315>;
				qcom,energy-overhead = <1027150>;
				qcom,time-overhead = <2400>;
				qcom,min-cpu-mode= "pc";
				qcom,sync-cpus;
				qcom,send-rpm-sleep-set;
			};
		};
	};

	qcom,ext-buck-control {
		compatible = "qcom,ext-buck-control";
		qcom,gpio-num = <50>;
		qcom,settling-time-us = <9600>;
	};

};
