From: David Lechner <dlechner@baylibre.com>
To: Jonathan Cameron <jic23@kernel.org>
Cc: "Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>, "Chris Hall" <c-hall@ti.com>,
"Patrick Edwards" <pedwards@ti.com>,
"Kurt Borja" <kuurtb@gmail.com>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 3/3] iio: adc: ti-ads112c14: add continuous mode support
Date: Sun, 2 Aug 2026 14:05:58 -0500 [thread overview]
Message-ID: <3562a294-d74f-4a03-839d-c861df604914@baylibre.com> (raw)
In-Reply-To: <20260802191753.2c98d7bb@jic23-huawei>
On 8/2/26 1:17 PM, Jonathan Cameron wrote:
> On Fri, 31 Jul 2026 18:48:12 -0500
> "David Lechner (TI)" <dlechner@baylibre.com> wrote:
>
>> Add support for continuous mode in the TI ADS112C14 ADC driver. In this
>> mode the ADC itself is starting each conversion, so we add a trigger
>> based on the DRDY interrupt to read each sample. This mode is also
>> limited in that only one channel can be enabled at a time since the
>> chip does not have a sequencer or simultaneous sampling capability.
>> Continuous mode will only be used when this new trigger is the current
>> trigger.
>>
>> Signed-off-by: David Lechner (TI) <dlechner@baylibre.com>
> There is some follow on stuff in here from the earlier suggestion to
> check the status register even when datardy involved
>
>> ---
>> drivers/iio/adc/ti-ads112c14.c | 146 ++++++++++++++++++++++++++++++++++++++++-
>> 1 file changed, 144 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/iio/adc/ti-ads112c14.c b/drivers/iio/adc/ti-ads112c14.c
>> index c6d83298c312..5147d10785fb 100644
>> --- a/drivers/iio/adc/ti-ads112c14.c
>> +++ b/drivers/iio/adc/ti-ads112c14.c
>> @@ -9,6 +9,7 @@
>> */
>>
>> #include <linux/bitfield.h>
>> +#include <linux/bitmap.h>
>> #include <linux/cleanup.h>
>> #include <linux/completion.h>
>> #include <linux/crc8.h>
>> @@ -18,6 +19,7 @@
>> #include <linux/i2c.h>
>> #include <linux/iio/buffer.h>
>> #include <linux/iio/iio.h>
>> +#include <linux/iio/trigger.h>
>> #include <linux/iio/trigger_consumer.h>
>> #include <linux/iio/triggered_buffer.h>
>> #include <linux/interrupt.h>
>> @@ -257,6 +259,7 @@ struct ads112c14_measurement {
>> struct ads112c14_data {
>> const struct ads112c14_chip_info *chip_info;
>> struct regmap *regmap;
>> + struct iio_trigger *drdy_trig;
>> /* Synchronizes access to register value fields. */
>> struct mutex lock;
>> int drdy_irq;
>> @@ -280,11 +283,32 @@ static irqreturn_t ads112c14_drdy_irq_handler(int irq, void *private)
>> struct iio_dev *indio_dev = private;
>> struct ads112c14_data *data = iio_priv(indio_dev);
>>
>> - complete(&data->drdy_completion);
>> + if (indio_dev->trig && iio_trigger_using_own(indio_dev))
>> + iio_trigger_poll(data->drdy_trig);
>
> Even for this path we should be checking it wasn't a spurious interrupt.
> If that's happening in a threaded interrupt we'll then call iio_trigger_poll_nested()
> and the handler will happen in the interrupt thread. So the overhead
> of that check should just be the check.
>
For now, I think we'll not bother with checking for spurious interrupts.
The only reason it should happen is electrical noise (or disconnecting
wires on a live system). And we can add it in a follow up patch if we
decide we need it. The overhead of an extra read for each sample might be
a bit much at the higher sample rates. So we'll want to implement the
higher sample rates first anyway.
We can read the status along with the data in a single transfer, so that
might be a more efficient way to do it too.
prev parent reply other threads:[~2026-08-02 19:06 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 23:48 [PATCH v2 0/3] iio: adc: ti-ads112c14: " David Lechner (TI)
2026-07-31 23:48 ` [PATCH v2 1/3] iio: adc: ti-ads112c14: add DRDY interrupt support David Lechner (TI)
2026-08-02 18:10 ` Jonathan Cameron
2026-07-31 23:48 ` [PATCH v2 2/3] iio: adc: ti-ads112c14: create data read helper functions David Lechner (TI)
2026-07-31 23:48 ` [PATCH v2 3/3] iio: adc: ti-ads112c14: add continuous mode support David Lechner (TI)
2026-08-02 18:17 ` Jonathan Cameron
2026-08-02 19:05 ` David Lechner [this message]
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=3562a294-d74f-4a03-839d-c861df604914@baylibre.com \
--to=dlechner@baylibre.com \
--cc=andy@kernel.org \
--cc=c-hall@ti.com \
--cc=jic23@kernel.org \
--cc=kuurtb@gmail.com \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=pedwards@ti.com \
/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
all inboxes | Powered by JetHome®