[PATCH v2 00/15] ufs: qcom: Add HS-G4 support

Manivannan Sadhasivam
2022-10-31T18:02:41Z

Hello,

This series adds HS-G4 support to the Qcom UFS driver and PHY driver.
The newer Qcom platforms support configuring the UFS controller and PHY
in dual gears (i.e., controller/PHY can be configured to run in two gear
speeds). This is accomplished by adding two different PHY init sequences
to the PHY driver and the UFS driver requesting the one that's required
based on the platform configuration.

But this requires both the UFS controller and UFS device to agree to a
common gear. For finding the max supported gear, a separate register is
used for the UFS controller and devicetree is used for the UFS device.
Based on the max gear of both, the UFS driver will decide which gear to
use during runtime.

This series has been tested on Qcom RB5 development platform powered by
SM8250 SoC that uses HS-G4.

Merging Strategy:
-----------------

The PHY patches are expected to go through PHY tree and UFS, MAINTAINERS
patches are expected to go through SCSI tree. Finally, the binding and
devicetree patches can go through ARM MSM tree. There is no build dependency
between the patches.

Thanks,
Mani

Changes in v2:

* Collected reviews from Dmitry
* Renamed "max-gear" property to "max-device-gear"
* Used min() for deciding which gear to use instead of open comparision
* Added comment about the old register name

Manivannan Sadhasivam (15):
phy: qcom-qmp-ufs: Move register settings to qmp_phy_cfg_tables struct
phy: qcom-qmp-ufs: Add support for configuring PHY in HS Series B mode
phy: qcom-qmp-ufs: Add support for configuring PHY in HS G4 mode
phy: qcom-qmp-ufs: Add HS G4 mode support to SM8250 SoC
phy: qcom-qmp-ufs: Move HS Rate B register setting to tables_hs_b
dt-bindings: ufs: Add "max-device-gear" property for UFS device
arm64: dts: qcom: qrb5165-rb5: Add max-device-gear property to UFS
node
scsi: ufs: ufs-qcom: Remove un-necessary goto statements
scsi: ufs: ufs-qcom: Remove un-necessary WARN_ON()
scsi: ufs: ufs-qcom: Use bitfields where appropriate
scsi: ufs: ufs-qcom: Use dev_err_probe() for printing probe error
scsi: ufs: ufs-qcom: Fix the Qcom register name for offset 0xD0
scsi: ufs: ufs-qcom: Factor out the logic finding the HS Gear
scsi: ufs: ufs-qcom: Add support for finding HS gear on new UFS
versions
MAINTAINERS: Add myself as the maintainer for Qcom UFS driver

.../devicetree/bindings/ufs/ufs-common.yaml | 5 +
MAINTAINERS | 8 +
arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 1 +
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 350 +++++++++++++-----
drivers/ufs/host/ufs-qcom.c | 175 +++++----
drivers/ufs/host/ufs-qcom.h | 68 ++--
6 files changed, 390 insertions(+), 217 deletions(-)

--
2.25.1