From: Jonathan Cameron <jic23@kernel.org>
To: Janani Sunil <jananisunil.dev@gmail.com>
Cc: "David Lechner" <dlechner@baylibre.com>,
"Janani Sunil" <janani.sunil@analog.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Olivier Moysan" <olivier.moysan@foss.st.com>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
"Linus Walleij" <linusw@kernel.org>,
"Bartosz Golaszewski" <brgl@kernel.org>,
"Jonathan Corbet" <corbet@lwn.net>,
"Shuah Khan" <skhan@linuxfoundation.org>,
linux@analog.com, linux-iio@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-doc@vger.kernel.org
Subject: Re: [PATCH 1/6] dt-bindings: iio: adc: Add AD7768
Date: Thu, 20 Aug 2026 01:57:53 +0100 [thread overview]
Message-ID: <20260820015753.4faee677@jic23-huawei> (raw)
In-Reply-To: <9dd16bb5-7a30-4024-88a7-4a4bf47c35e8@gmail.com>
On Mon, 20 Jul 2026 16:00:26 +0200
Janani Sunil <jananisunil.dev@gmail.com> wrote:
> On 7/9/26 17:43, David Lechner wrote:
> > On 7/9/26 3:50 AM, Janani Sunil wrote:
> >> Devicetree Bindings for AD7768-4 (4 channel) and AD7768 (8 channel)
> >> simultaneous sampling ADC
> >>
> >> Signed-off-by: Janani Sunil <janani.sunil@analog.com>
> >> ---
> >>
> >>
> >> +
> >> + adi,power-mode:
> >> + $ref: /schemas/types.yaml#/definitions/string
> >> + enum:
> >> + - low
> >> + - median
> >> + - fast
> >> + description:
> >> + Power mode selection.
> > Unless there are pins that control this, it seems like it should be
> > left up to the driver to decide how to set this.
> >
> > In this case, it looks like the power mode also influences sample rate
> > which is normally something controlled at runtime.
>
> Hi David,
>
> The reason we'd like to retain power mode control is that certain ODRs
> are supported across all three power modes (low/median/fast), and the
> RMS noise and power consumption differ significantly between them at the
> same ODR.
>
> The higher the power mode, the better the noise performance, but power
> consumption nearly doubles for every ~3 dB improvement in dynamic range.
> Silently selecting one power mode in the driver would remove a
> meaningful hardware tradeoff from the user.
>
> We'd like to propose the following instead:
> - Remove adi,power-mode from the DT as suggested.
> - Expose power mode as a per-device sysfs attribute.
> - in_voltage<N>_sampling_frequency_available dynamically reflects only
> the ODRs valid for the currently selected power mode.
>
> This keeps the DT clean while still giving the user explicit control
> over the noise versus power trade off. Would this approach be acceptable?
>
The challenge here is simple: How does userspace know what a power mode
means? Everyone wants low power and low noise and the trade of between
the two tends to be invisible. If we add a control it also becomes
hard to do a best effort - give them something sensible - control based
on what they want. Users understand the ability to sample at different max
frequencies for example. There are ways to do this like always requiring
'auto' as an option for a power control but they are also rather nasty.
Whilst I see that it is reasonably complex to move from 'low / medium / high'
we need to try really hard to map that to something numeric and well defined.
I think it came up earlier in the discussion - there is a clearly stated
set of recommendations for a mapping from fmod to power mode. I lost
track of whether we had reasons to not try and build an interface
around that. Even though modulator frequency is a little obscure, if it
is consistently defined across manufacturers and parts and the trade offs
around how it is chosen are well understood that might be something that
would make a better ABI?
Jonathan
> Thanks,
> Jan
>
>
>
next prev parent reply other threads:[~2026-08-20 0:57 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-09 8:50 [PATCH 0/6] iio: adc: Add AD7768/AD7768-4 ADC driver support Janani Sunil
2026-07-09 8:50 ` [PATCH 1/6] dt-bindings: iio: adc: Add AD7768 Janani Sunil
2026-07-09 8:59 ` sashiko-bot
2026-07-09 15:43 ` David Lechner
2026-07-10 0:33 ` Jonathan Cameron
2026-07-11 14:40 ` David Lechner
2026-07-12 1:39 ` Jonathan Cameron
2026-07-12 16:07 ` David Lechner
2026-07-20 14:00 ` Janani Sunil
2026-07-21 1:39 ` David Lechner
2026-07-21 8:03 ` Janani Sunil
2026-07-22 1:58 ` Jonathan Cameron
2026-07-23 8:15 ` Nuno Sá
2026-07-23 22:48 ` Jonathan Cameron
2026-07-27 14:01 ` Nuno Sá
2026-08-20 0:57 ` Jonathan Cameron [this message]
2026-07-10 1:39 ` Jonathan Cameron
2026-07-09 8:50 ` [PATCH 2/6] iio: backend: Add support for CRC Janani Sunil
2026-07-09 9:03 ` sashiko-bot
2026-07-10 0:36 ` Jonathan Cameron
2026-07-09 8:50 ` [PATCH 3/6] iio: adc: adi-axi-adc: " Janani Sunil
2026-07-09 9:14 ` sashiko-bot
2026-07-09 15:54 ` David Lechner
2026-07-10 0:39 ` Jonathan Cameron
2026-07-10 0:46 ` Jonathan Cameron
2026-07-14 14:18 ` Nuno Sá
2026-07-14 14:33 ` Nuno Sá
2026-07-09 8:50 ` [PATCH 4/6] iio: adc: Add AD7768 IIO Driver support Janani Sunil
2026-07-09 9:27 ` sashiko-bot
2026-07-10 2:10 ` Jonathan Cameron
2026-07-10 7:41 ` Uwe Kleine-König
2026-07-09 8:50 ` [PATCH 5/6] gpio: ad7768: Add AD7768 GPIO auxiliary driver Janani Sunil
2026-07-09 9:38 ` sashiko-bot
2026-07-09 11:05 ` Andy Shevchenko
2026-07-14 11:03 ` Janani Sunil
2026-07-14 11:31 ` Andy Shevchenko
2026-07-24 7:18 ` Linus Walleij
2026-07-10 2:14 ` Jonathan Cameron
2026-07-10 20:06 ` Linus Walleij
2026-07-09 8:50 ` [PATCH 6/6] Documentation: iio: Add AD7768 Documentation Janani Sunil
2026-07-09 9:41 ` sashiko-bot
2026-07-10 2: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=20260820015753.4faee677@jic23-huawei \
--to=jic23@kernel.org \
--cc=Michael.Hennerich@analog.com \
--cc=andy@kernel.org \
--cc=brgl@kernel.org \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=janani.sunil@analog.com \
--cc=jananisunil.dev@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@analog.com \
--cc=nuno.sa@analog.com \
--cc=olivier.moysan@foss.st.com \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=skhan@linuxfoundation.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.