// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2020, Yassine Oudjana <y.oudjana@protonmail.com>
 */

/dts-v1/;

#include "msm8996.dtsi"
#include "pm8994.dtsi"
#include "pmi8994.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>

/ {
	clocks {
		compatible = "simple-bus";

		divclk1_cdc: divclk1 {
			compatible = "gpio-gate-clock";
			clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
			#clock-cells = <0>;
			enable-gpios = <&pm8994_gpios 15 GPIO_ACTIVE_HIGH>;

			pinctrl-names = "default";
			pinctrl-0 = <&divclk1_default>;
		};

		divclk4: divclk4 {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <32768>;
			clock-output-names = "divclk4";

			pinctrl-names = "default";
			pinctrl-0 = <&divclk4_pin_a>;
		};
	};

	gpio_keys {
		compatible = "gpio-keys";

		vol_up {
			label = "Volume Up";
			gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEUP>;
			wakeup-source;
			debounce-interval = <15>;
		};

		dome {
			label = "Home";
			gpios = <&tlmm 34 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_HOME>;
			wakeup-source;
			debounce-interval = <15>;
		};
	};

	reserved-memory {
		memory@88800000 {
			reg = <0x0 0x88800000 0x0 0x1400000>;
			no-map;
		};

		/* This platform has all PIL regions offset by 0x1400000 */
		/delete-node/ mpss@88800000;
		mpss_region: mpss@89c00000 {
			reg = <0x0 0x89c00000 0x0 0x6200000>;
			no-map;
		};

		/delete-node/ adsp@8ea00000;
		adsp_region: adsp@8ea00000 {
			reg = <0x0 0x8fe00000 0x0 0x1b00000>;
			no-map;
		};

		/delete-node/ slpi@90b00000;
		slpi_region: slpi@91900000 {
			reg = <0x0 0x91900000 0x0 0xa00000>;
			no-map;
		};

		/delete-node/ gpu@8f200000;
		zap_shader_region: gpu@92300000 {
			compatible = "shared-dma-pool";
			reg = <0x0 0x92300000 0x0 0x2000>;
			no-map;
		};

		/delete-node/ venus@91000000;
		venus_region: venus@90400000 {
			reg = <0x0 0x92400000 0x0 0x500000>;
			no-map;
		};

		ramoops@92900000 {
			compatible = "ramoops";
			reg = <0x0 0x92900000 0x0 0x100000>;
			no-map;

			record-size = <0x8000>;
			console-size = <0x80000>;
			ftrace-size = <0x20000>;
			pmsg-size = <0x40000>;
		};

		/delete-node/ rmtfs@86700000;
		rmtfs@f6c00000 {
			compatible = "qcom,rmtfs-mem";
			reg = <0 0xf6c00000 0 0x200000>;
			no-map;

			qcom,client-id = <1>;
			qcom,vmid = <15>;
		};

		/delete-node/ mba@91500000;
		mba_region: mba@f6f00000 {
			reg = <0x0 0xf6f00000 0x0 0x100000>;
			no-map;
		};
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";
		regulator-min-microvolt = <3800000>;
		regulator-max-microvolt = <3800000>;
		regulator-always-on;
		regulator-boot-on;
	};

	vdd_3v2_tp: vdd-3v2-tp {
		compatible = "regulator-fixed";
		regulator-name = "vdd_3v2_tp";
		regulator-min-microvolt = <3200000>;
		regulator-max-microvolt = <3200000>;
		startup-delay-us = <4000>;
		vin-supply = <&vph_pwr>;

		gpio = <&tlmm 73 0>;
		enable-active-high;
	};

	vdd_3v3: rome-vreg {
		compatible = "regulator-fixed";
		regulator-name = "vdd_3v3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		startup-delay-us = <4000>;
		vin-supply = <&vph_pwr_bbyp>;

		gpio = <&pm8994_gpios 9 0>;
		enable-active-high;
		pinctrl-names = "default";
		pinctrl-0 = <&rome_enable_default>;

		/* Required by QCA6174a - vddpe-3v3 */
		regulator-always-on;
	};

	/* WL_EN pin defined as a fixed regulator */
	wlan_en: wlan-en-1-8v {
		compatible = "regulator-fixed";
		regulator-name = "wlan-en-regulator";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

		gpio = <&pm8994_gpios 8 0>;
		/* WLAN card specific delay */
		startup-delay-us = <70000>;
		enable-active-high;
		pinctrl-names = "default";
		pinctrl-0 = <&wlan_en_default>;
	};
};

&adsp_pil {
	status = "okay";
};

&blsp2_i2c2 {
	status = "okay";
	label = "NFC_I2C";
	clock-frequency = <400000>;

	nfc: pn548@28 {
		compatible = "nxp,nxp-nci-i2c";

		reg = <0x28>;

		interrupt-parent = <&tlmm>;
		interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;

		enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
		firmware-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;

		pinctrl-names = "default";
		pinctrl-0 = <&nfc_default>;
	};
};

&blsp2_i2c3 {
	status = "okay";
	label = "TYPEC_I2C";

	typec: tusb320l@47 {
		compatible = "ti,tusb320l";
		reg = <0x47>;
		interrupt-parent = <&tlmm>;
		interrupts = <63 IRQ_TYPE_EDGE_RISING>;
	};
};

&blsp2_i2c6 {
	status = "okay";
	label = "MSM_TS_I2C";
};

&blsp1_uart2 {
	status = "okay";
	label = "QCA_UART";

	bluetooth: qca6174a {
		compatible = "qcom,qca6174-bt";

		enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
		clocks = <&divclk4>;
	};
};

&dsi0 {
	status = "okay";

	vdd-supply = <&vreg_l2a_1p25>;
	vddio-supply = <&vreg_l14a_1p8>;

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&mdss_dsi_default &mdss_te_default>;
	pinctrl-1 = <&mdss_dsi_sleep &mdss_te_sleep>;
};

&dsi0_out {
	status = "okay";

	data-lanes = <0 1 2 3>;
};

&dsi0_phy {
	status = "okay";

	vcca-supply = <&vreg_l28a_0p925>;
};

&gpu {
	status = "okay";
};

&mdss {
	status = "okay";
};

&mmcc {
	vdd-gfx-supply = <&vdd_gfx>;
};

&pcie0 {
	status = "okay";

	/* Supplied by vdd_3v3, but choose wlan_en to drive enable pin high */
	vddpe-3v3-supply = <&wlan_en>;
	vdda-supply = <&vreg_l28a_0p925>;

	perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
	wake-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
};

&pcie_phy {
	status = "okay";

	vdda-phy-supply = <&vreg_l28a_0p925>;
	vdda-pll-supply = <&vreg_l12a_1p8>;
};

&pm8994_resin {
	status = "okay";

	linux,code = <KEY_VOLUMEDOWN>;
};

&usb3 {
	status = "okay";
	extcon = <&typec>;

	qcom,select-utmi-as-pipe-clk;

	dwc3@6a00000 {
		extcon = <&typec>;

		/* usb3-phy is not used on this device */
		phys = <&hsusb_phy1>;
		phy-names = "usb2-phy";

		maximum-speed = "high-speed";
		snps,is-utmi-l1-suspend;
		snps,usb2-gadget-lpm-disable;
		snps,hird-threshold = /bits/ 8 <0>;
	};
};

&hsusb_phy1 {
	status = "okay";
	extcon = <&typec>;

	vdda-pll-supply = <&vreg_l12a_1p8>;
	vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
};

&ufshc {
	status = "okay";

	vcc-supply = <&vreg_l20a_2p95>;
	vccq-supply = <&vreg_l25a_1p2>;
	vccq2-supply = <&vreg_s4a_1p8>;

	vcc-max-microamp = <600000>;
	vccq-max-microamp = <450000>;
	vccq2-max-microamp = <450000>;
};

&ufsphy {
	status = "okay";

	vdda-phy-supply = <&vreg_l28a_0p925>;
	vdda-pll-supply = <&vreg_l12a_1p8>;

	vdda-phy-max-microamp = <18380>;
	vdda-pll-max-microamp = <9440>;

	vddp-ref-clk-supply = <&vreg_l25a_1p2>;
	vddp-ref-clk-max-microamp = <100>;
	vddp-ref-clk-always-on;
};

&venus {
	status = "okay";
};

&wcd9335 {
	clock-names = "mclk", "slimbus";
	clocks = <&divclk1_cdc>,
		 <&rpmcc RPM_SMD_BB_CLK1>;

	vdd-buck-supply = <&vreg_s4a_1p8>;
	vdd-buck-sido-supply = <&vreg_s4a_1p8>;
	vdd-rx-supply = <&vreg_s4a_1p8>;
	vdd-tx-supply = <&vreg_s4a_1p8>;
	vdd-vbat-supply = <&vph_pwr>;
	vdd-micbias-supply = <&vph_pwr_bbyp>;
	vdd-io-supply = <&vreg_s4a_1p8>;
};

&rpm_requests {
	pm8994-regulators {
		compatible = "qcom,rpm-pm8994-regulators";

		vdd_s1-supply = <&vph_pwr>;
		vdd_s2-supply = <&vph_pwr>;
		vdd_s3-supply = <&vph_pwr>;
		vdd_s4-supply = <&vph_pwr>;
		vdd_s5-supply = <&vph_pwr>;
		vdd_s6-supply = <&vph_pwr>;
		vdd_s7-supply = <&vph_pwr>;
		vdd_s8-supply = <&vph_pwr>;
		vdd_s9-supply = <&vph_pwr>;
		vdd_s10-supply = <&vph_pwr>;
		vdd_s11-supply = <&vph_pwr>;
		vdd_s12-supply = <&vph_pwr>;
		vdd_l1-supply = <&vreg_s1b_1p025>;
		vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>;
		vdd_l3_l11-supply = <&vreg_s3a_1p3>;
		vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>;
		vdd_l5_l7-supply = <&vreg_s5a_2p15>;
		vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>;
		vdd_l8_l16_l30-supply = <&vph_pwr>;
		vdd_l9_l10_l18_l22-supply = <&vph_pwr_bbyp>;
		vdd_l13_l19_l23_l24-supply = <&vph_pwr_bbyp>;
		vdd_l14_l15-supply = <&vreg_s5a_2p15>;
		vdd_l17_l29-supply = <&vph_pwr_bbyp>;
		vdd_l20_l21-supply = <&vph_pwr_bbyp>;
		vdd_l25-supply = <&vreg_s3a_1p3>;
		vdd_lvs1_2-supply = <&vreg_s4a_1p8>;

		vreg_s3a_1p3: s3 {
			regulator-name = "vreg_s3a_1p3";
			regulator-min-microvolt = <1300000>;
			regulator-max-microvolt = <1300000>;

			/* Required by QCA6174a - vdd-core */
			regulator-always-on;
		};
		vreg_s4a_1p8: s4 {
			regulator-name = "vreg_s4a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-allow-set-load;

			/* Required by QCA6174a - vddio */
			regulator-always-on;
		};
		vreg_s5a_2p15: s5 {
			regulator-name = "vreg_s5a_2p15";
			regulator-min-microvolt = <2150000>;
			regulator-max-microvolt = <2150000>;
		};
		vreg_s7a_0p8: s7 {
			regulator-name = "vreg_s7a_0p8";
			regulator-min-microvolt = <800000>;
			regulator-max-microvolt = <800000>;
		};
		vreg_l1a_1p0: l1 {
			regulator-name = "vreg_l1a_1p0";
			regulator-min-microvolt = <1000000>;
			regulator-max-microvolt = <1000000>;
		};
		vreg_l2a_1p25: l2 {
			regulator-name = "vreg_l2a_1p25";
			regulator-min-microvolt = <1250000>;
			regulator-max-microvolt = <1250000>;
		};
		vreg_l4a_1p225: l4 {
			regulator-name = "vreg_l4a_1p225";
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1225000>;
		};
		vreg_l6a_1p8: l6 {
			regulator-name = "vreg_l6a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		vreg_l8a_1p8: l8 {
			regulator-name = "vreg_l8a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		vreg_l9a_1p8: l9 {
			regulator-name = "vreg_l9a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		vreg_l10a_1p8: l10 {
			regulator-name = "vreg_l10a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		vreg_l12a_1p8: l12 {
			regulator-name = "vreg_l12a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-allow-set-load;
		};
		vreg_l13a_2p95: l13 {
			regulator-name = "vreg_l13a_2p95";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
		};
		vreg_l14a_1p8: l14 {
			regulator-name = "vreg_l14a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		vreg_l15a_1p8: l15 {
			regulator-name = "vreg_l15a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		vreg_l16a_2p7: l16 {
			regulator-name = "vreg_l16a_2p7";
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <2700000>;
		};
		vreg_l19a_3p3: l19 {
			regulator-name = "vreg_l19a_3p3";
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
		};
		vreg_l20a_2p95: l20 {
			regulator-name = "vreg_l20a_2p95";
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
			regulator-allow-set-load;
		};
		vreg_l21a_2p95: l21 {
			regulator-name = "vreg_l21a_2p95";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
		};
		vreg_l23a_2p8: l23 {
			regulator-name = "vreg_l23a_2p8";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
		};
		vreg_l24a_3p075: l24 {
			regulator-name = "vreg_l24a_3p075";
			regulator-min-microvolt = <3075000>;
			regulator-max-microvolt = <3075000>;
		};
		vreg_l25a_1p2: l25 {
			regulator-name = "vreg_l25a_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-allow-set-load;
		};
		vreg_l27a_1p2: l27 {
			regulator-name = "vreg_l27a_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
		};
		vreg_l28a_0p925: l28 {
			regulator-name = "vreg_l28a_0p925";
			regulator-min-microvolt = <925000>;
			regulator-max-microvolt = <925000>;
			regulator-allow-set-load;
		};
		vreg_l30a_1p8: l30 {
			regulator-name = "vreg_l30a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;

			/* Required by QCA6174a - vddio-xtal */
			regulator-always-on;
		};
		vreg_l32a_1p8: l32 {
			regulator-name = "vreg_l32a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		vreg_lvs1a_1p8: lvs1 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		vreg_lvs2a_1p8: lvs2 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
	};

	pmi8994-regulators {
		compatible = "qcom,rpm-pmi8994-regulators";

		vdd_s1-supply = <&vph_pwr>;
		vdd_s2-supply = <&vph_pwr>;
		vdd_s3-supply = <&vph_pwr>;
		vdd_bst_byp-supply = <&vph_pwr>;

		vreg_s1b_1p025: s1 {
			regulator-name = "vreg_s1b_1p025";
			regulator-min-microvolt = <1025000>;
			regulator-max-microvolt = <1025000>;
		};

		vph_pwr_bbyp: boost-bypass {
			regulator-name = "vph_pwr_bbyp";
			regulator-min-microvolt = <3150000>;
			regulator-max-microvolt = <3600000>;
		};
	};
};

&pm8994_spmi_regulators {
	qcom,saw-reg = <&saw3>;
	s8 {
		qcom,saw-slave;
	};
	s9 {
		qcom,saw-slave;
	};
	s10 {
		qcom,saw-slave;
	};
	vreg_apc_0p8: s11 {
		qcom,saw-leader;
		regulator-name = "vreg_apc_0p8";
		regulator-min-microvolt = <470000>;
		regulator-max-microvolt = <1140000>;
		regulator-max-step-microvolt = <150000>;
		regulator-always-on;
	};
};

&pmi8994_spmi_regulators {
	vdd_gfx: s2 {
		regulator-name = "vdd_gfx";
		regulator-min-microvolt = <400000>;
		regulator-max-microvolt = <1015000>;
		regulator-enable-ramp-delay = <500>;
	};
};

&pm8994_gpios {
	wlan_en_default: wlan-en-default {
		pins = "gpio8";
		function = PMIC_GPIO_FUNC_NORMAL;
		output-low;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
		power-source = <PM8994_GPIO_S4>;
		bias-disable;
	};

	rome_enable_default: rome-enable-default {
		pins = "gpio9";
		function = PMIC_GPIO_FUNC_NORMAL;
		output-high;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
		power-source = <PM8994_GPIO_VPH>;
	};

	divclk1_default: divclk1_default {
		pins = "gpio15";
		function = PMIC_GPIO_FUNC_FUNC1;
		bias-disable;
		power-source = <PM8994_GPIO_S4>;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
	};

	divclk4_pin_a: divclk4 {
		pins = "gpio18";
		function = PMIC_GPIO_FUNC_FUNC2;
		bias-disable;
		power-source = <PM8994_GPIO_S4>;
	};
};

&tlmm {
	mdss_dsi_default: mdss_dsi_default {
		pins = "gpio8";
		function = "gpio";
		drive-strength = <8>;
		bias-disable;
	};

	mdss_dsi_sleep: mdss_dsi_sleep {
		pins = "gpio8";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-down;
	};

	mdss_te_default: mdss_te_default {
		pins = "gpio10";
		function = "mdp_vsync";
		drive-strength = <2>;
		bias-pull-down;
	};

	mdss_te_sleep: mdss_te_sleep {
		pins = "gpio10";
		function = "mdp_vsync";
		drive-strength = <2>;
		bias-pull-down;
	};

	nfc_default: nfc_default {
		pins = "gpio12", "gpio21";
		function = "gpio";
		drive-strength = <16>;
		bias-pull-up;
	};
};
