[U-Boot] [PATCH 3/3] power: regulator: Add limits checking while setting current

Simon Glass sjg at chromium.org
Fri Oct 28 03:52:10 CEST 2016


Hi Keethy,

On 26 October 2016 at 20:20, Keerthy <j-keerthy at ti.com> wrote:
>
>
> On Wednesday 26 October 2016 10:01 PM, Simon Glass wrote:
>>
>> Hi Keerthy,
>>
>> On 26 October 2016 at 01:12, Keerthy <j-keerthy at ti.com> wrote:
>>>
>>> Currently the specific set ops functions are directly
>>> called without any check for min/max current limits for a regulator.
>>> Check for them and proceed.
>>>
>>> Signed-off-by: Keerthy <j-keerthy at ti.com>
>>> ---
>>>  drivers/power/regulator/regulator-uclass.c | 5 +++++
>>>  1 file changed, 5 insertions(+)
>>>
>>> diff --git a/drivers/power/regulator/regulator-uclass.c
>>> b/drivers/power/regulator/regulator-uclass.c
>>> index 34087c8..4c4bd29 100644
>>> --- a/drivers/power/regulator/regulator-uclass.c
>>> +++ b/drivers/power/regulator/regulator-uclass.c
>>> @@ -80,6 +80,11 @@ int regulator_get_current(struct udevice *dev)
>>>  int regulator_set_current(struct udevice *dev, int uA)
>>>  {
>>>         const struct dm_regulator_ops *ops = dev_get_driver_ops(dev);
>>> +       struct dm_regulator_uclass_platdata *uc_pdata;
>>> +
>>> +       uc_pdata = dev_get_uclass_platdata(dev);
>>> +       if (uA < uc_pdata->min_uA || uA > uc_pdata->max_uA)
>>> +               return -EINVAL;
>>
>>
>> Do all drivers have these values set?
>
> Simon,
>
> Agree that not all drivers set this. But when someone calls set_current with
> some value there needs to be some boundary conditions for this right? Hence
> i made this patch.
>

I think your patch is good. I'm just worried about breaking boards.
Can you take a quick look at existing users and make sure that won't
happen?

Regards,
Simon


More information about the U-Boot mailing list