[PATCH V3 2/2] phy: qcom-qmp-ufs: Add regulator loads for SM8650 and SM8750

Nitin Rawat quic_nitirawa at quicinc.com
Tue Aug 19 23:37:57 PDT 2025



On 8/20/2025 6:19 AM, Dmitry Baryshkov wrote:
> On Wed, Aug 20, 2025 at 03:58:26AM +0530, Nitin Rawat wrote:
>> Add regulator load voting support for SM8650 and SM8750 platforms by
>> introducing dedicated regulator bulk data arrays with their load
>> values.
>>
>> The load requirements are:
>> - SM8650: vdda-phy (205mA), vdda-pll (17.5mA)
>> - SM8750: vdda-phy (213mA), vdda-pll (18.3mA)
>>
>> This ensures stable operation and proper power management for these
>> platforms where regulators are shared between the QMP USB PHY and
>> other IP blocks by setting appropriate regulator load currents during PHY
>> operations.
>>
>> Configurations without specific load requirements will continue to work
>> unchanged, as init_load_uA remains zero-initialized when .init_load_uA
>> is not provided.
> 
> Can we please get configuration for the rest of the platforms?

Hi Dmitry,

If you're okay with it, can I merge the configuration for the remaining 
platforms in the next patch series after I complete testing on all 
remaining platforms.

Regards,
Nitin

> 
>>
>> Signed-off-by: Nitin Rawat <quic_nitirawa at quicinc.com>
>> ---
>>   drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 19 +++++++++++++++----
>>   1 file changed, 15 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>> index aaa88ca0ef07..1c3ce0fa6adf 100644
>> --- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>> @@ -1170,6 +1170,17 @@ static const struct regulator_bulk_data qmp_phy_vreg_l[] = {
>>   	{ .supply = "vdda-pll" },
>>   };
>>
>> +/* Regulator bulk data with load values for specific configurations */
>> +static const struct regulator_bulk_data sm8650_ufsphy_vreg_l[] = {
>> +	{ .supply = "vdda-phy", .init_load_uA = 205000 },
>> +	{ .supply = "vdda-pll", .init_load_uA = 17500 },
>> +};
>> +
>> +static const struct regulator_bulk_data sm8750_ufsphy_vreg_l[] = {
>> +	{ .supply = "vdda-phy", .init_load_uA = 213000 },
>> +	{ .supply = "vdda-pll", .init_load_uA = 18300 },
>> +};
>> +
>>   static const struct qmp_ufs_offsets qmp_ufs_offsets = {
>>   	.serdes		= 0,
>>   	.pcs		= 0xc00,
>> @@ -1638,8 +1649,8 @@ static const struct qmp_phy_cfg sm8650_ufsphy_cfg = {
>>   		.max_gear	= UFS_HS_G5,
>>   	},
>>
>> -	.vreg_list		= qmp_phy_vreg_l,
>> -	.num_vregs		= ARRAY_SIZE(qmp_phy_vreg_l),
>> +	.vreg_list		= sm8650_ufsphy_vreg_l,
>> +	.num_vregs		= ARRAY_SIZE(sm8650_ufsphy_vreg_l),
>>   	.regs			= ufsphy_v6_regs_layout,
>>   };
>>
>> @@ -1676,8 +1687,8 @@ static const struct qmp_phy_cfg sm8750_ufsphy_cfg = {
>>   		.max_gear	= UFS_HS_G5,
>>   	},
>>
>> -	.vreg_list		= qmp_phy_vreg_l,
>> -	.num_vregs		= ARRAY_SIZE(qmp_phy_vreg_l),
>> +	.vreg_list		= sm8750_ufsphy_vreg_l,
>> +	.num_vregs		= ARRAY_SIZE(sm8750_ufsphy_vreg_l),
>>   	.regs			= ufsphy_v6_regs_layout,
>>
>>   };
>> --
>> 2.48.1
>>
> 




More information about the linux-phy mailing list