summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ufs
diff options
context:
space:
mode:
authorStanley Chu <stanley.chu@mediatek.com>2019-03-28 10:16:26 +0100
committerMartin K. Petersen <martin.petersen@oracle.com>2019-04-04 05:11:35 +0200
commit12e3ffb932dce136343b7c990e46758ea017b194 (patch)
tree436d5d2c761f61a65f84fcd40ce9b67a45a5c0c6 /drivers/scsi/ufs
parentscsi: ufs: Fix regulator load and icc-level configuration (diff)
downloadlinux-12e3ffb932dce136343b7c990e46758ea017b194.tar.xz
linux-12e3ffb932dce136343b7c990e46758ea017b194.zip
scsi: ufs: Change "<name>-max-microamp" to non-mandatory property
In dt-bindings for ufs, "<name>-max-microamp" property indicates current limit and is mandatory if "<name>-fixed-regulator" is not defined on a specified regulator. However, in some platforms, regulators without "<name>-fixed-regulator" property may not need to define their current limit because they may want to define voltage range only for proper voltage switching in different power modes, especially for vcc, vccq or vccq2. Currently missing "<name>-max-microamp" property in device tree will lead initialization to fail, thus such limitation shall be resolved to tolerate this kind of regulators. After resolving this, regulators without "<name>-max-microamp" property will have undefined "max current" value, i.e., zero value in "max_uA" field in struct ufs_vreg. Because we do bypass current switching operation (by regulator_set_load) in case of undefined current limit, this patch shall be safe. Signed-off-by: Stanley Chu <stanley.chu@mediatek.com> Reviewed-by: Avri Altman <avri.altman@wdc.com> Acked-by: Alim Akhtar <alim.akhtar@samsung.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/ufs')
-rw-r--r--drivers/scsi/ufs/ufshcd-pltfrm.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.c b/drivers/scsi/ufs/ufshcd-pltfrm.c
index 81c5d16e4bc0..3444ff83c568 100644
--- a/drivers/scsi/ufs/ufshcd-pltfrm.c
+++ b/drivers/scsi/ufs/ufshcd-pltfrm.c
@@ -158,11 +158,9 @@ static int ufshcd_populate_vreg(struct device *dev, const char *name,
goto out;
snprintf(prop_name, MAX_PROP_SIZE, "%s-max-microamp", name);
- ret = of_property_read_u32(np, prop_name, &vreg->max_uA);
- if (ret) {
- dev_err(dev, "%s: unable to find %s err %d\n",
- __func__, prop_name, ret);
- goto out;
+ if (of_property_read_u32(np, prop_name, &vreg->max_uA)) {
+ dev_info(dev, "%s: unable to find %s\n", __func__, prop_name);
+ vreg->max_uA = 0;
}
if (!strcmp(name, "vcc")) {