scsi: ufs: core: Add OPP support for scaling clocks and regulators
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Thu, 12 Oct 2023 17:21:26 +0000 (22:51 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 17 Oct 2023 00:59:21 +0000 (20:59 -0400)
commit930bd77ebe3dc23b18aa49e55e6a515d5663d67a
treece542db864c043990d90edd88cd00c039298fd2f
parente820de1d115fa52c792c78937e11661bd9165465
scsi: ufs: core: Add OPP support for scaling clocks and regulators

UFS core is only scaling the clocks during devfreq scaling and
initialization. But for an optimum power saving, regulators should also be
scaled along with the clocks.

So let's use the OPP framework which supports scaling clocks, regulators,
and performance state using OPP table defined in devicetree. For
accomodating the OPP support, the existing APIs (ufshcd_scale_clks,
ufshcd_is_devfreq_scaling_required and ufshcd_devfreq_scale) are modified
to accept "freq" as an argument which in turn used by the OPP helpers.

The OPP support is added along with the old freq-table based clock scaling
so that the existing platforms work as expected.

Co-developed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/20231012172129.65172-3-manivannan.sadhasivam@linaro.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/core/ufshcd.c
include/ufs/ufshcd.h