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

Reply via email to