/* Copyright (c) 2015, LGE Inc. All rights reserved.
 * Copyright (c) 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.
 */

/dts-v1/;

#include "../qcom/msm8992.dtsi"
#include "msm8992-bullhead.dtsi"

/ {
	model = "LGE MSM8992 BULLHEAD rev-b";
	compatible = "qcom,msm8992";
	qcom,board-id = <0x664 0>;
};

&bullhead_batterydata {
	qcom,lge_blt19_tocad_2700mAh_2022227_PMI8994GUI2165 {
		qcom,max-voltage-uv = <4320000>;
	};
};

&soc {
	sound {
		qcom,mbhc-btn-cal-low =
			/bits/ 16 <(-50) 111 191 360 751 753 755 757>;
		qcom,mbhc-btn-cal-high =
			/bits/ 16 <110 190 359 750 752 754 756 758>;
	};
};

&spmi_bus {
	qcom,pmi8994@3 {
		qcom,leds@d800 {
			qcom,fs-curr-ua = <17500>;
		};
	};
};
