Morning Linus, On Fri, 2020-02-21 at 14:49 +0100, Linus Walleij wrote: > On Fri, Feb 14, 2020 at 8:37 AM Matti Vaittinen > <matti.vaittinen@xxxxxxxxxxxxxxxxx> wrote: > > > Many devices have control registers which control some measurable > > property. Often a register contains control field so that change in > > this field causes linear change in the controlled property. It is > > not > > a rare case that user wants to give 'meaningfull' control values > > and > > driver needs to convert them to register field values. Even more > > often user wants to 'see' the currently set value - again in > > meaningfull units - and driver needs to convert the values it reads > > from register to these meaningfull units. > > Rename meaningfull -> meaningful > > > This ideas is stol... borrowed from regulator framework's > > regulator_linear_ranges handling. > > Hehe maybe one day we can move the whole thing to lib/ > but let's take one step at a time. > > > Provide a linear_range helper which can do conversion from user > > value > > to register value 'selector'. > > > > Signed-off-by: Matti Vaittinen <matti.vaittinen@xxxxxxxxxxxxxxxxx> > > --- > > > > Where should we put these? > > This works. > > Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx> Uh.. Sorry but I did already send v3 where I changed the approach to what was suggested by Mark. Eg, I tried pulling the range code out of regulator framework and used that in power/supply too. Basic idea is still the same - but instead of using min_sel + amount of values in range, the version 3 uses min_sel and max_sel as regulators did. That minimized changes to numerous regulator drivers defining ranges. Sorry for making you to do unnecessary reviewing. Best Regards Matti Vaittinen