// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2023, Luca Weiss <luca@z3ntu.xyz>
 */

/dts-v1/;

#include "msm8926.dtsi"
#include "pm8226.dtsi"

/delete-node/ &adsp_region;
/delete-node/ &mba_region;
/delete-node/ &mpss_region;
/delete-node/ &smem_region;

/ {
	model = "HTC One Mini 2";
	compatible = "htc,memul", "qcom,msm8926", "qcom,msm8226";
	chassis-type = "handset";

	aliases {
		mmc1 = &sdhc_2; /* SDC2 SD card slot */
	};

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

		key-power {
			label = "Power";
			gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_POWER>;
			debounce-interval = <15>;
		};

		key-volume-down {
			label = "Volume Down";
			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEDOWN>;
			debounce-interval = <15>;
		};

		key-volume-up {
			label = "Volume Up";
			gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEUP>;
			debounce-interval = <15>;
		};
	};

	reserved-memory {
		unknown@5b00000 {
			reg = <0x05b00000 0x200000>;
			no-map;
		};

		unknown@7500000 {
			reg = <0x07500000 0xb00000>;
			no-map;
		};

		mpss_region: mpss@8000000 {
			reg = <0x08000000 0x4f00000>;
			no-map;
		};

		unknown@cf00000 {
			reg = <0x0cf00000 0x200000>;
			no-map;
		};

		mba_region: mba@d100000 {
			reg = <0x0d100000 0x3a000>;
			no-map;
		};

		unknown@d13a000 {
			reg = <0x0d13a000 0xc6000>;
			no-map;
		};

		wcnss_region: wcnss@d200000 {
			reg = <0x0d200000 0x650000>;
			no-map;
		};

		unknown@d850000 {
			reg = <0x0d850000 0x3b0000>;
			no-map;
		};

		adsp_region: adsp@dc00000 {
			reg = <0x0dc00000 0x1400000>;
			no-map;
		};

		unknown@f000000 {
			reg = <0x0f000000 0x500000>;
			no-map;
		};

		venus_region: venus@f500000 {
			reg = <0x0f500000 0x500000>;
			no-map;
		};

		smem_region: smem@fa00000 {
			reg = <0x0fa00000 0x100000>;
			no-map;
		};

		unknown@fb00000 {
			reg = <0x0fb00000 0x280000>;
			no-map;
		};

		rmtfs@fd80000 {
			compatible = "qcom,rmtfs-mem";
			reg = <0x0fd80000 0x180000>;
			no-map;

			qcom,client-id = <1>;
		};

		unknown@ff00000 {
			reg = <0x0ff00000 0x1700000>;
			no-map;
		};
	};
};

&adsp {
	firmware-name = "qcom/msm8926/memul/adsp.mbn";
	status = "okay";
};

&blsp1_i2c2 {
	status = "okay";

	magnetometer@d {
		compatible = "asahi-kasei,ak8963";
		reg = <0x0d>;
		interrupts-extended = <&tlmm 66 IRQ_TYPE_EDGE_RISING>;
		vdd-supply = <&pm8226_l19>;
		vid-supply = <&pm8226_l28>;
	};

	accelerometer@18 {
		compatible = "bosch,bma250e";
		reg = <0x18>;
		interrupts-extended = <&tlmm 63 IRQ_TYPE_EDGE_RISING>;
		vdd-supply = <&pm8226_l19>;
		vddio-supply = <&pm8226_l28>;
	};
};

&blsp1_i2c4 {
	status = "okay";

	/* TFA9887 @ 34 */
	/* TFA9887 @ 35 */
};

&blsp1_i2c5 {
	status = "okay";

	touchscreen@20 {
		compatible = "syna,rmi4-i2c";
		reg = <0x20>;

		interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
		vdd-supply = <&pm8226_l19>;

		syna,startup-delay-ms = <160>;

		#address-cells = <1>;
		#size-cells = <0>;

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

		rmi4-f12@12 {
			reg = <0x12>;
			syna,sensor-type = <1>;
		};
	};
};

&blsp1_i2c6 {
	status = "okay";

	/* NCP6924 Camera Regulators @ 10 */
	/* PN544 NFC @ 28 */
	/* TPS61310 Flash/Torch @ 33 */
};

&modem {
	mx-supply = <&pm8226_l3>;
	pll-supply = <&pm8226_l8>;
	mss-supply = <&pm8226_s5>;

	firmware-name = "qcom/msm8926/memul/mba.b00", "qcom/msm8926/memul/modem.mdt";

	status = "okay";
};

&pm8226_vib {
	status = "okay";
};

&rpm_requests {
	regulators {
		compatible = "qcom,rpm-pm8226-regulators";

		pm8226_s3: s3 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1350000>;
		};

		pm8226_s4: s4 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2200000>;
		};

		pm8226_s5: s5 {
			regulator-min-microvolt = <1150000>;
			regulator-max-microvolt = <1150000>;
		};

		pm8226_l1: l1 {
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1225000>;
		};

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

		pm8226_l3: l3 {
			regulator-min-microvolt = <750000>;
			regulator-max-microvolt = <1337500>;
		};

		pm8226_l4: l4 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
		};

		pm8226_l5: l5 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
		};

		pm8226_l6: l6 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8226_l7: l7 {
			regulator-min-microvolt = <1850000>;
			regulator-max-microvolt = <1850000>;
		};

		pm8226_l8: l8 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8226_l9: l9 {
			regulator-min-microvolt = <2050000>;
			regulator-max-microvolt = <2050000>;
		};

		pm8226_l10: l10 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8226_l12: l12 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8226_l14: l14 {
			regulator-min-microvolt = <2750000>;
			regulator-max-microvolt = <2750000>;
		};

		pm8226_l15: l15 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
		};

		pm8226_l16: l16 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3350000>;
		};

		pm8226_l17: l17 {
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
		};

		pm8226_l18: l18 {
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
		};

		pm8226_l19: l19 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
		};

		pm8226_l20: l20 {
			regulator-min-microvolt = <3075000>;
			regulator-max-microvolt = <3075000>;
		};

		pm8226_l21: l21 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
			regulator-allow-set-load;
		};

		pm8226_l22: l22 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
		};

		pm8226_l23: l23 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <3000000>;
		};

		pm8226_l24: l24 {
			regulator-min-microvolt = <1300000>;
			regulator-max-microvolt = <1350000>;
		};

		pm8226_l25: l25 {
			regulator-min-microvolt = <1775000>;
			regulator-max-microvolt = <2125000>;
		};

		pm8226_l26: l26 {
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1225000>;
		};

		pm8226_l27: l27 {
			regulator-min-microvolt = <2050000>;
			regulator-max-microvolt = <2050000>;
		};

		pm8226_l28: l28 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8226_lvs1: lvs1 {};
	};
};

&sdhc_2 {
	vmmc-supply = <&pm8226_l18>;
	vqmmc-supply = <&pm8226_l21>;

	bus-width = <4>;
	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;

	status = "okay";
};

&smbb {
	qcom,fast-charge-safe-current = <1750000>;
	qcom,fast-charge-current-limit = <1750000>;
	qcom,fast-charge-safe-voltage = <4360000>;
	qcom,fast-charge-high-threshold-voltage = <4350000>;
	qcom,auto-recharge-threshold-voltage = <4300000>;
	qcom,minimum-input-voltage = <4300000>;

	status = "okay";
};

&usb {
	extcon = <&smbb>;
	dr_mode = "peripheral";
	status = "okay";
};

&usb_hs_phy {
	extcon = <&smbb>;
	v1p8-supply = <&pm8226_l10>;
	v3p3-supply = <&pm8226_l20>;
};
