Re: [PATCH 8/8] iio: magnetometer: ak8975: make use of the macros from bits.h

From: Nuno Sá

Date: Sat May 09 2026 - 05:08:55 EST


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().

> + 0
> +};
>  
>  static const struct iio_info ak8975_info = {
>   .read_raw = &ak8975_read_raw,