From: "Kurt Borja" <kuurtb@gmail.com>
To: "Jonathan Cameron" <jic23@kernel.org>, "Kurt Borja" <kuurtb@gmail.com>
Cc: "Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Tobias Sperling" <tobias.sperling@softing.com>,
"David Lechner" <dlechner@baylibre.com>,
"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 v6 2/2] iio: adc: Add ti-ads1018 driver
Date: Sun, 07 Dec 2025 11:02:03 -0500 [thread overview]
Message-ID: <DES3ZWAKXXEB.2LQPMDZN4JFCB@gmail.com> (raw)
In-Reply-To: <20251206200721.5e683a83@jic23-huawei>
On Sat Dec 6, 2025 at 3:07 PM -05, Jonathan Cameron wrote:
> On Thu, 04 Dec 2025 13:01:28 -0500
> Kurt Borja <kuurtb@gmail.com> wrote:
>
>> Add ti-ads1018 driver for Texas Instruments ADS1018 and ADS1118 SPI
>> analog-to-digital converters.
>>
>> These chips' MOSI pin is shared with a data-ready interrupt. Defining
>> this interrupt in devicetree is optional, therefore we only create an
>> IIO trigger if one is found.
>>
>> Handling this interrupt requires some considerations. When enabling the
>> trigger the CS line is tied low (active), thus we need to hold
>> spi_bus_lock() too, to avoid state corruption. This is done inside the
>> set_trigger_state() callback, to let users use other triggers without
>> wasting a bus lock.
>>
>> Signed-off-by: Kurt Borja <kuurtb@gmail.com>
...
>> +#define ADS1018_VOLT_CHAN(_index, _chan, _realbits) { \
>> + .type = IIO_VOLTAGE, \
>> + .channel = _chan, \
>> + .scan_index = _index, \
>> + .scan_type = { \
>> + .sign = 's', \
>> + .realbits = _realbits, \
>> + .storagebits = 16, \
>> + .shift = 16 - _realbits, \
>> + .endianness = IIO_BE, \
>> + }, \
>> + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \
>> + BIT(IIO_CHAN_INFO_SCALE) | \
>> + BIT(IIO_CHAN_INFO_SAMP_FREQ), \
>
> What motivates per channel sampling frequency?
>
> Given you have to write it each time you configure I guess it doesn't matter much
> either way.
I guess making it shared by all is simpler too, so I'll go with that.
...
>> +/**
>> + * ads1018_calc_delay - Calculates a suitable delay for a single-shot reading
>> + * @ads1018: Device data
>> + *
>> + * Calculates an appropriate delay for a single shot reading, assuming the
>> + * device's maximum data-rate is used.
>> + *
>> + * Context: Expects iio_device_claim_direct() is held.
>
> What in here changes if we are in buffered mode?
> We have no reason to call it but why does that matter?
Yep, I just pasted this mindlessly. I'll remove it.
...
>> +/**
>> + * ads1018_single_shot - Performs a one-shot reading sequence
>> + * @ads1018: Device data
>> + * @cfg: New configuration for the device
>> + * @cnv: Conversion value
>> + *
>> + * Writes a new configuration, waits an appropriate delay (assuming the new
>> + * configuration uses the maximum data-rate) and then reads the most recent
>
> I'm lost on this. Normally the longest delay is governed by the minimum data rate.
> I.e. Samples take longer when running few per second, so we wait longer.
We are using the minimum data rate on the maximum data-rate mode. I
should have added "mode" there.
>
> I think this is meant to mean the delay needed for a sample at the minimum expected
> rate for this configuration.
Yes, I think this was too confusing.
I'll add a `hz` argument to ads1018_calc_delay() and pass the frequency
of the maximum data-rate mode when preparing the config.
I think this will make the intent more explicit.
...
>> +static int
>> +ads1018_write_raw_unlocked(struct iio_dev *indio_dev,
>
> Similar to the naming discussion on the ACQUIRE RFC I'm not sure
> using locked here is really descriptive of more than an internal
> detail of how we prevent mode switching. I'd prefer something like
> ads1018_write_raw_direct_claimed() or ads1018_write_raw_direct_mode()
> (the absence of any other write_raw_*** would indicate this is the only
> valid one perhaps).
>
> Also this isn't the unlocked version, it's the one that doesn't take
> the lock.
I'll go with ads1018_{read,write}_raw_direct_mode().
>
Ack to everything else, including bindings stuff. Thanks, Jonathan!
--
~ Kurt
next prev parent reply other threads:[~2025-12-07 16:02 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-04 18:01 [PATCH v6 0/2] iio: Add support for TI ADS1X18 ADCs Kurt Borja
2025-12-04 18:01 ` [PATCH v6 1/2] dt-bindings: iio: adc: Add TI ADS1018/ADS1118 Kurt Borja
2025-12-06 19:33 ` Jonathan Cameron
2025-12-04 18:01 ` [PATCH v6 2/2] iio: adc: Add ti-ads1018 driver Kurt Borja
2025-12-06 20:07 ` Jonathan Cameron
2025-12-07 16:02 ` Kurt Borja [this message]
2025-12-07 17:12 ` David Lechner
2025-12-07 19:56 ` Jonathan Cameron
2025-12-08 4:06 ` Kurt Borja
2025-12-08 16:00 ` David Lechner
2025-12-10 4:08 ` Kurt Borja
2025-12-13 16:16 ` 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=DES3ZWAKXXEB.2LQPMDZN4JFCB@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.