Commit ab590fa6 authored by Bjorn Andersson's avatar Bjorn Andersson Committed by Bjorn Andersson
Browse files

arm64: dts: qcom: sc8180x-primus: Wire up USB Type-C



Wire up pmic_glink and the various components of USB Type-C to get
battery status, orientation switching of SuperSpeed USB, as well as
support for external display on the SC8180X Primus reference device.

Signed-off-by: default avatarBjorn Andersson <quic_bjorande@quicinc.com>
Link: https://lore.kernel.org/r/20230612221456.1887533-3-quic_bjorande@quicinc.com


Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
parent b0246331
Loading
Loading
Loading
Loading
+196 −0
Original line number Diff line number Diff line
@@ -50,6 +50,84 @@ lid-switch {
		};
	};

	pmic-glink {
		compatible = "qcom,sc8180x-pmic-glink", "qcom,pmic-glink";

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

		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_con0_hs: endpoint {
						remote-endpoint = <&usb_prim_role_switch>;
					};
				};

				port@1 {
					reg = <1>;

					pmic_glink_con0_ss: endpoint {
						remote-endpoint = <&usb_prim_qmpphy_out>;
					};
				};

				port@2 {
					reg = <2>;

					pmic_glink_con0_sbu: endpoint {
						remote-endpoint = <&usbprim_sbu_mux>;
					};
				};
			};
		};

		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_con1_hs: endpoint {
						remote-endpoint = <&usb_sec_role_switch>;
					};
				};

				port@1 {
					reg = <1>;

					pmic_glink_con1_ss: endpoint {
						remote-endpoint = <&usb_sec_qmpphy_out>;
					};
				};

				port@2 {
					reg = <2>;

					pmic_glink_con1_sbu: endpoint {
						remote-endpoint = <&usbsec_sbu_mux>;
					};
				};
			};
		};
	};

	reserved-memory {
		rmtfs_mem: rmtfs-region@85500000 {
			compatible = "qcom,rmtfs-mem";
@@ -143,6 +221,44 @@ vreg_s4a_1p8: pm8150-s4 {

		vin-supply = <&vph_pwr>;
	};

	usbprim-sbu-mux {
		compatible = "pericom,pi3usb102", "gpio-sbu-mux";

		enable-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
		select-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH>;

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

		mode-switch;
		orientation-switch;

		port {
			usbprim_sbu_mux: endpoint {
				remote-endpoint = <&pmic_glink_con0_sbu>;
			};
		};
	};

	usbsec-sbu-mux {
		compatible = "pericom,pi3usb102", "gpio-sbu-mux";

		enable-gpios = <&tlmm 188 GPIO_ACTIVE_LOW>;
		select-gpios = <&tlmm 187 GPIO_ACTIVE_HIGH>;

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

		mode-switch;
		orientation-switch;

		port {
			usbsec_sbu_mux: endpoint {
				remote-endpoint = <&pmic_glink_con1_sbu>;
			};
		};
	};
};

&apps_rsc {
@@ -363,6 +479,24 @@ &mdss {
	status = "okay";
};

&mdss_dp0 {
	status = "okay";
};

&mdss_dp0_out {
	data-lanes = <0 1>;
	remote-endpoint = <&usb_prim_qmpphy_dp_in>;
};

&mdss_dp1 {
	status = "okay";
};

&mdss_dp1_out {
	data-lanes = <0 1>;
	remote-endpoint = <&usb_sec_qmpphy_dp_in>;
};

&mdss_edp {
	data-lanes = <0 1 2 3>;

@@ -494,6 +628,8 @@ &usb_prim_qmpphy {
	vdda-phy-supply = <&vreg_l3c_1p2>;
	vdda-pll-supply = <&vreg_l5e_0p88>;

	orientation-switch;

	status = "okay";
};

@@ -505,6 +641,18 @@ &usb_prim_dwc3 {
	dr_mode = "host";
};

&usb_prim_qmpphy_dp_in {
	remote-endpoint = <&mdss_dp0_out>;
};

&usb_prim_qmpphy_out {
	remote-endpoint = <&pmic_glink_con0_ss>;
};

&usb_prim_role_switch {
	remote-endpoint = <&pmic_glink_con0_hs>;
};

&usb_sec_hsphy {
	vdda-pll-supply = <&vreg_l5e_0p88>;
	vdda18-supply = <&vreg_l12a_1p8>;
@@ -517,9 +665,23 @@ &usb_sec_qmpphy {
	vdda-phy-supply = <&vreg_l3c_1p2>;
	vdda-pll-supply = <&vreg_l5e_0p88>;

	orientation-switch;

	status = "okay";
};

&usb_sec_qmpphy_dp_in {
	remote-endpoint = <&mdss_dp1_out>;
};

&usb_sec_qmpphy_out {
	remote-endpoint = <&pmic_glink_con1_ss>;
};

&usb_sec_role_switch {
	remote-endpoint = <&pmic_glink_con1_hs>;
};

&usb_sec {
	status = "okay";
};
@@ -631,6 +793,40 @@ wake-n-pins {
		};
	};

	usbprim_sbu_default: usbprim-sbu-state {
		oe-n-pins {
			pins = "gpio152";
			function = "gpio";
			bias-disable;
			drive-strength = <16>;
			output-high;
		};

		sel-pins {
			pins = "gpio100";
			function = "gpio";
			bias-disable;
			drive-strength = <16>;
		};
	};

	usbsec_sbu_default: usbsec-sbu-state {
		oe-n-pins {
			pins = "gpio188";
			function = "gpio";
			bias-disable;
			drive-strength = <16>;
			output-high;
		};

		sel-pins {
			pins = "gpio187";
			function = "gpio";
			bias-disable;
			drive-strength = <16>;
		};
	};

	tp_int_active_state: tp-int-active-state {
		tp-int-pins {
			pins = "gpio24";