From: "Kurt Borja" <kuurtb@gmail.com>
To: "David Lechner" <dlechner@baylibre.com>,
"Kurt Borja" <kuurtb@gmail.com>,
"Jonathan Cameron" <jic23@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Tobias Sperling" <tobias.sperling@softing.com>
Cc: "Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
"Jonathan Cameron" <Jonathan.Cameron@huawei.com>
Subject: Re: [PATCH v8 2/2] iio: adc: Add ti-ads1018 driver
Date: Mon, 15 Dec 2025 11:54:13 -0500 [thread overview]
Message-ID: <DEYY46ZUJQ35.YBNYWLGZMRYA@gmail.com> (raw)
In-Reply-To: <064e059b-5c86-4c41-8de8-b6a728361fd3@baylibre.com>
On Mon Dec 15, 2025 at 10:55 AM -05, David Lechner wrote:
> On 12/11/25 10:25 PM, Kurt Borja wrote:
>> Add ti-ads1018 driver for Texas Instruments ADS1018 and ADS1118 SPI
>> analog-to-digital converters.
>>
>
> ...
>
>> +/**
>> + * ads1018_spi_read_exclusive - Reads a conversion value from the device
>> + * @ads1018: Device data
>> + * @cnv: ADC Conversion value (optional)
>> + * @hold_cs: Keep CS line asserted after the SPI transfer
>> + *
>> + * Reads the most recent ADC conversion value, without updating the
>> + * device's configuration.
>> + *
>> + * Context: Expects iio_device_claim_buffer_mode() is held and SPI bus
>> + * *exclusive* use.
>
> I guess "exclusive" is supposed to mean that the SPI bus lock is held?
> Would have been more clear to just say "SPI bus lock is held".
I went with "exclusive" because we are not holding the lock on the same
thread, so that could be misleading.
...
>> +static int ads1018_buffer_postdisable(struct iio_dev *indio_dev)
>> +{
>> + struct ads1018 *ads1018 = iio_priv(indio_dev);
>> + u16 cfg;
>> +
>> + cfg = ADS1018_CFG_VALID;
>> + cfg |= FIELD_PREP(ADS1018_CFG_MODE_MASK, ADS1018_MODE_ONESHOT);
>> +
>> + ads1018->tx_buf[0] = cpu_to_be16(cfg);
>> + ads1018->tx_buf[1] = 0;
>> +
>> + return spi_write(ads1018->spi, ads1018->tx_buf, sizeof(ads1018->tx_buf));
>> +}
>> +
>> +static const struct iio_buffer_setup_ops ads1018_buffer_ops = {
>> + .preenable = ads1018_buffer_preenable,
>> + .postdisable = ads1018_buffer_postdisable,
>> + .validate_scan_mask = iio_validate_scan_mask_onehot,
>
> Why do we only allow one channel to be selected at a time?
> I guess we can remove that restriction later. I just didn't
> notice this in previous reviews.
I chose this restriction because of the timestamp discussion a few
versions ago.
I will remove it later and implement multichannel buffers as Jonathan
suggested.
...
>> +static irqreturn_t ads1018_trigger_handler(int irq, void *p)
>> +{
>> + struct iio_poll_func *pf = p;
>> + struct iio_dev *indio_dev = pf->indio_dev;
>> + struct ads1018 *ads1018 = iio_priv(indio_dev);
>> + struct {
>> + __be16 conv;
>> + aligned_s64 ts;
>> + } scan = {};
>> + int ret;
>> +
>
>
>> + if (iio_device_claim_buffer_mode(indio_dev))
>> + goto out_notify_done;
>
> This should not be needed. It should not be possible to
> exit buffer mode without triggers being stopped first.
> (No other driver is doing this.)
Previously I had my own lock here because ads1018_spi_read_exclusive()
needs locking. I dropped it per your suggestion in v1 I believe, but
given the discussion in the cleanup.h series I was thinking in bringing
it back.
But yes, the scope can be adjusted too.
--
Thanks,
~ Kurt
next prev parent reply other threads:[~2025-12-15 16:54 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-12 4:25 [PATCH v8 0/2] iio: Add support for TI ADS1X18 ADCs Kurt Borja
2025-12-12 4:25 ` [PATCH v8 1/2] dt-bindings: iio: adc: Add TI ADS1018/ADS1118 Kurt Borja
2025-12-12 4:25 ` [PATCH v8 2/2] iio: adc: Add ti-ads1018 driver Kurt Borja
2025-12-14 14:48 ` Jonathan Cameron
2025-12-14 23:53 ` Kurt Borja
2025-12-15 15:55 ` David Lechner
2025-12-15 16:54 ` Kurt Borja [this message]
2025-12-15 18:09 ` David Lechner
2025-12-16 18:21 ` Jonathan Cameron
2025-12-16 20:49 ` Kurt Borja
2025-12-12 8:40 ` [PATCH v8 0/2] iio: Add support for TI ADS1X18 ADCs Tomas Melin
2025-12-12 13:10 ` Kurt Borja
2025-12-12 13:50 ` Tomas Melin
2025-12-15 15:56 ` David Lechner
2025-12-15 16:57 ` Kurt Borja
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=DEYY46ZUJQ35.YBNYWLGZMRYA@gmail.com \
--to=kuurtb@gmail.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=andy@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=nuno.sa@analog.com \
--cc=robh@kernel.org \
--cc=tobias.sperling@softing.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 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.