Re: [PATCH 8/8] iio: magnetometer: ak8975: make use of the macros from bits.h
From: Joshua Crofts
Date: Sat May 09 2026 - 05:16:06 EST
On Sat, 9 May 2026 at 11:08, Nuno Sá <noname.nuno@xxxxxxxxx> wrote:
>
> On Thu, 2026-05-07 at 16:35 +0200, Joshua Crofts via B4 Relay wrote:
> > From: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> >
> > Make use of BIT() and GENMASK() where it makes sense.
> >
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> > Co-developed-by: Joshua Crofts <joshua.crofts1@xxxxxxxxx>
> > Signed-off-by: Joshua Crofts <joshua.crofts1@xxxxxxxxx>
> > ---
>
> Small nit, anyways:
>
> Reviewed-by: Nuno Sá <nuno.sa@xxxxxxxxxx>
>
> > drivers/iio/magnetometer/ak8975.c | 26 +++++++++++---------------
> > 1 file changed, 11 insertions(+), 15 deletions(-)
> >
> > diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
> > index
> > d11f025e146d098508f35ef31c1ccad544612535..d8d9f706f96bae3be19e8db17b9473e6e0eef4fc
> > 100644
> > --- a/drivers/iio/magnetometer/ak8975.c
> > +++ b/drivers/iio/magnetometer/ak8975.c
> > @@ -45,8 +45,7 @@
> > #define AK8975_REG_INFO 0x01
> >
> > #define AK8975_REG_ST1 0x02
> > -#define AK8975_REG_ST1_DRDY_SHIFT 0
> > -#define AK8975_REG_ST1_DRDY_MASK (1 << AK8975_REG_ST1_DRDY_SHIFT)
> > +#define AK8975_REG_ST1_DRDY_MASK BIT(0)
> >
> > #define AK8975_REG_HXL 0x03
> > #define AK8975_REG_HXH 0x04
> > @@ -55,15 +54,12 @@
> > #define AK8975_REG_HZL 0x07
> > #define AK8975_REG_HZH 0x08
> > #define AK8975_REG_ST2 0x09
> > -#define AK8975_REG_ST2_DERR_SHIFT 2
> > -#define AK8975_REG_ST2_DERR_MASK (1 << AK8975_REG_ST2_DERR_SHIFT)
> > +#define AK8975_REG_ST2_DERR_MASK BIT(2)
> >
> > -#define AK8975_REG_ST2_HOFL_SHIFT 3
> > -#define AK8975_REG_ST2_HOFL_MASK (1 << AK8975_REG_ST2_HOFL_SHIFT)
> > +#define AK8975_REG_ST2_HOFL_MASK BIT(3)
> >
> > #define AK8975_REG_CNTL 0x0A
> > -#define AK8975_REG_CNTL_MODE_SHIFT 0
> > -#define AK8975_REG_CNTL_MODE_MASK (0xF << AK8975_REG_CNTL_MODE_SHIFT)
> > +#define AK8975_REG_CNTL_MODE_MASK GENMASK(3, 0)
> > #define AK8975_REG_CNTL_MODE_POWER_DOWN 0x00
> > #define AK8975_REG_CNTL_MODE_ONCE 0x01
> > #define AK8975_REG_CNTL_MODE_SELF_TEST 0x08
> > @@ -95,8 +91,7 @@
> >
> > #define AK09912_REG_ST1 0x10
> >
> > -#define AK09912_REG_ST1_DRDY_SHIFT 0
> > -#define AK09912_REG_ST1_DRDY_MASK (1 << AK09912_REG_ST1_DRDY_SHIFT)
> > +#define AK09912_REG_ST1_DRDY_MASK BIT(0)
> >
> > #define AK09912_REG_HXL 0x11
> > #define AK09912_REG_HXH 0x12
> > @@ -107,8 +102,7 @@
> > #define AK09912_REG_TMPS 0x17
> >
> > #define AK09912_REG_ST2 0x18
> > -#define AK09912_REG_ST2_HOFL_SHIFT 3
> > -#define AK09912_REG_ST2_HOFL_MASK (1 << AK09912_REG_ST2_HOFL_SHIFT)
> > +#define AK09912_REG_ST2_HOFL_MASK BIT(3)
> >
> > #define AK09912_REG_CNTL1 0x30
> >
> > @@ -117,8 +111,7 @@
> > #define AK09912_REG_CNTL_MODE_ONCE 0x01
> > #define AK09912_REG_CNTL_MODE_SELF_TEST 0x10
> > #define AK09912_REG_CNTL_MODE_FUSE_ROM 0x1F
> > -#define AK09912_REG_CNTL2_MODE_SHIFT 0
> > -#define AK09912_REG_CNTL2_MODE_MASK (0x1F << AK09912_REG_CNTL2_MODE_SHIFT)
> > +#define AK09912_REG_CNTL2_MODE_MASK GENMASK(4, 0)
> >
> > #define AK09912_REG_CNTL3 0x32
> >
> > @@ -848,7 +841,10 @@ static const struct iio_chan_spec ak8975_channels[] = {
> > IIO_CHAN_SOFT_TIMESTAMP(AK8975_SCAN_TS),
> > };
> >
> > -static const unsigned long ak8975_scan_masks[] = { 0x7, 0 };
> > +static const unsigned long ak8975_scan_masks[] = {
> > + BIT(AK8975_SCAN_X) | BIT(AK8975_SCAN_Y) | BIT(AK8975_SCAN_Z),
>
> Small nit: But maybe GENMASK().
Well, actually it was decided to add an enum and just do a bitwise
OR of the three BIT() macros for better readability.
https://lore.kernel.org/linux-iio/20260506181216.049f87f8@jic23-huawei/
--
Kind regards
CJD