[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d9bb518e29939cd8e3c7b62c3f5cb7e9d018ee52.camel@gmail.com>
Date: Wed, 07 Jan 2026 13:50:07 +0000
From: Nuno Sá <noname.nuno@...il.com>
To: Francesco Lavra <flavra@...libre.com>, Ramona Gradinariu
<ramona.gradinariu@...log.com>, Antoniu Miclaus
<antoniu.miclaus@...log.com>, Lars-Peter Clausen <lars@...afoo.de>,
Michael Hennerich <Michael.Hennerich@...log.com>, Jonathan Cameron
<jic23@...nel.org>, David Lechner <dlechner@...libre.com>, Nuno
Sá <nuno.sa@...log.com>, Andy Shevchenko
<andy@...nel.org>, linux-iio@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] iio: accel: adxl380: Store sampling frequency index
in odr struct member
On Wed, 2026-01-07 at 13:35 +0100, Francesco Lavra wrote:
> 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@...libre.com>
> ---
Reviewed-by: Nuno Sá <nuno.sa@...log.com>
> drivers/iio/accel/adxl380.c | 13 ++-----------
> 1 file changed, 2 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/iio/accel/adxl380.c b/drivers/iio/accel/adxl380.c
> index ce3643c5deb8..bbf1f88ca781 100644
> --- a/drivers/iio/accel/adxl380.c
> +++ b/drivers/iio/accel/adxl380.c
> @@ -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;
Powered by blists - more mailing lists