mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 16:44:58 +02:00
iio: accel: adxl380: Store sampling frequency index in odr struct member
The ADXL380 driver assumes that acceleration samples are always retrieved via the high-performance DSM signal path; as a result, the sampling frequency value depends exclusively on the decimation filter settings in the TRIG_CFG register. In preparation for adding support for sampling frequency values that rely on the low-power SAR signal path (on which the decimation filters are not supported), use the (currently unused) 'odr' member of struct adxl380_state to store the sampling frequency value, and when userspace requests the current frequency value, retrieve it from the struct instead of calculating it from the decimation filter settings. Signed-off-by: Francesco Lavra <flavra@baylibre.com> Reviewed-by: Nuno Sá <nuno.sa@analog.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
bac5e3d20c
commit
a99b000f92
|
|
@ -417,17 +417,7 @@ static int adxl380_read_chn(struct adxl380_state *st, u8 addr)
|
|||
|
||||
static int adxl380_get_odr(struct adxl380_state *st, int *odr)
|
||||
{
|
||||
int ret;
|
||||
unsigned int trig_cfg, odr_idx;
|
||||
|
||||
ret = regmap_read(st->regmap, ADXL380_TRIG_CFG_REG, &trig_cfg);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
odr_idx = (FIELD_GET(ADXL380_TRIG_CFG_SINC_RATE_MSK, trig_cfg) << 1) |
|
||||
(FIELD_GET(ADXL380_TRIG_CFG_DEC_2X_MSK, trig_cfg) & 1);
|
||||
|
||||
*odr = st->chip_info->samp_freq_tbl[odr_idx];
|
||||
*odr = st->chip_info->samp_freq_tbl[st->odr];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -500,6 +490,7 @@ static int adxl380_set_odr(struct adxl380_state *st, u8 odr)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
st->odr = odr;
|
||||
ret = adxl380_set_measure_en(st, true);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user