[PATCH V6 0/4] Add DT-based gear and rate limiting support

Ram Kumar Dwivedi posted 4 patches 2 weeks ago
.../devicetree/bindings/ufs/ufs-common.yaml   | 16 +++++++++
drivers/ufs/host/ufs-qcom.c                   | 21 ++++++++----
drivers/ufs/host/ufshcd-pltfrm.c              | 33 +++++++++++++++++++
drivers/ufs/host/ufshcd-pltfrm.h              |  1 +
4 files changed, 65 insertions(+), 6 deletions(-)
[PATCH V6 0/4] Add DT-based gear and rate limiting support
Posted by Ram Kumar Dwivedi 2 weeks ago
This patch series adds support for limiting the maximum high-speed
gear and rate used by the UFS controller via device tree properties.

Some platforms may have signal integrity, clock configuration, or
layout issues that prevent reliable operation at higher gears or rates.
This is especially critical in automotive and other platforms where
stability is prioritized over peak performance.

The series follows this logical progression:
1. Document the new DT properties in the common UFS binding
2. Clean up existing redundant code in the qcom driver
3. Add platform-level parsing support for the new properties
4. Integrate the platform support in the qcom driver

This approach makes the functionality available to other UFS host
drivers and provides a cleaner, more maintainable implementation.

Changes from V1: 
- Restructured patch series for better logical flow and maintainability.
- Moved DT bindings to ufs-common.yaml making it available for all UFS 
  controllers.
- Added platform-level support in ufshcd-pltfrm.c for code reusability.
- Separated the cleanup patch to remove redundant hs_rate assignment in
  qcom driver.
- Removed SA8155 DTS changes to keep the series focused on core
  functionality.
- Improved commit messages with better technical rationale.

Changes from V2: 
- Documented default values of limit-rate and limit-hs-gear in DT bindings
  as per Krzysztof's suggestion.

Changes from V3: 
- Changed limit-rate property from numeric values 1 and 2 to string values
  Rate-A and Rate-B for better readability and clarity as suggested by
  Bart and Krzysztof.
- Added Co-developed-by tag for Nitin Rawat in 3rd patch. 

Changes from V4:
- Added the missing argument to the error message while parsing
  limit-rate property.
- Updated the maximum supported value and default for limit-gear
  property to gear 6, as per Krzysztof's and Bart's recommendation.
- Renamed Rate-A and Rate-B to lowercase (rate-a, rate-b) as suggested
  by Krzysztof.

Changes from V5:
- Updated device tree property name from "limit-rate" to "limit-gear-rate"
  to improve clarity and consistency as suggested by Alim Akhtar.
- Renamed function ufshcd_parse_limits() to ufshcd_parse_gear_limits()
  for better alignment with its purpose as suggested by Alim Akhtar.
- Renamed function ufs_qcom_parse_limit() to ufs_qcom_parse_gear_limit()
  for consistency with naming conventions.
- Added Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> to patch 2/4.
- Added Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> to patch 1/4.

Ram Kumar Dwivedi (4):
  ufs: dt-bindings: Document gear and rate limit properties
  ufs: ufs-qcom: Remove redundant re-assignment to hs_rate
  ufs: pltfrm: Add DT support to limit HS gear and gear rate
  ufs: ufs-qcom: Add support for limiting HS gear and rate

 .../devicetree/bindings/ufs/ufs-common.yaml   | 16 +++++++++
 drivers/ufs/host/ufs-qcom.c                   | 21 ++++++++----
 drivers/ufs/host/ufshcd-pltfrm.c              | 33 +++++++++++++++++++
 drivers/ufs/host/ufshcd-pltfrm.h              |  1 +
 4 files changed, 65 insertions(+), 6 deletions(-)

-- 
2.50.1