drivers/sensor/st: iis2iclx: (fix) convert range into mg

Fix the sensor range setting at runtime which is currently returning error,
converting the SI (ms2) value passed thru SENSOR_ATTR_FULL_SCALE in mg (and
not in g) as this is the unit used in the driver internals.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
This commit is contained in:
Armando Visconti 2024-08-08 15:47:34 +02:00 committed by Carles Cufí
parent c6f8d37056
commit a47b88c09b

View file

@ -50,7 +50,7 @@ static int iis2iclx_odr_to_freq_val(uint16_t odr)
return iis2iclx_odr_map[ARRAY_SIZE(iis2iclx_odr_map) - 1];
}
static const uint16_t iis2iclx_accel_fs_map[] = {500, 3000, 1000, 2000};
static const uint16_t iis2iclx_accel_fs_map[] = {500, 3000, 1000, 2000}; /* fs in mg */
static const uint16_t iis2iclx_accel_fs_sens[] = {1, 8, 2, 4};
static int iis2iclx_accel_range_to_fs_val(int32_t range)
@ -130,7 +130,7 @@ static int iis2iclx_accel_range_set(const struct device *dev, int32_t range)
int fs;
struct iis2iclx_data *data = dev->data;
fs = iis2iclx_accel_range_to_fs_val(range);
fs = iis2iclx_accel_range_to_fs_val(range * 1000); /* pass range in mg */
if (fs < 0) {
return fs;
}