// 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).
		 */

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

	cs35l41_l: cs35l41@40 {
		compatible = "cirrus,cs35l41";
		reg = <0x40>;
		interrupt-parent = <&tlmm>;
		interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
		reset-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
		cirrus,boost-peak-milliamp = <4000>;
		cirrus,boost-ind-nanohenry = <1000>;
		cirrus,boost-cap-microfarad = <15>;
		cirrus,asp-sdout-hiz = <3>;
		cirrus,gpio2-src-select = <2>;
		cirrus,gpio2-output-enable;
		#sound-dai-cells = <1>;
	};

	cs35l41_r: cs35l41@41 {
		compatible = "cirrus,cs35l41";
		reg = <0x41>;
		interrupt-parent = <&tlmm>;
		interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
		reset-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
		cirrus,boost-peak-milliamp = <4000>;
		cirrus,boost-ind-nanohenry = <1000>;
		cirrus,boost-cap-microfarad = <15>;
		cirrus,asp-sdout-hiz = <3>;
		cirrus,gpio2-src-select = <2>;
		cirrus,gpio2-output-enable;
		#sound-dai-cells = <1>;
	};
};

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