/*
 * Copyright (c) 2016-2018, 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 "apq8053.dtsi"
#include "pmi8950.dtsi"
#include "msm8953-mtp.dtsi"
#include "msm8953-pmi8950.dtsi"
#include "apq8053-camera-sensor-mtp.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. APQ8053 + PMI8950 IOT MTP";
	compatible = "qcom,apq8053-mtp", "qcom,apq8053", "qcom,mtp";
	qcom,board-id= <8 2>;
	qcom,pmic-id = <0x010016 0x010011 0x0 0x0>;
};

&int_codec {
	status = "disabled";
};

&wsa881x_i2c_f {
	status = "disabled";
};

&wsa881x_i2c_45 {
	status = "disabled";
};

&cdc_pri_mi2s_gpios {
	status = "disabled";
};

&wsa881x_analog_vi_gpio {
	status = "disabled";
};

&wsa881x_analog_clk_gpio {
	status = "disabled";
};

&wsa881x_analog_reset_gpio {
	status = "disabled";
};

&cdc_comp_gpios {
	status = "disabled";
};

&slim_msm {
	status = "okay";
};

&dai_slim {
	status = "okay";
};

&wcd9xxx_intc {
	status = "okay";
};

&clock_audio {
	status = "okay";
};

&wcd9335 {
	status = "okay";
};

&wcd_rst_gpio {
	status = "okay";
};

&ext_codec {
	qcom,model = "msm8953-tasha-snd-card";
	status = "okay";
};
