From: Jonathan Cameron <jic23@kernel.org>
To: Jonathan Santos <Jonathan.Santos@analog.com>
Cc: <linux-iio@vger.kernel.org>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <linux-gpio@vger.kernel.org>,
<lars@metafoo.de>, <Michael.Hennerich@analog.com>,
<marcelo.schmitt@analog.com>, <robh@kernel.org>,
<krzk+dt@kernel.org>, <conor+dt@kernel.org>,
<marcelo.schmitt1@gmail.com>, <linus.walleij@linaro.org>,
<brgl@bgdev.pl>, <lgirdwood@gmail.com>, <broonie@kernel.org>,
<jonath4nns@gmail.com>, <dlechner@baylibre.com>,
Pop Paul <paul.pop@analog.com>
Subject: Re: [PATCH v5 13/14] iio: adc: ad7768-1: add filter type and oversampling ratio attributes
Date: Sat, 12 Apr 2025 19:11:26 +0100 [thread overview]
Message-ID: <20250412191126.06c19115@jic23-huawei> (raw)
In-Reply-To: <e5ea27f88607d1cc12daecf310c18f71383a3bbe.1744325346.git.Jonathan.Santos@analog.com>
>
> -static int ad7768_set_dig_fil(struct ad7768_state *st,
> - enum ad7768_dec_rate dec_rate)
> +static int ad7768_set_sinc3_dec_rate(struct ad7768_state *st,
> + unsigned int dec_rate)
> {
> - unsigned int mode;
> + unsigned int max_dec_rate;
> + u8 dec_rate_reg[2];
> int ret;
>
> - if (dec_rate == AD7768_DEC_RATE_8 || dec_rate == AD7768_DEC_RATE_16)
> - mode = AD7768_DIG_FIL_FIL(dec_rate);
> - else
> - mode = AD7768_DIG_FIL_DEC_RATE(dec_rate);
> + /*
> + * Maximum dec_rate is limited by the MCLK_DIV value
> + * and by the ODR. The edge case is for MCLK_DIV = 2
> + * ODR = 50 SPS.
> + * max_dec_rate <= MCLK / (2 * 50)
> + */
> + max_dec_rate = st->mclk_freq / 100;
> + dec_rate = clamp_t(unsigned int, dec_rate, 32, max_dec_rate);
> + /*
> + * Calculate the equivalent value to sinc3 decimation ratio
> + * to be written on the SINC3_DECIMATION_RATE register:
> + * Value = (DEC_RATE / 32) -1
> + */
> + dec_rate = DIV_ROUND_UP(dec_rate, 32) - 1;
> + dec_rate_reg[0] = FIELD_GET(AD7768_SINC3_DEC_RATE_MSB_MSK, dec_rate);
> + dec_rate_reg[1] = FIELD_GET(AD7768_SINC3_DEC_RATE_LSB_MSK, dec_rate);
Looks like a larger big endian value. It's a little messy because of
the 12 bit mask but I think still clearer as
u16 regval = FIELD_PREP(GENMASK(11, 0), dec_rate);
unaligned_put_be16(dec_rate_reg, regval);
Avoids the use of masks to get bytes from the dec_rate value which is
is sort of backwards.
> + ret = regmap_bulk_write(st->regmap, AD7768_REG_SINC3_DEC_RATE_MSB,
> + dec_rate_reg, 2);
> + if (ret)
> + return ret;
>
next prev parent reply other threads:[~2025-04-12 18:11 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-11 15:55 [PATCH v5 00/14] iio: adc: ad7768-1: Add features, improvements, and fixes Jonathan Santos
2025-04-11 15:56 ` [PATCH v5 01/14] dt-bindings: trigger-source: add generic GPIO trigger source Jonathan Santos
2025-04-11 16:41 ` Conor Dooley
2025-04-11 21:49 ` David Lechner
2025-04-16 7:43 ` Linus Walleij
2025-04-16 18:38 ` David Lechner
2025-04-11 15:56 ` [PATCH v5 02/14] dt-bindings: iio: adc: ad7768-1: add trigger-sources property Jonathan Santos
2025-04-11 16:30 ` Conor Dooley
2025-04-11 21:27 ` David Lechner
2025-04-17 0:08 ` Jonathan Santos
2025-04-17 15:11 ` David Lechner
2025-04-11 21:57 ` David Lechner
2025-04-17 0:22 ` Jonathan Santos
2025-04-17 15:07 ` David Lechner
2025-04-11 15:56 ` [PATCH v5 03/14] dt-bindings: iio: adc: ad7768-1: Document GPIO controller Jonathan Santos
2025-04-11 15:56 ` [PATCH v5 04/14] dt-bindings: iio: adc: ad7768-1: document regulator provider property Jonathan Santos
2025-04-11 15:56 ` [PATCH v5 05/14] iio: adc: ad7768-1: convert driver to use regmap Jonathan Santos
2025-04-12 17:51 ` Jonathan Cameron
2025-04-11 15:57 ` [PATCH v5 06/14] iio: adc: ad7768-1: Add reset gpio Jonathan Santos
2025-04-12 17:52 ` Jonathan Cameron
2025-04-11 15:57 ` [PATCH v5 07/14] iio: adc: ad7768-1: Move buffer allocation to a separate function Jonathan Santos
2025-04-12 17:54 ` Jonathan Cameron
2025-04-11 15:57 ` [PATCH v5 08/14] iio: adc: ad7768-1: add regulator to control VCM output Jonathan Santos
2025-04-11 21:44 ` David Lechner
2025-04-12 18:02 ` Jonathan Cameron
2025-04-11 15:57 ` [PATCH v5 09/14] iio: adc: ad7768-1: Add GPIO controller support Jonathan Santos
2025-04-16 7:35 ` Linus Walleij
2025-04-11 15:58 ` [PATCH v5 10/14] iio: adc: ad7768-1: add multiple scan types to support 16-bits mode Jonathan Santos
2025-04-11 15:58 ` [PATCH v5 11/14] iio: adc: ad7768-1: add support for Synchronization over SPI Jonathan Santos
2025-04-11 22:48 ` David Lechner
2025-04-11 15:58 ` [PATCH v5 12/14] iio: adc: ad7768-1: replace manual attribute declaration Jonathan Santos
2025-04-11 15:58 ` [PATCH v5 13/14] iio: adc: ad7768-1: add filter type and oversampling ratio attributes Jonathan Santos
2025-04-11 23:26 ` David Lechner
2025-04-12 18:11 ` Jonathan Cameron [this message]
2025-04-11 15:59 ` [PATCH v5 14/14] iio: adc: ad7768-1: add low pass -3dB cutoff attribute Jonathan Santos
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250412191126.06c19115@jic23-huawei \
--to=jic23@kernel.org \
--cc=Jonathan.Santos@analog.com \
--cc=Michael.Hennerich@analog.com \
--cc=brgl@bgdev.pl \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jonath4nns@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo.schmitt1@gmail.com \
--cc=marcelo.schmitt@analog.com \
--cc=paul.pop@analog.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.