// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2021, AngeloGioacchino Del Regno
 *                     <angelogioacchino.delregno@somainline.org>
 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
 */

#include "msm8998.dtsi"
#include "pm8005.dtsi"
#include "pm8998.dtsi"
#include "pmi8998.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/sound/qcom,q6afe.h>
#include <dt-bindings/sound/qcom,q6asm.h>

/ {
	/* required for bootloader to select correct board */
	qcom,msm-id = <0x124 0x20000>, <0x124 0x20001>; /* 8998v2, v2.1 */
	qcom,board-id = <8 0>;

	clocks {
		compatible = "simple-bus";

		div1_mclk: divclk1 {
			compatible = "gpio-gate-clock";
			pinctrl-0 = <&audio_mclk_pin>;
			pinctrl-names = "default";
			clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
			#clock-cells = <0>;
			enable-gpios = <&pm8998_gpio 13 GPIO_ACTIVE_HIGH>;
		};
	};

	board_vbat: vbat-regulator {
		compatible = "regulator-fixed";
		regulator-name = "VBAT";

		regulator-min-microvolt = <4000000>;
		regulator-max-microvolt = <4000000>;
		regulator-always-on;
		regulator-boot-on;
	};

	cam0_vdig_vreg: cam0-vdig {
		compatible = "regulator-fixed";
		regulator-name = "cam0_vdig";
		startup-delay-us = <0>;
		enable-active-high;
		gpio = <&tlmm 21 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&cam0_vdig_default>;
	};

	cam1_vdig_vreg: cam1-vdig {
		compatible = "regulator-fixed";
		regulator-name = "cam1_vdig";
		startup-delay-us = <0>;
		enable-active-high;
		gpio = <&tlmm 25 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&cam1_vdig_default>;
		vin-supply = <&vreg_s3a_1p35>;
	};

	cam_vio_vreg: cam-vio-vreg {
		compatible = "regulator-fixed";
		regulator-name = "cam_vio_vreg";
		startup-delay-us = <0>;
		enable-active-high;
		gpio = <&pmi8998_gpio 1 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&cam_vio_default>;
		vin-supply = <&vreg_lvs1a_1p8>;
	};

	touch_vddio_vreg: touch-vddio-vreg {
		compatible = "regulator-fixed";
		regulator-name = "touch_vddio_vreg";
		startup-delay-us = <10000>;
		gpio = <&tlmm 133 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&ts_vddio_en>;
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";
		regulator-always-on;
		regulator-boot-on;
	};

	gpio-keys {
		compatible = "gpio-keys";
		input-name = "gpio-keys";
		label = "Side buttons";
		pinctrl-names = "default";
		pinctrl-0 = <&vol_down_pin_a>, <&cam_focus_pin_a>,
			    <&cam_snapshot_pin_a>;
		vol-down {
			label = "Volume Down";
			gpios = <&pm8998_gpio 5 GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_KEY>;
			linux,code = <KEY_VOLUMEDOWN>;
			gpio-key,wakeup;
			debounce-interval = <15>;
		};

		camera-snapshot {
			label = "Camera Snapshot";
			gpios = <&pm8998_gpio 7 GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_KEY>;
			linux,code = <KEY_CAMERA>;
			debounce-interval = <15>;
		};

		camera-focus {
			label = "Camera Focus";
			gpios = <&pm8998_gpio 8 GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_KEY>;
			linux,code = <KEY_CAMERA_FOCUS>;
			debounce-interval = <15>;
		};
	};

	gpio-hall-sensor {
		compatible = "gpio-keys";
		input-name = "hall-sensors";
		label = "Hall sensors";
		pinctrl-names = "default";
		pinctrl-0 = <&hall_sensor0_default>;

		hall-sensor0 {
			label = "Cover Hall Sensor";
			gpios = <&tlmm 124 GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_SW>;
			linux,code = <SW_LID>;
			gpio-key,wakeup;
			debounce-interval = <30>;
		};
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		hyp_mem: memory@85800000 {
			reg = <0x0 0x85800000 0x0 0x3700000>;
			no-map;
		};

		cont_splash_mem: memory@9d400000 {
			reg = <0x0 0x9d400000 0x0 0x2400000>;
			no-map;
		};

		zap_shader_region: memory@f6400000 {
			compatible = "shared-dma-pool";
			reg = <0x0 0xf6400000 0x0 0x2000>;
			no-map;
		};

		adsp_region: memory@fe000000 {
			reg = <0x0 0xfe000000 0x0 0x800000>;
			no-map;
		};

		qseecom_region: memory@fe800000 {
			reg = <0x0 0xfe800000 0x0 0x1400000>;
			no-map;
		};

		ramoops@ffc00000 {
			compatible = "ramoops";
			reg = <0x0 0xffc00000 0x0 0x100000>;
			record-size = <0x10000>;
			console-size = <0x60000>;
			ftrace-size = <0x10000>;
			pmsg-size = <0x20000>;
			ecc-size = <16>;
		};
	};

	vibrator {
		compatible = "gpio-vibrator";
		enable-gpios = <&pmi8998_gpio 5 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&vib_default>;
	};
};

&blsp1_i2c5 {
	status = "okay";
	clock-frequency = <355000>;

	touchscreen@2c {
		compatible = "syna,rmi4-i2c";
		reg = <0x2c>;
		#address-cells = <1>;
		#size-cells = <0>;
		interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;

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

		vdd-supply = <&vreg_l28_3p0>;
		vio-supply = <&touch_vddio_vreg>;

		syna,reset-delay-ms = <220>;
		syna,startup-delay-ms = <1000>;

		rmi4-f01@1 {
			reg = <0x01>;
			syna,nosleep-mode = <1>;
		};

		rmi4-f11@11 {
			reg = <0x11>;
			syna,sensor-type = <1>;
		};
	};
};

&blsp1_i2c5_sleep {
	bias-disable;
};

&blsp1_uart3 {
	status = "okay";

	bluetooth {
		compatible = "qcom,wcn3990-bt";

		vddio-supply = <&vreg_s4a_1p8>;
		vddxo-supply = <&vreg_l7a_1p8>;
		vddrf-supply = <&vreg_l17a_1p3>;
		vddch0-supply = <&vreg_l25a_3p3>;
		max-speed = <3200000>;

		clocks = <&rpmcc RPM_SMD_RF_CLK2_PIN>;
	};
};

&blsp2_uart1 {
	status = "okay";
};

&ibb {
	regulator-min-microamp = <800000>;
	regulator-max-microamp = <800000>;
	regulator-enable-ramp-delay = <200>;
	regulator-over-current-protection;
	regulator-pull-down;
	regulator-ramp-delay = <1>;
	regulator-settling-time-up-us = <600>;
	regulator-settling-time-down-us = <1000>;
	regulator-soft-start;
	qcom,discharge-resistor-kohms = <300>;
};

&lab {
	regulator-min-microamp = <200000>;
	regulator-max-microamp = <200000>;
	regulator-enable-ramp-delay = <500>;
	regulator-over-current-protection;
	regulator-pull-down;
	regulator-ramp-delay = <1>;
	regulator-settling-time-up-us = <50000>;
	regulator-settling-time-down-us = <3000>;
	regulator-soft-start;
};

&mmcc {
	status = "ok";
};

&mmss_smmu {
	status = "ok";
};

&pm8005_lsid1 {
	pm8005-regulators {
		compatible = "qcom,pm8005-regulators";

		vdd_s1-supply = <&vph_pwr>;

		/* VDD_GFX supply */
		pm8005_s1: s1 {
			regulator-min-microvolt = <524000>;
			regulator-max-microvolt = <1088000>;
			regulator-enable-ramp-delay = <500>;
			regulator-always-on;
		};
	};
};

&pm8998_gpio {
	vol_down_pin_a: vol-down-active {
		pins = "gpio5";
		function = PMIC_GPIO_FUNC_NORMAL;
		bias-pull-up;
		input-enable;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
	};

	cam_focus_pin_a: cam-focus-btn-active {
		pins = "gpio7";
		function = PMIC_GPIO_FUNC_NORMAL;
		bias-pull-up;
		input-enable;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
	};

	cam_snapshot_pin_a: cam-snapshot-btn-active {
		pins = "gpio8";
		function = PMIC_GPIO_FUNC_NORMAL;
		bias-pull-up;
		input-enable;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
	};

	audio_mclk_pin: audio-mclk-pin-active {
		pins = "gpio13";
		function = "func2";
		power-source = <0>;
	};
};

&pmi8998_gpio {
	cam_vio_default: cam-vio-active {
		pins = "gpio1";
		function = PMIC_GPIO_FUNC_NORMAL;
		bias-disable;
		drive-push-pull;
		output-low;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
		power-source = <1>;
	};

	vib_default: vib-en {
		pins = "gpio5";
		function = PMIC_GPIO_FUNC_NORMAL;
		bias-disable;
		drive-push-pull;
		output-low;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
		power-source = <0>;
	};
};

&pm8998_pon {
	resin {
		compatible = "qcom,pm8941-resin";
		interrupts = <GIC_SPI 0x8 1 IRQ_TYPE_EDGE_BOTH>;
		debounce = <15625>;
		bias-pull-up;
		linux,code = <KEY_VOLUMEUP>;
	};
};

&qusb2phy {
	status = "okay";

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

&rpm_requests {
	pm8998-regulators {
		compatible = "qcom,rpm-pm8998-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_s13-supply = <&vph_pwr>;
		vdd_l1_l27-supply = <&vreg_s7a_1p025>;
		vdd_l2_l8_l17-supply = <&vreg_s3a_1p35>;
		vdd_l3_l11-supply = <&vreg_s7a_1p025>;
		vdd_l4_l5-supply = <&vreg_s7a_1p025>;
		vdd_l6-supply = <&vreg_s5a_2p04>;
		vdd_l7_l12_l14_l15-supply = <&vreg_s5a_2p04>;
		vdd_l9-supply = <&vreg_bob>;
		vdd_l10_l23_l25-supply = <&vreg_bob>;
		vdd_l13_l19_l21-supply = <&vreg_bob>;
		vdd_l16_l28-supply = <&vreg_bob>;
		vdd_l18_l22-supply = <&vreg_bob>;
		vdd_l20_l24-supply = <&vreg_bob>;
		vdd_l26-supply = <&vreg_s3a_1p35>;
		vdd_lvs1_lvs2-supply = <&vreg_s4a_1p8>;

		vreg_s3a_1p35: s3 {
			regulator-min-microvolt = <1352000>;
			regulator-max-microvolt = <1352000>;
		};
		vreg_s4a_1p8: s4 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-system-load = <100000>;
			regulator-allow-set-load;
		};
		vreg_s5a_2p04: s5 {
			regulator-min-microvolt = <1904000>;
			regulator-max-microvolt = <2032000>;
		};
		vreg_s7a_1p025: s7 {
			regulator-min-microvolt = <900000>;
			regulator-max-microvolt = <1028000>;
		};
		vreg_l1a_0p875: l1 {
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
			regulator-system-load = <73400>;
			regulator-allow-set-load;
		};
		vreg_l2a_1p2: l2 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-system-load = <12560>;
			regulator-allow-set-load;
		};
		vreg_l3a_1p0: l3 {
			regulator-min-microvolt = <1000000>;
			regulator-max-microvolt = <1000000>;
		};
		vreg_l5a_0p8: l5 {
			regulator-min-microvolt = <800000>;
			regulator-max-microvolt = <800000>;
		};
		vreg_l6a_1p8: l6 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		vreg_l7a_1p8: l7 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		vreg_l8a_1p2: l8 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
		};
		vreg_l9a_1p8: l9 {
			regulator-min-microvolt = <1808000>;
			regulator-max-microvolt = <2960000>;
		};
		vreg_l10a_1p8: l10 {
			regulator-min-microvolt = <1808000>;
			regulator-max-microvolt = <2960000>;
		};
		vreg_l11a_1p0: l11 {
			regulator-min-microvolt = <1000000>;
			regulator-max-microvolt = <1000000>;
		};
		vreg_l12a_1p8: l12 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		vreg_l13a_2p95: l13 {
			regulator-min-microvolt = <1808000>;
			regulator-max-microvolt = <2960000>;
			regulator-allow-set-load;
		};
		vreg_l14a_1p85: l14 {
			regulator-min-microvolt = <1848000>;
			regulator-max-microvolt = <1856000>;
			regulator-system-load = <32000>;
			regulator-allow-set-load;
		};
		vreg_l15a_1p8: l15 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		vreg_l16a_2p7: l16 {
			regulator-min-microvolt = <2704000>;
			regulator-max-microvolt = <2704000>;
		};
		vreg_l17a_1p3: l17 {
			regulator-min-microvolt = <1304000>;
			regulator-max-microvolt = <1304000>;
		};
		vreg_l18a_2p85: l18 {};
		vreg_l19a_2p7: l19 {
			regulator-min-microvolt = <2696000>;
			regulator-max-microvolt = <2704000>;
		};
		vreg_l20a_2p95: l20 {
			regulator-min-microvolt = <2960000>;
			regulator-max-microvolt = <2960000>;
			regulator-system-load = <10000>;
			regulator-allow-set-load;
		};
		vreg_l21a_2p95: l21 {
			regulator-min-microvolt = <2960000>;
			regulator-max-microvolt = <2960000>;
			regulator-system-load = <800000>;
			regulator-allow-set-load;
		};
		vreg_l22a_2p85: l22 { };
		vreg_l23a_3p3: l23 {
			regulator-min-microvolt = <3312000>;
			regulator-max-microvolt = <3312000>;
		};
		vreg_l24a_3p075: l24 {
			regulator-min-microvolt = <3088000>;
			regulator-max-microvolt = <3088000>;
		};
		vreg_l25a_3p3: l25 {
			regulator-min-microvolt = <3104000>;
			regulator-max-microvolt = <3312000>;
		};
		vreg_l26a_1p2: l26 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-allow-set-load;
		};
		vreg_l28_3p0: l28 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
		};
		vreg_lvs1a_1p8: lvs1 { };
		vreg_lvs2a_1p8: lvs2 { };
	};

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

		vdd_bob-supply = <&vph_pwr>;

		vreg_bob: bob {
			regulator-min-microvolt = <3312000>;
			regulator-max-microvolt = <3600000>;
		};
	};
};

&sdhc2 {
	status = "okay";
	cd-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>;

	vmmc-supply = <&vreg_l21a_2p95>;
	vqmmc-supply = <&vreg_l13a_2p95>;

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_clk_on  &sdc2_cmd_on  &sdc2_data_on  &sdc2_cd_on>;
	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
};

&tlmm {
	gpio-reserved-ranges = <0 4>, <81 4>;

	mdp_vsync_n: mdp-vsync-n {
		pins = "gpio10";
		function = "mdp_vsync_a";
		drive-strength = <2>;
		bias-pull-down;
	};

	nfc_ven: nfc-ven {
		pins = "gpio12";
		function = "gpio";
		bias-disable;
		drive-strength = <2>;
		output-low;
	};

	msm_mclk0_default: msm-mclk0-active {
		pins = "gpio13";
		function = "cam_mclk";
		drive-strength = <2>;
		bias-disable;
	};

	msm_mclk1_default: msm-mclk1-active {
		pins = "gpio14";
		function = "cam_mclk";
		drive-strength = <2>;
		bias-disable;
	};

	cci0_default: cci0-default {
		pins = "gpio18", "gpio19";
		function = "cci_i2c";
		bias-disable;
		drive-strength = <2>;
	};

	cci1_default: cci1-default {
		pins = "gpio19", "gpio20";
		function = "cci_i2c";
		bias-disable;
		drive-strength = <2>;
	};

	cam0_vdig_default: cam0-vdig-default {
		pins = "gpio21";
		function = "gpio";
		bias-disable;
		drive-strength = <2>;
	};

	cam1_vdig_default: cam1-vdig-default {
		pins = "gpio25";
		function = "gpio";
		bias-disable;
		drive-strength = <2>;
	};

	hall_sensor0_default: acc-cover-open {
		pins = "gpio124";
		function = "gpio";
		bias-disable;
		drive-strength = <2>;
		input-enable;
	};

	ts_int_n: ts-int-n {
		pins = "gpio125";
		function = "gpio";
		drive-strength = <8>;
		bias-pull-up;
	};

	ts_vddio_en: ts-vddio-en-default {
		pins = "gpio133";
		function = "gpio";
		bias-disable;
		drive-strength = <2>;
		output-low;
	};
};

/*
 * WARNING:
 * Disable UFS until card quirks are in to avoid unrecoverable hard-brick
 * that would happen as soon as the UFS card gets probed as, without the
 * required quirks, the bootloader will be erased right after card probe.
 */
&ufshc {
	status = "disabled";
};

&ufsphy {
	status = "disabled";
};

&usb3 {
	status = "okay";
};

&usb3_dwc3 {
	/* Force to peripheral until we have Type-C hooked up */
	dr_mode = "peripheral";
};

&usb3phy {
	status = "okay";

	vdda-phy-supply = <&vreg_l1a_0p875>;
	vdda-pll-supply = <&vreg_l2a_1p2>;
};
