// SPDX-License-Identifier: BSD-3-Clause
/*
 * SC7180 IDP board device tree source
 *
 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include "sc7180.dtsi"
#include "pm6150.dtsi"
#include "pm6150l.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. SC7180 IDP";
	compatible = "qcom,sc7180-idp", "qcom,sc7180";

	aliases {
		bluetooth0 = &bluetooth;
		hsuart0 = &uart3;
		serial0 = &uart8;
		wifi0 = &wifi;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};
};

/*
 * Reserved memory changes
 *
 * Delete all unused memory nodes and define the peripheral memory regions
 * required by the board dts.
 *
 */

/delete-node/ &hyp_mem;
/delete-node/ &xbl_mem;
/delete-node/ &aop_mem;
/delete-node/ &sec_apps_mem;
/delete-node/ &tz_mem;

/* Increase the size from 2MB to 8MB */
&rmtfs_mem {
	reg = <0x0 0x94600000 0x0 0x800000>;
};

/ {
	reserved-memory {
		atf_mem: memory@80b00000 {
			reg = <0x0 0x80b00000 0x0 0x100000>;
			no-map;
		};

		mpss_mem: memory@86000000 {
			reg = <0x0 0x86000000 0x0 0x8c00000>;
			no-map;
		};

		camera_mem: memory@8ec00000 {
			reg = <0x0 0x8ec00000 0x0 0x500000>;
			no-map;
		};

		venus_mem: memory@8f600000 {
			reg = <0 0x8f600000 0 0x500000>;
			no-map;
		};

		wlan_mem: memory@94100000 {
			reg = <0x0 0x94100000 0x0 0x200000>;
			no-map;
		};

		mba_mem: memory@94400000 {
			reg = <0x0 0x94400000 0x0 0x200000>;
			no-map;
		};
	};
};

&apps_rsc {
	pm6150-rpmh-regulators {
		compatible = "qcom,pm6150-rpmh-regulators";
		qcom,pmic-id = "a";

		vreg_s1a_1p1: smps1 {
			regulator-min-microvolt = <1128000>;
			regulator-max-microvolt = <1128000>;
		};

		vreg_s4a_1p0: smps4 {
			regulator-min-microvolt = <824000>;
			regulator-max-microvolt = <1120000>;
		};

		vreg_s5a_2p0: smps5 {
			regulator-min-microvolt = <1744000>;
			regulator-max-microvolt = <2040000>;
		};

		vreg_l1a_1p2: ldo1 {
			regulator-min-microvolt = <1178000>;
			regulator-max-microvolt = <1256000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l2a_1p0: ldo2 {
			regulator-min-microvolt = <944000>;
			regulator-max-microvolt = <1056000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l3a_1p0: ldo3 {
			regulator-min-microvolt = <968000>;
			regulator-max-microvolt = <1064000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l4a_0p8: ldo4 {
			regulator-min-microvolt = <824000>;
			regulator-max-microvolt = <928000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l5a_2p7: ldo5 {
			regulator-min-microvolt = <2496000>;
			regulator-max-microvolt = <3000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l6a_0p6: ldo6 {
			regulator-min-microvolt = <568000>;
			regulator-max-microvolt = <648000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l9a_0p6: ldo9 {
			regulator-min-microvolt = <488000>;
			regulator-max-microvolt = <800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l10a_1p8: ldo10 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1832000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l11a_1p8: ldo11 {
			regulator-min-microvolt = <1696000>;
			regulator-max-microvolt = <1904000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l12a_1p8: ldo12 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l13a_1p8: ldo13 {
			regulator-min-microvolt = <1696000>;
			regulator-max-microvolt = <1904000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l14a_1p8: ldo14 {
			regulator-min-microvolt = <1728000>;
			regulator-max-microvolt = <1832000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l15a_1p8: ldo15 {
			regulator-min-microvolt = <1696000>;
			regulator-max-microvolt = <1904000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l16a_2p7: ldo16 {
			regulator-min-microvolt = <2496000>;
			regulator-max-microvolt = <3304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l17a_3p0: ldo17 {
			regulator-min-microvolt = <2920000>;
			regulator-max-microvolt = <3232000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l18a_2p8: ldo18 {
			regulator-min-microvolt = <2496000>;
			regulator-max-microvolt = <3304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l19a_2p9: ldo19 {
			regulator-min-microvolt = <2960000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	pm6150l-rpmh-regulators {
		compatible = "qcom,pm6150l-rpmh-regulators";
		qcom,pmic-id = "c";

		vreg_s8c_1p3: smps8 {
			regulator-min-microvolt = <1120000>;
			regulator-max-microvolt = <1408000>;
		};

		vreg_l1c_1p8: ldo1 {
			regulator-min-microvolt = <1616000>;
			regulator-max-microvolt = <1984000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l2c_1p3: ldo2 {
			regulator-min-microvolt = <1168000>;
			regulator-max-microvolt = <1304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l3c_1p2: ldo3 {
			regulator-min-microvolt = <1144000>;
			regulator-max-microvolt = <1304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l4c_1p8: ldo4 {
			regulator-min-microvolt = <1648000>;
			regulator-max-microvolt = <3304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l5c_1p8: ldo5 {
			regulator-min-microvolt = <1648000>;
			regulator-max-microvolt = <3304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l6c_2p9: ldo6 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7c_3p0: ldo7 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3312000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l8c_1p8: ldo8 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1904000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l9c_2p9: ldo9 {
			regulator-min-microvolt = <2960000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l10c_3p3: ldo10 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3400000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_l11c_3p3: ldo11 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3400000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
		};

		vreg_bob: bob {
			regulator-min-microvolt = <3008000>;
			regulator-max-microvolt = <3960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
		};
	};
};

&dsi0 {
	status = "okay";

	vdda-supply = <&vreg_l3c_1p2>;

	panel@0 {
		compatible = "visionox,rm69299-1080p-display";
		reg = <0>;

		vdda-supply = <&vreg_l8c_1p8>;
		vdd3p3-supply = <&vreg_l18a_2p8>;

		pinctrl-names = "default";
		pinctrl-0 = <&disp_pins>;

		reset-gpios = <&pm6150l_gpio 3 GPIO_ACTIVE_HIGH>;

		ports {
			#address-cells = <1>;
			#size-cells = <0>;
			port@0 {
				reg = <0>;
				panel0_in: endpoint {
					remote-endpoint = <&dsi0_out>;
				};
			};
		};
	};

	ports {
		port@1 {
			endpoint {
				remote-endpoint = <&panel0_in>;
				data-lanes = <0 1 2 3>;
			};
		};
	};
};

&dsi_phy {
	status = "okay";
};

&mdp {
	status = "okay";
};

&mdss {
	status = "okay";
};

&qfprom {
	vcc-supply = <&vreg_l11a_1p8>;
};

&qspi {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&qspi_clk &qspi_cs0 &qspi_data01>;

	flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <25000000>;
		spi-tx-bus-width = <2>;
		spi-rx-bus-width = <2>;
	};
};

&qupv3_id_0 {
	status = "okay";
};

&qupv3_id_1 {
	status = "okay";
};

&remoteproc_mpss {
	status = "okay";
	compatible = "qcom,sc7180-mss-pil";
	iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
	memory-region = <&mba_mem &mpss_mem>;
};

&sdhc_1 {
	status = "okay";

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc1_on>;
	pinctrl-1 = <&sdc1_off>;
	vmmc-supply = <&vreg_l19a_2p9>;
	vqmmc-supply = <&vreg_l12a_1p8>;
};

&sdhc_2 {
	status = "okay";

	pinctrl-names = "default","sleep";
	pinctrl-0 = <&sdc2_on>;
	pinctrl-1 = <&sdc2_off>;
	vmmc-supply  = <&vreg_l9c_2p9>;
	vqmmc-supply = <&vreg_l6c_2p9>;

	cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
};

&uart3 {
	status = "okay";

	/delete-property/interrupts;
	interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
				<&tlmm 41 IRQ_TYPE_EDGE_FALLING>;

	pinctrl-names = "default", "sleep";
	pinctrl-1 = <&qup_uart3_sleep>;

	bluetooth: wcn3990-bt {
		compatible = "qcom,wcn3990-bt";
		vddio-supply = <&vreg_l10a_1p8>;
		vddxo-supply = <&vreg_l1c_1p8>;
		vddrf-supply = <&vreg_l2c_1p3>;
		vddch0-supply = <&vreg_l10c_3p3>;
		max-speed = <3200000>;
	};
};

&uart8 {
	status = "okay";
};

&usb_1 {
	status = "okay";
};

&usb_1_dwc3 {
	dr_mode = "host";
};

&usb_1_hsphy {
	status = "okay";
	vdd-supply = <&vreg_l4a_0p8>;
	vdda-pll-supply = <&vreg_l11a_1p8>;
	vdda-phy-dpdm-supply = <&vreg_l17a_3p0>;
	qcom,imp-res-offset-value = <8>;
	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>;
	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
	qcom,bias-ctrl-value = <0x22>;
	qcom,charge-ctrl-value = <3>;
	qcom,hsdisc-trim-value = <0>;
};

&usb_1_qmpphy {
	status = "okay";
	vdda-phy-supply = <&vreg_l3c_1p2>;
	vdda-pll-supply = <&vreg_l4a_0p8>;
};

&venus {
	video-firmware {
		iommus = <&apps_smmu 0x0c42 0x0>;
	};
};

&wifi {
	status = "okay";
	vdd-0.8-cx-mx-supply = <&vreg_l9a_0p6>;
	vdd-1.8-xo-supply = <&vreg_l1c_1p8>;
	vdd-1.3-rfa-supply = <&vreg_l2c_1p3>;
	vdd-3.3-ch0-supply = <&vreg_l10c_3p3>;
	vdd-3.3-ch1-supply = <&vreg_l11c_3p3>;
	wifi-firmware {
		iommus = <&apps_smmu 0xc2 0x1>;
	};
};

/* PINCTRL - additions to nodes defined in sc7180.dtsi */

&pm6150l_gpio {
	disp_pins: disp-pins {
		pinconf {
			pins = "gpio3";
			function = PMIC_GPIO_FUNC_FUNC1;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_MED>;
			power-source = <0>;
			bias-disable;
			output-low;
		};
	};
};

&qspi_clk {
	pinconf {
		pins = "gpio63";
		bias-disable;
	};
};

&qspi_cs0 {
	pinconf {
		pins = "gpio68";
		bias-disable;
	};
};

&qspi_data01 {
	pinconf {
		pins = "gpio64", "gpio65";

		/* High-Z when no transfers; nice to park the lines */
		bias-pull-up;
	};
};

&qup_i2c2_default {
	pinconf {
		pins = "gpio15", "gpio16";
		drive-strength = <2>;

		/* Has external pullup */
		bias-disable;
	};
};

&qup_i2c4_default {
	pinconf {
		pins = "gpio115", "gpio116";
		drive-strength = <2>;

		/* Has external pullup */
		bias-disable;
	};
};

&qup_i2c7_default {
	pinconf {
		pins = "gpio6", "gpio7";
		drive-strength = <2>;

		/* Has external pullup */
		bias-disable;
	};
};

&qup_i2c9_default {
	pinconf {
		pins = "gpio46", "gpio47";
		drive-strength = <2>;

		/* Has external pullup */
		bias-disable;
	};
};

&qup_uart3_default {
	pinconf-cts {
		/*
		 * Configure a pull-down on CTS to match the pull of
		 * the Bluetooth module.
		 */
		pins = "gpio38";
		bias-pull-down;
	};

	pinconf-rts {
		/* We'll drive RTS, so no pull */
		pins = "gpio39";
		drive-strength = <2>;
		bias-disable;
	};

	pinconf-tx {
		/* We'll drive TX, so no pull */
		pins = "gpio40";
		drive-strength = <2>;
		bias-disable;
	};

	pinconf-rx {
		/*
		 * Configure a pull-up on RX. This is needed to avoid
		 * garbage data when the TX pin of the Bluetooth module is
		 * in tri-state (module powered off or not driving the
		 * signal yet).
		 */
		pins = "gpio41";
		bias-pull-up;
	};
};

&qup_uart8_default {
	pinconf-tx {
		pins = "gpio44";
		drive-strength = <2>;
		bias-disable;
	};

	pinconf-rx {
		pins = "gpio45";
		drive-strength = <2>;
		bias-pull-up;
	};
};

&qup_spi0_default {
	pinconf {
		pins = "gpio34", "gpio35", "gpio36", "gpio37";
		drive-strength = <2>;
		bias-disable;
	};
};

&qup_spi6_default {
	pinconf {
		pins = "gpio59", "gpio60", "gpio61", "gpio62";
		drive-strength = <2>;
		bias-disable;
	};
};

&qup_spi10_default {
	pinconf {
		pins = "gpio86", "gpio87", "gpio88", "gpio89";
		drive-strength = <2>;
		bias-disable;
	};
};

&tlmm {
	qup_uart3_sleep: qup-uart3-sleep {
		pinmux {
			pins = "gpio38", "gpio39",
			       "gpio40", "gpio41";
			function = "gpio";
		};

		pinconf-cts {
			/*
			 * Configure a pull-down on CTS to match the pull of
			 * the Bluetooth module.
			 */
			pins = "gpio38";
			bias-pull-down;
		};

		pinconf-rts {
			/*
			 * Configure pull-down on RTS. As RTS is active low
			 * signal, pull it low to indicate the BT SoC that it
			 * can wakeup the system anytime from suspend state by
			 * pulling RX low (by sending wakeup bytes).
			 */
			 pins = "gpio39";
			 bias-pull-down;
		};

		pinconf-tx {
			/*
			 * Configure pull-up on TX when it isn't actively driven
			 * to prevent BT SoC from receiving garbage during sleep.
			 */
			pins = "gpio40";
			bias-pull-up;
		};

		pinconf-rx {
			/*
			 * Configure a pull-up on RX. This is needed to avoid
			 * garbage data when the TX pin of the Bluetooth module
			 * is floating which may cause spurious wakeups.
			 */
			pins = "gpio41";
			bias-pull-up;
		};
	};

	sdc1_on: sdc1-on {
		pinconf-clk {
			pins = "sdc1_clk";
			bias-disable;
			drive-strength = <16>;
		};

		pinconf-cmd {
			pins = "sdc1_cmd";
			bias-pull-up;
			drive-strength = <10>;
		};

		pinconf-data {
			pins = "sdc1_data";
			bias-pull-up;
			drive-strength = <10>;
		};

		pinconf-rclk {
			pins = "sdc1_rclk";
			bias-pull-down;
		};
	};

	sdc1_off: sdc1-off {
		pinconf-clk {
			pins = "sdc1_clk";
			bias-disable;
			drive-strength = <2>;
		};

		pinconf-cmd {
			pins = "sdc1_cmd";
			bias-pull-up;
			drive-strength = <2>;
		};

		pinconf-data {
			pins = "sdc1_data";
			bias-pull-up;
			drive-strength = <2>;
		};

		pinconf-rclk {
			pins = "sdc1_rclk";
			bias-pull-down;
		};
	};

	sdc2_on: sdc2-on {
		pinconf-clk {
			pins = "sdc2_clk";
			bias-disable;
			drive-strength = <16>;
		};

		pinconf-cmd {
			pins = "sdc2_cmd";
			bias-pull-up;
			drive-strength = <10>;
		};

		pinconf-data {
			pins = "sdc2_data";
			bias-pull-up;
			drive-strength = <10>;
		};

		pinconf-sd-cd {
			pins = "gpio69";
			bias-pull-up;
			drive-strength = <2>;
		};
	};

	sdc2_off: sdc2-off {
		pinconf-clk {
			pins = "sdc2_clk";
			bias-disable;
			drive-strength = <2>;
		};

		pinconf-cmd {
			pins = "sdc2_cmd";
			bias-pull-up;
			drive-strength = <2>;
		};

		pinconf-data {
			pins = "sdc2_data";
			bias-pull-up;
			drive-strength = <2>;
		};

		pinconf-sd-cd {
			pins = "gpio69";
			bias-pull-up;
			drive-strength = <2>;
		};
	};
};
