// 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 <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include "msm8998.dtsi"
#include "pm8005.dtsi"
#include "pm8998.dtsi"
#include "pmi8998.dtsi"

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

	clocks {
		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_gpios 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_gpios 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;
	};

	extcon_usb: extcon-usb {
		compatible = "linux,extcon-usb-gpio";
		id-gpio = <&tlmm 38 GPIO_ACTIVE_HIGH>;
		vbus-gpio = <&tlmm 128 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb_extcon_active &usb_vbus_active>;
	};

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

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

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

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

		event-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_gpios 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";
};

&blsp2_i2c2 {
	status = "okay";

	proximity@29 {
		compatible = "st,vl53l0x";
		reg = <0x29>;

		interrupt-parent = <&tlmm>;
		interrupts = <22 IRQ_TYPE_EDGE_FALLING>;

		reset-gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
		vdd-supply = <&cam_vio_vreg>;

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

&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;
};

&pm8005_regulators {
	/* VDD_GFX supply */
	pm8005_s1: s1 {
		regulator-min-microvolt = <524000>;
		regulator-max-microvolt = <1088000>;
		regulator-enable-ramp-delay = <500>;
		/* Hack until we rig up the gpu consumer */
		regulator-always-on;
	};
};

&pm8998_gpios {
	vol_down_pin_a: vol-down-active-state {
		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-state {
		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-state {
		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-state {
		pins = "gpio13";
		function = "func2";
		power-source = <0>;
	};
};

&pmi8998_gpios {
	cam_vio_default: cam-vio-active-state {
		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-state {
		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_resin {
	linux,code = <KEY_VOLUMEUP>;
	status = "okay";
};

&qusb2phy {
	status = "okay";

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

&rpm_requests {
	regulators-0 {
		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 { };
	};

	regulators-1 {
		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_on &sdc2_cd>;
	pinctrl-1 = <&sdc2_off &sdc2_cd>;
};

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

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

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

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

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

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

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

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

	tof_int: tof-int-state {
		pins = "gpio22";
		function = "gpio";
		bias-pull-up;
		drive-strength = <2>;
		input-enable;
	};

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

	usb_extcon_active: usb-extcon-active-state {
		pins = "gpio38";
		function = "gpio";
		bias-disable;
		drive-strength = <16>;
	};

	tof_reset: tof-reset-state {
		pins = "gpio27";
		function = "gpio";
		bias-disable;
		drive-strength = <2>;
	};

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

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

	usb_vbus_active: usb-vbus-active-state {
		pins = "gpio128";
		function = "gpio";
		bias-disable;
		drive-strength = <2>;
		output-low;
	};

	ts_vddio_en: ts-vddio-en-default-state {
		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";
	extcon = <&extcon_usb>;
};

&usb3phy {
	status = "okay";

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