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

/*
 * Only 8026-specific property overrides should be placed inside this
 * file. Device definitions should be placed inside the msm8226.dtsi
 * file.
 */

/include/ "msm8226-v2.dtsi"

/ {
	model = "Qualcomm APQ 8026";
	compatible = "qcom,apq8026";
	qcom,msm-id = <199 0x20000>,
		      <219 0x20000>;
};

&tsens {
	qcom,sensors = <6>;
	qcom,slope = <2901 2846 3038 2955 2901 2846>;
};
