From: Conor Dooley <conor@kernel.org>
To: Jonathan Cameron <jic23@kernel.org>
Cc: "Krzysztof Kozlowski" <krzk@kernel.org>,
"Wadim Mueller" <wafgo01@gmail.com>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Maxwell Doose" <m32285159@gmail.com>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 2/3] dt-bindings: iio: flow: add Sensirion SLF3S liquid flow sensor
Date: Fri, 12 Jun 2026 23:00:35 +0100 [thread overview]
Message-ID: <20260612-engraved-graves-6ff82d41d68e@spud> (raw)
In-Reply-To: <20260612190543.34d90b87@jic23-huawei>
[-- Attachment #1: Type: text/plain, Size: 5346 bytes --]
On Fri, Jun 12, 2026 at 07:05:43PM +0100, Jonathan Cameron wrote:
> On Sun, 7 Jun 2026 10:30:07 +0200
> Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> > On Fri, Jun 05, 2026 at 01:21:35PM +0100, Jonathan Cameron wrote:
> > > On Thu, 4 Jun 2026 13:22:17 +0200
> > > Krzysztof Kozlowski <krzk@kernel.org> wrote:
> > >
> > > > On 04/06/2026 11:03, Jonathan Cameron wrote:
> > > > > On Wed, 3 Jun 2026 16:29:10 +0200
> > > > > Krzysztof Kozlowski <krzk@kernel.org> wrote:
> > > > >
> > > > >> On 01/06/2026 16:09, Jonathan Cameron wrote:
> > > > >>> On Mon, 1 Jun 2026 13:53:23 +0200
> > > > >>> Krzysztof Kozlowski <krzk@kernel.org> wrote:
> > > > >>>
> > > > >>>> On Sat, May 30, 2026 at 10:54:31PM +0200, Wadim Mueller wrote:
> > > > >>>>> Document the bindings for the Sensirion SLF3S family of digital
> > > > >>>>> liquid-flow sensors on I2C. The family currently covers the
> > > > >>>>> SLF3S-0600F, SLF3S-1300F and SLF3S-4000B variants.
> > > > >>>>>
> > > > >>>>> The driver auto-detects the variant from the product-information
> > > > >>>>> register at probe time; the per-variant compatible strings exist
> > > > >>>>> for documentation and dt_binding_check purposes.
> > > > >>>>
> > > > >>>> Here...
> > > > >>>>
> > > > >>>>> +description:
> > > > >>>>> + Family of digital liquid-flow sensors from Sensirion with I2C
> > > > >>>>> + interface. All family members share the same register map; sub-types
> > > > >>>>> + differ only in the flow scale factor and the calibrated measurement
> > > > >>>>> + range, both of which are detected at probe time via the
> > > > >>>>> + product-information register.
> > > > >>>>
> > > > >>>> And here...
> > > > >>>>
> > > > >>>>> +
> > > > >>>>> +properties:
> > > > >>>>> + compatible:
> > > > >>>>> + enum:
> > > > >>>>> + - sensirion,slf3s-0600f
> > > > >>>>> + - sensirion,slf3s-1300f
> > > > >>>>> + - sensirion,slf3s-4000b
> > > > >>>>
> > > > >>>> And here something else. Confusing. Didn't you say device variants are
> > > > >>>> auto-detectable? So you have only one compatible sensirion,slf3s.
> > > > >>>
> > > > >>> And then future fallback compatibles can never work.
> > > > >>> Basically as far as I have ever been able to establish this is why
> > > > >>> generic compatibles are almost always the wrong way to go.
> > > > >>>
> > > > >>> If we get a future part with an unknown ID and don't have these existing
> > > > >>> specific compatibles, then we have no way to specify which one it is
> > > > >>
> > > > >> But why would you have future part with unknown ID?
> > > > >
> > > > > That's what manufacturers do on a very frequent basis. They tweak something
> > > > > that has no affect on the interface or channel scaling etc and release a new part
> > > > > with a different ID. Can be something like a part suited to different operating
> > > > > conditions, or with a different supply tolerance.
> > > >
> > > > and it will have a different, known that time ID. How could be "unknown"?
> > >
> > > Known to us, sure, know to old kernel (or other software), not so much.
> > > For this sort of driver the main use of fallback compatibles is to work on
> > > a not yet aware kernel.
> >
> > So you mean a case that sometime in the future, someone will write a DTS
> > with sensirion,slf3s fallback for a sensirion,slf3s-WAHTEVER_NEW_MODEL, use
> > old kernel and be surprised it does not work?
>
> To me that is exactly what a fallback compatible is promising - if we have
> any kernel / driver that supports the part that we are saying is a valid
> fallback then we are saying we support at least the functionality of that
> part (sure there may be extra stuff that doesn't work)
>
> We had a long discussion a few years back on whether code that did
>
> if (read_reg_whoami() != EXPECTED_ID)
> return -ENODEV;
>
> was correct. Someone (maybe Rob?) strongly argued that we must not
> do that because it effectively made fallbacks pointless as we always
> needed to upgrade the driver. I argued against this (on basis that
> swapping in incompatible parts is annoyingly common) but was eventually
> persuaded.
>
> If that is not a valid reading of what fallback compatibles mean, is
> there any documentation of the rules I can refer to?
>
> >
> > Our goal is not to stop whatever poor code people can ever come up with.
> >
> > Every future user wanting to the fallback MUST understand what the
> > fallback means.
>
> This is where we disagree.
>
> This is not hard to support, it just means not using generic compatibles
> when the device differ (and they are not self describing which these are
> not).
FWIW, I think the no generic compatible approach is reasonable.
The devices might be able to self-identify, but the featureset is not
discoverable, which makes the self-identification much less valuable.
Permitting drop-in replacement parts (or knock off devices from other
manufacturers etc) to use a compatible device as a fallback seems to me
exactly what fallbacks are intended for.
If the driver has to be updated every time a new device is created then
I think a generic compatible has effectively no value.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2026-06-12 22:00 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-30 20:54 [PATCH v3 0/3] iio: flow: Sensirion SLF3S liquid flow sensor Wadim Mueller
2026-05-30 20:54 ` [PATCH v3 1/3] iio: types: add IIO_VOLUMEFLOW channel type Wadim Mueller
2026-05-31 18:09 ` Marcelo Schmitt
2026-06-01 9:42 ` Jonathan Cameron
2026-06-03 14:08 ` Wadim Mueller
2026-06-04 8:44 ` Jonathan Cameron
2026-06-07 10:45 ` Wadim Mueller
2026-06-08 8:53 ` Rodrigo Alencar
2026-06-08 12:24 ` Wadim Mueller
2026-06-09 8:32 ` Rodrigo Alencar
2026-06-03 14:17 ` Andy Shevchenko
2026-05-30 20:54 ` [PATCH v3 2/3] dt-bindings: iio: flow: add Sensirion SLF3S liquid flow sensor Wadim Mueller
2026-05-31 17:45 ` Marcelo Schmitt
2026-05-31 17:50 ` Marcelo Schmitt
2026-06-03 14:08 ` Wadim Mueller
2026-06-03 14:43 ` Marcelo Schmitt
2026-06-03 14:48 ` Krzysztof Kozlowski
2026-06-01 9:44 ` Jonathan Cameron
2026-06-01 11:53 ` Krzysztof Kozlowski
2026-06-01 14:09 ` Jonathan Cameron
2026-06-03 14:08 ` Wadim Mueller
2026-06-03 14:29 ` Krzysztof Kozlowski
2026-06-04 9:03 ` Jonathan Cameron
2026-06-04 11:22 ` Krzysztof Kozlowski
2026-06-05 12:21 ` Jonathan Cameron
2026-06-07 8:30 ` Krzysztof Kozlowski
2026-06-11 10:35 ` Wadim Mueller
2026-06-11 10:42 ` Krzysztof Kozlowski
2026-06-12 18:05 ` Jonathan Cameron
2026-06-12 22:00 ` Conor Dooley [this message]
2026-05-30 20:54 ` [PATCH v3 3/3] iio: flow: add Sensirion SLF3S liquid flow sensor driver Wadim Mueller
2026-05-30 21:14 ` sashiko-bot
2026-05-31 23:59 ` Maxwell Doose
2026-06-01 9:38 ` Jonathan Cameron
2026-06-01 0:45 ` Marcelo Schmitt
2026-06-01 9:41 ` Jonathan Cameron
2026-06-03 14:08 ` Wadim Mueller
2026-06-01 9:53 ` 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=20260612-engraved-graves-6ff82d41d68e@spud \
--to=conor@kernel.org \
--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=krzk@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=m32285159@gmail.com \
--cc=nuno.sa@analog.com \
--cc=robh@kernel.org \
--cc=wafgo01@gmail.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.