/* Copyright (c) 2017, 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 "sdxpoorwills.dtsi"
#include "sdxpoorwills-pinctrl.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. SDXPOORWILLS RUMI";
	compatible = "qcom,sdxpoorwills-rumi",
		"qcom,sdxpoorwills", "qcom,rumi";
	qcom,board-id = <15 0>;
};

&soc {
	/* Delete rpmh regulators */
	/delete-node/ rpmh-regulator-modemlvl;
	/delete-node/ rpmh-regulator-smpa4;
	/delete-node/ rpmh-regulator-cxlvl;
	/delete-node/ rpmh-regulator-ldoa1;
	/delete-node/ rpmh-regulator-ldoa2;
	/delete-node/ rpmh-regulator-ldoa3;
	/delete-node/ rpmh-regulator-ldoa4;
	/delete-node/ rpmh-regulator-ldoa5;
	/delete-node/ rpmh-regulator-ldoa7;
	/delete-node/ rpmh-regulator-ldoa8;
	/delete-node/ rpmh-regulator-mxlvl;
	/delete-node/ rpmh-regulator-ldoa10;
	/delete-node/ rpmh-regulator-ldoa11;
	/delete-node/ rpmh-regulator-ldoa12;
	/delete-node/ rpmh-regulator-ldoa13;
	/delete-node/ rpmh-regulator-ldoa14;
	/delete-node/ rpmh-regulator-ldoa16;
	/delete-node/ rpmh-regulator-rgmii;
};

#include "sdxpoorwills-stub-regulator.dtsi"

&blsp1_uart2 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart2_console_active>;
	status = "ok";
};

&gdsc_usb30 {
	compatible = "regulator-fixed";
};

&gdsc_pcie {
	compatible = "regulator-fixed";
};

&usb {
	/delete-property/ qcom,usb-dbm;
	qcom,charging-disabled;
	dwc3@a600000 {
		usb-phy = <&usb2_phy>, <&usb_nop_phy>;
		maximum-speed = "high-speed";
	};
};

&usb2_phy {
	reg = <0xff1000 0x1000>,
	      <0x0a60cd00 0x40>;
	reg-names = "hsusb_phy_base",
		"emu_phy_base";
	qcom,emu-init-seq = <0x19 0x404
			     0x20 0x414
			     0x79 0x410
			     0x00 0x418
			     0x99 0x404
			     0x04 0x408
			     0xd9 0x404>;

	qcom,emu-dcm-reset-seq = <0x100000 0x20
				  0x0 0x20
				  0x1e0 0x20
				  0x5 0x14>;
};

&usb3_qmp_phy {
	status = "disabled";
};

&qnand_1 {
	status = "ok";
};
