Il 2026-05-25 14:12 Neha Malcom Francis ha scritto:
On Sat, 23 May 2026 15:04:25 +0200, Federico Amedeo Izzo
<[email protected]> wrote:
diff --git a/drivers/ufs/ufs-qcom.c b/drivers/ufs/ufs-qcom.c
index dc40ee62daf..0e2e45f1075 100644
--- a/drivers/ufs/ufs-qcom.c
+++ b/drivers/ufs/ufs-qcom.c
@@ -561,6 +562,19 @@ static int ufs_qcom_init(struct ufs_hba *hba)
priv->hba = hba;
+ /* enable regulators */
+ err = regulator_set_enable(priv->vcc, true);
+ if (err && err != -ENOSYS)
+ dev_warn(hba->dev, "failed to enable regulator
vcc-supply:%d\n", err);
+
+ err = regulator_set_enable(priv->vccq, true);
+ if (err && err != -ENOSYS)
+ dev_warn(hba->dev, "failed to enable regulator
vccq-supply:%d\n", err);
+
+ err = regulator_set_enable(priv->vccq2, true);
+ if (err && err != -ENOSYS)
+ dev_warn(hba->dev, "failed to enable regulator
vccq2-supply:%d\n", err);
vccq2 is optional right? Is it verified that the optional code route
will never
return ENOSYS and there is handling in regulator_set_enable for NULL
regulators?
Hi,
vccq2 is indeed optional, if it's not present, regulator_set_enable()
will handle the NULL regulator and return -ENOSYS.
The warning is skipped for -ENOSYS as we don't want to print warnings
for non existing regulators,
Below is a section of regulator_set_enable() from regulator_uclass.c
int regulator_set_enable(struct udevice *dev, bool enable)
{
const struct dm_regulator_ops *ops = dev_get_driver_ops(dev);
struct dm_regulator_uclass_plat *uc_pdata;
int ret, old_enable = 0;
if (!ops || !ops->set_enable)
return -ENOSYS;
[...]
Greetings,
Federico Amedeo Izzo