All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nuno Sá" <noname.nuno@gmail.com>
To: "Guillaume Stols" <gstols@baylibre.com>,
	"Uwe Kleine-König" <ukleinek@kernel.org>,
	"Lars-Peter Clausen" <lars@metafoo.de>,
	"Michael Hennerich" <Michael.Hennerich@analog.com>,
	"Jonathan Cameron" <jic23@kernel.org>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	"Jonathan Corbet" <corbet@lwn.net>
Cc: linux-pwm@vger.kernel.org, linux-kernel@vger.kernel.org,
	 linux-fbdev@vger.kernel.org, linux-iio@vger.kernel.org,
	 devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
	aardelean@baylibre.com,  dlechner@baylibre.com,
	jstephan@baylibre.com,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>
Subject: Re: [PATCH v4 6/8] iio: adc: ad7606: Introduce num_adc_channels
Date: Wed, 09 Oct 2024 16:40:55 +0200	[thread overview]
Message-ID: <02f14fc6b7c7d35ef6a01cfc30164ddc75ee53ed.camel@gmail.com> (raw)
In-Reply-To: <20241009-ad7606_add_iio_backend_support-v4-6-6971a8c0f1d5@baylibre.com>

On Wed, 2024-10-09 at 09:19 +0000, Guillaume Stols wrote:
> This variable determines how many hardware channels has the chip,
> oppositely to the num_channels that can contain more channels, e.g a
> timestamp channel in our case. Introducing this variable avoids
> decreasing the former num_channels variable when reading the ADC's
> channels, and clarifies a bit the code.
> 
> Signed-off-by: Guillaume Stols <gstols@baylibre.com>
> ---

Reviewed-by: Nuno Sa <nuno.sa@analog.com>

>  drivers/iio/adc/ad7606.c | 10 +++++++++-
>  drivers/iio/adc/ad7606.h |  2 ++
>  2 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c
> index dfbdea8c28ba..ec902b268388 100644
> --- a/drivers/iio/adc/ad7606.c
> +++ b/drivers/iio/adc/ad7606.c
> @@ -150,6 +150,7 @@ static int ad7606_16bit_chan_scale_setup(struct ad7606_state
> *st,
>  const struct ad7606_chip_info ad7605_4_info = {
>  	.channels = ad7605_channels,
>  	.name = "ad7605-4",
> +	.num_adc_channels = 4,
>  	.num_channels = 5,
>  	.scale_setup_cb = ad7606_16bit_chan_scale_setup,
>  };
> @@ -158,6 +159,7 @@ EXPORT_SYMBOL_NS_GPL(ad7605_4_info, IIO_AD7606);
>  const struct ad7606_chip_info ad7606_8_info = {
>  	.channels = ad7606_channels_16bit,
>  	.name = "ad7606-8",
> +	.num_adc_channels = 8,
>  	.num_channels = 9,
>  	.oversampling_avail = ad7606_oversampling_avail,
>  	.oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail),
> @@ -168,6 +170,7 @@ EXPORT_SYMBOL_NS_GPL(ad7606_8_info, IIO_AD7606);
>  const struct ad7606_chip_info ad7606_6_info = {
>  	.channels = ad7606_channels_16bit,
>  	.name = "ad7606-6",
> +	.num_adc_channels = 6,
>  	.num_channels = 7,
>  	.oversampling_avail = ad7606_oversampling_avail,
>  	.oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail),
> @@ -178,6 +181,7 @@ EXPORT_SYMBOL_NS_GPL(ad7606_6_info, IIO_AD7606);
>  const struct ad7606_chip_info ad7606_4_info = {
>  	.channels = ad7606_channels_16bit,
>  	.name = "ad7606-4",
> +	.num_adc_channels = 4,
>  	.num_channels = 5,
>  	.oversampling_avail = ad7606_oversampling_avail,
>  	.oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail),
> @@ -188,6 +192,7 @@ EXPORT_SYMBOL_NS_GPL(ad7606_4_info, IIO_AD7606);
>  const struct ad7606_chip_info ad7606b_info = {
>  	.channels = ad7606_channels_16bit,
>  	.name = "ad7606b",
> +	.num_adc_channels = 8,
>  	.num_channels = 9,
>  	.oversampling_avail = ad7606_oversampling_avail,
>  	.oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail),
> @@ -198,6 +203,7 @@ EXPORT_SYMBOL_NS_GPL(ad7606b_info, IIO_AD7606);
>  const struct ad7606_chip_info ad7606c_16_info = {
>  	.channels = ad7606_channels_16bit,
>  	.name = "ad7606c16",
> +	.num_adc_channels = 8,
>  	.num_channels = 9,
>  	.oversampling_avail = ad7606_oversampling_avail,
>  	.oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail),
> @@ -208,6 +214,7 @@ EXPORT_SYMBOL_NS_GPL(ad7606c_16_info, IIO_AD7606);
>  const struct ad7606_chip_info ad7606c_18_info = {
>  	.channels = ad7606_channels_18bit,
>  	.name = "ad7606c18",
> +	.num_adc_channels = 8,
>  	.num_channels = 9,
>  	.oversampling_avail = ad7606_oversampling_avail,
>  	.oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail),
> @@ -219,6 +226,7 @@ const struct ad7606_chip_info ad7616_info = {
>  	.channels = ad7616_channels,
>  	.init_delay_ms = 15,
>  	.name = "ad7616",
> +	.num_adc_channels = 16,
>  	.num_channels = 17,
>  	.oversampling_avail = ad7616_oversampling_avail,
>  	.oversampling_num = ARRAY_SIZE(ad7616_oversampling_avail),
> @@ -528,7 +536,7 @@ static int ad7606_set_sampling_freq(struct ad7606_state *st,
> unsigned long freq)
>  
>  static int ad7606_read_samples(struct ad7606_state *st)
>  {
> -	unsigned int num = st->chip_info->num_channels - 1;
> +	unsigned int num = st->chip_info->num_adc_channels;
>  
>  	return st->bops->read_block(st->dev, num, &st->data);
>  }
> diff --git a/drivers/iio/adc/ad7606.h b/drivers/iio/adc/ad7606.h
> index d401d3ab37e0..b26a11b2eba1 100644
> --- a/drivers/iio/adc/ad7606.h
> +++ b/drivers/iio/adc/ad7606.h
> @@ -71,6 +71,7 @@ typedef int (*ad7606_scale_setup_cb_t)(struct ad7606_state *st,
>   * @channels:		channel specification
>   * @name		device name
>   * @num_channels:	number of channels
> + * @num_adc_channels	the number of channels the ADC actually inputs.
>   * @scale_setup_cb:	callback to setup the scales for each channel
>   * @oversampling_avail	pointer to the array which stores the available
>   *			oversampling ratios.
> @@ -82,6 +83,7 @@ typedef int (*ad7606_scale_setup_cb_t)(struct ad7606_state *st,
>  struct ad7606_chip_info {
>  	const struct iio_chan_spec	*channels;
>  	const char			*name;
> +	unsigned int			num_adc_channels;
>  	unsigned int			num_channels;
>  	ad7606_scale_setup_cb_t		scale_setup_cb;
>  	const unsigned int		*oversampling_avail;
> 


  reply	other threads:[~2024-10-09 14:40 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-09  9:19 [PATCH v4 0/8] Add iio backend compatibility for ad7606 Guillaume Stols
2024-10-09  9:19 ` [PATCH v4 1/8] dt-bindings: iio: adc: ad7606: Remove spi-cpha from required Guillaume Stols
2024-10-09  9:19 ` [PATCH v4 2/8] dt-bindings: iio: adc: ad7606: Add iio backend bindings Guillaume Stols
2024-10-09  9:19 ` [PATCH v4 3/8] Documentation: iio: Document ad7606 driver Guillaume Stols
2024-10-09  9:19 ` [PATCH v4 4/8] iio: adc: ad7606: Add PWM support for conversion trigger Guillaume Stols
2024-10-09 14:29   ` Nuno Sá
2024-10-09  9:19 ` [PATCH v4 5/8] iio: adc: ad7606: Add compatibility to fw_nodes Guillaume Stols
2024-10-09 14:39   ` Nuno Sá
2024-10-09 14:53     ` Guillaume Stols
2024-10-09 14:59       ` Nuno Sá
2024-10-09  9:19 ` [PATCH v4 6/8] iio: adc: ad7606: Introduce num_adc_channels Guillaume Stols
2024-10-09 14:40   ` Nuno Sá [this message]
2024-10-09  9:19 ` [PATCH v4 7/8] iio: adc: ad7606: Add iio-backend support Guillaume Stols
2024-10-09 14:55   ` Nuno Sá
2024-10-09  9:19 ` [PATCH v4 8/8] iio: adc: ad7606: Disable PWM usage for non backend version Guillaume Stols
2024-10-09 14:45   ` Nuno Sá
2024-10-12 12:48     ` Jonathan Cameron

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=02f14fc6b7c7d35ef6a01cfc30164ddc75ee53ed.camel@gmail.com \
    --to=noname.nuno@gmail.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=Michael.Hennerich@analog.com \
    --cc=aardelean@baylibre.com \
    --cc=conor+dt@kernel.org \
    --cc=corbet@lwn.net \
    --cc=devicetree@vger.kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=gstols@baylibre.com \
    --cc=jic23@kernel.org \
    --cc=jstephan@baylibre.com \
    --cc=krzk+dt@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=robh@kernel.org \
    --cc=ukleinek@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.