// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2024, Neil Armstrong <neil.armstrong@linaro.org>
 */
/dts-v1/;

#include "sdm450.dtsi"
#include "pm8953.dtsi"
#include "pmi8950.dtsi"

/ {
	model = "Lenovo Smart Tab M10";
	compatible = "lenovo,tbx605f", "qcom,sdm450";
	chassis-type = "tablet";

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

		framebuffer@90001000 {
			compatible = "simple-framebuffer";
			reg = <0 0x90001000 0 (1200 * 1920 * 3)>;

			width = <1200>;
			height = <1920>;
			stride = <(1200 * 3)>;
			format = "r8g8b8";

			power-domains = <&gcc MDSS_GDSC>;

			clocks = <&gcc GCC_MDSS_AHB_CLK>,
				 <&gcc GCC_MDSS_AXI_CLK>,
				 <&gcc GCC_MDSS_VSYNC_CLK>,
				 <&gcc GCC_MDSS_MDP_CLK>,
				 <&gcc GCC_MDSS_BYTE0_CLK>,
				 <&gcc GCC_MDSS_PCLK0_CLK>,
				 <&gcc GCC_MDSS_ESC0_CLK>;
		};
	};

	reserved-memory {
		other_ext_region@0 {
			no-map;
			reg = <0x00 0x84500000 0x00 0x2300000>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		key-volume-up {
			label = "volume_up";
			gpios = <&tlmm 85 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEUP>;
		};
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";
		regulator-always-on;
		regulator-boot-on;
	};
};

&hsusb_phy {
	vdd-supply = <&pm8953_l3>;
	vdda-pll-supply = <&pm8953_l7>;
	vdda-phy-dpdm-supply = <&pm8953_l13>;

	status = "okay";
};

&i2c_3 {
	status = "okay";

	touchscreen@38 {
		compatible = "edt,edt-ft5506";
		reg = <0x38>;
		interrupt-parent = <&tlmm>;
		interrupts = <65 IRQ_TYPE_EDGE_FALLING>;
		vcc-supply = <&pm8953_l10>;

		pinctrl-names = "default";
		pinctrl-0 = <&ts_int_active &ts_reset_active>;

		reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
		touchscreen-size-x = <1200>;
		touchscreen-size-y = <1920>;
	};
};

&pm8953_resin {
	linux,code = <KEY_VOLUMEDOWN>;
	status = "okay";
};

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

		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_l1-supply = <&pm8953_s3>;
		vdd_l2_l3-supply = <&pm8953_s3>;
		vdd_l4_l5_l6_l7_l16_l19-supply = <&pm8953_s4>;
		vdd_l8_l11_l12_l13_l14_l15-supply = <&vph_pwr>;
		vdd_l9_l10_l17_l18_l22-supply = <&vph_pwr>;

		pm8953_s1: s1 {
			regulator-min-microvolt = <870000>;
			regulator-max-microvolt = <1156000>;
		};

		pm8953_s3: s3 {
			regulator-min-microvolt = <1224000>;
			regulator-max-microvolt = <1224000>;
		};

		pm8953_s4: s4 {
			regulator-min-microvolt = <1900000>;
			regulator-max-microvolt = <2050000>;
		};

		pm8953_l1: l1 {
			regulator-min-microvolt = <1000000>;
			regulator-max-microvolt = <1100000>;
		};

		pm8953_l2: l2 {
			regulator-min-microvolt = <975000>;
			regulator-max-microvolt = <1225000>;
		};

		pm8953_l3: l3 {
			regulator-min-microvolt = <925000>;
			regulator-max-microvolt = <925000>;
		};

		pm8953_l5: l5 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

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

		pm8953_l7: l7 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1900000>;
		};

		pm8953_l8: l8 {
			regulator-min-microvolt = <2900000>;
			regulator-max-microvolt = <2900000>;
		};

		pm8953_l9: l9 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3300000>;
		};

		pm8953_l10: l10 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
		};

		pm8953_l11: l11 {
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
		};

		pm8953_l12: l12 {
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
		};

		pm8953_l13: l13 {
			regulator-min-microvolt = <3125000>;
			regulator-max-microvolt = <3125000>;
		};

		pm8953_l16: l16 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8953_l17: l17 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
		};

		pm8953_l19: l19 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1350000>;
		};

		pm8953_l22: l22 {
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2850000>;
		};

		pm8953_l23: l23 {
			regulator-min-microvolt = <975000>;
			regulator-max-microvolt = <1225000>;
		};
	};
};

&sdhc_1 {
	vmmc-supply = <&pm8953_l8>;
	vqmmc-supply = <&pm8953_l5>;

	status = "okay";
};

&sdhc_2 {
	vmmc-supply = <&pm8953_l11>;
	vqmmc-supply = <&pm8953_l12>;

	cd-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_off>;
	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;

	status = "okay";
};

&tlmm {
	gpio-reserved-ranges = <0 4>, <135 4>;

	ts_int_active: ts-int-active-state {
		pins = "gpio65";
		function = "gpio";
		drive-strength = <8>;
		bias-pull-up;
	};

	ts_reset_active: ts-reset-active-state {
		pins = "gpio64";
		function = "gpio";
		drive-strength = <0x08>;
		bias-pull-up;
	};
};

&usb3 {
	status = "okay";
};

&usb3_dwc3 {
	dr_mode = "peripheral";
};

&wcnss {
	vddpx-supply = <&pm8953_l5>;

	status = "okay";
};

&wcnss_iris {
	compatible = "qcom,wcn3660b";

	vddxo-supply = <&pm8953_l7>;
	vddrfa-supply = <&pm8953_l19>;
	vddpa-supply = <&pm8953_l9>;
	vdddig-supply = <&pm8953_l5>;
};
