mbox series

[v9,0/2] iio: imu: smi240: add bosch smi240 driver

Message ID 20241018135234.5446-1-Jianping.Shen@de.bosch.com (mailing list archive)
Headers show
Series iio: imu: smi240: add bosch smi240 driver | expand

Message

Shen Jianping (ME-SE/EAD2) Oct. 18, 2024, 1:52 p.m. UTC
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

Comments

Jonathan Cameron Oct. 18, 2024, 6:10 p.m. UTC | #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
>