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

/dts-v1/;

#include "qcom-msm8226.dtsi"
#include "qcom-pm8226.dtsi"

/delete-node/ &adsp_region;

/ {
	model = "ASUS ZenWatch 2";
	compatible = "asus,sparrow", "qcom,apq8026";
	chassis-type = "watch";
	qcom,msm-id = <199 0x20000>;
	qcom,board-id = <8 3005>;

	reserved-memory {
		sbl_region: sbl@2f00000 {
			reg = <0x02f00000 0x100000>;
			no-map;
		};
		external_image_region: external-image@3100000 {
			reg = <0x3100000 0x200000>;
			no-map;
		};
		peripheral_region: peripheral@3300000 {
			reg = <0x3300000 0x600000>;
			no-map;
		};
		adsp_region: adsp@3900000 {
			reg = <0x3900000 0x1400000>;
			no-map;
		};
		modem_region: modem@4d00000 {
			reg = <0x4d00000 0x1b00000>;
			no-map;
		};
		modem_efs_region: modem-efs@7f00000 {
			reg = <0x7f00000 0x100000>;
			no-map;
		};
	};

	vreg_wlan: wlan-regulator {
		compatible = "regulator-fixed";

		regulator-name = "wl-reg";
		regulator-min-microvolt = <2950000>;
		regulator-max-microvolt = <2950000>;

		gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>;
		enable-active-high;

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

&adsp {
	status = "okay";
};

&blsp1_uart1 {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <&blsp1_uart1_default_state>;

	bluetooth {
		compatible = "brcm,bcm43430a1-bt";
		max-speed = <3000000>;

		pinctrl-names = "default";
		pinctrl-0 = <&bluetooth_default_state>;

		host-wakeup-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>;
		device-wakeup-gpios = <&tlmm 61 GPIO_ACTIVE_HIGH>;
		shutdown-gpios = <&tlmm 34 GPIO_ACTIVE_HIGH>;
	};
};

&pm8226_vib {
	status = "okay";
};

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

		pm8226_s3: s3 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1300000>;
		};
		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 = <1900000>;
			regulator-max-microvolt = <1900000>;
		};
		pm8226_l8: l8 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		pm8226_l9: l9 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		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 = <3000000>;
		};
		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>;
		};
		pm8226_l22: l22 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
		};
		pm8226_l23: l23 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
		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 = <2950000>;
		};

		pm8226_lvs1: lvs1 {};
	};
};

&sdhc_1 {
	status = "okay";

	vmmc-supply = <&pm8226_l17>;
	vqmmc-supply = <&pm8226_l6>;

	bus-width = <8>;
	non-removable;
};

&sdhc_3 {
	status = "okay";

	max-frequency = <100000000>;
	non-removable;

	vmmc-supply = <&vreg_wlan>;
	vqmmc-supply = <&pm8226_l6>;

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

	wifi@1 {
		compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac";
		reg = <1>;

		interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>;
		interrupt-names = "host-wake";

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

&smbb {
	qcom,fast-charge-safe-current = <1500000>;
	qcom,fast-charge-current-limit = <350000>;
	qcom,fast-charge-safe-voltage = <4430000>;
	qcom,fast-charge-high-threshold-voltage = <4400000>;
	qcom,auto-recharge-threshold-voltage = <4300000>;
	qcom,minimum-input-voltage = <4400000>;
};

&tlmm {
	blsp1_uart1_default_state: blsp1-uart1-default-state {
		pins = "gpio0", "gpio1", "gpio2", "gpio3";
		function = "blsp_uart1";
		drive-strength = <8>;
		bias-disable;
	};

	bluetooth_default_state: bluetooth-default-state {
		pins = "gpio48", "gpio61";
		function = "gpio";
		drive-strength = <8>;
		bias-disable;
		input-enable;
	};

	wlan_hostwake_default_state: wlan-hostwake-default-state {
		pins = "gpio46";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
		input-enable;
	};

	wlan_regulator_default_state: wlan-regulator-default-state {
		pins = "gpio35";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-up;
	};
};

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

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