From 7837ceab1ef8d4a88fb218bfa6b042b0b865b15f Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Tue, 23 Jun 2015 15:38:57 -0600 Subject: dm: power: Add regulator flags to centralise auto-set logic Decide when the regulator is set up whether we want to auto-set the voltage or current. This avoids the complex logic spilling into the processing code. Signed-off-by: Simon Glass Tested-by: Przemyslaw Marczak Acked-by: Przemyslaw Marczak --- drivers/power/regulator/regulator-uclass.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'drivers/power/regulator/regulator-uclass.c') diff --git a/drivers/power/regulator/regulator-uclass.c b/drivers/power/regulator/regulator-uclass.c index 31ffd44454..0f1ca77402 100644 --- a/drivers/power/regulator/regulator-uclass.c +++ b/drivers/power/regulator/regulator-uclass.c @@ -319,6 +319,18 @@ static int regulator_pre_probe(struct udevice *dev) uc_pdata->boot_on = fdtdec_get_bool(gd->fdt_blob, offset, "regulator-boot-on"); + /* Those values are optional (-ENODATA if unset) */ + if ((uc_pdata->min_uV != -ENODATA) && + (uc_pdata->max_uV != -ENODATA) && + (uc_pdata->min_uV == uc_pdata->max_uV)) + uc_pdata->flags |= REGULATOR_FLAG_AUTOSET_UV; + + /* Those values are optional (-ENODATA if unset) */ + if ((uc_pdata->min_uA != -ENODATA) && + (uc_pdata->max_uA != -ENODATA) && + (uc_pdata->min_uA == uc_pdata->max_uA)) + uc_pdata->flags |= REGULATOR_FLAG_AUTOSET_UA; + return 0; } -- cgit v1.2.1