Re: [PATCH v3 10/16] iio: adc: axp20x_adc: Minor code cleanups
From: Andy Shevchenko
Date: Sun Jun 19 2022 - 06:52:07 EST
On Sat, Jun 18, 2022 at 11:40 PM Aidan MacDonald
<aidanmacdonald.0x0@xxxxxxxxx> wrote:
>
> The code may be clearer if parameters are not re-purposed to hold
> temporary results like register values, so introduce local variables
> as necessary to avoid that. Also, use the common FIELD_PREP macro
FIELD_PREP()
> instead of a hand-rolled version.
...
> #include <linux/property.h>
> #include <linux/regmap.h>
> #include <linux/thermal.h>
> +#include <linux/bitfield.h>
Keep it sorted?
...
> - val = val ? 1 : 0;
> + regval = val ? 1 : 0;
>
I think you may drop these two lines (including blank line) and...
> switch (chan->channel) {
> case AXP20X_GPIO0_V:
> - reg = AXP20X_GPIO10_IN_RANGE_GPIO0;
> - regval = AXP20X_GPIO10_IN_RANGE_GPIO0_VAL(val);
> + regmask = AXP20X_GPIO10_IN_RANGE_GPIO0;
> + regval = FIELD_PREP(AXP20X_GPIO10_IN_RANGE_GPIO0, regval);
...use !!val as an argument here...
> break;
>
> case AXP20X_GPIO1_V:
> - reg = AXP20X_GPIO10_IN_RANGE_GPIO1;
> - regval = AXP20X_GPIO10_IN_RANGE_GPIO1_VAL(val);
> + regmask = AXP20X_GPIO10_IN_RANGE_GPIO1;
> + regval = FIELD_PREP(AXP20X_GPIO10_IN_RANGE_GPIO1, regval);
...and here.
> break;
>
> default:
> return -EINVAL;
> }
--
With Best Regards,
Andy Shevchenko