/* Copyright (c) 2019-2020, 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 "sa415m-ccard.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. SA415M CCARD PCIE-EP";
	compatible = "qcom,sa415m-ccard",
		"qcom,sdxpoorwills", "qcom,ccard";
	qcom,board-id = <25 1>, <25 0x101>;

	qcom_gadget {
		compatible = "qcom,usb-gadget";
		qcom,vid = <0x05c6>;

		composition1 {
			qcom,pid = <0x9105>;
			qcom,composition = "diag.diag,gsi.dpl";
		};
	};
};

&usb {
	/delete-property/ iommus;
};

&pcie_ep {
	status = "okay";
};

&ipa_hw {
	qcom,use-ipa-in-mhi-mode;
	qcom,ipa-config-is-auto;
	qcom,mhi-event-ring-id-limits = <7 11>; /* start and end */
};

&cnss_pcie {
	status = "disabled";
};

&pcie0 {
	status = "disabled";
};

&mhi_device {
	status = "okay";
};

&restart_pshold {
	qcom,force-warm-reboot;
};

&ipc_router_mhi_dev_xprt {
	status = "okay";
};

&mhi_net_device {
	status = "okay";
};

&sdx_ext_ipc {
	status = "okay";
};
