On Wed, Jul 12, 2023 at 04:01:55PM +0530, Manivannan Sadhasivam wrote: > Hi, > > This series adds OPP (Operating Points) support to UFSHCD driver and > interconnect support to Qcom UFS driver. > Missed to cc SCSI folks. Will be resending this series. Sorry for the noise. - Mani > Motivation behind adding OPP support is to scale both clocks as well as > regulators/performance state dynamically. Currently, UFSHCD just scales > clock frequency during runtime with the help of "freq-table-hz" property > defined in devicetree. With the addition of OPP tables in devicetree (as > done for Qcom SDM845 and SM8250 SoCs in this series) UFSHCD can now scale > both clocks and performance state of power domain which helps in power > saving. > > For the addition of OPP support to UFSHCD, there are changes required to > the OPP framework and devfreq drivers which are also added in this series. > > Finally, interconnect support is added to Qcom UFS driver for scaling the > interconnect path dynamically. This is required to avoid boot crash in > recent SoCs and also to save power during runtime. More information is > available in patch 13/13. > > Credits > ======= > > This series is a continuation of previous work by Krzysztof Kozlowski [1] > and Brian Masney [2]. Ideally, this could've split into two series (OPP > and interconnect) but since there will be a dependency in the devicetree, > I decided to keep them in a single series. > > Testing > ======= > > This series is tested on 96Boards RB3 (SDM845 SoC) and RB5 (SM8250 SoC) > development boards. > > Merging Strategy > ================ > > An immutable branch might be required between OPP and SCSI trees because of > the API dependency (devfreq too). And I leave it up to the maintainers to > decide. > > Thanks, > Mani > > [1] https://lore.kernel.org/all/20220513061347.46480-1-krzysztof.kozlowski@xxxxxxxxxx/ > [2] https://lore.kernel.org/all/20221117104957.254648-1-bmasney@xxxxxxxxxx/ > > Krzysztof Kozlowski (2): > dt-bindings: ufs: common: add OPP table > arm64: dts: qcom: sdm845: Add OPP table support to UFSHC > > Manivannan Sadhasivam (12): > dt-bindings: opp: Increase maxItems for opp-hz property > arm64: dts: qcom: sdm845: Add missing RPMh power domain to GCC > arm64: dts: qcom: sdm845: Fix the min frequency of "ice_core_clk" > arm64: dts: qcom: sm8250: Add OPP table support to UFSHC > OPP: Introduce dev_pm_opp_find_freq_{ceil/floor}_indexed() APIs > OPP: Introduce dev_pm_opp_get_freq_indexed() API > PM / devfreq: Switch to dev_pm_opp_find_freq_{ceil/floor}_indexed() > APIs > scsi: ufs: core: Add OPP support for scaling clocks and regulators > scsi: ufs: host: Add support for parsing OPP > arm64: dts: qcom: sdm845: Add interconnect paths to UFSHC > arm64: dts: qcom: sm8250: Add interconnect paths to UFSHC > scsi: ufs: qcom: Add support for scaling interconnects > > .../devicetree/bindings/opp/opp-v2-base.yaml | 2 +- > .../devicetree/bindings/ufs/ufs-common.yaml | 34 ++++- > arch/arm64/boot/dts/qcom/sdm845.dtsi | 47 ++++-- > arch/arm64/boot/dts/qcom/sm8250.dtsi | 43 ++++-- > drivers/devfreq/devfreq.c | 14 +- > drivers/opp/core.c | 76 ++++++++++ > drivers/ufs/core/ufshcd.c | 142 ++++++++++++++---- > drivers/ufs/host/ufs-qcom.c | 131 +++++++++++++++- > drivers/ufs/host/ufs-qcom.h | 3 + > drivers/ufs/host/ufshcd-pltfrm.c | 116 ++++++++++++++ > include/linux/pm_opp.h | 26 ++++ > include/ufs/ufshcd.h | 4 + > 12 files changed, 574 insertions(+), 64 deletions(-) > > -- > 2.25.1 > -- மணிவண்ணன் சதாசிவம்