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,