From: "Nuno Sá" <noname.nuno@gmail.com>
To: Jonathan Cameron <jic23@kernel.org>,
Antoniu Miclaus <antoniu.miclaus@analog.com>
Cc: "Lars-Peter Clausen" <lars@metafoo.de>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Nuno Sa" <nuno.sa@analog.com>,
"Olivier Moysan" <olivier.moysan@foss.st.com>,
"Uwe Kleine-König" <ukleinek@kernel.org>,
"Andy Shevchenko" <andy@kernel.org>,
"David Lechner" <dlechner@baylibre.com>,
"Marcelo Schmitt" <marcelo.schmitt@analog.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
"Mike Looijmans" <mike.looijmans@topic.nl>,
"Dumitru Ceclan" <mitrutzceclan@gmail.com>,
"João Paulo Gonçalves" <joao.goncalves@toradex.com>,
"Alisa-Dariana Roman" <alisadariana@gmail.com>,
"Sergiu Cuciurean" <sergiu.cuciurean@analog.com>,
"Dragos Bogdan" <dragos.bogdan@analog.com>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org, linux-pwm@vger.kernel.org
Subject: Re: [PATCH v2 7/7] Documentation: ABI: testing: ad485x: add ABI docs
Date: Fri, 11 Oct 2024 14:24:32 +0200 [thread overview]
Message-ID: <e1979dbb5d79d18f84b6395d307a13734e7949b1.camel@gmail.com> (raw)
In-Reply-To: <20241005183629.6a9cd4da@jic23-huawei>
On Sat, 2024-10-05 at 18:36 +0100, Jonathan Cameron wrote:
> On Fri, 4 Oct 2024 17:07:56 +0300
> Antoniu Miclaus <antoniu.miclaus@analog.com> wrote:
>
> > Add documentation for the packet size.
> >
> > Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
> > ---
> > changes in v2:
> > - improve description for packet_format
> > - add kernel version
> > .../ABI/testing/sysfs-bus-iio-adc-ad485x | 16 ++++++++++++++++
> > 1 file changed, 16 insertions(+)
> > create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-adc-ad485x
> >
> > diff --git a/Documentation/ABI/testing/sysfs-bus-iio-adc-ad485x
> > b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad485x
> > new file mode 100644
> > index 000000000000..5d69a8d30383
> > --- /dev/null
> > +++ b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad485x
> > @@ -0,0 +1,16 @@
> > +What: /sys/bus/iio/devices/iio:deviceX/packet_format_available
> > +KernelVersion: 6.13
> > +Contact: linux-iio@vger.kernel.org
> > +Description:
> > + Packet sizes on the CMOS or LVDS conversion data output
> > bus.
> > + Reading this returns the valid values that can be written
> > to the
> > + packet_format.
> > +
> > +What: /sys/bus/iio/devices/iio:deviceX/packet_format
> > +KernelVersion: 6.13
> > +Contact: linux-iio@vger.kernel.org
> > +Description:
> > + This attribute configures the frame size on conversion data
> > + output bus. See packet_format_available for available sizes
> > + based on the device used.
> > + Reading returns the actual size used.
> This needs to give some guidance to the user on 'why' they might pick a
> particular
> format.
>
> I'm also inclined to suggest that for now we pick a sensible default dependent
> on the other options enabled (oversampling etc) and don't expose it to the
> user.
>
Just for documentations and if someone does not want to check the datasheet :):
- Nonoversampling Packet Formats:
-------------------
20bit (packet_size = 0) - |20 bit conversion|
-------------------
-------------------------------------------
24bit (packet_size = 1) - |20 bit conversion| OR/UR | 3 bit chan_id |
-------------------------------------------
--------------------------------------------------------------------
32bit (packet_size = 2) - |20 bit conversion| OR/UR | 3 bit chan_id | 4 bit softspan | 0s... |
--------------------------------------------------------------------
- Oversampling Packet Formats
-------------------
20bit (packet_size = 0) - |20 bit conversion|
-------------------
--------------------
24bit (packet_size = 1) - |24 bit conversion |
--------------------
------------------------------------------------------------
32bit (packet_size = 2) - |24 bit conversion| OR/UR | 3 bit chan_id | 4 bit softspan |
------------------------------------------------------------
> Eventually it looks like we may have to figure out a solution to describe
> metadata packed alongside the channel readings but that may take a while
> and I don't want to stall this driver on that discussion.
>
There's something still not fully clear to me. So, oversampling would be easy to
deal with (for arguing about some packet size). OR/UR is the more tricky case
because of having metadata. But I'm trying to understand on how it could look
because we still need a way to enable/disable OR/UR.
Do you have in mind to have a form of metadata description in 'struct
iio_scan_types' plus additional IIO_METADATA channels to enable/disable those
bits? For this usecase and as OR/UR actually depends on the packet format we
could flip things with something like in_metadataX_enable and then argue about
the packet size settings.
But things get messier if we look closer to the packets as we can see that for
non oversampled samples, the softspan info is optional. Now, I'm not convinced
about that information being useful in the sample as we already have the scale
attribute and I'm not expecting people to change it during buffering... But for
the fun of things, how could we handle it if we cared (or if we actually care)
about it? Custom ABI like in_metadataX_scan_enable?
Other thing that came to mind and that might be a sneaky way of bypassing the
metadata stuff (for now) is to use events. AFAIU, we have status registers were
we can check the OR/UR and push those as normal events. But we would need to
rely on an external trigger as hrtimer or something like that. So we could have
this "slowpath" for checking the channel status but still use the events ABI
(and this is the sneaky part) to argue about the packet_size and whether or not
that info will be available in the sample through DMA. Not sure if it's worth it
though...
- Nuno Sá
next prev parent reply other threads:[~2024-10-11 12:20 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-04 14:07 [PATCH v2 1/7] iio: backend: add API for interface get Antoniu Miclaus
2024-10-04 14:07 ` [PATCH v2 2/7] iio: backend: add support for data size set Antoniu Miclaus
2024-10-04 14:07 ` [PATCH v2 3/7] iio: adc: adi-axi-adc: add interface type Antoniu Miclaus
2024-10-04 14:07 ` [PATCH v2 4/7] iio: adc: adi-axi-adc: set data format Antoniu Miclaus
2024-10-04 14:07 ` [PATCH v2 5/7] dt-bindings: iio: adc: add ad485x Antoniu Miclaus
2024-10-04 15:18 ` Conor Dooley
2024-10-05 16:04 ` David Lechner
2024-10-05 17:07 ` Jonathan Cameron
2024-10-04 14:07 ` [PATCH v2 6/7] iio: adc: ad485x: add ad485x driver Antoniu Miclaus
2024-10-05 17:34 ` Jonathan Cameron
2024-10-05 18:53 ` Andy Shevchenko
2024-10-08 10:48 ` Miclaus, Antoniu
2024-10-08 15:57 ` Andy Shevchenko
2024-10-10 17:05 ` David Lechner
2024-10-11 11:27 ` Miclaus, Antoniu
2024-10-11 13:47 ` David Lechner
2024-10-08 11:37 ` Miclaus, Antoniu
2024-10-08 15:58 ` Andy Shevchenko
2024-10-07 18:18 ` kernel test robot
2024-10-09 7:50 ` Uwe Kleine-König
2024-10-04 14:07 ` [PATCH v2 7/7] Documentation: ABI: testing: ad485x: add ABI docs Antoniu Miclaus
2024-10-05 17:36 ` Jonathan Cameron
2024-10-11 12:24 ` Nuno Sá [this message]
2024-10-05 16:49 ` [PATCH v2 1/7] iio: backend: add API for interface get David Lechner
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=e1979dbb5d79d18f84b6395d307a13734e7949b1.camel@gmail.com \
--to=noname.nuno@gmail.com \
--cc=Michael.Hennerich@analog.com \
--cc=alisadariana@gmail.com \
--cc=andy@kernel.org \
--cc=angelogioacchino.delregno@collabora.com \
--cc=antoniu.miclaus@analog.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=dragos.bogdan@analog.com \
--cc=jic23@kernel.org \
--cc=joao.goncalves@toradex.com \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=marcelo.schmitt@analog.com \
--cc=mike.looijmans@topic.nl \
--cc=mitrutzceclan@gmail.com \
--cc=nuno.sa@analog.com \
--cc=olivier.moysan@foss.st.com \
--cc=robh@kernel.org \
--cc=sergiu.cuciurean@analog.com \
--cc=ukleinek@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox