On Tue, Jan 29, 2019 at 11:01:56AM +0800, Axel Lin wrote: > With current n_voltages setting, regulator_list_voltage will return > -EINVAL when selector >=57. The highest selector is 0x41, so the > n_voltages should be 0x41+1, i.e. 66. > > Signed-off-by: Axel Lin <[email protected]> > --- > drivers/regulator/lochnagar-regulator.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/regulator/lochnagar-regulator.c > b/drivers/regulator/lochnagar-regulator.c > index 4962d13659aa..ff97cc50f2eb 100644 > --- a/drivers/regulator/lochnagar-regulator.c > +++ b/drivers/regulator/lochnagar-regulator.c > @@ -194,7 +194,7 @@ static const struct regulator_desc lochnagar_regulators[] > = { > .name = "VDDCORE", > .supply_name = "SYSVDD", > .type = REGULATOR_VOLTAGE, > - .n_voltages = 57, > + .n_voltages = 66, > .ops = &lochnagar_vddcore_ops, > > .id = LOCHNAGAR_VDDCORE, > -- > 2.17.1
Hmm... I think this might need a little more investigation, it does indeed fail at present (amazing that it works upto exactly 1.2V which is common the usecase) but this feels more like a core problem. There are indeed only 57 valid voltage settings as the range is 0x8 - 0x41, but it seems that presently the core treats this less as n_voltages and more like max_selector. Should we perhaps be teaching the core to understand the min_selector instead? Thanks, Charles

