Messages in this thread | | | Subject | RE: [PATCH v2] regulator: ad5398: Fix min/max current limit boundary checking | From | Axel Lin <> | Date | Tue, 03 Jul 2012 19:36:13 +0800 |
| |
> >The equation to calculate the selector does not depend on max_uA. > >So I think we don't need to set the requested max_uA. > > > > But, ad5398_set_current_limit() behaves different for min_uA and max_uA with you patch. Is this expected? >
What we want is to set the smallest current supported by this hardware within the range you requested.
Current code uses below equation to choose selector: selector = DIV_ROUND_UP((min_uA - chip->min_uA) * chip->current_level, range_uA);
With this equation, we need to ensure min_uA >= chip->min_uA, otherwise it returns a negative selector.
That is why we need to add: if (min_uA < chip->min_uA) min_uA = chip->min_uA;
Axel
| |