* [PATCH v2 0/5] Add UFS support for Glymur Qualcomm SoC
@ 2026-09-18 10:39 Pradeep P V K
2026-09-18 10:39 ` [PATCH v2 1/5] dt-bindings: phy: qcom,sc8280xp-qmp-ufs-phy: Document Glymur QMP UFS PHY Pradeep P V K
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Pradeep P V K @ 2026-09-18 10:39 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Manivannan Sadhasivam, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Alim Akhtar, Avri Altman,
Bart Van Assche, Bjorn Andersson, Konrad Dybcio,
Dmitry Baryshkov, gopikrishna.garmidi, jagadeesh.kona, Abel Vesa
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-scsi,
nitin.rawat, sibi.sankar, Taniya Das, Pradeep P V K,
Konrad Dybcio
This series adds the DT bindings, device tree support for the UFS PHY
and UFS Host Controller, along with the required PHY driver updates to
enable UFS support on the Glymur Qualcomm platform.
This series depends on Glymur LNBB clocks[1] and Glymur QCB platform[2]
series.
[1]: https://lore.kernel.org/all/20260905-glymur-ufs-clk-changes-v1-0-cdff2c67a8c2@oss.qualcomm.com/
[2]: https://lore.kernel.org/all/20260908-glymur-qcb-v3-0-c194c0219218@oss.qualcomm.com/
Signed-off-by: Pradeep P V K <pradeep.pragallapati@oss.qualcomm.com>
---
Changes in v2:
- Added 201.5MHz OPP svs l1 entry [Konrad]
- Addressed minor cosmetic edits [Konrad]
- Sorted references label alphabetically [Konrad]
- Add RB-by for SoC dtsi & board dts [Abel]
- Add RB-by for phy driver changes [Abel]
- Add AB-by for phy driver changes [Konrad]
- Link to v1: https://lore.kernel.org/r/20260911-glymur_ufs_qcb_enablement-v1-0-b9fc5e2ee99a@oss.qualcomm.com
---
Pradeep P V K (5):
dt-bindings: phy: qcom,sc8280xp-qmp-ufs-phy: Document Glymur QMP UFS PHY
scsi: ufs: qcom: dt-bindings: Document Glymur UFS controller
arm64: dts: qcom: glymur: Add UFS nodes
arm64: dts: qcom: glymur-qcb: Enable UFS
phy: qcom-qmp-ufs: Add Glymur support
.../bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml | 2 +
.../devicetree/bindings/ufs/qcom,sm8650-ufshc.yaml | 3 +
arch/arm64/boot/dts/qcom/glymur-qcb.dts | 18 +++
arch/arm64/boot/dts/qcom/glymur.dtsi | 125 ++++++++++++++++++++-
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 99 ++++++++++++++++
5 files changed, 244 insertions(+), 3 deletions(-)
---
base-commit: f2bfbc3554ca6919484030729424b9dee2942d24
change-id: 20260911-glymur_ufs_qcb_enablement-1524a497520b
prerequisite-change-id: 20260904-glymur-ufs-clk-changes-55264e596e6a:v1
prerequisite-patch-id: 934a81749f6e977edb9214104fe2bbf4c7758663
prerequisite-patch-id: d4215d48878aac66f72ef5b6c74d81d1163a596e
prerequisite-patch-id: 28be2089f7836210401b8a68c7cc0ca90d63c375
prerequisite-patch-id: cdf227f5515ad8faec49bde5e0475755a961100f
prerequisite-change-id: 20260711-glymur-qcb-1e2d2bc913fd:v3
prerequisite-patch-id: 53dfb255c51efb63dd26fae3cb30307f0d175ac2
prerequisite-patch-id: 7fa1b965056eaf3b90ce81a537d28c5a2adc73fa
prerequisite-patch-id: 96b042ef08bba0e028c86ea2a473d996880ab38e
prerequisite-patch-id: d2f390b67a2ec320db1e725f4b84b500f1f0400c
Best regards,
--
Pradeep P V K <pradeep.pragallapati@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 1/5] dt-bindings: phy: qcom,sc8280xp-qmp-ufs-phy: Document Glymur QMP UFS PHY
2026-09-18 10:39 [PATCH v2 0/5] Add UFS support for Glymur Qualcomm SoC Pradeep P V K
@ 2026-09-18 10:39 ` Pradeep P V K
2026-09-28 19:29 ` Rob Herring (Arm)
2026-09-18 10:39 ` [PATCH v2 2/5] scsi: ufs: qcom: dt-bindings: Document Glymur UFS controller Pradeep P V K
` (3 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Pradeep P V K @ 2026-09-18 10:39 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Manivannan Sadhasivam, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Alim Akhtar, Avri Altman,
Bart Van Assche, Bjorn Andersson, Konrad Dybcio,
Dmitry Baryshkov, gopikrishna.garmidi, jagadeesh.kona, Abel Vesa
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-scsi,
nitin.rawat, sibi.sankar, Taniya Das, Pradeep P V K
Document the QMP UFS PHY on Glymur SoC.
Signed-off-by: Pradeep P V K <pradeep.pragallapati@oss.qualcomm.com>
---
Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml
index 4efe40c0dc97..e1b19ed42542 100644
--- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml
@@ -38,6 +38,7 @@ properties:
- qcom,kaanapali-qmp-ufs-phy
- const: qcom,sm8750-qmp-ufs-phy
- enum:
+ - qcom,glymur-qmp-ufs-phy
- qcom,hawi-qmp-ufs-phy
- qcom,milos-qmp-ufs-phy
- qcom,msm8996-qmp-ufs-phy
@@ -109,6 +110,7 @@ allOf:
compatible:
contains:
enum:
+ - qcom,glymur-qmp-ufs-phy
- qcom,hawi-qmp-ufs-phy
- qcom,milos-qmp-ufs-phy
- qcom,msm8998-qmp-ufs-phy
--
2.34.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 2/5] scsi: ufs: qcom: dt-bindings: Document Glymur UFS controller
2026-09-18 10:39 [PATCH v2 0/5] Add UFS support for Glymur Qualcomm SoC Pradeep P V K
2026-09-18 10:39 ` [PATCH v2 1/5] dt-bindings: phy: qcom,sc8280xp-qmp-ufs-phy: Document Glymur QMP UFS PHY Pradeep P V K
@ 2026-09-18 10:39 ` Pradeep P V K
2026-09-28 19:30 ` Rob Herring (Arm)
2026-10-06 2:16 ` Martin K. Petersen
2026-09-18 10:39 ` [PATCH v2 3/5] arm64: dts: qcom: glymur: Add UFS nodes Pradeep P V K
` (2 subsequent siblings)
4 siblings, 2 replies; 10+ messages in thread
From: Pradeep P V K @ 2026-09-18 10:39 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Manivannan Sadhasivam, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Alim Akhtar, Avri Altman,
Bart Van Assche, Bjorn Andersson, Konrad Dybcio,
Dmitry Baryshkov, gopikrishna.garmidi, jagadeesh.kona, Abel Vesa
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-scsi,
nitin.rawat, sibi.sankar, Taniya Das, Pradeep P V K
Document UFS Host Controller on Glymur SoC. Glymur UFSHC has a
multi-queue command (MCQ) register range in addition to the standard
one. So, both reg entries are required.
Signed-off-by: Pradeep P V K <pradeep.pragallapati@oss.qualcomm.com>
---
Documentation/devicetree/bindings/ufs/qcom,sm8650-ufshc.yaml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/ufs/qcom,sm8650-ufshc.yaml b/Documentation/devicetree/bindings/ufs/qcom,sm8650-ufshc.yaml
index d03295806657..f132b1a9ebc2 100644
--- a/Documentation/devicetree/bindings/ufs/qcom,sm8650-ufshc.yaml
+++ b/Documentation/devicetree/bindings/ufs/qcom,sm8650-ufshc.yaml
@@ -16,6 +16,7 @@ select:
contains:
enum:
- qcom,eliza-ufshc
+ - qcom,glymur-ufshc
- qcom,hawi-ufshc
- qcom,kaanapali-ufshc
- qcom,maili-ufshc
@@ -30,6 +31,7 @@ properties:
items:
- enum:
- qcom,eliza-ufshc
+ - qcom,glymur-ufshc
- qcom,hawi-ufshc
- qcom,kaanapali-ufshc
- qcom,maili-ufshc
@@ -80,6 +82,7 @@ allOf:
contains:
enum:
- qcom,eliza-ufshc
+ - qcom,glymur-ufshc
- qcom,maili-ufshc
- qcom,nord-ufshc
then:
--
2.34.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 3/5] arm64: dts: qcom: glymur: Add UFS nodes
2026-09-18 10:39 [PATCH v2 0/5] Add UFS support for Glymur Qualcomm SoC Pradeep P V K
2026-09-18 10:39 ` [PATCH v2 1/5] dt-bindings: phy: qcom,sc8280xp-qmp-ufs-phy: Document Glymur QMP UFS PHY Pradeep P V K
2026-09-18 10:39 ` [PATCH v2 2/5] scsi: ufs: qcom: dt-bindings: Document Glymur UFS controller Pradeep P V K
@ 2026-09-18 10:39 ` Pradeep P V K
2026-09-18 10:39 ` [PATCH v2 4/5] arm64: dts: qcom: glymur-qcb: Enable UFS Pradeep P V K
2026-09-18 10:39 ` [PATCH v2 5/5] phy: qcom-qmp-ufs: Add Glymur support Pradeep P V K
4 siblings, 0 replies; 10+ messages in thread
From: Pradeep P V K @ 2026-09-18 10:39 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Manivannan Sadhasivam, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Alim Akhtar, Avri Altman,
Bart Van Assche, Bjorn Andersson, Konrad Dybcio,
Dmitry Baryshkov, gopikrishna.garmidi, jagadeesh.kona, Abel Vesa
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-scsi,
nitin.rawat, sibi.sankar, Taniya Das, Pradeep P V K
Add UFS PHY and UFS host controller nodes for Glymur SoC.
Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Signed-off-by: Pradeep P V K <pradeep.pragallapati@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/glymur.dtsi | 125 ++++++++++++++++++++++++++++++++++-
1 file changed, 122 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi b/arch/arm64/boot/dts/qcom/glymur.dtsi
index 624a9edd602c..b1d91903b0dc 100644
--- a/arch/arm64/boot/dts/qcom/glymur.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur.dtsi
@@ -812,9 +812,9 @@ gcc: clock-controller@100000 {
<0>, /* QUSB4 1 PHY RX 1 */
<0>, /* QUSB4 2 PHY RX 0 */
<0>, /* QUSB4 2 PHY RX 1 */
- <0>, /* UFS PHY RX Symbol 0 */
- <0>, /* UFS PHY RX Symbol 1 */
- <0>, /* UFS PHY TX Symbol 0 */
+ <&ufs_mem_phy 0>,
+ <&ufs_mem_phy 1>,
+ <&ufs_mem_phy 2>,
<&usb_0_qmpphy QMP_USB43DP_USB3_PIPE_CLK>,
<&usb_1_qmpphy QMP_USB43DP_USB3_PIPE_CLK>,
<&usb_2_qmpphy QMP_USB43DP_USB3_PIPE_CLK>,
@@ -4103,6 +4103,125 @@ rng: rng@10c3000 {
reg = <0x0 0x010c3000 0x0 0x1000>;
};
+ ufs_mem_phy: phy@1d80000 {
+ compatible = "qcom,glymur-qmp-ufs-phy";
+ reg = <0x0 0x01d80000 0x0 0x2000>;
+
+ clocks = <&rpmhcc RPMH_CXO_CLK>,
+ <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
+ /* UFS and PCIE4 share the same clkref */
+ <&tcsr TCSR_PCIE_4_CLKREF_EN>;
+
+ clock-names = "ref",
+ "ref_aux",
+ "qref";
+
+ resets = <&ufs_mem_hc 0>;
+ reset-names = "ufsphy";
+
+ #clock-cells = <1>;
+ #phy-cells = <0>;
+
+ status = "disabled";
+ };
+
+ ufs_mem_hc: ufshc@1d84000 {
+ compatible = "qcom,glymur-ufshc",
+ "qcom,ufshc",
+ "jedec,ufs-2.0";
+ reg = <0x0 0x01d84000 0x0 0x3000>,
+ <0x0 0x01da0000 0x0 0x15000>;
+ reg-names = "std",
+ "mcq";
+
+ interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
+
+ clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
+ <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+ <&gcc GCC_UFS_PHY_AHB_CLK>,
+ <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
+ <&rpmhcc RPMH_LN_BB_CLK3>,
+ <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
+ <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
+ <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
+ clock-names = "core_clk",
+ "bus_aggr_clk",
+ "iface_clk",
+ "core_clk_unipro",
+ "ref_clk",
+ "tx_lane0_sync_clk",
+ "rx_lane0_sync_clk",
+ "rx_lane1_sync_clk";
+
+ operating-points-v2 = <&ufs_opp_table>;
+
+ resets = <&gcc GCC_UFS_PHY_BCR>;
+ reset-names = "rst";
+
+ interconnects = <&aggre2_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+ <&hsc_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+ &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+ interconnect-names = "ufs-ddr",
+ "cpu-ufs";
+
+ power-domains = <&gcc GCC_UFS_PHY_GDSC>;
+ required-opps = <&rpmhpd_opp_nom>;
+
+ iommus = <&apps_smmu 0x460 0>;
+ dma-coherent;
+
+ msi-parent = <&gic_its 0x460>;
+ lanes-per-direction = <2>;
+
+ phys = <&ufs_mem_phy>;
+ phy-names = "ufsphy";
+
+ #reset-cells = <1>;
+
+ status = "disabled";
+
+ ufs_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-100000000 {
+ opp-hz = /bits/ 64 <100000000>,
+ /bits/ 64 <0>,
+ /bits/ 64 <0>,
+ /bits/ 64 <100000000>,
+ /bits/ 64 <0>,
+ /bits/ 64 <0>,
+ /bits/ 64 <0>,
+ /bits/ 64 <0>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ };
+
+ opp-201500000 {
+ opp-hz = /bits/ 64 <201500000>,
+ /bits/ 64 <0>,
+ /bits/ 64 <0>,
+ /bits/ 64 <201500000>,
+ /bits/ 64 <0>,
+ /bits/ 64 <0>,
+ /bits/ 64 <0>,
+ /bits/ 64 <0>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ };
+
+ opp-403000000 {
+ opp-hz = /bits/ 64 <403000000>,
+ /bits/ 64 <0>,
+ /bits/ 64 <0>,
+ /bits/ 64 <403000000>,
+ /bits/ 64 <0>,
+ /bits/ 64 <0>,
+ /bits/ 64 <0>,
+ /bits/ 64 <0>;
+ required-opps = <&rpmhpd_opp_nom>;
+ };
+ };
+ };
+
cryptobam: dma-controller@1dc4000 {
compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
reg = <0x0 0x01dc4000 0x0 0x28000>;
--
2.34.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 4/5] arm64: dts: qcom: glymur-qcb: Enable UFS
2026-09-18 10:39 [PATCH v2 0/5] Add UFS support for Glymur Qualcomm SoC Pradeep P V K
` (2 preceding siblings ...)
2026-09-18 10:39 ` [PATCH v2 3/5] arm64: dts: qcom: glymur: Add UFS nodes Pradeep P V K
@ 2026-09-18 10:39 ` Pradeep P V K
2026-09-18 13:01 ` Konrad Dybcio
2026-09-18 10:39 ` [PATCH v2 5/5] phy: qcom-qmp-ufs: Add Glymur support Pradeep P V K
4 siblings, 1 reply; 10+ messages in thread
From: Pradeep P V K @ 2026-09-18 10:39 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Manivannan Sadhasivam, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Alim Akhtar, Avri Altman,
Bart Van Assche, Bjorn Andersson, Konrad Dybcio,
Dmitry Baryshkov, gopikrishna.garmidi, jagadeesh.kona, Abel Vesa
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-scsi,
nitin.rawat, sibi.sankar, Taniya Das, Pradeep P V K
Enable UFS for glymur-qcb board.
Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Signed-off-by: Pradeep P V K <pradeep.pragallapati@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/glymur-qcb.dts | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/glymur-qcb.dts b/arch/arm64/boot/dts/qcom/glymur-qcb.dts
index 17d8ff3aed23..f17181bfeadb 100644
--- a/arch/arm64/boot/dts/qcom/glymur-qcb.dts
+++ b/arch/arm64/boot/dts/qcom/glymur-qcb.dts
@@ -697,3 +697,21 @@ bluetooth {
vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
};
};
+
+&ufs_mem_hc {
+ reset-gpios = <&tlmm 250 GPIO_ACTIVE_LOW>;
+
+ vcc-supply = <&vreg_l17b_e0_2p4>;
+ vcc-max-microamp = <1200000>;
+ vccq-supply = <&vreg_l12b_e0_1p14>;
+ vccq-max-microamp = <1200000>;
+
+ status = "okay";
+};
+
+&ufs_mem_phy {
+ vdda-phy-supply = <&vreg_l1c_e1_0p82>;
+ vdda-pll-supply = <&vreg_l4f_e1_1p08>;
+
+ status = "okay";
+};
--
2.34.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 5/5] phy: qcom-qmp-ufs: Add Glymur support
2026-09-18 10:39 [PATCH v2 0/5] Add UFS support for Glymur Qualcomm SoC Pradeep P V K
` (3 preceding siblings ...)
2026-09-18 10:39 ` [PATCH v2 4/5] arm64: dts: qcom: glymur-qcb: Enable UFS Pradeep P V K
@ 2026-09-18 10:39 ` Pradeep P V K
4 siblings, 0 replies; 10+ messages in thread
From: Pradeep P V K @ 2026-09-18 10:39 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Manivannan Sadhasivam, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Alim Akhtar, Avri Altman,
Bart Van Assche, Bjorn Andersson, Konrad Dybcio,
Dmitry Baryshkov, gopikrishna.garmidi, jagadeesh.kona, Abel Vesa
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-scsi,
nitin.rawat, sibi.sankar, Taniya Das, Pradeep P V K,
Konrad Dybcio
Add the init sequence tables and config for the UFS QMP phy found in
the Glymur SoC.
Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Acked-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Pradeep P V K <pradeep.pragallapati@oss.qualcomm.com>
---
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 99 +++++++++++++++++++++++++++++++++
1 file changed, 99 insertions(+)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
index d4aca22c181e..ffef8801143a 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
@@ -93,6 +93,59 @@ static const unsigned int ufsphy_v7_regs_layout[QPHY_LAYOUT_SIZE] = {
[QPHY_PCS_POWER_DOWN_CONTROL] = QPHY_V7_PCS_UFS_POWER_DOWN_CONTROL,
};
+static const struct qmp_phy_init_tbl glymur_ufsphy_rx[] = {
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_UCDR_FO_GAIN_RATE2, 0x0c),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_UCDR_FO_GAIN_RATE4, 0x0c),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_UCDR_SO_GAIN_RATE4, 0x04),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_EQ_OFFSET_ADAPTOR_CNTRL1, 0x14),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_UCDR_PI_CONTROLS, 0x07),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_OFFSET_ADAPTOR_CNTRL3, 0x0e),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_UCDR_FASTLOCK_COUNT_HIGH_RATE4, 0x02),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_UCDR_FASTLOCK_FO_GAIN_RATE4, 0x1c),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_UCDR_FASTLOCK_SO_GAIN_RATE4, 0x06),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_VGA_CAL_MAN_VAL, 0xce),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_EQU_ADAPTOR_CNTRL4, 0x0f),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE_0_1_B0, 0xce),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE_0_1_B1, 0xce),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE_0_1_B2, 0x18),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE_0_1_B3, 0x1a),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE_0_1_B4, 0x0f),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE_0_1_B6, 0x60),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE_0_1_B7, 0x62),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE2_B3, 0x9a),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE2_B6, 0xe2),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE2_B7, 0x06),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE3_B0, 0x1b),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE3_B1, 0x1b),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE3_B2, 0x98),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE3_B3, 0x9b),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE3_B4, 0x2a),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE3_B5, 0x12),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE3_B7, 0x06),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE3_B8, 0x01),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SA_B0, 0x93),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SA_B1, 0x93),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SA_B2, 0x60),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SA_B3, 0x99),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SA_B4, 0x5f),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SA_B5, 0x92),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SA_B6, 0xe3),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SA_B7, 0x06),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SB_B0, 0x24),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SB_B1, 0x24),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SB_B2, 0xe0),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SB_B3, 0x99),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SB_B4, 0x5f),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SB_B5, 0x92),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SB_B6, 0xfb),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_MODE_RATE4_SB_B7, 0x06),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_UCDR_SO_SATURATION, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_UCDR_PI_CTRL1, 0x94),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_TERM_BW_CTRL0, 0xfa),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_DLL0_FTUNE_CTRL, 0x30),
+ QMP_PHY_INIT_CFG(QSERDES_UFS_V7_RX_SIGDET_CAL_TRIM, 0x77),
+};
+
static const struct qmp_phy_init_tbl milos_ufsphy_serdes[] = {
QMP_PHY_INIT_CFG(QSERDES_V6_COM_SYSCLK_EN_SEL, 0xd9),
QMP_PHY_INIT_CFG(QSERDES_V6_COM_CMN_CONFIG_1, 0x16),
@@ -1236,6 +1289,11 @@ static inline void qphy_clrbits(void __iomem *base, u32 offset, u32 val)
}
/* Regulator bulk data with load values for specific configurations */
+static const struct regulator_bulk_data glymur_ufsphy_vreg_l[] = {
+ { .supply = "vdda-phy", .init_load_uA = 217130 },
+ { .supply = "vdda-pll", .init_load_uA = 18340 },
+};
+
static const struct regulator_bulk_data milos_ufsphy_vreg_l[] = {
{ .supply = "vdda-phy", .init_load_uA = 140120 },
{ .supply = "vdda-pll", .init_load_uA = 18340 },
@@ -1348,6 +1406,44 @@ static const struct qmp_ufs_offsets qmp_ufs_offsets_v7 = {
.rx2 = 0x3000,
};
+static const struct qmp_phy_cfg glymur_ufsphy_cfg = {
+ .lanes = 2,
+
+ .offsets = &qmp_ufs_offsets_v6,
+ .max_supported_gear = UFS_HS_G5,
+
+ .tbls = {
+ .serdes = sm8750_ufsphy_serdes,
+ .serdes_num = ARRAY_SIZE(sm8750_ufsphy_serdes),
+ .tx = sm8750_ufsphy_tx,
+ .tx_num = ARRAY_SIZE(sm8750_ufsphy_tx),
+ .rx = glymur_ufsphy_rx,
+ .rx_num = ARRAY_SIZE(glymur_ufsphy_rx),
+ .pcs = sm8750_ufsphy_pcs,
+ .pcs_num = ARRAY_SIZE(sm8750_ufsphy_pcs),
+ },
+
+ .tbls_hs_b = {
+ .pcs = sm8750_ufsphy_hs_b_pcs,
+ .pcs_num = ARRAY_SIZE(sm8750_ufsphy_hs_b_pcs),
+ },
+
+ .tbls_hs_overlay[0] = {
+ .pcs = sm8750_ufsphy_g4_pcs,
+ .pcs_num = ARRAY_SIZE(sm8750_ufsphy_g4_pcs),
+ .max_gear = UFS_HS_G4,
+ },
+ .tbls_hs_overlay[1] = {
+ .pcs = sm8650_ufsphy_g5_pcs,
+ .pcs_num = ARRAY_SIZE(sm8650_ufsphy_g5_pcs),
+ .max_gear = UFS_HS_G5,
+ },
+
+ .vreg_list = glymur_ufsphy_vreg_l,
+ .num_vregs = ARRAY_SIZE(glymur_ufsphy_vreg_l),
+ .regs = ufsphy_v6_regs_layout,
+};
+
static const struct qmp_phy_cfg milos_ufsphy_cfg = {
.lanes = 2,
@@ -2395,6 +2491,9 @@ static int qmp_ufs_probe(struct platform_device *pdev)
static const struct of_device_id qmp_ufs_of_match_table[] = {
{
+ .compatible = "qcom,glymur-qmp-ufs-phy",
+ .data = &glymur_ufsphy_cfg,
+ }, {
.compatible = "qcom,hawi-qmp-ufs-phy",
.data = &hawi_ufsphy_cfg,
}, {
--
2.34.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 4/5] arm64: dts: qcom: glymur-qcb: Enable UFS
2026-09-18 10:39 ` [PATCH v2 4/5] arm64: dts: qcom: glymur-qcb: Enable UFS Pradeep P V K
@ 2026-09-18 13:01 ` Konrad Dybcio
0 siblings, 0 replies; 10+ messages in thread
From: Konrad Dybcio @ 2026-09-18 13:01 UTC (permalink / raw)
To: Pradeep P V K, Vinod Koul, Neil Armstrong, Manivannan Sadhasivam,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Alim Akhtar,
Avri Altman, Bart Van Assche, Bjorn Andersson, Konrad Dybcio,
Dmitry Baryshkov, gopikrishna.garmidi, jagadeesh.kona, Abel Vesa
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-scsi,
nitin.rawat, sibi.sankar, Taniya Das
On 9/18/26 12:39 PM, Pradeep P V K wrote:
> Enable UFS for glymur-qcb board.
>
> Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
> Signed-off-by: Pradeep P V K <pradeep.pragallapati@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/5] dt-bindings: phy: qcom,sc8280xp-qmp-ufs-phy: Document Glymur QMP UFS PHY
2026-09-18 10:39 ` [PATCH v2 1/5] dt-bindings: phy: qcom,sc8280xp-qmp-ufs-phy: Document Glymur QMP UFS PHY Pradeep P V K
@ 2026-09-28 19:29 ` Rob Herring (Arm)
0 siblings, 0 replies; 10+ messages in thread
From: Rob Herring (Arm) @ 2026-09-28 19:29 UTC (permalink / raw)
To: Pradeep P V K
Cc: linux-arm-msm, jagadeesh.kona, gopikrishna.garmidi, linux-scsi,
sibi.sankar, Bart Van Assche, linux-kernel, Abel Vesa,
Alim Akhtar, Neil Armstrong, Conor Dooley, devicetree, linux-phy,
Avri Altman, Konrad Dybcio, Vinod Koul, nitin.rawat,
Krzysztof Kozlowski, Manivannan Sadhasivam, Bjorn Andersson,
Dmitry Baryshkov, Taniya Das
On Fri, 18 Sep 2026 16:09:07 +0530, Pradeep P V K wrote:
> Document the QMP UFS PHY on Glymur SoC.
>
> Signed-off-by: Pradeep P V K <pradeep.pragallapati@oss.qualcomm.com>
> ---
> Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 2/5] scsi: ufs: qcom: dt-bindings: Document Glymur UFS controller
2026-09-18 10:39 ` [PATCH v2 2/5] scsi: ufs: qcom: dt-bindings: Document Glymur UFS controller Pradeep P V K
@ 2026-09-28 19:30 ` Rob Herring (Arm)
2026-10-06 2:16 ` Martin K. Petersen
1 sibling, 0 replies; 10+ messages in thread
From: Rob Herring (Arm) @ 2026-09-28 19:30 UTC (permalink / raw)
To: Pradeep P V K
Cc: Neil Armstrong, sibi.sankar, devicetree, Taniya Das, linux-phy,
Abel Vesa, nitin.rawat, Dmitry Baryshkov, Bjorn Andersson,
Alim Akhtar, Konrad Dybcio, gopikrishna.garmidi, linux-arm-msm,
linux-scsi, Avri Altman, jagadeesh.kona, linux-kernel,
Bart Van Assche, Manivannan Sadhasivam, Krzysztof Kozlowski,
Conor Dooley, Vinod Koul
On Fri, 18 Sep 2026 16:09:08 +0530, Pradeep P V K wrote:
> Document UFS Host Controller on Glymur SoC. Glymur UFSHC has a
> multi-queue command (MCQ) register range in addition to the standard
> one. So, both reg entries are required.
>
> Signed-off-by: Pradeep P V K <pradeep.pragallapati@oss.qualcomm.com>
> ---
> Documentation/devicetree/bindings/ufs/qcom,sm8650-ufshc.yaml | 3 +++
> 1 file changed, 3 insertions(+)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 2/5] scsi: ufs: qcom: dt-bindings: Document Glymur UFS controller
2026-09-18 10:39 ` [PATCH v2 2/5] scsi: ufs: qcom: dt-bindings: Document Glymur UFS controller Pradeep P V K
2026-09-28 19:30 ` Rob Herring (Arm)
@ 2026-10-06 2:16 ` Martin K. Petersen
1 sibling, 0 replies; 10+ messages in thread
From: Martin K. Petersen @ 2026-10-06 2:16 UTC (permalink / raw)
To: Pradeep P V K
Cc: Vinod Koul, Neil Armstrong, Manivannan Sadhasivam, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Alim Akhtar, Avri Altman,
Bart Van Assche, Bjorn Andersson, Konrad Dybcio,
Dmitry Baryshkov, gopikrishna.garmidi, jagadeesh.kona, Abel Vesa,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-scsi,
nitin.rawat, sibi.sankar, Taniya Das
Pradeep,
> Document UFS Host Controller on Glymur SoC. Glymur UFSHC has a
> multi-queue command (MCQ) register range in addition to the standard
> one. So, both reg entries are required.
Acked-by: Martin K. Petersen <mkp@kernel.org>
--
Martin K. Petersen
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-10-06 2:16 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-18 10:39 [PATCH v2 0/5] Add UFS support for Glymur Qualcomm SoC Pradeep P V K
2026-09-18 10:39 ` [PATCH v2 1/5] dt-bindings: phy: qcom,sc8280xp-qmp-ufs-phy: Document Glymur QMP UFS PHY Pradeep P V K
2026-09-28 19:29 ` Rob Herring (Arm)
2026-09-18 10:39 ` [PATCH v2 2/5] scsi: ufs: qcom: dt-bindings: Document Glymur UFS controller Pradeep P V K
2026-09-28 19:30 ` Rob Herring (Arm)
2026-10-06 2:16 ` Martin K. Petersen
2026-09-18 10:39 ` [PATCH v2 3/5] arm64: dts: qcom: glymur: Add UFS nodes Pradeep P V K
2026-09-18 10:39 ` [PATCH v2 4/5] arm64: dts: qcom: glymur-qcb: Enable UFS Pradeep P V K
2026-09-18 13:01 ` Konrad Dybcio
2026-09-18 10:39 ` [PATCH v2 5/5] phy: qcom-qmp-ufs: Add Glymur support Pradeep P V K
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®