From: Jinseob Kim <kimjinseob88@gmail.com>
To: jic23@kernel.org, linux-iio@vger.kernel.org
Cc: kimjinseob88@gmail.com, dlechner@baylibre.com,
nuno.sa@analog.com, andy@kernel.org, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org,
neil.armstrong@linaro.org, andersson@kernel.org,
prabhakar.mahadev-lad.rj@bp.renesas.com,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
corbet@lwn.net, skhan@linuxfoundation.org, rdunlap@infradead.org,
linux-doc@vger.kernel.org
Subject: [PATCH v11 0/8] iio: add Open Sensor Fusion UART support
Date: Mon, 12 Oct 2026 08:13:32 +0900 [thread overview]
Message-ID: <20261011231340.42885-1-kimjinseob88@gmail.com> (raw)
This series adds a UART/serdev receiver for the project's fixed OSF
Device-to-Host 0.0 protocol. Complete capability snapshots create IIO
accelerometer, gyroscope, magnetometer and temperature devices with RAW,
descriptor-derived SCALE and initialized buffered scans.
The receiver validates the fixed OSF0 envelope, CRC and exact known
message lengths. Equivalent capability reports are idempotent; changes
to a bound supported inventory fault the session until explicit rebind.
IIO samples use host timestamps.
Changes since v10:
- Move OSF under drivers/iio/sensorhubs/osf/ following review.
- Use the OSF GREEN compatible with the generic OSF fallback.
- Clarify complete capability-report snapshot semantics.
- Use designated decoded-frame initialization and drop decoded reserved
fields while retaining reserved wire-byte tolerance.
- Reuse stream reset and simplify core/serdev locking and lifecycle.
- Use IIO buffer-mode claims instead of a private buffer lock.
- Simplify scan storage and channel declarations.
- Fix KUnit worker/device/mutex/resource/completion lifetimes.
Generic IIO self-test extraction remains deferred.
- Synchronize KUnit fault observation and configuration completion with
completions and thread joins instead of short polling/deadline windows.
The IIO buffer teardown serialization issue found during the v10 review
was fixed separately and is now in mainline as commit 84bb0fc46ccf
("iio: buffer: serialize buffer teardown with mode claims").
This series is based on the IIO testing snapshot fetched for this submission:
a22dc7ebb21a6bd4c8b63bc2c1dd46a24945aae7
Runtime validation used this testing base plus the eight OSF patches
and the exact mainline IIO core fix 84bb0fc46ccf6a545b8fdf57cda83770186ed8dd.
The core fix is not included in this series and must be present when
running the series on this testing base.
Fresh validation of this source:
- GCC and Clang W=1 kernel builds; module builds.
- osf-core (16 tests) and osf-iio (2 tests), with KASAN, lockdep,
DEBUG_MUTEXES, DEBUG_LOCK_ALLOC, DEBUG_OBJECTS and DEBUG_OBJECTS_FREE.
- 200 production module load/unload cycles and 200 test-enriched module
load/unload cycles using identical driver/test C sources, exercising
20,000 IIO buffer toggles, scan subsets, timestamps and unregister.
- DT binding/style/example/schema checks and IIO Sphinx build.
- Clean sequential application and relevant builds of all eight patches.
Physical board tests were not repeated for this revision.
Canonical specification (fixed revision):
https://github.com/opensensorfusion/opensensorfusion-protocol/blob/ca9cdea1ae550c2b4d6f29f87877adae99470744/spec/osf-d2h-0.0.md
The fixed public specification is maintained and adopted by the OSF
project. This does not imply Linux maintainer approval of the
specification or driver.
Jinseob Kim (8):
dt-bindings: iio: add Open Sensor Fusion device
Documentation: iio: add Open Sensor Fusion driver overview
iio: osf: add protocol decoding
iio: osf: add validated stream parser
iio: osf: add UART transport and core receive path
iio: osf: add IIO devices from capability reports
iio: osf: add core KUnit tests
iio: osf: add IIO KUnit tests
.../bindings/iio/opensensorfusion,osf.yaml | 55 +
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
Documentation/iio/index.rst | 1 +
Documentation/iio/open-sensor-fusion.rst | 81 ++
MAINTAINERS | 8 +
drivers/iio/Kconfig | 1 +
drivers/iio/Makefile | 1 +
drivers/iio/sensorhubs/Kconfig | 7 +
drivers/iio/sensorhubs/Makefile | 3 +
drivers/iio/sensorhubs/osf/Kconfig | 27 +
drivers/iio/sensorhubs/osf/Makefile | 7 +
drivers/iio/sensorhubs/osf/osf_core.c | 460 +++++++
drivers/iio/sensorhubs/osf/osf_core.h | 75 ++
drivers/iio/sensorhubs/osf/osf_core_test.c | 1056 +++++++++++++++++
drivers/iio/sensorhubs/osf/osf_iio.c | 288 +++++
drivers/iio/sensorhubs/osf/osf_iio.h | 22 +
drivers/iio/sensorhubs/osf/osf_iio_test.c | 386 ++++++
drivers/iio/sensorhubs/osf/osf_protocol.c | 215 ++++
drivers/iio/sensorhubs/osf/osf_protocol.h | 99 ++
drivers/iio/sensorhubs/osf/osf_serdev.c | 151 +++
drivers/iio/sensorhubs/osf/osf_stream.c | 230 ++++
drivers/iio/sensorhubs/osf/osf_stream.h | 53 +
22 files changed, 3228 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/opensensorfusion,osf.yaml
create mode 100644 Documentation/iio/open-sensor-fusion.rst
create mode 100644 drivers/iio/sensorhubs/Kconfig
create mode 100644 drivers/iio/sensorhubs/Makefile
create mode 100644 drivers/iio/sensorhubs/osf/Kconfig
create mode 100644 drivers/iio/sensorhubs/osf/Makefile
create mode 100644 drivers/iio/sensorhubs/osf/osf_core.c
create mode 100644 drivers/iio/sensorhubs/osf/osf_core.h
create mode 100644 drivers/iio/sensorhubs/osf/osf_core_test.c
create mode 100644 drivers/iio/sensorhubs/osf/osf_iio.c
create mode 100644 drivers/iio/sensorhubs/osf/osf_iio.h
create mode 100644 drivers/iio/sensorhubs/osf/osf_iio_test.c
create mode 100644 drivers/iio/sensorhubs/osf/osf_protocol.c
create mode 100644 drivers/iio/sensorhubs/osf/osf_protocol.h
create mode 100644 drivers/iio/sensorhubs/osf/osf_serdev.c
create mode 100644 drivers/iio/sensorhubs/osf/osf_stream.c
create mode 100644 drivers/iio/sensorhubs/osf/osf_stream.h
base-commit: a22dc7ebb21a6bd4c8b63bc2c1dd46a24945aae7
next reply other threads:[~2026-10-11 23:14 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-11 23:13 Jinseob Kim [this message]
2026-10-11 23:13 ` [PATCH v11 1/8] dt-bindings: iio: add Open Sensor Fusion device Jinseob Kim
2026-10-11 23:13 ` [PATCH v11 2/8] Documentation: iio: add Open Sensor Fusion driver overview Jinseob Kim
2026-10-11 23:13 ` [PATCH v11 3/8] iio: osf: add protocol decoding Jinseob Kim
2026-10-11 23:13 ` [PATCH v11 4/8] iio: osf: add validated stream parser Jinseob Kim
2026-10-11 23:13 ` [PATCH v11 5/8] iio: osf: add UART transport and core receive path Jinseob Kim
2026-10-11 23:13 ` [PATCH v11 6/8] iio: osf: add IIO devices from capability reports Jinseob Kim
2026-10-11 23:13 ` [PATCH v11 7/8] iio: osf: add core KUnit tests Jinseob Kim
2026-10-11 23:13 ` [PATCH v11 8/8] iio: osf: add IIO " Jinseob Kim
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=20261011231340.42885-1-kimjinseob88@gmail.com \
--to=kimjinseob88@gmail.com \
--cc=andersson@kernel.org \
--cc=andy@kernel.org \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=nuno.sa@analog.com \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
--cc=rdunlap@infradead.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®