/*
 * Copyright (c) 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/;
/plugin/;

#include "msm8917-cdp.dtsi"
#include "apq8017-rome.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. APQ8017-CDP \
					with WCD codec/Rome card";
	qcom,board-id = <1 2>;
	qcom,msm-id = <307 0x0>;
};

&blsp1_uart1 {
	status = "ok";
};

&sdhc_2 {
	/* device core power supply */
	/delete-property/vdd-supply;
	/delete-property/qcom,vdd-voltage-level;
	/delete-property/qcom,vdd-current-level;

	/* device communication power supply */
	vdd-io-supply = <&pm8937_l5>;
	qcom,vdd-io-always-on;
	qcom,vdd-io-voltage-level = <1800000 1800000>;
	qcom,vdd-io-current-level = <200 325000>;

	qcom,core_3_0v_support;
	qcom,nonremovable;

	pinctrl-names = "active", "sleep";
	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on
			&sdc2_wlan_gpio_active>;
	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off
			&sdc2_wlan_gpio_sleep>;

	#address-cells = <0>;
	interrupt-parent = <&sdhc_2>;
	interrupts = <0 1 2>;
	#interrupt-cells = <1>;
	interrupt-map-mask = <0xffffffff>;
	interrupt-map = <0 &intc 0 125 0
		1 &intc 0 221 0
		2 &tlmm 124 0x4>;
	interrupt-names = "hc_irq", "pwr_irq", "sdiowakeup_irq";

	/delete-property/cd-gpios;
	/delete-property/qcom,devfreq,freq-table;

	status = "ok";

};

&modem_mem {
	reg = <0x0 0x86800000 0x0 0x1500000>;
};

&adsp_fw_mem {
	reg = <0x0 0x87d00000 0x0 0x1100000>;
};

&wcnss_fw_mem {
	reg = <0x0 0x88e00000 0x0 0x700000>;
};

&secure_mem {
	status = "disabled";
};
