Commit 299038d8 authored by Jens Glathe's avatar Jens Glathe Committed by Bjorn Andersson
Browse files

arm64: dts: qcom: x1e80100-lenovo-yoga-slim7x: add retimers, dp altmode support



comparing with CRD and other dts for a more complete support of the 7X
only retimers, gpios, regulators, dp outputs

Tested-by: default avatarRob Clark <robdclark@gmail.com>
Tested-by: default avatarJos Dehaes <jos.dehaes@gmail.com>
Signed-off-by: default avatarJens Glathe <jens.glathe@oldschoolsolutions.biz>
Reviewed-by: default avatarKonrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250417-slim7x-retimer-v2-1-dbe2dd511137@oldschoolsolutions.biz


Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
parent b970a4dd
Loading
Loading
Loading
Loading
+470 −6
Original line number Diff line number Diff line
@@ -72,7 +72,15 @@ port@1 {
					reg = <1>;

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

				port@2 {
					reg = <2>;

					pmic_glink_ss0_con_sbu_in: endpoint {
						remote-endpoint = <&retimer_ss0_con_sbu_out>;
					};
				};
			};
@@ -101,7 +109,15 @@ port@1 {
					reg = <1>;

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

				port@2 {
					reg = <2>;

					pmic_glink_ss1_con_sbu_in: endpoint {
						remote-endpoint = <&retimer_ss1_con_sbu_out>;
					};
				};
			};
@@ -130,7 +146,15 @@ port@1 {
					reg = <1>;

					pmic_glink_ss2_ss_in: endpoint {
						remote-endpoint = <&usb_1_ss2_qmpphy_out>;
						remote-endpoint = <&retimer_ss2_ss_out>;
					};
				};

				port@2 {
					reg = <2>;

					pmic_glink_ss2_con_sbu_in: endpoint {
						remote-endpoint = <&retimer_ss2_con_sbu_out>;
					};
				};
			};
@@ -226,6 +250,150 @@ vreg_nvme: regulator-nvme {
		regulator-boot-on;
	};

	vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
		compatible = "regulator-fixed";

		regulator-name = "VREG_RTMR0_1P15";
		regulator-min-microvolt = <1150000>;
		regulator-max-microvolt = <1150000>;

		gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
		enable-active-high;

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

		regulator-boot-on;
	};

	vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
		compatible = "regulator-fixed";

		regulator-name = "VREG_RTMR0_1P8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

		gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
		enable-active-high;

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

		regulator-boot-on;
	};

	vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
		compatible = "regulator-fixed";

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

		gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
		enable-active-high;

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

		regulator-boot-on;
	};

	vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
		compatible = "regulator-fixed";

		regulator-name = "VREG_RTMR1_1P15";
		regulator-min-microvolt = <1150000>;
		regulator-max-microvolt = <1150000>;

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

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

		regulator-boot-on;
	};

	vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
		compatible = "regulator-fixed";

		regulator-name = "VREG_RTMR1_1P8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

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

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

		regulator-boot-on;
	};

	vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
		compatible = "regulator-fixed";

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

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

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

		regulator-boot-on;
	};

	vreg_rtmr2_1p15: regulator-rtmr2-1p15 {
		compatible = "regulator-fixed";

		regulator-name = "VREG_RTMR2_1P15";
		regulator-min-microvolt = <1150000>;
		regulator-max-microvolt = <1150000>;

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

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

		regulator-boot-on;
	};

	vreg_rtmr2_1p8: regulator-rtmr2-1p8 {
		compatible = "regulator-fixed";

		regulator-name = "VREG_RTMR2_1P8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

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

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

		regulator-boot-on;
	};

	vreg_rtmr2_3p3: regulator-rtmr2-3p3 {
		compatible = "regulator-fixed";

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

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

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

		regulator-boot-on;
	};

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

@@ -567,6 +735,178 @@ keyboard@3a {
	};
};

&i2c1 {
	clock-frequency = <400000>;

	status = "okay";

	typec-mux@8 {
		compatible = "parade,ps8830";
		reg = <0x08>;

		clocks = <&rpmhcc RPMH_RF_CLK5>;

		vdd-supply = <&vreg_rtmr2_1p15>;
		vdd33-supply = <&vreg_rtmr2_3p3>;
		vdd33-cap-supply = <&vreg_rtmr2_3p3>;
		vddar-supply = <&vreg_rtmr2_1p15>;
		vddat-supply = <&vreg_rtmr2_1p15>;
		vddio-supply = <&vreg_rtmr2_1p8>;

		reset-gpios = <&tlmm 185 GPIO_ACTIVE_LOW>;

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

		orientation-switch;
		retimer-switch;

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

			port@0 {
				reg = <0>;

				retimer_ss2_ss_out: endpoint {
					remote-endpoint = <&pmic_glink_ss2_ss_in>;
				};
			};

			port@1 {
				reg = <1>;

				retimer_ss2_ss_in: endpoint {
					remote-endpoint = <&usb_1_ss2_qmpphy_out>;
				};
			};

			port@2 {
				reg = <2>;

				retimer_ss2_con_sbu_out: endpoint {
					remote-endpoint = <&pmic_glink_ss2_con_sbu_in>;
				};
			};
		};
	};
};

&i2c3 {
	clock-frequency = <400000>;

	status = "okay";

	typec-mux@8 {
		compatible = "parade,ps8830";
		reg = <0x08>;

		clocks = <&rpmhcc RPMH_RF_CLK3>;

		vdd-supply = <&vreg_rtmr0_1p15>;
		vdd33-supply = <&vreg_rtmr0_3p3>;
		vdd33-cap-supply = <&vreg_rtmr0_3p3>;
		vddar-supply = <&vreg_rtmr0_1p15>;
		vddat-supply = <&vreg_rtmr0_1p15>;
		vddio-supply = <&vreg_rtmr0_1p8>;

		reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;

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

		retimer-switch;
		orientation-switch;

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

			port@0 {
				reg = <0>;

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

			port@1 {
				reg = <1>;

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

			port@2 {
				reg = <2>;

				retimer_ss0_con_sbu_out: endpoint {
					remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
				};
			};
		};
	};
};

&i2c7 {
	clock-frequency = <400000>;

	status = "okay";

	typec-mux@8 {
		compatible = "parade,ps8830";
		reg = <0x8>;

		clocks = <&rpmhcc RPMH_RF_CLK4>;

		vdd-supply = <&vreg_rtmr1_1p15>;
		vdd33-supply = <&vreg_rtmr1_3p3>;
		vdd33-cap-supply = <&vreg_rtmr1_3p3>;
		vddar-supply = <&vreg_rtmr1_1p15>;
		vddat-supply = <&vreg_rtmr1_1p15>;
		vddio-supply = <&vreg_rtmr1_1p8>;

		reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;

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

		retimer-switch;
		orientation-switch;

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

			port@0 {
				reg = <0>;

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

			port@1 {
				reg = <1>;

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

			port@2 {
				reg = <2>;

				retimer_ss1_con_sbu_out: endpoint {
					remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
				};
			};

		};
	};
};

&i2c8 {
	clock-frequency = <400000>;

@@ -614,6 +954,33 @@ &mdss {
	status = "okay";
};

&mdss_dp0 {
	status = "okay";
};

&mdss_dp0_out {
	data-lanes = <0 1>;
	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};

&mdss_dp1 {
	status = "okay";
};

&mdss_dp1_out {
	data-lanes = <0 1>;
	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};

&mdss_dp2 {
	status = "okay";
};

&mdss_dp2_out {
	data-lanes = <0 1>;
	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};

&mdss_dp3 {
	/delete-property/ #sound-dai-cells;

@@ -700,6 +1067,37 @@ &pcie6a_phy {
	status = "okay";
};

&pm8550_gpios {
	rtmr0_default: rtmr0-reset-n-active-state {
		pins = "gpio10";
		function = "normal";
		power-source = <1>; /* 1.8V */
		bias-disable;
		input-disable;
		output-enable;
	};

	usb0_3p3_reg_en: usb0-3p3-reg-en-state {
		pins = "gpio11";
		function = "normal";
		power-source = <1>; /* 1.8V */
		bias-disable;
		input-disable;
		output-enable;
	};
};

&pm8550ve_9_gpios {
	usb0_1p8_reg_en: usb0-1p8-reg-en-state {
		pins = "gpio8";
		function = "normal";
		power-source = <1>; /* 1.8V */
		bias-disable;
		input-disable;
		output-enable;
	};
};

&pmc8380_3_gpios {
	edp_bl_en: edp-bl-en-state {
		pins = "gpio4";
@@ -710,6 +1108,17 @@ edp_bl_en: edp-bl-en-state {
	};
};

&pmc8380_5_gpios {
	usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
		pins = "gpio8";
		function = "normal";
		power-source = <1>; /* 1.8V */
		bias-disable;
		input-disable;
		output-enable;
	};
};

&qupv3_0 {
	status = "okay";
};
@@ -918,6 +1327,20 @@ wake-n-pins {
		};
	};

	rtmr1_default: rtmr1-reset-n-active-state {
		pins = "gpio176";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	rtmr2_default: rtmr2-reset-n-active-state {
		pins = "gpio185";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	tpad_default: tpad-default-state {
		pins = "gpio3";
		function = "gpio";
@@ -939,6 +1362,47 @@ reset-n-pins {
		};
	};

	usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state {
		pins = "gpio188";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	usb1_pwr_1p8_reg_en: usb1-pwr-1p8-reg-en-state {
		pins = "gpio175";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	usb1_pwr_3p3_reg_en: usb1-pwr-3p3-reg-en-state {
		pins = "gpio186";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	usb2_pwr_1p15_reg_en: usb2-pwr-1p15-reg-en-state {
		pins = "gpio189";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	usb2_pwr_1p8_reg_en: usb2-pwr-1p8-reg-en-state {
		pins = "gpio126";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	usb2_pwr_3p3_reg_en: usb2-pwr-3p3-reg-en-state {
		pins = "gpio187";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};
};

&uart21 {
@@ -975,7 +1439,7 @@ &usb_1_ss0_dwc3_hs {
};

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

&usb_1_ss1_hsphy {
@@ -1007,7 +1471,7 @@ &usb_1_ss1_dwc3_hs {
};

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

&usb_1_ss2_hsphy {
@@ -1039,5 +1503,5 @@ &usb_1_ss2_dwc3_hs {
};

&usb_1_ss2_qmpphy_out {
	remote-endpoint = <&pmic_glink_ss2_ss_in>;
	remote-endpoint = <&retimer_ss2_ss_in>;
};