On 18/03/2022 01:10, Sebastian Krzyszkowiak wrote: > Instead of sprinkling the code with magic numbers, put the unit > definitions used by the gauge into a set of macros. Macros are > used instead of simple defines in order to not require floating > point operations for divisions. > > Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@xxxxxxx> > --- > drivers/power/supply/max17042_battery.c | 40 +++++++++++++++---------- > 1 file changed, 24 insertions(+), 16 deletions(-) > > diff --git a/drivers/power/supply/max17042_battery.c b/drivers/power/supply/max17042_battery.c > index ab031bbfbe78..c019d6c52363 100644 > --- a/drivers/power/supply/max17042_battery.c > +++ b/drivers/power/supply/max17042_battery.c > @@ -51,6 +51,15 @@ > > #define MAX17042_VMAX_TOLERANCE 50 /* 50 mV */ > > +#define MAX17042_CURRENT_LSB 1562500ll /* µV */ Is this really long long? The usage in max17042_get_status() is with int operand and result. > +#define MAX17042_CURRENT_RSENSE(x) (x * MAX17042_CURRENT_LSB) /* µV */ > +#define MAX17042_CAPACITY_LSB 5000000ll /* µVh */ > +#define MAX17042_CAPACITY_RSENSE(x) (x * MAX17042_CAPACITY_LSB) /* µVh */ > +#define MAX17042_TIME(x) (x * 5625 / 1000) /* s */ > +#define MAX17042_VOLTAGE(x) (x * 625 / 8) /* µV */ > +#define MAX17042_RESISTANCE(x) (x / 4096) /* Ω */ > +#define MAX17042_TEMPERATURE(x) (x / 256) /* °C */ Please enclose the "x" in (), in each macro Best regards, Krzysztof