devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Angelo Dureghello <adureghello@baylibre.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>,
	Michael Hennerich <Michael.Hennerich@analog.com>,
	Nuno Sa <nuno.sa@analog.com>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Olivier Moysan <olivier.moysan@foss.st.com>,
	linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, dlechner@baylibre.com
Subject: Re: [PATCH v3 05/10] iio: backend: extend features
Date: Sun, 29 Sep 2024 12:05:35 +0100	[thread overview]
Message-ID: <20240929120535.6b41c37e@jic23-huawei> (raw)
In-Reply-To: <20240919-wip-bl-ad3552r-axi-v0-iio-testing-v3-5-a17b9b3d05d9@baylibre.com>

On Thu, 19 Sep 2024 11:20:01 +0200
Angelo Dureghello <adureghello@baylibre.com> wrote:

> From: Angelo Dureghello <adureghello@baylibre.com>
> 
> Extend backend features with new calls needed later on this
> patchset from axi version of ad3552r.
> 
> The follwoing calls are added:
> 
> iio_backend_ext_sync_enable
> 	enable synchronize channels on external trigger
> iio_backend_ext_sync_disable
> 	disable synchronize channels on external trigger
> iio_backend_ddr_enable
> 	enable ddr bus transfer
> iio_backend_ddr_disable
> 	disable ddr bus transfer
> iio_backend_set_bus_mode
> 	select the type of bus, so that specific read / write
> 	operations are performed accordingly
> iio_backend_buffer_enable
> 	enable buffer
> iio_backend_buffer_disable
> 	disable buffer
> iio_backend_data_transfer_addr
> 	define the target register address where the DAC sample
> 	will be written.
> 
> Signed-off-by: Angelo Dureghello <adureghello@baylibre.com>
Hi Angelo,
A few trivial comments inline.

> ---
>  drivers/iio/industrialio-backend.c | 111 +++++++++++++++++++++++++++++++++++++
>  include/linux/iio/backend.h        |  23 ++++++++
>  2 files changed, 134 insertions(+)
> 
> diff --git a/drivers/iio/industrialio-backend.c b/drivers/iio/industrialio-backend.c
> index 20b3b5212da7..f4802c422dbf 100644
> --- a/drivers/iio/industrialio-backend.c
> +++ b/drivers/iio/industrialio-backend.c
> @@ -718,6 +718,117 @@ static int __devm_iio_backend_get(struct device *dev, struct iio_backend *back)
...

> +/**
> + * iio_backend_ddr_disable - Disable interface DDR (Double Data Rate) mode
> + * @back: Backend device
> + *
> + * Disabling DDR data is generated byt the IP at rising or falling front

Spell check your comments.

> + * of the interface clock signal (SDR, Single Data Rate).
> + *
> + * RETURNS:
> + * 0 on success, negative error number on failure.
> + */
> +int iio_backend_ddr_disable(struct iio_backend *back)
> +{
> +	return iio_backend_op_call(back, ddr_disable);
> +}
> +EXPORT_SYMBOL_NS_GPL(iio_backend_ddr_disable, IIO_BACKEND);
				 struct fwnode_handle *fwnode)
>  {
> diff --git a/include/linux/iio/backend.h b/include/linux/iio/backend.h
> index 37d56914d485..41619b803cd6 100644
> --- a/include/linux/iio/backend.h
> +++ b/include/linux/iio/backend.h
> @@ -14,12 +14,14 @@ struct iio_dev;
>  enum iio_backend_data_type {
>  	IIO_BACKEND_TWOS_COMPLEMENT,
>  	IIO_BACKEND_OFFSET_BINARY,
> +	IIO_BACKEND_DATA_UNSIGNED,
>  	IIO_BACKEND_DATA_TYPE_MAX
>  };
>  
>  enum iio_backend_data_source {
>  	IIO_BACKEND_INTERNAL_CONTINUOUS_WAVE,
>  	IIO_BACKEND_EXTERNAL,
> +	IIO_BACKEND_INTERNAL_RAMP_16BIT,
>  	IIO_BACKEND_DATA_SOURCE_MAX
>  };
>  
> @@ -89,6 +91,13 @@ enum iio_backend_sample_trigger {
>   * @read_raw: Read a channel attribute from a backend device
>   * @debugfs_print_chan_status: Print channel status into a buffer.
>   * @debugfs_reg_access: Read or write register value of backend.
> + * @ext_sync_enable: Enable external synchronization.
> + * @ext_sync_disable: Disable external synchronization.
> + * @ddr_enable: Enable interface DDR (Double Data Rate) mode.
> + * @ddr_disable: Disable interface DDR (Double Data Rate) mode.
> + * @buffer_enable: Enable data buffer.
> + * @buffer_disable: Disable data buffer.

This needs more specific text. What buffer?  I think this came
up earlier but it needs to say something about the fact it's enabling
or disabling the actual capture of data into the DMA buffers that
userspace will read.

> + * @data_transfer_addr: Set data address.
>   **/
>  struct iio_backend_ops {
>  	int (*enable)(struct iio_backend *back);
> @@ -129,6 +138,13 @@ struct iio_backend_ops {
>  					 size_t len);
>  	int (*debugfs_reg_access)(struct iio_backend *back, unsigned int reg,
>  				  unsigned int writeval, unsigned int *readval);
> +	int (*ext_sync_enable)(struct iio_backend *back);
I know we've done it this way for existing items, but I wonder if we should
squish down the ops slightly and have new enable/disable pairs as
single functions.
	int (*ext_sync_set_state)(struct iio_backend *back, bool enable);
etc.  If nothing else reduces how many things need documentation ;)

Nuno, what do you think? Worth squashing these pairs into single
callbacks?

> +	int (*ext_sync_disable)(struct iio_backend *back);
> +	int (*ddr_enable)(struct iio_backend *back);
> +	int (*ddr_disable)(struct iio_backend *back);
> +	int (*buffer_enable)(struct iio_backend *back);
> +	int (*buffer_disable)(struct iio_backend *back);
> +	int (*data_transfer_addr)(struct iio_backend *back, u32 address);
>  };

  parent reply	other threads:[~2024-09-29 11:05 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-19  9:19 [PATCH v3 00/10] iio: add support for the ad3552r AXI DAC IP Angelo Dureghello
2024-09-19  9:19 ` [PATCH v3 01/10] iio: backend: adi-axi-dac: fix wrong register bitfield Angelo Dureghello
2024-09-20 12:45   ` Nuno Sá
2024-09-29 10:38     ` Jonathan Cameron
2024-09-19  9:19 ` [PATCH v3 02/10] dt-bindings: iio: dac: axi-dac: add ad3552r axi variant Angelo Dureghello
2024-09-20 12:47   ` Nuno Sá
2024-09-22 20:59   ` Krzysztof Kozlowski
2024-09-29 10:46   ` Jonathan Cameron
2024-09-30 12:52     ` Angelo Dureghello
2024-09-30 13:15       ` Nuno Sá
2024-09-30 14:52         ` Jonathan Cameron
2024-09-19  9:19 ` [PATCH v3 03/10] dt-bindings: iio: dac: ad3552r: fix maximum spi speed Angelo Dureghello
2024-09-22 20:59   ` Krzysztof Kozlowski
2024-09-19  9:20 ` [PATCH v3 04/10] dt-bindings: iio: dac: ad3552r: add io-backend support Angelo Dureghello
2024-09-22 21:02   ` Krzysztof Kozlowski
2024-09-23 15:50     ` Angelo Dureghello
2024-09-24  8:02       ` Krzysztof Kozlowski
2024-09-24 12:27         ` Nuno Sá
2024-09-25  7:22           ` Krzysztof Kozlowski
2024-09-25 11:55             ` Nuno Sá
2024-09-28 12:20               ` Krzysztof Kozlowski
2024-09-29 10:59                 ` Jonathan Cameron
2024-09-30  7:20                   ` Nuno Sá
2024-09-30  7:31                     ` Krzysztof Kozlowski
2024-09-30  8:24                       ` Nuno Sá
2024-09-30 13:22                     ` Angelo Dureghello
2024-09-30 15:09                       ` Jonathan Cameron
2024-10-01  8:23                         ` Nuno Sá
2024-10-01 18:29                           ` Jonathan Cameron
2024-10-02  5:54                             ` Krzysztof Kozlowski
2024-10-02  9:00                             ` Nuno Sá
2024-09-29 10:51   ` Jonathan Cameron
2024-09-30 14:15     ` Angelo Dureghello
2024-09-30 14:49       ` Jonathan Cameron
2024-09-30 15:08         ` Angelo Dureghello
2024-09-30 19:20           ` David Lechner
2024-10-01  8:09             ` Angelo Dureghello
2024-09-19  9:20 ` [PATCH v3 05/10] iio: backend: extend features Angelo Dureghello
2024-09-20 12:50   ` Nuno Sá
2024-09-24 14:11     ` Angelo Dureghello
2024-09-25 11:59       ` Nuno Sá
2024-10-02  9:14         ` Angelo Dureghello
2024-09-29 11:05   ` Jonathan Cameron [this message]
2024-09-30 19:25     ` David Lechner
2024-10-01  8:14       ` Nuno Sá
2024-10-01  8:35         ` Angelo Dureghello
2024-10-01 18:32           ` Jonathan Cameron
2024-09-19  9:20 ` [PATCH v3 06/10] iio: backend: adi-axi-dac: " Angelo Dureghello
2024-09-20 13:10   ` Nuno Sá
2024-09-29 11:28   ` Jonathan Cameron
2024-09-19  9:20 ` [PATCH v3 07/10] iio: dac: ad3552r: changes to use FIELD_PREP Angelo Dureghello
2024-09-19  9:20 ` [PATCH v3 08/10] iio: dac: ad3552r: extract common code (no changes in behavior intended) Angelo Dureghello
2024-09-29 11:57   ` Jonathan Cameron
2024-10-02 15:50     ` Angelo Dureghello
2024-10-04 14:21       ` Jonathan Cameron
2024-09-19  9:20 ` [PATCH v3 09/10] iio: dac: ad3552r: add axi platform driver Angelo Dureghello
2024-09-29 12:17   ` Jonathan Cameron
2024-09-19  9:20 ` [PATCH v3 10/10] iio: backend: adi-axi-dac: add registering of child fdt node Angelo Dureghello
2024-09-29 12:21   ` 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=20240929120535.6b41c37e@jic23-huawei \
    --to=jic23@kernel.org \
    --cc=Michael.Hennerich@analog.com \
    --cc=adureghello@baylibre.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=krzk+dt@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nuno.sa@analog.com \
    --cc=olivier.moysan@foss.st.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).