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

/dts-v1/;

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

/ {
	model = "LG G Watch R";
	compatible = "lg,lenok", "qcom,apq8026";
	qcom,board-id = <132 0x0a>;
	qcom,msm-id = <199 0x20000>;

	aliases {
		serial0 = &blsp1_uart3;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};
};

&blsp1_i2c5 {
	status = "okay";
	clock-frequency = <384000>;

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

		interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
		vdd-supply = <&pm8226_l15>;
		vio-supply = <&pm8226_l22>;

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

		#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_uart3 {
	status = "okay";
};

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

		pm8226_s1: s1 {
			regulator-min-microvolt = <500000>;
			regulator-max-microvolt = <1275000>;
		};
		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 = <3300000>;
			regulator-max-microvolt = <3300000>;
		};
		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 = <3000000>;
			regulator-max-microvolt = <3300000>;
		};
		pm8226_l19: l19 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
		};
		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 = <1800000>;
		};
		pm8226_l23: l23 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
		};
		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 = <2700000>;
			regulator-max-microvolt = <3000000>;
		};

		pm8226_lvs1: lvs1 {};
	};
};

&sdhc_1 {
	status = "okay";

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

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

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

&tlmm {
	sdhc1_pin_a: sdhc1-pin-active {
		clk {
			pins = "sdc1_clk";
			drive-strength = <10>;
			bias-disable;
		};

		cmd-data {
			pins = "sdc1_cmd", "sdc1_data";
			drive-strength = <10>;
			bias-pull-up;
		};
	};

	touch_pins: touch {
		irq {
			pins = "gpio17";
			function = "gpio";

			drive-strength = <8>;
			bias-pull-down;
			input-enable;
		};

		reset {
			pins = "gpio16";
			function = "gpio";

			drive-strength = <8>;
			bias-disable;
			output-high;
		};
	};
};
