From: "Nuno Sá" <noname.nuno@gmail.com>
To: "David Lechner" <dlechner@baylibre.com>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"Jonathan Cameron" <jic23@kernel.org>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Mark Brown" <broonie@kernel.org>
Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org, linux-spi@vger.kernel.org
Subject: Re: [PATCH v3 10/12] spi: offload trigger: add ADI Util Sigma-Delta SPI driver
Date: Wed, 02 Jul 2025 08:57:02 +0100 [thread overview]
Message-ID: <52c1fe276d16b68b955a00d0417b40902e2aa56e.camel@gmail.com> (raw)
In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-10-42abb83e3dac@baylibre.com>
On Tue, 2025-07-01 at 16:37 -0500, David Lechner wrote:
> Add a new driver for the ADI Util Sigma-Delta SPI FPGA IP core.
>
> This is used to trigger a SPI offload based on a RDY signal from an ADC
> while masking out other signals on the same line.
>
> Signed-off-by: David Lechner <dlechner@baylibre.com>
> ---
> MAINTAINERS | 2 +-
> drivers/spi/Kconfig | 5 ++
> drivers/spi/Makefile | 1 +
> .../spi/spi-offload-trigger-adi-util-sigma-delta.c | 62
> ++++++++++++++++++++++
> 4 files changed, 69 insertions(+), 1 deletion(-)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index
> 60ba572be7f5b48c0ab1d0d9724e19e335e8761b..4ed4977deb6ddc545be39b5c1d5e9959e9fe
> 64cf 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -23357,7 +23357,7 @@ F: include/linux/mtd/spi-nor.h
>
> SPI OFFLOAD
> R: David Lechner <dlechner@baylibre.com>
> -F: drivers/spi/spi-offload-trigger-pwm.c
> +F: drivers/spi/spi-offload-trigger-*.c
> F: drivers/spi/spi-offload.c
> F: include/linux/spi/offload/
> K: spi_offload
> diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
> index
> c51da3fc3604977b05388687e5e64a58370186c4..e69f060d3875c168a2dc701a372e47b8ffd3
> 3268 100644
> --- a/drivers/spi/Kconfig
> +++ b/drivers/spi/Kconfig
> @@ -1355,6 +1355,11 @@ if SPI_OFFLOAD
>
> comment "SPI Offload triggers"
>
> +config SPI_OFFLOAD_TRIGGER_ADI_UTIL_SD
> + tristate "SPI offload trigger using ADI sigma-delta utility"
> + help
> + SPI offload trigger from ADI sigma-delta utility FPGA IP block.
> +
> config SPI_OFFLOAD_TRIGGER_PWM
> tristate "SPI offload trigger using PWM"
> depends on PWM
> diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
> index
> 4ea89f6fc531625060255ecff237470927e1f041..51f9f16ed734424ff10672a04f2ec166dc63
> 7e0b 100644
> --- a/drivers/spi/Makefile
> +++ b/drivers/spi/Makefile
> @@ -170,3 +170,4 @@ obj-$(CONFIG_SPI_SLAVE_SYSTEM_CONTROL) += spi-slave-
> system-control.o
>
> # SPI offload triggers
> obj-$(CONFIG_SPI_OFFLOAD_TRIGGER_PWM) += spi-offload-trigger-pwm.o
> +obj-$(CONFIG_SPI_OFFLOAD_TRIGGER_ADI_UTIL_SD) += spi-offload-trigger-adi-
> util-sigma-delta.o
> diff --git a/drivers/spi/spi-offload-trigger-adi-util-sigma-delta.c
> b/drivers/spi/spi-offload-trigger-adi-util-sigma-delta.c
> new file mode 100644
> index
> 0000000000000000000000000000000000000000..8468c773713a3d203b2e668f340ee3f477b8
> fb6c
> --- /dev/null
> +++ b/drivers/spi/spi-offload-trigger-adi-util-sigma-delta.c
> @@ -0,0 +1,62 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Copyright (C) 2025 Analog Devices Inc.
> + * Copyright (C) 2025 BayLibre, SAS
> + */
> +
> +#include <linux/clk.h>
> +#include <linux/dev_printk.h>
> +#include <linux/err.h>
> +#include <linux/mod_devicetable.h>
> +#include <linux/module.h>
> +#include <linux/platform_device.h>
> +#include <linux/property.h>
> +#include <linux/spi/offload/provider.h>
> +#include <linux/spi/offload/types.h>
> +#include <linux/types.h>
> +
> +static bool adi_util_sigma_delta_match(struct spi_offload_trigger *trigger,
> + enum spi_offload_trigger_type type,
> + u64 *args, u32 nargs)
> +{
> + return type == SPI_OFFLOAD_TRIGGER_DATA_READY && nargs == 0;
> +}
> +
> +static const struct spi_offload_trigger_ops adi_util_sigma_delta_ops = {
> + .match = adi_util_sigma_delta_match,
> +};
> +
> +static int adi_util_sigma_delta_probe(struct platform_device *pdev)
> +{
> + struct device *dev = &pdev->dev;
> + struct spi_offload_trigger_info info = {
> + .fwnode = dev_fwnode(dev),
> + .ops = &adi_util_sigma_delta_ops,
> + };
> + struct clk *clk;
> +
> + clk = devm_clk_get_enabled(dev, NULL);
> + if (IS_ERR(clk))
> + return dev_err_probe(dev, PTR_ERR(clk), "Failed to get
> clock\n");
> +
Small nit. Did you consider enabling/disabling the clock on the trigger
enable()/disable() callback? I guess the ref clk will be enabled anyways by
someone else but conceptually kind of makes sense to enable the resource only
when needed.
Not a big deal (at least to me).
- Nuno Sá
> + return devm_spi_offload_trigger_register(dev, &info);
> +}
> +
> +static const struct of_device_id adi_util_sigma_delta_of_match_table[] = {
> + { .compatible = "adi,util-sigma-delta-spi", },
> + { }
> +};
> +MODULE_DEVICE_TABLE(of, adi_util_sigma_delta_of_match_table);
> +
> +static struct platform_driver adi_util_sigma_delta_driver = {
> + .probe = adi_util_sigma_delta_probe,
> + .driver = {
> + .name = "adi-util-sigma-delta-spi",
> + .of_match_table = adi_util_sigma_delta_of_match_table,
> + },
> +};
> +module_platform_driver(adi_util_sigma_delta_driver);
> +
> +MODULE_AUTHOR("David Lechner <dlechner@baylibre.com>");
> +MODULE_DESCRIPTION("ADI Sigma-Delta SPI offload trigger utility driver");
> +MODULE_LICENSE("GPL");
next prev parent reply other threads:[~2025-07-02 7:56 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-01 21:37 [PATCH v3 00/12] iio: adc: ad7173: add SPI offload support David Lechner
2025-07-01 21:37 ` [PATCH v3 01/12] iio: adc: ad_sigma_delta: don't overallocate scan buffer David Lechner
2025-07-01 21:37 ` [PATCH v3 02/12] iio: adc: ad_sigma_delta: sort includes David Lechner
2025-07-01 21:37 ` [PATCH v3 03/12] iio: adc: ad_sigma_delta: use u8 instead of uint8_t David Lechner
2025-07-01 21:37 ` [PATCH v3 04/12] iio: adc: ad_sigma_delta: use sizeof() in ALIGN() David Lechner
2025-07-01 21:37 ` [PATCH v3 05/12] iio: adc: ad_sigma_delta: use BITS_TO_BYTES() macro David Lechner
2025-07-01 21:37 ` [PATCH v3 06/12] iio: adc: ad_sigma_delta: audit included headers David Lechner
2025-07-01 21:37 ` [PATCH v3 07/12] iio: adc: ad_sigma_delta: refactor setting read address David Lechner
2025-07-01 21:37 ` [PATCH v3 08/12] iio: adc: ad_sigma_delta: use spi_optimize_message() David Lechner
2025-07-01 21:37 ` [PATCH v3 09/12] dt-bindings: trigger-source: add ADI Util Sigma-Delta SPI David Lechner
2025-07-01 21:37 ` [PATCH v3 10/12] spi: offload trigger: add ADI Util Sigma-Delta SPI driver David Lechner
2025-07-02 7:57 ` Nuno Sá [this message]
2025-07-02 12:37 ` David Lechner
2025-07-01 21:37 ` [PATCH v3 11/12] iio: adc: ad_sigma_delta: add SPI offload support David Lechner
2025-07-01 21:38 ` [PATCH v3 12/12] iio: adc: ad7173: " David Lechner
2025-07-02 7:58 ` [PATCH v3 00/12] " Nuno Sá
2025-07-02 8:04 ` Andy Shevchenko
2025-07-06 10:04 ` Jonathan Cameron
2025-07-06 10:05 ` 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=52c1fe276d16b68b955a00d0417b40902e2aa56e.camel@gmail.com \
--to=noname.nuno@gmail.com \
--cc=Michael.Hennerich@analog.com \
--cc=andy@kernel.org \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=nuno.sa@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.