arm64: dts: qcom: glymur-crd: Enable USB support

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>
This commit is contained in:
Wesley Cheng 2026-03-20 12:56:53 +02:00 committed by Bjorn Andersson
parent 4eee57dd4d
commit c8b6302945

View File

@ -11,4 +11,218 @@
/ {
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";
};