"<name>-fixed-regulator" device tree property can be safely removed because below things are fixed or resolved, 1. "<name>-max-microamp" becomes optional property: Undefined "<name>-max-microamp" will not cause initialization fail if "<name>-fixed-regulator" is not defined. 2. Current switching operation (by regulator_set_load) now has rules: Regulators will have undefined current limit if "<name>-fixed-regulator" is not defined. But this is safe because only regulator which has configured current limit from "<name>-max-microamp" property is allowed to change its load. Although "<name>-fixed-regulator" is not used in any dt-bindings in tree, this patch is still safe for regulators already defined "<name>-fixed-regulator". To be more clear, if a regulator defined "<name>-fixed-regulator" before, the behavior difference after this patch is, 1. "<name>-max-microamp": If a regulator defined "<name>-fixed-regulator", it is not necessary to define "<name>-max-microamp" property in device tree and it is expected to have an undefined current limit, i.e., "max_uA" field is zero in struct ufs_vreg. This is exactly the same as patched. 2. "vcc-supply-1p8" or volatge range settings: * For vcc, vccq or vccq2, these three regulators shall not define "<name>-fixed-regulator" because defining it will lead to undefined voltage range and thus voltage switching will be unexpected. * For other regulators with undefined voltage range, voltage range will be still undefined after patched. Therefore this patch is safe for all existed regulators with "<name>-fixed-regulator" property already defined. Signed-off-by: Stanley Chu <stanley.chu@xxxxxxxxxxxx> Reviewed-by: Avri Altman <avri.altman@xxxxxxx> Acked-by: Alim Akhtar <alim.akhtar@xxxxxxxxxxx> --- drivers/scsi/ufs/ufshcd-pltfrm.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.c b/drivers/scsi/ufs/ufshcd-pltfrm.c index 2420e6962219..7b404df965b2 100644 --- a/drivers/scsi/ufs/ufshcd-pltfrm.c +++ b/drivers/scsi/ufs/ufshcd-pltfrm.c @@ -151,11 +151,6 @@ static int ufshcd_populate_vreg(struct device *dev, const char *name, vreg->name = kstrdup(name, GFP_KERNEL); - /* if fixed regulator no need further initialization */ - snprintf(prop_name, MAX_PROP_SIZE, "%s-fixed-regulator", name); - if (of_property_read_bool(np, prop_name)) - goto out; - snprintf(prop_name, MAX_PROP_SIZE, "%s-max-microamp", name); if (of_property_read_u32(np, prop_name, &vreg->max_uA)) { dev_info(dev, "%s: unable to find %s\n", __func__, prop_name); -- 2.18.0