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

/dts-v1/;

#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"

/ {
	model = "F(x)tec Pro1 (QX1000)";
	compatible = "fxtec,pro1", "qcom,msm8998";
	chassis-type = "handset";
	qcom,board-id = <0x02000b 0x10>;

	aliases {
		serial0 = &blsp2_uart1;
		serial1 = &blsp1_uart3;
	};

	/*
	 * Until we hook up type-c detection, we
	 * have to stick with this. But it works.
	 */
	extcon_usb: extcon-usb {
		compatible = "linux,extcon-usb-gpio";
		id-gpio = <&tlmm 38 GPIO_ACTIVE_HIGH>;
	};

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

		event-hall-sensor1 {
			label = "Keyboard Hall Sensor";
			gpios = <&tlmm 124 GPIO_ACTIVE_HIGH>;
			debounce-interval = <15>;
			gpio-key,wakeup;
			linux,input-type = <EV_SW>;
			linux,code = <SW_KEYPAD_SLIDE>;
		};
	};

	gpio-kb-extra-keys {
		compatible = "gpio-keys";
		label = "Keyboard extra keys";
		pinctrl-names = "default";
		pinctrl-0 = <&gpio_kb_pins_extra>;

		key-home {
			label = "Home";
			gpios = <&tlmm 21 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_HOMEPAGE>;
			debounce-interval = <15>;
			linux,can-disable;
		};

		key-super-l {
			label = "Super Left";
			gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_FN>;
			debounce-interval = <15>;
			linux,can-disable;
		};

		key-super-r {
			label = "Super Right";
			gpios = <&tlmm 33 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_FN>;
			debounce-interval = <15>;
			linux,can-disable;
		};

		key-shift {
			label = "Shift";
			gpios = <&tlmm 114 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_RIGHTSHIFT>;
			debounce-interval = <15>;
			linux,can-disable;
		};

		key-ctrl {
			label = "Ctrl";
			gpios = <&tlmm 128 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_LEFTCTRL>;
			debounce-interval = <15>;
			linux,can-disable;
		};

		key-alt {
			label = "Alt";
			gpios = <&tlmm 129 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_LEFTALT>;
			debounce-interval = <15>;
			linux,can-disable;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		label = "Side buttons";
		pinctrl-names = "default";
		pinctrl-0 = <&vol_up_pin_a>, <&cam_focus_pin_a>,
			    <&cam_snapshot_pin_a>;
		button-vol-up {
			label = "Volume Up";
			gpios = <&pm8998_gpio 6 GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_KEY>;
			linux,code = <KEY_VOLUMEUP>;
			gpio-key,wakeup;
			debounce-interval = <15>;
		};

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

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

	keyboard-leds {
		compatible = "gpio-leds";

		led-0 {
			color = <LED_COLOR_ID_WHITE>;
			default-state = "off";
			function = LED_FUNCTION_KBD_BACKLIGHT;
			gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
			label = "white:kbd_backlight";
			retain-state-suspended;
		};

		led-1 {
			color = <LED_COLOR_ID_YELLOW>;
			default-state = "off";
			function = LED_FUNCTION_CAPSLOCK;
			gpios = <&tlmm 26 GPIO_ACTIVE_HIGH>;
			label = "yellow:capslock";
			linux,default-trigger = "kbd-capslock";
		};
	};

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

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

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

	ts_vio_vreg: ts-vio-vreg {
		compatible = "regulator-fixed";
		regulator-name = "ts_vio_reg";
		startup-delay-us = <2>;
		enable-active-high;
		gpio = <&tlmm 81 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&ts_vio_default>;
		regulator-always-on;
	};

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

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

&blsp1_uart3_on {
	rx-pins {
		/delete-property/ bias-disable;
		/*
		 * Configure a pull-up on 45 (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).
		 */
		bias-pull-up;
	};

	cts-pins {
		/delete-property/ bias-disable;
		/*
		 * Configure a pull-down on 47 (CTS) to match the pull
		 * of the Bluetooth module.
		 */
		bias-pull-down;
	};
};

&blsp2_uart1 {
	status = "okay";
};

&blsp2_i2c1 {
	status = "okay";

	touchscreen@14 {
		compatible = "goodix,gt9286";
		reg = <0x14>;
		interrupt-parent = <&tlmm>;
		interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
		reset-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>;
		AVDD28-supply = <&vreg_l28_3p0>;
		VDDIO-supply = <&ts_vio_vreg>;
		pinctrl-names = "active";
		pinctrl-0 = <&ts_rst_n>, <&ts_int_n>;
	};
};

&etf {
	status = "okay";
};

&etm1 {
	status = "okay";
};

&etm2 {
	status = "okay";
};

&etm3 {
	status = "okay";
};

&etm4 {
	status = "okay";
};

&etm5 {
	status = "okay";
};

&etm6 {
	status = "okay";
};

&etm7 {
	status = "okay";
};

&etm8 {
	status = "okay";
};

&etr {
	status = "okay";
};

&funnel1 {
	status = "okay";
};

&funnel2 {
	status = "okay";
};

&funnel3 {
	status = "okay";
};

&funnel4 {
	/* FIXME: Figure out why clock late_initcall crashes the board with this enabled. */
};

&funnel5 {
	/* FIXME: Figure out why clock late_initcall crashes the board with this enabled. */
};

&pcie0 {
	status = "okay";
};

&pcie_phy {
	status = "okay";
};

&pm8005_regulators {
	vdd_s1-supply = <&vph_pwr>;

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

		/* Hack until we rig up the gpu consumer */
		regulator-always-on;
	};
};

&pm8998_gpio {
	vol_up_pin_a: vol-up-active-state {
		pins = "gpio6";
		function = "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 = "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 = "normal";
		bias-pull-up;
		input-enable;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
	};
};

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

&qusb2phy {
	status = "okay";

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

&replicator1 {
	status = "okay";
};

&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-allow-set-load;
		};

		vreg_s5a_2p04: s5 {
			regulator-min-microvolt = <1904000>;
			regulator-max-microvolt = <2040000>;
		};

		vreg_s7a_1p025: s7 {
			regulator-min-microvolt = <900000>;
			regulator-max-microvolt = <1028000>;
		};

		vreg_l1a_0p875: l1 {
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
		};

		vreg_l2a_1p2: l2 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
		};

		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 = <1808000>;
			regulator-max-microvolt = <1808000>;
		};

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

		vreg_l14a_1p88: l14 {
			regulator-min-microvolt = <1880000>;
			regulator-max-microvolt = <1880000>;
		};

		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_2p7: l18 {
			regulator-min-microvolt = <2704000>;
			regulator-max-microvolt = <2704000>;
		};

		vreg_l19a_3p0: l19 {
			regulator-min-microvolt = <3008000>;
			regulator-max-microvolt = <3008000>;
		};

		vreg_l20a_2p95: l20 {
			regulator-min-microvolt = <2960000>;
			regulator-max-microvolt = <2960000>;
			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 {
			regulator-min-microvolt = <2864000>;
			regulator-max-microvolt = <2864000>;
		};

		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 = <3008000>;
			regulator-max-microvolt = <3008000>;
		};

		vreg_lvs1a_1p8: lvs1 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		vreg_lvs2a_1p8: lvs2 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

	};

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

		vdd_bob-supply = <&vph_pwr>;

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

&remoteproc_adsp {
	status = "okay";
};

&remoteproc_mss {
	status = "okay";
};

&remoteproc_slpi {
	status = "okay";
};

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

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

	gpio_kb_pins_extra: gpio-kb-pins-extra-state {
		pins = "gpio21", "gpio32", "gpio33", "gpio114",
		       "gpio128", "gpio129";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-up;
	};

	ts_vio_default: ts-vio-def-state {
		pins = "gpio81";
		function = "gpio";
		bias-disable;
		drive-strength = <2>;
	};

	ts_rst_n: ts-rst-n-state {
		pins = "gpio89";
		function = "gpio";
		bias-pull-up;
		drive-strength = <8>;
	};

	hall_sensor1_default: hall-sensor1-def-state {
		pins = "gpio124";
		function = "gpio";
		bias-disable;
		drive-strength = <2>;
		input-enable;
	};

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

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

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

&stm {
	status = "okay";
};

&ufshc {
	status = "okay";
	vcc-supply = <&vreg_l20a_2p95>;
	vccq-supply = <&vreg_l26a_1p2>;
	vccq2-supply = <&vreg_s4a_1p8>;
	vcc-max-microamp = <750000>;
	vccq-max-microamp = <560000>;
	vccq2-max-microamp = <750000>;
};

&ufsphy {
	status = "okay";
	vdda-phy-supply = <&vreg_l1a_0p875>;
	vdda-pll-supply = <&vreg_l2a_1p2>;
	vddp-ref-clk-supply = <&vreg_l26a_1p2>;
};

&usb3 {
	status = "okay";
};

&usb3_dwc3 {
	dr_mode = "peripheral";
	extcon = <&extcon_usb>;
};

&usb3phy {
	status = "okay";

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

/* GT9286 analog supply */
&vreg_l28_3p0 {
	regulator-min-microvolt = <2800000>;
	regulator-max-microvolt = <2800000>;
};

&wifi {
	status = "okay";

	vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
	vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
};
