.../bindings/iio/imu/bosch,smi240.yaml | 51 ++ drivers/iio/imu/Kconfig | 14 + drivers/iio/imu/Makefile | 2 + drivers/iio/imu/smi240.c | 622 ++++++++++++++++++ 4 files changed, 689 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/imu/bosch,smi240.yaml create mode 100644 drivers/iio/imu/smi240.c
From: Shen Jianping <Jianping.Shen@de.bosch.com>
Add the iio driver for bosch imu smi240. The smi240 is a combined
three axis angular rate and three axis acceleration sensor module
with a measurement range of +/-300°/s and up to 16g. This driver
provides raw data access for each axis through sysfs, and tiggered
buffer for continuous sampling. A synchronous acc and gyro sampling
can be triggered by setting the capture bit in spi read command.
dt-bindings:
v1 -> v2
- Add more detail in description
- Add maintainer
- Add vdd and vddio power supply
- Use generic node name
- Order the properties according to DTS coding style
v2 -> v3
- Improve description
- Improve supply definition
- Make supply definition as required
- Add supply definition in example
v3 -> v4
- No changes
v4 -> v5
- No changes
v5 -> v6
- Fix checkpatch findings
v6 -> v7
- No changes
v7 -> v8
- No changes
v8 -> v9
- No changes
imu driver:
v1 -> v2
- Use regmap for register access
- Redefine channel for each singel axis
- Provide triggered buffer
- Fix findings in Kconfig
- Remove unimportant functions
v2 -> v3
- Use enum für capture mode
- Using spi default init value instead manual init
- remove duplicated module declaration
- Fix code to avoid warning
v3 -> v4
- Use DMA safe buffer
- Use channel info instead of custom ABI
- Fix other findings
v4 -> v5
- Merge the implementation in one simple file
- Add channel info for acc/gyro data channel
- Fix other findings
v5 -> v6
- Fix checkpatch findings
- Fix review findings
v6 -> v7
- Fix offset and scale
v7 -> v8
- Use memcpy in spi write to keep CPU endian
- Fix some minor findings
v8 -> v9
- remove unnecessary cpu_to_le16 for reg value in spi response
- use REGMAP_ENDIAN_NATIVE in regmap config to avoid regmap to flip the reg value when passing to spi write
Shen Jianping (2):
dt-bindings: iio: imu: smi240: add Bosch smi240
iio: imu: smi240: add driver
.../bindings/iio/imu/bosch,smi240.yaml | 51 ++
drivers/iio/imu/Kconfig | 14 +
drivers/iio/imu/Makefile | 2 +
drivers/iio/imu/smi240.c | 622 ++++++++++++++++++
4 files changed, 689 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/imu/bosch,smi240.yaml
create mode 100644 drivers/iio/imu/smi240.c
--
2.34.1
On Fri, 18 Oct 2024 15:52:32 +0200 <Jianping.Shen@de.bosch.com> wrote: > From: Shen Jianping <Jianping.Shen@de.bosch.com> > > Add the iio driver for bosch imu smi240. The smi240 is a combined > three axis angular rate and three axis acceleration sensor module > with a measurement range of +/-300°/s and up to 16g. This driver > provides raw data access for each axis through sysfs, and tiggered > buffer for continuous sampling. A synchronous acc and gyro sampling > can be triggered by setting the capture bit in spi read command. > Applied to the togreg branch of iio.git and pushed out as testing for 0-day to take a first look at it. Minor tweak needed due to the unaligned.h header moving to linux/ Thanks, Jonathan > dt-bindings: > v1 -> v2 > - Add more detail in description > - Add maintainer > - Add vdd and vddio power supply > - Use generic node name > - Order the properties according to DTS coding style > > v2 -> v3 > - Improve description > - Improve supply definition > - Make supply definition as required > - Add supply definition in example > > v3 -> v4 > - No changes > > v4 -> v5 > - No changes > > v5 -> v6 > - Fix checkpatch findings > > v6 -> v7 > - No changes > > v7 -> v8 > - No changes > > v8 -> v9 > - No changes > > imu driver: > v1 -> v2 > - Use regmap for register access > - Redefine channel for each singel axis > - Provide triggered buffer > - Fix findings in Kconfig > - Remove unimportant functions > > v2 -> v3 > - Use enum für capture mode > - Using spi default init value instead manual init > - remove duplicated module declaration > - Fix code to avoid warning > > v3 -> v4 > - Use DMA safe buffer > - Use channel info instead of custom ABI > - Fix other findings > > v4 -> v5 > - Merge the implementation in one simple file > - Add channel info for acc/gyro data channel > - Fix other findings > > v5 -> v6 > - Fix checkpatch findings > - Fix review findings > > v6 -> v7 > - Fix offset and scale > > v7 -> v8 > - Use memcpy in spi write to keep CPU endian > - Fix some minor findings > > v8 -> v9 > - remove unnecessary cpu_to_le16 for reg value in spi response > - use REGMAP_ENDIAN_NATIVE in regmap config to avoid regmap to flip the reg value when passing to spi write > > Shen Jianping (2): > dt-bindings: iio: imu: smi240: add Bosch smi240 > iio: imu: smi240: add driver > > .../bindings/iio/imu/bosch,smi240.yaml | 51 ++ > drivers/iio/imu/Kconfig | 14 + > drivers/iio/imu/Makefile | 2 + > drivers/iio/imu/smi240.c | 622 ++++++++++++++++++ > 4 files changed, 689 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iio/imu/bosch,smi240.yaml > create mode 100644 drivers/iio/imu/smi240.c >
© 2016 - 2026 Red Hat, Inc.