* [PATCH v4 1/2] regulator: qcom-rpmh-regulator: fix regulator mode mismatch
2026-05-23 13:04 [PATCH v4 0/2] Add regulator support to qcom-ufs driver Federico Amedeo Izzo via B4 Relay
@ 2026-05-23 13:04 ` Federico Amedeo Izzo via B4 Relay
2026-05-23 13:04 ` [PATCH v4 2/2] ufs: qcom: add ufs host regulator support Federico Amedeo Izzo via B4 Relay
` (3 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Federico Amedeo Izzo via B4 Relay @ 2026-05-23 13:04 UTC (permalink / raw)
To: Sumit Garg, u-boot-qcom, u-boot
Cc: Neil Armstrong, Bhupesh Sharma, Neha Malcom Francis,
Casey Connolly, Tom Rini, Marek Vasut, Federico Amedeo Izzo,
Julien Stephan, Jaehoon Chung, Peng Fan, Luca Weiss,
Aswin Murugan
From: Federico Amedeo Izzo <federico@izzo.pro>
Initial regulator mode was read from dts but never applied.
This caused a mismatch between saved mode and actual regulator mode.
Apply the current mode from priv->mode during enable() and move
rpmh_regulator_vrm_set_mode function before rpmh_regulator_set_enable_state().
Signed-off-by: Federico Amedeo Izzo <federico@izzo.pro>
---
drivers/power/regulator/qcom-rpmh-regulator.c | 106 ++++++++++++++------------
1 file changed, 56 insertions(+), 50 deletions(-)
diff --git a/drivers/power/regulator/qcom-rpmh-regulator.c b/drivers/power/regulator/qcom-rpmh-regulator.c
index 4d65aae1690..f789b5b6f86 100644
--- a/drivers/power/regulator/qcom-rpmh-regulator.c
+++ b/drivers/power/regulator/qcom-rpmh-regulator.c
@@ -295,6 +295,56 @@ static int rpmh_regulator_vrm_get_value(struct udevice *rdev)
return vreg->uv;
}
+static int rpmh_regulator_vrm_set_mode_bypass(struct rpmh_vreg *vreg,
+ unsigned int mode, bool bypassed)
+{
+ struct tcs_cmd cmd = {
+ .addr = vreg->addr + RPMH_REGULATOR_REG_VRM_MODE,
+ };
+ struct dm_regulator_mode *pmic_mode;
+ int i;
+
+ if (mode > REGULATOR_MODE_HPM)
+ return -EINVAL;
+
+ for (i = 0; i < vreg->hw_data->n_modes; i++) {
+ pmic_mode = &vreg->hw_data->pmic_mode_map[i];
+ if (pmic_mode->id == mode)
+ break;
+ }
+ if (pmic_mode->id != mode) {
+ printf("Invalid mode %d\n", mode);
+ return -EINVAL;
+ }
+
+ if (bypassed)
+ // XXX: should have a version check for PMIC4 but we don't have any yet
+ // and we don't use bypass mode
+ cmd.data = PMIC5_BOB_MODE_PASS;
+ else
+ cmd.data = pmic_mode->register_value;
+
+ return rpmh_regulator_send_request(vreg, &cmd, true);
+}
+
+static int rpmh_regulator_vrm_set_mode(struct udevice *rdev,
+ int mode)
+{
+ struct rpmh_vreg *vreg = dev_get_priv(rdev);
+ int ret;
+
+ debug("%s: set_mode %d (current %d)\n", rdev->name, mode, vreg->mode);
+
+ if (mode == vreg->mode)
+ return 0;
+
+ ret = rpmh_regulator_vrm_set_mode_bypass(vreg, mode, vreg->bypassed);
+ if (!ret)
+ vreg->mode = mode;
+
+ return ret;
+}
+
static int rpmh_regulator_is_enabled(struct udevice *rdev)
{
struct rpmh_vreg *vreg = dev_get_priv(rdev);
@@ -331,6 +381,12 @@ static int rpmh_regulator_set_enable_state(struct udevice *rdev,
debug("%s: set_enable %d (current %d)\n", rdev->name, enable,
vreg->enabled);
+ if (vreg->mode != -EINVAL) {
+ ret = rpmh_regulator_vrm_set_mode_bypass(vreg, vreg->mode, vreg->bypassed);
+ if (ret < 0)
+ return ret;
+ }
+
if (vreg->enabled == -EINVAL &&
vreg->uv != -ENOTRECOVERABLE) {
ret = _rpmh_regulator_vrm_set_value(rdev,
@@ -346,56 +402,6 @@ static int rpmh_regulator_set_enable_state(struct udevice *rdev,
return ret;
}
-static int rpmh_regulator_vrm_set_mode_bypass(struct rpmh_vreg *vreg,
- unsigned int mode, bool bypassed)
-{
- struct tcs_cmd cmd = {
- .addr = vreg->addr + RPMH_REGULATOR_REG_VRM_MODE,
- };
- struct dm_regulator_mode *pmic_mode;
- int i;
-
- if (mode > REGULATOR_MODE_HPM)
- return -EINVAL;
-
- for (i = 0; i < vreg->hw_data->n_modes; i++) {
- pmic_mode = &vreg->hw_data->pmic_mode_map[i];
- if (pmic_mode->id == mode)
- break;
- }
- if (pmic_mode->id != mode) {
- printf("Invalid mode %d\n", mode);
- return -EINVAL;
- }
-
- if (bypassed)
- // XXX: should have a version check for PMIC4 but we don't have any yet
- // and we don't use bypass mode
- cmd.data = PMIC5_BOB_MODE_PASS;
- else
- cmd.data = pmic_mode->register_value;
-
- return rpmh_regulator_send_request(vreg, &cmd, true);
-}
-
-static int rpmh_regulator_vrm_set_mode(struct udevice *rdev,
- int mode)
-{
- struct rpmh_vreg *vreg = dev_get_priv(rdev);
- int ret;
-
- debug("%s: set_mode %d (current %d)\n", rdev->name, mode, vreg->mode);
-
- if (mode == vreg->mode)
- return 0;
-
- ret = rpmh_regulator_vrm_set_mode_bypass(vreg, mode, vreg->bypassed);
- if (!ret)
- vreg->mode = mode;
-
- return ret;
-}
-
static int rpmh_regulator_vrm_get_pmic_mode(struct rpmh_vreg *vreg, int *pmic_mode)
{
struct tcs_cmd cmd = {
--
2.54.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v4 2/2] ufs: qcom: add ufs host regulator support
2026-05-23 13:04 [PATCH v4 0/2] Add regulator support to qcom-ufs driver Federico Amedeo Izzo via B4 Relay
2026-05-23 13:04 ` [PATCH v4 1/2] regulator: qcom-rpmh-regulator: fix regulator mode mismatch Federico Amedeo Izzo via B4 Relay
@ 2026-05-23 13:04 ` Federico Amedeo Izzo via B4 Relay
2026-05-25 12:12 ` Neha Malcom Francis
2026-05-26 14:01 ` [PATCH v4 0/2] Add regulator support to qcom-ufs driver Casey Connolly
` (2 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Federico Amedeo Izzo via B4 Relay @ 2026-05-23 13:04 UTC (permalink / raw)
To: Sumit Garg, u-boot-qcom, u-boot
Cc: Neil Armstrong, Bhupesh Sharma, Neha Malcom Francis,
Casey Connolly, Tom Rini, Marek Vasut, Federico Amedeo Izzo,
Julien Stephan, Jaehoon Chung, Peng Fan, Luca Weiss,
Aswin Murugan
From: Federico Amedeo Izzo <federico@izzo.pro>
The qcom UFS driver works without touching the regulators on most platforms
as ABL leaves them already configured and enabled.
On some SC7280 phones with UFS 3.1 like nothing-spacewar, vcc regulator is
not enabled by ABL, so we need to configure and enable it to use the UFS
storage.
Tested on nothing-spacewar and motorola-dubai using Tauchgang U-Boot.
Signed-off-by: Federico Amedeo Izzo <federico@izzo.pro>
---
drivers/ufs/ufs-qcom.c | 25 +++++++++++++++++++++++++
drivers/ufs/ufs-qcom.h | 4 ++++
2 files changed, 29 insertions(+)
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
@@ -16,6 +16,7 @@
#include <generic-phy.h>
#include <asm/gpio.h>
#include <interconnect.h>
+#include <power/regulator.h>
#include <linux/bitops.h>
#include <linux/delay.h>
@@ -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);
+
/* setup clocks */
ufs_qcom_setup_clocks(hba, true, PRE_CHANGE);
@@ -651,6 +665,17 @@ static int ufs_qcom_probe(struct udevice *dev)
dev_err(dev, "Warning: cannot get reset GPIO\n");
}
+ ret = device_get_supply_regulator(dev, "vcc-supply", &priv->vcc);
+ if (ret)
+ dev_warn(dev, "failed to get regulator vcc-supply:%d\n", ret);
+
+ ret = device_get_supply_regulator(dev, "vccq-supply", &priv->vccq);
+ if (ret)
+ dev_warn(dev, "failed to get regulator vccq-supply:%d\n", ret);
+
+ /* vccq2 is optional on UFS2 and missing on UFS3 and later */
+ device_get_supply_regulator(dev, "vccq2-supply", &priv->vccq2);
+
ret = ufshcd_probe(dev, &ufs_qcom_hba_ops);
if (ret) {
dev_err(dev, "ufshcd_probe() failed, ret:%d\n", ret);
diff --git a/drivers/ufs/ufs-qcom.h b/drivers/ufs/ufs-qcom.h
index de957ae60f3..115565db7e9 100644
--- a/drivers/ufs/ufs-qcom.h
+++ b/drivers/ufs/ufs-qcom.h
@@ -134,6 +134,10 @@ struct ufs_qcom_priv {
struct clk_bulk clks;
bool is_clks_enabled;
+ struct udevice *vcc;
+ struct udevice *vccq;
+ struct udevice *vccq2;
+
struct ufs_hw_version hw_ver;
/* Reset control of HCI */
--
2.54.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v4 2/2] ufs: qcom: add ufs host regulator support
2026-05-23 13:04 ` [PATCH v4 2/2] ufs: qcom: add ufs host regulator support Federico Amedeo Izzo via B4 Relay
@ 2026-05-25 12:12 ` Neha Malcom Francis
2026-05-25 19:41 ` Federico Amedeo Izzo
0 siblings, 1 reply; 10+ messages in thread
From: Neha Malcom Francis @ 2026-05-25 12:12 UTC (permalink / raw)
To: Federico Amedeo Izzo
Cc: Sumit Garg, u-boot-qcom, u-boot, Neil Armstrong, Bhupesh Sharma,
Neha Malcom Francis, Casey Connolly, Tom Rini, Marek Vasut,
Julien Stephan, Jaehoon Chung, Peng Fan, Luca Weiss,
Aswin Murugan
On Sat, 23 May 2026 15:04:25 +0200, Federico Amedeo Izzo <federico@izzo.pro> 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?
--
Neha Malcom Francis <n-francis@ti.com>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 2/2] ufs: qcom: add ufs host regulator support
2026-05-25 12:12 ` Neha Malcom Francis
@ 2026-05-25 19:41 ` Federico Amedeo Izzo
2026-05-26 6:56 ` Neha Malcom Francis
2026-05-26 6:59 ` Neha Malcom Francis
0 siblings, 2 replies; 10+ messages in thread
From: Federico Amedeo Izzo @ 2026-05-25 19:41 UTC (permalink / raw)
To: Neha Malcom Francis
Cc: Sumit Garg, u-boot-qcom, u-boot, Neil Armstrong, Bhupesh Sharma,
Casey Connolly, Tom Rini, Marek Vasut, Julien Stephan,
Jaehoon Chung, Peng Fan, Luca Weiss, Aswin Murugan
Il 2026-05-25 14:12 Neha Malcom Francis ha scritto:
> On Sat, 23 May 2026 15:04:25 +0200, Federico Amedeo Izzo
> <federico@izzo.pro> 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
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v4 2/2] ufs: qcom: add ufs host regulator support
2026-05-25 19:41 ` Federico Amedeo Izzo
@ 2026-05-26 6:56 ` Neha Malcom Francis
2026-05-26 6:59 ` Neha Malcom Francis
1 sibling, 0 replies; 10+ messages in thread
From: Neha Malcom Francis @ 2026-05-26 6:56 UTC (permalink / raw)
To: Federico Amedeo Izzo
Cc: Neha Malcom Francis, Sumit Garg, u-boot-qcom, u-boot,
Neil Armstrong, Bhupesh Sharma, Casey Connolly, Tom Rini,
Marek Vasut, Julien Stephan, Jaehoon Chung, Peng Fan, Luca Weiss,
Aswin Murugan
On 2026-05-25 21:41:00+02:00, Federico Amedeo Izzo wrote:
> Il 2026-05-25 14:12 Neha Malcom Francis ha scritto:
>
> > On Sat, 23 May 2026 15:04:25 +0200, Federico Amedeo Izzo
> > <federico@izzo.pro> wrote:
> >
> >
> > 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;
> [...]
>
Cool that works. Thanks!
> Greetings,
> Federico Amedeo Izzo
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v4 2/2] ufs: qcom: add ufs host regulator support
2026-05-25 19:41 ` Federico Amedeo Izzo
2026-05-26 6:56 ` Neha Malcom Francis
@ 2026-05-26 6:59 ` Neha Malcom Francis
1 sibling, 0 replies; 10+ messages in thread
From: Neha Malcom Francis @ 2026-05-26 6:59 UTC (permalink / raw)
To: Federico Amedeo Izzo
Cc: Neha Malcom Francis, Sumit Garg, u-boot-qcom, u-boot,
Neil Armstrong, Bhupesh Sharma, Casey Connolly, Tom Rini,
Marek Vasut, Julien Stephan, Jaehoon Chung, Peng Fan, Luca Weiss,
Aswin Murugan
On 2026-05-25 21:41:00+02:00, Federico Amedeo Izzo wrote:
> Il 2026-05-25 14:12 Neha Malcom Francis ha scritto:
>
> > On Sat, 23 May 2026 15:04:25 +0200, Federico Amedeo Izzo
> > <federico@izzo.pro> wrote:
> >
> >
> > 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;
> [...]
>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
> Greetings,
> Federico Amedeo Izzo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 0/2] Add regulator support to qcom-ufs driver
2026-05-23 13:04 [PATCH v4 0/2] Add regulator support to qcom-ufs driver Federico Amedeo Izzo via B4 Relay
2026-05-23 13:04 ` [PATCH v4 1/2] regulator: qcom-rpmh-regulator: fix regulator mode mismatch Federico Amedeo Izzo via B4 Relay
2026-05-23 13:04 ` [PATCH v4 2/2] ufs: qcom: add ufs host regulator support Federico Amedeo Izzo via B4 Relay
@ 2026-05-26 14:01 ` Casey Connolly
2026-06-09 12:49 ` (subset) " Casey Connolly
2026-06-09 12:52 ` Neil Armstrong
4 siblings, 0 replies; 10+ messages in thread
From: Casey Connolly @ 2026-05-26 14:01 UTC (permalink / raw)
To: federico, Sumit Garg, u-boot-qcom, u-boot
Cc: Neil Armstrong, Bhupesh Sharma, Neha Malcom Francis, Tom Rini,
Marek Vasut, Julien Stephan, Jaehoon Chung, Peng Fan, Luca Weiss,
Aswin Murugan
Hi Federico,
On 23/05/2026 15:04, Federico Amedeo Izzo via B4 Relay wrote:
> This series enables UFS support on SC7280 devices with UFS3.1.
> SC7280 devices with UFS2.2 were already working.
>
> The root cause was ABL leaving vcc-supply regulator disabled on UFS3.1
> devices, and enabled on UFS2.2 devices that worked fine without
> regulator support.
Thanks a lot for working on this and finding the bug in the regulator
driver!
>
> Signed-off-by: Federico Amedeo Izzo <federico@izzo.pro>
Reviewed-by: Casey Connolly <casey.connolly@linaro.org>
> ---
> Changes in v4:
> - Improve regulator mode fix: apply current mode during enable
> - Remove regulator mode code from qcom-ufs driver
> - Link to v3: https://patch.msgid.link/20260523-qcom-ufs-regulator-support-v3-0-1be2a80a2577@izzo.pro
>
> Changes in v3:
> - Fix bug causing HPM mode not being applied. Removed LPM/HPM hack
> - Read regulator mode from dts property instead of hardcoding it
> - Link to v2: https://patch.msgid.link/20260521-qcom-ufs-regulator-support-v2-1-d3ec82ae5dbc@izzo.pro
>
> Changes in v2:
> - Add vccq2-supply for UFS2.2 devices without internal eLDO regulator
> - Fix wrong topic
> - Link to v1: https://patch.msgid.link/20260521-dpu-add-dspp-gc-driver-v1-1-83372488cdcf@izzo.pro
>
> To: Sumit Garg <sumit.garg@kernel.org>
> To: u-boot-qcom@groups.io
> To: u-boot@lists.denx.de
> Cc: Jaehoon Chung <jh80.chung@samsung.com>
> Cc: Peng Fan <peng.fan@nxp.com>
> Cc: Casey Connolly <casey.connolly@linaro.org>
> Cc: Neil Armstrong <neil.armstrong@linaro.org>
> Cc: Tom Rini <trini@konsulko.com>
> Cc: Luca Weiss <luca.weiss@fairphone.com>
> Cc: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
> Cc: Federico Amedeo Izzo <federico@izzo.pro>
> Cc: Bhupesh Sharma <bhupesh.linux@gmail.com>
> Cc: Neha Malcom Francis <n-francis@ti.com>
> Cc: Julien Stephan <jstephan@baylibre.com>
> Cc: Marek Vasut <marek.vasut+renesas@mailbox.org>
>
> ---
> Federico Amedeo Izzo (2):
> regulator: qcom-rpmh-regulator: fix regulator mode mismatch
> ufs: qcom: add ufs host regulator support
>
> drivers/power/regulator/qcom-rpmh-regulator.c | 106 ++++++++++++++------------
> drivers/ufs/ufs-qcom.c | 25 ++++++
> drivers/ufs/ufs-qcom.h | 4 +
> 3 files changed, 85 insertions(+), 50 deletions(-)
> ---
> base-commit: 744cf5d4e398c5f657e5c3eeb44d00fa5175dc85
> change-id: 20260521-qcom-ufs-regulator-support-466ea6ad202a
>
> Best regards,
> --
> Federico Amedeo Izzo <federico@izzo.pro>
>
>
--
// Casey (she/her)
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: (subset) [PATCH v4 0/2] Add regulator support to qcom-ufs driver
2026-05-23 13:04 [PATCH v4 0/2] Add regulator support to qcom-ufs driver Federico Amedeo Izzo via B4 Relay
` (2 preceding siblings ...)
2026-05-26 14:01 ` [PATCH v4 0/2] Add regulator support to qcom-ufs driver Casey Connolly
@ 2026-06-09 12:49 ` Casey Connolly
2026-06-09 12:52 ` Neil Armstrong
4 siblings, 0 replies; 10+ messages in thread
From: Casey Connolly @ 2026-06-09 12:49 UTC (permalink / raw)
To: Sumit Garg, u-boot-qcom, u-boot, Federico Amedeo Izzo
Cc: Neil Armstrong, Bhupesh Sharma, Neha Malcom Francis, Tom Rini,
Marek Vasut, Julien Stephan, Jaehoon Chung, Peng Fan, Luca Weiss,
Aswin Murugan
On Sat, 23 May 2026 15:04:23 +0200, Federico Amedeo Izzo wrote:
> This series enables UFS support on SC7280 devices with UFS3.1.
> SC7280 devices with UFS2.2 were already working.
>
> The root cause was ABL leaving vcc-supply regulator disabled on UFS3.1
> devices, and enabled on UFS2.2 devices that worked fine without
> regulator support.
>
> [...]
Applied, thanks!
[1/2] regulator: qcom-rpmh-regulator: fix regulator mode mismatch
https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/commit/5e6f370c1e3d
Best regards,
--
// Casey (she/they)
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v4 0/2] Add regulator support to qcom-ufs driver
2026-05-23 13:04 [PATCH v4 0/2] Add regulator support to qcom-ufs driver Federico Amedeo Izzo via B4 Relay
` (3 preceding siblings ...)
2026-06-09 12:49 ` (subset) " Casey Connolly
@ 2026-06-09 12:52 ` Neil Armstrong
4 siblings, 0 replies; 10+ messages in thread
From: Neil Armstrong @ 2026-06-09 12:52 UTC (permalink / raw)
To: Sumit Garg, u-boot-qcom, u-boot, Federico Amedeo Izzo
Cc: Bhupesh Sharma, Neha Malcom Francis, Casey Connolly, Tom Rini,
Marek Vasut, Julien Stephan, Jaehoon Chung, Peng Fan, Luca Weiss,
Aswin Murugan
Hi,
On Sat, 23 May 2026 15:04:23 +0200, Federico Amedeo Izzo wrote:
> This series enables UFS support on SC7280 devices with UFS3.1.
> SC7280 devices with UFS2.2 were already working.
>
> The root cause was ABL leaving vcc-supply regulator disabled on UFS3.1
> devices, and enabled on UFS2.2 devices that worked fine without
> regulator support.
>
> [...]
Thanks, Applied to https://source.denx.de/u-boot/custodians/u-boot-ufs (u-boot-ufs-next)
[1/2] regulator: qcom-rpmh-regulator: fix regulator mode mismatch
(no commit info)
[2/2] ufs: qcom: add ufs host regulator support
https://source.denx.de/u-boot/custodians/u-boot-ufs/-/commit/8591f01705b513ab51d6762bbabeaa0417033a95
--
Neil
^ permalink raw reply [flat|nested] 10+ messages in thread