// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
 * Copyright (c) 2024, Xilin Wu <wuxilin123@gmail.com>
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>

#include "x1e80100.dtsi"
#include "x1e80100-pmics.dtsi"

/ {
	model = "ASUS Vivobook S 15";
	compatible = "asus,vivobook-s15", "qcom,x1e80100";
	chassis-type = "laptop";

	pmic-glink {
		compatible = "qcom,x1e80100-pmic-glink",
			     "qcom,sm8550-pmic-glink",
			     "qcom,pmic-glink";
		orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
				    <&tlmm 123 GPIO_ACTIVE_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;

		/* Left-side port, closer to the screen */
		connector@0 {
			compatible = "usb-c-connector";
			reg = <0>;
			power-role = "dual";
			data-role = "dual";

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

				port@0 {
					reg = <0>;

					pmic_glink_ss0_hs_in: endpoint {
						remote-endpoint = <&usb_1_ss0_dwc3_hs>;
					};
				};

				port@1 {
					reg = <1>;

					pmic_glink_ss0_ss_in: endpoint {
						remote-endpoint = <&usb_1_ss0_qmpphy_out>;
					};
				};
			};
		};

		/* Left-side port, farther from the screen */
		connector@1 {
			compatible = "usb-c-connector";
			reg = <1>;
			power-role = "dual";
			data-role = "dual";

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

				port@0 {
					reg = <0>;

					pmic_glink_ss1_hs_in: endpoint {
						remote-endpoint = <&usb_1_ss1_dwc3_hs>;
					};
				};

				port@1 {
					reg = <1>;

					pmic_glink_ss1_ss_in: endpoint {
						remote-endpoint = <&usb_1_ss1_qmpphy_out>;
					};
				};
			};
		};
	};

	reserved-memory {
		linux,cma {
			compatible = "shared-dma-pool";
			size = <0x0 0x8000000>;
			reusable;
			linux,cma-default;
		};
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";

		regulator-name = "vph_pwr";
		regulator-min-microvolt = <3700000>;
		regulator-max-microvolt = <3700000>;

		regulator-always-on;
		regulator-boot-on;
	};

	vreg_edp_3p3: regulator-edp-3p3 {
		compatible = "regulator-fixed";

		regulator-name = "VREG_EDP_3P3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

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

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

		regulator-always-on;
		regulator-boot-on;
	};

	vreg_nvme: regulator-nvme {
		compatible = "regulator-fixed";

		regulator-name = "VREG_NVME_3P3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

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

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

&apps_rsc {
	regulators-0 {
		compatible = "qcom,pm8550-rpmh-regulators";
		qcom,pmic-id = "b";

		vdd-bob1-supply = <&vph_pwr>;
		vdd-bob2-supply = <&vph_pwr>;
		vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
		vdd-l2-l13-l14-supply = <&vreg_bob1>;
		vdd-l5-l16-supply = <&vreg_bob1>;
		vdd-l6-l7-supply = <&vreg_bob2>;
		vdd-l8-l9-supply = <&vreg_bob1>;
		vdd-l12-supply = <&vreg_s5j_1p2>;
		vdd-l15-supply = <&vreg_s4c_1p8>;
		vdd-l17-supply = <&vreg_bob2>;

		vreg_bob1: bob1 {
			regulator-name = "vreg_bob1";
			regulator-min-microvolt = <3008000>;
			regulator-max-microvolt = <3960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_bob2: bob2 {
			regulator-name = "vreg_bob2";
			regulator-min-microvolt = <2504000>;
			regulator-max-microvolt = <3008000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2b_3p0: ldo2 {
			regulator-name = "vreg_l2b_3p0";
			regulator-min-microvolt = <3072000>;
			regulator-max-microvolt = <3100000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l14b_3p0: ldo14 {
			regulator-name = "vreg_l14b_3p0";
			regulator-min-microvolt = <3072000>;
			regulator-max-microvolt = <3072000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-1 {
		compatible = "qcom,pm8550ve-rpmh-regulators";
		qcom,pmic-id = "c";

		vdd-l1-supply = <&vreg_s5j_1p2>;
		vdd-l2-supply = <&vreg_s1f_0p7>;
		vdd-l3-supply = <&vreg_s1f_0p7>;
		vdd-s4-supply = <&vph_pwr>;

		vreg_s4c_1p8: smps4 {
			regulator-name = "vreg_s4c_1p8";
			regulator-min-microvolt = <1856000>;
			regulator-max-microvolt = <2000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-2 {
		compatible = "qcom,pmc8380-rpmh-regulators";
		qcom,pmic-id = "d";

		vdd-l1-supply = <&vreg_s1f_0p7>;
		vdd-l2-supply = <&vreg_s1f_0p7>;
		vdd-l3-supply = <&vreg_s4c_1p8>;
		vdd-s1-supply = <&vph_pwr>;

		vreg_l1d_0p8: ldo1 {
			regulator-name = "vreg_l1d_0p8";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <920000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2d_0p9: ldo2 {
			regulator-name = "vreg_l2d_0p9";
			regulator-min-microvolt = <912000>;
			regulator-max-microvolt = <920000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3d_1p8: ldo3 {
			regulator-name = "vreg_l3d_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-3 {
		compatible = "qcom,pmc8380-rpmh-regulators";
		qcom,pmic-id = "e";

		vdd-l2-supply = <&vreg_s1f_0p7>;
		vdd-l3-supply = <&vreg_s5j_1p2>;

		vreg_l2e_0p8: ldo2 {
			regulator-name = "vreg_l2e_0p8";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <920000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3e_1p2: ldo3 {
			regulator-name = "vreg_l3e_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-4 {
		compatible = "qcom,pmc8380-rpmh-regulators";
		qcom,pmic-id = "f";

		vdd-l1-supply = <&vreg_s5j_1p2>;
		vdd-l2-supply = <&vreg_s5j_1p2>;
		vdd-l3-supply = <&vreg_s5j_1p2>;
		vdd-s1-supply = <&vph_pwr>;

		vreg_s1f_0p7: smps1 {
			regulator-name = "vreg_s1f_0p7";
			regulator-min-microvolt = <700000>;
			regulator-max-microvolt = <1100000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-6 {
		compatible = "qcom,pm8550ve-rpmh-regulators";
		qcom,pmic-id = "i";

		vdd-l1-supply = <&vreg_s4c_1p8>;
		vdd-l2-supply = <&vreg_s5j_1p2>;
		vdd-l3-supply = <&vreg_s1f_0p7>;
		vdd-s1-supply = <&vph_pwr>;
		vdd-s2-supply = <&vph_pwr>;

		vreg_l3i_0p8: ldo3 {
			regulator-name = "vreg_l3i_0p8";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <920000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-7 {
		compatible = "qcom,pm8550ve-rpmh-regulators";
		qcom,pmic-id = "j";

		vdd-l1-supply = <&vreg_s1f_0p7>;
		vdd-l2-supply = <&vreg_s5j_1p2>;
		vdd-l3-supply = <&vreg_s1f_0p7>;
		vdd-s5-supply = <&vph_pwr>;

		vreg_s5j_1p2: smps5 {
			regulator-name = "vreg_s5j_1p2";
			regulator-min-microvolt = <1256000>;
			regulator-max-microvolt = <1304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l1j_0p8: ldo1 {
			regulator-name = "vreg_l1j_0p8";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <920000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2j_1p2: ldo2 {
			regulator-name = "vreg_l2j_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3j_0p8: ldo3 {
			regulator-name = "vreg_l3j_0p8";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <920000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};
};

&i2c0 {
	clock-frequency = <400000>;
	status = "okay";

	touchpad@15 {
		compatible = "hid-over-i2c";
		reg = <0x15>;

		hid-descr-addr = <0x1>;
		interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;

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

		wakeup-source;
	};
};

&i2c1 {
	clock-frequency = <400000>;
	status = "okay";

	/* PS8830 USB4 Retimer? @ 0x8 */
};

&i2c3 {
	clock-frequency = <400000>;
	status = "okay";

	/* PS8830 USB4 Retimer? @ 0x8 */
};

&i2c5 {
	clock-frequency = <400000>;
	status = "okay";

	keyboard@3a {
		compatible = "hid-over-i2c";
		reg = <0x3a>;

		hid-descr-addr = <0x1>;
		interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;

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

		wakeup-source;
	};

	/* EC? @ 0x5b, 0x76 */
};

&i2c7 {
	clock-frequency = <400000>;
	status = "okay";

	/* PS8830 USB4 Retimer? @ 0x8 */
};

&mdss {
	status = "okay";
};

&mdss_dp3 {
	compatible = "qcom,x1e80100-dp";
	/delete-property/ #sound-dai-cells;

	status = "okay";

	aux-bus {
		panel {
			compatible = "edp-panel";
			power-supply = <&vreg_edp_3p3>;

			port {
				edp_panel_in: endpoint {
					remote-endpoint = <&mdss_dp3_out>;
				};
			};
		};
	};

	ports {
		port@1 {
			reg = <1>;

			mdss_dp3_out: endpoint {
				data-lanes = <0 1 2 3>;
				link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;

				remote-endpoint = <&edp_panel_in>;
			};
		};
	};
};

&mdss_dp3_phy {
	vdda-phy-supply = <&vreg_l3j_0p8>;
	vdda-pll-supply = <&vreg_l2j_1p2>;

	status = "okay";
};

&pcie4 {
	perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
	wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;

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

	status = "okay";
};

&pcie4_phy {
	vdda-phy-supply = <&vreg_l3i_0p8>;
	vdda-pll-supply = <&vreg_l3e_1p2>;

	status = "okay";
};

&pcie6a {
	perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
	wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;

	vddpe-3v3-supply = <&vreg_nvme>;

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

	status = "okay";
};

&pcie6a_phy {
	vdda-phy-supply = <&vreg_l1d_0p8>;
	vdda-pll-supply = <&vreg_l2j_1p2>;

	status = "okay";
};

&qupv3_0 {
	status = "okay";
};

&qupv3_1 {
	status = "okay";
};

&qupv3_2 {
	status = "okay";
};

&remoteproc_adsp {
	firmware-name = "qcom/x1e80100/ASUSTeK/vivobook-s15/qcadsp8380.mbn",
			"qcom/x1e80100/ASUSTeK/vivobook-s15/adsp_dtbs.elf";

	status = "okay";
};

&remoteproc_cdsp {
	firmware-name = "qcom/x1e80100/ASUSTeK/vivobook-s15/qccdsp8380.mbn",
			"qcom/x1e80100/ASUSTeK/vivobook-s15/cdsp_dtbs.elf";

	status = "okay";
};

&smb2360_0_eusb2_repeater {
	vdd18-supply = <&vreg_l3d_1p8>;
	vdd3-supply = <&vreg_l2b_3p0>;
};

&smb2360_1_eusb2_repeater {
	vdd18-supply = <&vreg_l3d_1p8>;
	vdd3-supply = <&vreg_l14b_3p0>;
};

&smb2360_2 {
	status = "disabled";
};

&tlmm {
	gpio-reserved-ranges = <34 2>, /* Unused */
			       <44 4>, /* SPI (TPM) */
			       <238 1>; /* UFS Reset */

	edp_reg_en: edp-reg-en-state {
		pins = "gpio70";
		function = "gpio";
		drive-strength = <16>;
		bias-disable;
	};

	kybd_default: kybd-default-state {
		pins = "gpio67";
		function = "gpio";
		bias-disable;
	};

	nvme_reg_en: nvme-reg-en-state {
		pins = "gpio18";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	pcie4_default: pcie4-default-state {
		clkreq-n-pins {
			pins = "gpio147";
			function = "pcie4_clk";
			drive-strength = <2>;
			bias-pull-up;
		};

		perst-n-pins {
			pins = "gpio146";
			function = "gpio";
			drive-strength = <2>;
			bias-disable;
		};

		wake-n-pins {
			pins = "gpio148";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	pcie6a_default: pcie6a-default-state {
		clkreq-n-pins {
			pins = "gpio153";
			function = "pcie6a_clk";
			drive-strength = <2>;
			bias-pull-up;
		};

		perst-n-pins {
			pins = "gpio152";
			function = "gpio";
			drive-strength = <2>;
			bias-disable;
		};

		wake-n-pins {
			pins = "gpio154";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	tpad_default: tpad-default-state {
		pins = "gpio3";
		function = "gpio";
		bias-disable;
	};
};

&usb_1_ss0_hsphy {
	vdd-supply = <&vreg_l3j_0p8>;
	vdda12-supply = <&vreg_l2j_1p2>;

	phys = <&smb2360_0_eusb2_repeater>;

	status = "okay";
};

&usb_1_ss0_qmpphy {
	vdda-phy-supply = <&vreg_l3e_1p2>;
	vdda-pll-supply = <&vreg_l1j_0p8>;

	orientation-switch;

	status = "okay";
};

&usb_1_ss0 {
	status = "okay";
};

&usb_1_ss0_dwc3 {
	dr_mode = "host";
};

&usb_1_ss0_dwc3_hs {
	remote-endpoint = <&pmic_glink_ss0_hs_in>;
};

&usb_1_ss0_qmpphy_out {
	remote-endpoint = <&pmic_glink_ss0_ss_in>;
};

&usb_1_ss1_hsphy {
	vdd-supply = <&vreg_l3j_0p8>;
	vdda12-supply = <&vreg_l2j_1p2>;

	phys = <&smb2360_1_eusb2_repeater>;

	status = "okay";
};

&usb_1_ss1_qmpphy {
	vdda-phy-supply = <&vreg_l3e_1p2>;
	vdda-pll-supply = <&vreg_l2d_0p9>;

	orientation-switch;

	status = "okay";
};

&usb_1_ss1 {
	status = "okay";
};

&usb_1_ss1_dwc3 {
	dr_mode = "host";
};

&usb_1_ss1_dwc3_hs {
	remote-endpoint = <&pmic_glink_ss1_hs_in>;
};

&usb_1_ss1_qmpphy_out {
	remote-endpoint = <&pmic_glink_ss1_ss_in>;
};
