]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: qcom: glymur-crd: Enable USB support
authorWesley Cheng <wesley.cheng@oss.qualcomm.com>
Fri, 20 Mar 2026 10:56:53 +0000 (12:56 +0200)
committerBjorn Andersson <andersson@kernel.org>
Thu, 26 Mar 2026 14:40:47 +0000 (09:40 -0500)
The Qualcomm Glymur Compute Reference Device comes with two Type-C ports,
one USB Type-A port, and a fingerprint reader connected over USB. Each
Type-C port is connected to one USB combo PHY and one M31 eUSB2 PHY. The
Type-A port is connected to the USB multi-port controller through one M31
eUSB2 PHY and one USB3 UNI PHY. The fingerprint reader is connected to the
USB_2 controller.

All M31 eUSB2 PHYs have associated eUSB2-to-USB 2.0 repeaters, which are
either integrated in SMB2370 PMICs or provided by dedicated NXP PTN3222
devices.

Enable all required controllers, PHYs, and repeaters, while specifying
their supplies. Also describe the PMIC GLINK graph for the Type-C
connectors.

Signed-off-by: Wesley Cheng <wesley.cheng@oss.qualcomm.com>
Co-developed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Tested-by: Pankaj Patil <pankaj.patil@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260320-dts-qcom-glymur-add-usb-support-v7-2-ba367eda6010@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/glymur-crd.dts

index 0efd9e27c82f6f71741bcceed28977099ea9c589..4df8fc4ec254dd9cf67fa8da49d700e81fab6397 100644 (file)
 / {
        model = "Qualcomm Technologies, Inc. Glymur CRD";
        compatible = "qcom,glymur-crd", "qcom,glymur";
+
+       pmic-glink {
+               compatible = "qcom,glymur-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_hs_in: endpoint {
+                                               remote-endpoint = <&usb_0_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss_in: endpoint {
+                                               remote-endpoint = <&usb_0_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+
+               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_hs_in1: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss_in1: endpoint {
+                                               remote-endpoint = <&usb_1_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&i2c5 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       ptn3222_0: redriver@43 {
+               compatible = "nxp,ptn3222";
+               reg = <0x43>;
+
+               reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
+
+               vdd3v3-supply = <&vreg_l8b_e0_1p50>;
+               vdd1v8-supply = <&vreg_l15b_e0_1p8>;
+
+               #phy-cells = <0>;
+       };
+
+       ptn3222_1: redriver@47 {
+               compatible = "nxp,ptn3222";
+               reg = <0x47>;
+
+               reset-gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
+
+               vdd3v3-supply = <&vreg_l8b_e0_1p50>;
+               vdd1v8-supply = <&vreg_l15b_e0_1p8>;
+
+               #phy-cells = <0>;
+       };
+};
+
+&smb2370_j_e2_eusb2_repeater {
+       vdd18-supply = <&vreg_l15b_e0_1p8>;
+       vdd3-supply = <&vreg_l7b_e0_2p79>;
+};
+
+&smb2370_k_e2_eusb2_repeater {
+       vdd18-supply = <&vreg_l15b_e0_1p8>;
+       vdd3-supply = <&vreg_l7b_e0_2p79>;
+};
+
+&usb_0 {
+       dr_mode = "host";
+
+       status = "okay";
+};
+
+&usb_0_dwc3_hs {
+       remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_0_hsphy {
+       vdd-supply = <&vreg_l3f_e0_0p72>;
+       vdda12-supply = <&vreg_l4h_e0_1p2>;
+
+       phys = <&smb2370_j_e2_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_0_qmpphy {
+       vdda-phy-supply = <&vreg_l4h_e0_1p2>;
+       vdda-pll-supply = <&vreg_l3f_e0_0p72>;
+       refgen-supply = <&vreg_l2f_e0_0p82>;
+
+       status = "okay";
+};
+
+&usb_0_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss_in>;
+};
+
+&usb_1 {
+       dr_mode = "host";
+
+       status = "okay";
+};
+
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_hs_in1>;
+};
+
+&usb_1_hsphy {
+       vdd-supply = <&vreg_l3f_e0_0p72>;
+       vdda12-supply = <&vreg_l4h_e0_1p2>;
+
+       phys = <&smb2370_k_e2_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_1_qmpphy {
+       vdda-phy-supply = <&vreg_l4h_e0_1p2>;
+       vdda-pll-supply = <&vreg_l1h_e0_0p89>;
+       refgen-supply = <&vreg_l2f_e0_0p82>;
+
+       status = "okay";
+};
+
+&usb_1_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss_in1>;
+};
+
+&usb_hs {
+       status = "okay";
+};
+
+&usb_hs_phy {
+       vdd-supply = <&vreg_l2h_e0_0p72>;
+       vdda12-supply = <&vreg_l4h_e0_1p2>;
+
+       phys = <&ptn3222_1>;
+
+       status = "okay";
+};
+
+&usb_mp {
+       status = "okay";
+};
+
+&usb_mp_hsphy0 {
+       vdd-supply = <&vreg_l2h_e0_0p72>;
+       vdda12-supply = <&vreg_l4h_e0_1p2>;
+
+       phys = <&ptn3222_0>;
+
+       status = "okay";
+};
+
+&usb_mp_hsphy1 {
+       vdd-supply = <&vreg_l2h_e0_0p72>;
+       vdda12-supply = <&vreg_l4h_e0_1p2>;
+
+       status = "okay";
+};
+
+&usb_mp_qmpphy0 {
+       vdda-phy-supply = <&vreg_l4h_e0_1p2>;
+       vdda-pll-supply = <&vreg_l2h_e0_0p72>;
+       refgen-supply = <&vreg_l4f_e1_1p08>;
+
+       status = "okay";
+};
+
+&usb_mp_qmpphy1 {
+       vdda-phy-supply = <&vreg_l4h_e0_1p2>;
+       vdda-pll-supply = <&vreg_l2h_e0_0p72>;
+       refgen-supply = <&vreg_l4f_e1_1p08>;
+
+       status = "okay";
 };