On Wed, 14 Dec 2022 11:15:03 +0800 carlos.song@xxxxxxx wrote: > From: Carlos Song <carlos.song@xxxxxxx> > > +/-1200uT is a MAGN sensor full measurement range. Magnetometer scale > is the magnetic sensitivity parameter. It is referenced as 0.1uT > according to datasheet and magnetometer channel unit is Gauss in > sysfs-bus-iio documentation. Gauss and uTesla unit conversion > relationship as follows: 0.1uT = 0.001Gs. > > Set magnetometer scale and available magnetometer scale as fixed 0.001Gs. > > Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU") > Signed-off-by: Carlos Song <carlos.song@xxxxxxx> > --- as for all the other patches. 3,4,5 look fine to me other than that. So I'll pick them up once the patch 1/2 split is sorted out. Jonathan > Changes for V2: > - Modify the magnetometer sensitivity unit to be consistent with the > documentation as 0.001g > - Rework commit log > Changes for V3: > - Modify the magnetometer sensitivity unit "g" to standard unit "Gs" > - Check and confirm uscale value is correct. The readback of > MAGN scale is 0.001 Gs > - Rework commit log > > diff --git a/drivers/iio/imu/fxos8700_core.c b/drivers/iio/imu/fxos8700_core.c > index 7b370bd643a1..8320a3b6f942 100644 > --- a/drivers/iio/imu/fxos8700_core.c > +++ b/drivers/iio/imu/fxos8700_core.c > @@ -351,7 +351,7 @@ static int fxos8700_set_scale(struct fxos8700_data *data, > struct device *dev = regmap_get_device(data->regmap); > > if (t == FXOS8700_MAGN) { > - dev_err(dev, "Magnetometer scale is locked at 1200uT\n"); > + dev_err(dev, "Magnetometer scale is locked at 0.001Gs\n"); > return -EINVAL; > } > > @@ -396,7 +396,7 @@ static int fxos8700_get_scale(struct fxos8700_data *data, > static const int scale_num = ARRAY_SIZE(fxos8700_accel_scale); > > if (t == FXOS8700_MAGN) { > - *uscale = 1200; /* Magnetometer is locked at 1200uT */ > + *uscale = 1000; /* Magnetometer is locked at 0.001Gs */ > return 0; > } > > @@ -587,7 +587,7 @@ static IIO_CONST_ATTR(in_accel_sampling_frequency_available, > static IIO_CONST_ATTR(in_magn_sampling_frequency_available, > "1.5625 6.25 12.5 50 100 200 400 800"); > static IIO_CONST_ATTR(in_accel_scale_available, "0.000244 0.000488 0.000976"); > -static IIO_CONST_ATTR(in_magn_scale_available, "0.000001200"); > +static IIO_CONST_ATTR(in_magn_scale_available, "0.001000"); > > static struct attribute *fxos8700_attrs[] = { > &iio_const_attr_in_accel_sampling_frequency_available.dev_attr.attr,