[PATCH RFC v2 0/7] iio: add Open Sensor Fusion UART driver

Jinseob Kim posted 7 patches 8 hours ago
.../iio/imu/opensensorfusion,osf-uart.yaml    |  33 ++
.../devicetree/bindings/vendor-prefixes.yaml  |   2 +
.../iio/open-sensor-fusion-protocol-v0.rst    | 267 +++++++++++++++
MAINTAINERS                                   |   9 +
drivers/iio/Kconfig                           |   1 +
drivers/iio/Makefile                          |   1 +
drivers/iio/opensensorfusion/Kconfig          |  15 +
drivers/iio/opensensorfusion/Makefile         |   6 +
drivers/iio/opensensorfusion/osf_core.c       | 311 ++++++++++++++++++
drivers/iio/opensensorfusion/osf_core.h       |  67 ++++
drivers/iio/opensensorfusion/osf_iio.c        | 288 ++++++++++++++++
drivers/iio/opensensorfusion/osf_iio.h        |  22 ++
drivers/iio/opensensorfusion/osf_protocol.c   | 220 +++++++++++++
drivers/iio/opensensorfusion/osf_protocol.h   | 100 ++++++
drivers/iio/opensensorfusion/osf_serdev.c     | 111 +++++++
drivers/iio/opensensorfusion/osf_stream.c     | 207 ++++++++++++
drivers/iio/opensensorfusion/osf_stream.h     |  31 ++
17 files changed, 1691 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/imu/opensensorfusion,osf-uart.yaml
create mode 100644 Documentation/iio/open-sensor-fusion-protocol-v0.rst
create mode 100644 drivers/iio/opensensorfusion/Kconfig
create mode 100644 drivers/iio/opensensorfusion/Makefile
create mode 100644 drivers/iio/opensensorfusion/osf_core.c
create mode 100644 drivers/iio/opensensorfusion/osf_core.h
create mode 100644 drivers/iio/opensensorfusion/osf_iio.c
create mode 100644 drivers/iio/opensensorfusion/osf_iio.h
create mode 100644 drivers/iio/opensensorfusion/osf_protocol.c
create mode 100644 drivers/iio/opensensorfusion/osf_protocol.h
create mode 100644 drivers/iio/opensensorfusion/osf_serdev.c
create mode 100644 drivers/iio/opensensorfusion/osf_stream.c
create mode 100644 drivers/iio/opensensorfusion/osf_stream.h
[PATCH RFC v2 0/7] iio: add Open Sensor Fusion UART driver
Posted by Jinseob Kim 8 hours ago
This series adds an IIO driver for a UART-attached sensor aggregation
device. The device sends OSF0 binary frames over serdev UART. The driver
uses capability reports to register IIO devices for supported sensors.

v2 preparation changes:

- split the previous RFC driver patch into smaller patches
- add a Device Tree binding
- add an OSF0 protocol reference
- use get_unaligned_le16/32/64() for wire fields
- use IIO timestamp handling for buffered samples
- push decoded samples directly to registered IIO devices

Tested path:

- STM32F405 OSF0 UART stream
- Raspberry Pi 4 serdev
- kernel 6.12.75+rpt-rpi-v8
- IIO devices: osf-accel, osf-gyro, osf-magn, osf-temp
- raw reads from accel, gyro, magn, and temp
- buffer reads from accel, gyro, magn, and temp

No OSF oops, panic, or call trace was observed in the Raspberry Pi
runtime smoke.

Jinseob Kim (7):
  dt-bindings: iio: add Open Sensor Fusion UART device
  Documentation: iio: add Open Sensor Fusion protocol v0 reference
  iio: osf: add protocol v0 decoding
  iio: osf: add stream parser
  iio: osf: add UART serdev transport
  iio: osf: register IIO devices from capabilities
  MAINTAINERS: add Open Sensor Fusion IIO driver

 .../iio/imu/opensensorfusion,osf-uart.yaml    |  33 ++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 .../iio/open-sensor-fusion-protocol-v0.rst    | 267 +++++++++++++++
 MAINTAINERS                                   |   9 +
 drivers/iio/Kconfig                           |   1 +
 drivers/iio/Makefile                          |   1 +
 drivers/iio/opensensorfusion/Kconfig          |  15 +
 drivers/iio/opensensorfusion/Makefile         |   6 +
 drivers/iio/opensensorfusion/osf_core.c       | 311 ++++++++++++++++++
 drivers/iio/opensensorfusion/osf_core.h       |  67 ++++
 drivers/iio/opensensorfusion/osf_iio.c        | 288 ++++++++++++++++
 drivers/iio/opensensorfusion/osf_iio.h        |  22 ++
 drivers/iio/opensensorfusion/osf_protocol.c   | 220 +++++++++++++
 drivers/iio/opensensorfusion/osf_protocol.h   | 100 ++++++
 drivers/iio/opensensorfusion/osf_serdev.c     | 111 +++++++
 drivers/iio/opensensorfusion/osf_stream.c     | 207 ++++++++++++
 drivers/iio/opensensorfusion/osf_stream.h     |  31 ++
 17 files changed, 1691 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/imu/opensensorfusion,osf-uart.yaml
 create mode 100644 Documentation/iio/open-sensor-fusion-protocol-v0.rst
 create mode 100644 drivers/iio/opensensorfusion/Kconfig
 create mode 100644 drivers/iio/opensensorfusion/Makefile
 create mode 100644 drivers/iio/opensensorfusion/osf_core.c
 create mode 100644 drivers/iio/opensensorfusion/osf_core.h
 create mode 100644 drivers/iio/opensensorfusion/osf_iio.c
 create mode 100644 drivers/iio/opensensorfusion/osf_iio.h
 create mode 100644 drivers/iio/opensensorfusion/osf_protocol.c
 create mode 100644 drivers/iio/opensensorfusion/osf_protocol.h
 create mode 100644 drivers/iio/opensensorfusion/osf_serdev.c
 create mode 100644 drivers/iio/opensensorfusion/osf_stream.c
 create mode 100644 drivers/iio/opensensorfusion/osf_stream.h

-- 
2.43.0