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

	backlight: gpio-backlight {
		compatible = "gpio-backlight";

		gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;

		default-on;

		pinctrl-names = "default";
		pinctrl-0 = <&backlight_enable_active>;
		pinctrl-1 = <&backlight_enable_sleep>;
	};

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

&mdss {
	status = "okay";
};

&mdss_dsi0 {
	vdda-supply = <&pm8953_s3>;
	vddio-supply = <&pm8953_l6>;

	status = "okay";

	panel@0 {
		compatible = "boe,tv101wum-ll2";
		reg = <0>;

		vsp-supply = <&lab>;
		vsn-supply = <&ibb>;
		reset-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;

		backlight = <&backlight>;

		pinctrl-names = "default";
		pinctrl-0 = <&panel_reset_active>;
		pinctrl-1 = <&panel_reset_sleep>;

		port {
			panel_in: endpoint {
				remote-endpoint = <&mdss_dsi0_out>;
			};
		};
	};
};

&mdss_dsi0_out {
	remote-endpoint = <&panel_in>;
	data-lanes = <0 1 2 3>;
};

&mdss_dsi0_phy {
	vcca-supply = <&pm8953_l3>;

	status = "okay";
};

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

&ibb {
	regulator-min-microvolt = <4600000>;
	regulator-max-microvolt = <6000000>;
	qcom,discharge-resistor-kohms = <32>;
};

&lab {
	regulator-min-microvolt = <4600000>;
	regulator-max-microvolt = <6000000>;
	qcom,soft-start-us = <800>;
};

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

	backlight_enable_active: backlight-enable-active-state {
		pins = "gpio16";
		function = "gpio";
		drive-strength = <8>;
		bias-disable;
		output-high;
	};

	backlight_enable_sleep: backlight-enable-sleep-state {
		pins = "gpio16";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-down;
	};

	panel_reset_active: panel-reset-active-state {
		pins = "gpio61";
		function = "gpio";
		drive-strength = <8>;
		bias-disable;
		output-high;
	};

	panel_reset_sleep: panel-reset-sleep-state {
		pins = "gpio61";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-down;
	};

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