/* 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/ "msm8610-v1.dtsi"
/include/ "msm8610-qrd-skuab.dtsi"
/include/ "msm8612-qrd-camera-sensor.dtsi"

/ {
	model = "Qualcomm MSM 8610v1 QRD SKUAB DVT2";
	compatible = "qcom,msm8610-qrd", "qcom,msm8610", "qcom,qrd";
	qcom,board-id = <0x2000b 3>;
};

&mdss_mdp {
	qcom,mdss-pref-prim-intf = "dsi";
};

&mdss_dsi0 {
	qcom,dsi-pref-prim-pan = <&dsi_hx8389b_qhd_vid>;
};

&dsi_hx8389b_qhd_vid {
	qcom,cont-splash-enabled;
};
&soc {
	i2c@f9925000 {
		fsl@1c {
			fsl,sensors-position = <7>;
		};
	};
};