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

#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sm8250.dtsi"
#include "pm8150.dtsi"
#include "pm8150b.dtsi"
#include "pm8150l.dtsi"
#include "pm8009.dtsi"

/delete-node/ &adsp_mem;
/delete-node/ &spss_mem;
/delete-node/ &cdsp_secure_heap;

/ {
	qcom,msm-id = <356 0x20001>; /* SM8250 v2.1 */
	qcom,board-id = <0x10008 0>;

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

		framebuffer: framebuffer@9c000000 {
			compatible = "simple-framebuffer";
			reg = <0 0x9c000000 0 0x2300000>;
			width = <1644>;
			height = <3840>;
			stride = <(1644 * 4)>;
			format = "a8r8g8b8";
			/*
			 * That's a lot of clocks, but it's necessary due
			 * to unused clk cleanup & no panel driver yet..
			 */
			clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
				 <&gcc GCC_DISP_HF_AXI_CLK>,
				 <&gcc GCC_DISP_SF_AXI_CLK>,
				 <&dispcc DISP_CC_MDSS_VSYNC_CLK>,
				 <&dispcc DISP_CC_MDSS_MDP_CLK>,
				 <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
				 <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
				 <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
				 <&dispcc DISP_CC_MDSS_ESC0_CLK>;
			power-domains = <&dispcc MDSS_GDSC>;
		};
	};

	gpio_keys: gpio-keys {
		compatible = "gpio-keys";

		/*
		 * Camera focus (light press) and camera snapshot (full press)
		 * seem not to work properly.. Adding the former one stalls the CPU
		 * and the latter kills the volume down key for whatever reason. In any
		 * case, they are both on &pm8150b_gpios: camera focus(2), camera snapshot(1).
		 */

		vol-down {
			label = "Volume Down";
			linux,code = <KEY_VOLUMEDOWN>;
			gpios = <&pm8150_gpios 1 GPIO_ACTIVE_LOW>;
			debounce-interval = <15>;
			linux,can-disable;
			gpio-key,wakeup;
		};
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";
		regulator-min-microvolt = <3700000>;
		regulator-max-microvolt = <3700000>;
	};

	/* S6c is really ebi.lvl but it's there for supply map completeness sake. */
	vreg_s6c_0p88: smpc6-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vreg_s6c_0p88";

		regulator-min-microvolt = <880000>;
		regulator-max-microvolt = <880000>;
		regulator-always-on;
		vin-supply = <&vph_pwr>;
	};

	reserved-memory {
		adsp_mem: memory@8a100000 {
			reg = <0x0 0x8a100000 0x0 0x2500000>;
			no-map;
		};

		spss_mem: memory@8c600000 {
			reg = <0x0 0x8c600000 0x0 0x100000>;
			no-map;
		};

		cdsp_secure_heap: memory@8c700000 {
			reg = <0x0 0x8c700000 0x0 0x4600000>;
			no-map;
		};

		cont_splash_mem: memory@9c000000 {
			reg = <0x0 0x9c000000 0x0 0x2300000>;
			no-map;
		};

		ramoops@ffc00000 {
			compatible = "ramoops";
			reg = <0x0 0xffc00000 0x0 0x100000>;
			record-size = <0x1000>;
			console-size = <0x40000>;
			msg-size = <0x20000 0x20000>;
			ecc-size = <16>;
			no-map;
		};
	};
};

&adsp {
	status = "okay";
};

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

		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-l1-l8-l11-supply = <&vreg_s6c_0p88>;
		vdd-l2-l10-supply = <&vreg_bob>;
		vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p6>;
		vdd-l6-l9-supply = <&vreg_s8c_1p2>;
		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
		vdd-l13-l16-l17-supply = <&vreg_bob>;

		/* (S1+S2+S3) - cx.lvl (ARC) */

		vreg_s4a_1p8: smps4 {
			regulator-name = "vreg_s4a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1920000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s5a_1p9: smps5 {
			regulator-name = "vreg_s5a_1p9";
			regulator-min-microvolt = <1824000>;
			regulator-max-microvolt = <2040000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s6a_0p6: smps6 {
			regulator-name = "vreg_s6a_0p6";
			regulator-min-microvolt = <600000>;
			regulator-max-microvolt = <1128000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2a_3p1: ldo2 {
			regulator-name = "vreg_l2a_3p1";
			regulator-min-microvolt = <3072000>;
			regulator-max-microvolt = <3072000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3a_0p9: ldo3 {
			regulator-name = "vreg_l3a_0p9";
			regulator-min-microvolt = <928000>;
			regulator-max-microvolt = <932000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		/* L4 - lmx.lvl (ARC) */

		vreg_l5a_0p88: ldo5 {
			regulator-name = "vreg_l5a_0p88";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6a_1p2: ldo6 {
			regulator-name = "vreg_l6a_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		/* L7 is unused. */

		vreg_l9a_1p2: ldo9 {
			regulator-name = "vreg_l9a_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		/* L10 is unused, L11 - lcx.lvl (ARC) */

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

		/* L13 is unused. */

		vreg_l14a_1p8: ldo14 {
			regulator-name = "vreg_l14a_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		/* L15 & L16 are unused. */

		vreg_l17a_3p0: ldo17 {
			regulator-name = "vreg_l17a_3p0";
			regulator-min-microvolt = <2496000>;
			regulator-max-microvolt = <3008000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l18a_0p9: ldo18 {
			regulator-name = "vreg_l18a_0p9";
			regulator-min-microvolt = <800000>;
			regulator-max-microvolt = <920000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	/*
	 * Remaining regulators that are not yet supported:
	 * OLEDB: 4925000-8100000
	 * ab: 4600000-6100000
	 * ibb: 800000-5400000
	 */
	pm8150l-rpmh-regulators {
		compatible = "qcom,pm8150l-rpmh-regulators";
		qcom,pmic-id = "c";

		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-l1-l8-supply = <&vreg_s4a_1p8>;
		vdd-l2-l3-supply = <&vreg_s8c_1p2>;
		vdd-l4-l5-l6-supply = <&vreg_bob>;
		vdd-l7-l11-supply = <&vreg_bob>;
		vdd-l9-l10-supply = <&vreg_bob>;
		vdd-bob-supply = <&vph_pwr>;

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

		/*
		 * S1-S6 are ARCs:
		 * (S1+S2) - gfx.lvl,
		 * S3 - mx.lvl,
		 * (S4+S5) - mmcx.lvl,
		 * S6 - ebi.lvl
		 */

		vreg_s7c_0p35: smps7 {
			regulator-name = "vreg_s7c_0p35";
			regulator-min-microvolt = <348000>;
			regulator-max-microvolt = <1000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s8c_1p2: smps8 {
			regulator-name = "vreg_s8c_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1400000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l1c_1p8: ldo1 {
			regulator-name = "vreg_l1c_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		/* L2-4 are unused. */

		vreg_l5c_1p8: ldo5 {
			regulator-name = "vreg_l5c_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6c_2p9: ldo6 {
			regulator-name = "vreg_l6c_2p9";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
		};

		vreg_l7c_2p85: ldo7 {
			regulator-name = "vreg_l7c_2p85";
			regulator-min-microvolt = <2856000>;
			regulator-max-microvolt = <3104000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l8c_1p8: ldo8 {
			regulator-name = "vreg_l8c_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9c_2p9: ldo9 {
			regulator-name = "vreg_l9c_2p9";
			regulator-min-microvolt = <2704000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
		};

		vreg_l10c_3p3: ldo10 {
			regulator-name = "vreg_l10c_3p3";
			regulator-min-microvolt = <3296000>;
			regulator-max-microvolt = <3296000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l11c_3p0: ldo11 {
			regulator-name = "vreg_l11c_3p0";
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	pm8009-rpmh-regulators {
		compatible = "qcom,pm8009-rpmh-regulators";
		qcom,pmic-id = "f";

		vdd-s1-supply = <&vph_pwr>;
		vdd-s2-supply = <&vreg_bob>;
		vdd-l2-supply = <&vreg_s8c_1p2>;
		vdd-l5-l6-supply = <&vreg_bob>;
		vdd-l7-supply = <&vreg_s4a_1p8>;

		vreg_s1f_1p2: smps1 {
			regulator-name = "vreg_s1f_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s2f_0p5: smps2 {
			regulator-name = "vreg_s2f_0p5";
			regulator-min-microvolt = <512000>;
			regulator-max-microvolt = <1100000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		/* L1 is unused. */

		vreg_l2f_1p3: ldo2 {
			regulator-name = "vreg_l2f_1p3";
			regulator-min-microvolt = <1304000>;
			regulator-max-microvolt = <1304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		/* L3 & L4 are unused. */

		vreg_l5f_2p8: ldo5 {
			regulator-name = "vreg_l5f_2p85";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6f_2p8: ldo6 {
			regulator-name = "vreg_l6f_2p8";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7f_1p8: ldo7 {
			regulator-name = "vreg_l7f_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};
};

&cdsp {
	status = "okay";
};

&gpi_dma0 {
	status = "okay";
};

&gpi_dma1 {
	status = "okay";
};

&gpi_dma2 {
	status = "okay";
};

&i2c1 {
	status = "okay";
	clock-frequency = <400000>;

	/* NXP PN553 NFC @ 28 */
};

&i2c2 {
	status = "okay";
	clock-frequency = <1000000>;

	/* Dual Cirrus Logic CS35L41 amps @ 40, 41 */
};

&i2c5 {
	status = "okay";
	clock-frequency = <400000>;

	/* Dialog SLG51000 CMIC @ 75 */
};

&i2c9 {
	status = "okay";
	clock-frequency = <400000>;

	/* AMS TCS3490 RGB+IR color sensor @ 72 */
};

&i2c13 {
	status = "okay";
	clock-frequency = <400000>;

	touchscreen@48 {
		compatible = "samsung,s6sy761";
		reg = <0x48>;
		interrupt-parent = <&tlmm>;
		interrupts = <39 0x2008>;
		/* It's "vddio" downstream but it works anyway! */
		vdd-supply = <&vreg_l1c_1p8>;
		avdd-supply = <&vreg_l10c_3p3>;

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

&i2c15 {
	status = "okay";
	clock-frequency = <400000>;

	/* Qcom SMB1390 @ 10 */
	/* Silicon Labs SI4704 FM Radio Receiver @ 11 */
	/* Qcom SMB1390_slave @ 18 */
	/* HALO HL6111R Qi charger @ 25 */
	/* Richwave RTC6226 FM Radio Receiver @ 64 */
};

&pcie0 {
	status = "okay";
};

&pcie0_phy {
	status = "okay";

	vdda-phy-supply = <&vreg_l5a_0p88>;
	vdda-pll-supply = <&vreg_l9a_1p2>;
};

&pcie2 {
	status = "okay";

	pinctrl-0 = <&pcie2_default_state &mdm2ap_default &ap2mdm_default>;
};

&pcie2_phy {
	status = "okay";

	vdda-phy-supply = <&vreg_l5a_0p88>;
	vdda-pll-supply = <&vreg_l9a_1p2>;
};

&pon_pwrkey {
	status = "okay";
};

&pon_resin {
	status = "okay";

	linux,code = <KEY_VOLUMEUP>;
};

&qupv3_id_0 {
	status = "okay";
};

&qupv3_id_1 {
	status = "okay";
};

&qupv3_id_2 {
	status = "okay";
};

&sdhc_2 {
	status = "okay";

	cd-gpios = <&tlmm 77 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
	pinctrl-1 = <&sdc2_sleep_state &sdc2_card_det_n>;
	vmmc-supply = <&vreg_l9c_2p9>;
	vqmmc-supply = <&vreg_l6c_2p9>;
	bus-width = <4>;
	no-sdio;
	no-emmc;
};

&slpi {
	status = "okay";
};

&tlmm {
	gpio-reserved-ranges = <40 4>, <52 4>;

	sdc2_default_state: sdc2-default {
		clk {
			pins = "sdc2_clk";
			drive-strength = <16>;
			bias-disable;
		};

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

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

	mdm2ap_default: mdm2ap-default {
		pins = "gpio1", "gpio3";
		function = "gpio";
		drive-strength = <8>;
		bias-disable;
	};

	ts_int_default: ts-int-default {
		pins = "gpio39";
		function = "gpio";
		drive-strength = <2>;
		bias-disabled;
		input-enable;
	};

	ap2mdm_default: ap2mdm-default {
		pins = "gpio56", "gpio57";
		function = "gpio";
		drive-strength = <16>;
		bias-disable;
	};

	sdc2_card_det_n: sd-card-det-n {
		pins = "gpio77";
		function = "gpio";
		bias-pull-up;
		drive-strength = <2>;
	};
};

&uart12 {
	status = "okay";
};

/* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */
&ufs_mem_hc { status = "disabled"; };
&ufs_mem_phy { status = "disabled"; };

&usb_1 {
	status = "okay";
};

&usb_1_dwc3 {
	dr_mode = "peripheral";
};

&usb_1_hsphy {
	status = "okay";

	vdda-pll-supply = <&vreg_l5a_0p88>;
	vdda18-supply = <&vreg_l12a_1p8>;
	vdda33-supply = <&vreg_l2a_3p1>;
};

&usb_1_qmpphy {
	status = "okay";

	vdda-phy-supply = <&vreg_l9a_1p2>;
	vdda-pll-supply = <&vreg_l18a_0p9>;
};
