lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20251012174240.24ad54df@jic23-huawei>
Date: Sun, 12 Oct 2025 17:42:40 +0100
From: Jonathan Cameron <jic23@...nel.org>
To: Remi Buisson via B4 Relay <devnull+remi.buisson.tdk.com@...nel.org>
Cc: remi.buisson@....com, David Lechner <dlechner@...libre.com>, Nuno
 Sá <nuno.sa@...log.com>, Andy Shevchenko <andy@...nel.org>,
 Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
 Conor Dooley <conor+dt@...nel.org>, linux-kernel@...r.kernel.org,
 linux-iio@...r.kernel.org, devicetree@...r.kernel.org
Subject: Re: [PATCH v7 0/9] iio: imu: new inv_icm45600 driver

On Tue, 07 Oct 2025 07:20:01 +0000
Remi Buisson via B4 Relay <devnull+remi.buisson.tdk.com@...nel.org> wrote:

> This series add a new driver for managing InvenSense ICM-456xx 6-axis IMUs.
> This next generation of chips includes new generations of 3-axis gyroscope
> and 3-axis accelerometer, support of I3C in addition to I2C and SPI, and
> intelligent MotionTracking features like pedometer, tilt detection, and
> tap detection.
> 
> This series is delivering a driver supporting gyroscope, accelerometer and
> temperature data, with polling and buffering using hwfifo and watermark,
> on I2C, SPI and I3C busses.
> 
> Gyroscope and accelerometer sensors are completely independent and can have
> different ODRs. Since there is only a single FIFO a specific value is used
> to mark invalid data. To keep the device standard we are de-multiplexing
> data from the FIFO to 2 IIO devices with 2 buffers, 1 for the accelerometer
> and 1 for the gyroscope. This architecture also enables to easily turn each
> sensor on/off without impacting the other. The device interrupt is used to
> read the FIFO and launch parsing of accelerometer and gyroscope data.
> This driver relies on the common Invensense timestamping mechanism to
> handle correctly FIFO watermark and dynamic changes of settings.
> 
> The structure of the driver is quite similar to the inv_icm42600 driver,
> however there are significant reasons for adding a different driver for
> inv_icm45600, such as:
> - A completely different register map.
> - Different FIFO management, based on number of samples instead of bytes.
> - Different indirect register access mechanism.
> 
> Note that regmap cache will be added in a dedicated patch set, to avoid
> increasing too much this one.
> 
> Signed-off-by: Remi Buisson <remi.buisson@....com>
I fixed up the patch 1 tags thing. b4 did it for me - though it
found both an Ack and a RB from Conor. I dropped the RB as that
combination makes no sense and didn't come from the same reply from Conor.

Please be careful about picking up such tags for future series.

Series applied to the testing branch of iio.git. That will get some brief
testing by 0-day. I'll rebase that on rc1 once available and then push it
out as the togreg branch which gets picked up by linux-next.

Nice work.

Thanks,

Jonathan

> ---
> Changes in v7:
> - Fix SPI module missing header.
> - Add comments on sub-field for fifo structure.
> - Use designated initializers in odr_to_period table.
> - Fix typo.
> - Rework regmap usage in inv_icm45600_buffer_set_fifo_en.
> - Added a comment to explain why we dont use fallbacks in DT.
> - Link to v6: https://lore.kernel.org/r/20250924-add_newport_driver-v6-0-76687b9d8a6e@tdk.com
> 
> Changes in v6:
> - Reviewed headers inclusion
> - Formatting (line too short, ...)
> - moving code to patch it belongs
> - kernel doc fixes
> - Comments reviewed and simplified
> - removed dev_error_probe with ENOMEM
> - fixed useless ssize_t to size_t
> - removed useless pack attribute
> - Fixed unclear or malformed if
> - Removed useless fifo_is_data_valid wrapper
> - Use available macros instead of hardcoded values
> - Link to v5: https://lore.kernel.org/r/20250820-add_newport_driver-v5-0-2fc9f13dddee@tdk.com
> 
> Changes in v5:
> - Simplified device tree, removed interrupts from mandatory param list
> - Allocated regmap_bulk_read/write buffers to dma-capable memory (for indirect reg accesses)
> - Use min/max to simplify code
> - Reordered some code/include/prototypes to the patch they belong
> - Updated to latest iio_push_to_buffers_with_ts API
> - Fix build warning with clang 18.1.8
> - Fixed some alignements
> - Avoiding irq_type silly assignation
> - Simplified fwnode_irq_get_byname error management
> - Re-ordered suspend/resume process to match + comments
> - Reverted VDDIO init to make it work without PM
> - Avoid PM underflow on VDDIO when removing inv_icm456000 module, by checking suspend state
> - Link to v4: https://lore.kernel.org/r/20250814-add_newport_driver-v4-0-4464b6600972@tdk.com
> 
> Changes in v4:
> - Introduce gyro and accel in different patches.
> - Move IRQ probe to next patch.
> - Allocate fifo memory instead of static definition.
> - Rework VDDIO management to avoid underflow.
> - Rework suspend/resume using force suspend/resume API.
> - Use helper min, clamp and sizeof instead of custom implementation.
> - Re-scoping some variables, using reverse xmas tree for declarations.
> - Fix formatting: end of list, end of file, spaces, alignments.
> - Use dev_err_probe for I3C errors.
> - Factorizing default config code.
> - Link to v3: https://lore.kernel.org/r/20250717-add_newport_driver-v3-0-c6099e02c562@tdk.com
> 
> Changes in v3:
> - Macros renamed and added to the patch using it.
> - Using unsigned for sensor configuration parameters.
> - Using sizeof instead of raw values.
> - Using fsleep instead of usleep.
> - Simplified dt-bindings examples, setting supplies as mandatory
> - Fix bad or useless casts.
> - Partially aligned power management following 20250709-icm42pmreg-v1-0-3d0e793c99b2@...nix.com
> - Fix "uninitialized symbols" warnings.
> - Link to v2: https://lore.kernel.org/r/20250710-add_newport_driver-v2-0-bf76d8142ef2@tdk.com
> 
> Changes in v2:
> - Reworked patches order and content to ease review and make sure everything compiles
> - Reworked gyro and accel FSR as 2D arrays
> - Moved temperature processed sensor to core module
> - Use latest API to claim/release device
> - Implemented chip_info structure instead of relying on an enum
> - Removed power-mode ABI, only relying on ODR to switch power_mode
> - Reworked regulator control to use devm_ API where relevant
> - Reworked inv_icm45600_state.buffer as a union to avoid casts, using getter/setter instead of memcpy
> - Fixed dt-binding error and moved patch at the beginning of the patch-set
> - Reworked macros to use FIELD_PREP inline instead of inside the header
> - Fixed comment's grammar
> - Removed extra blank lines
> - Reordered part numbers alphanumerically
> - Removed useless default/error fallbacks
> - Typed accel, gyro and timestamp data when parsing FIFO
> - Fixed I2C module return code
> - Use Linux types instead of C standard
> - Reviewed headers inclusion to remove useless #include and to add missing ones
> - Link to v1: https://lore.kernel.org/r/20250411-add_newport_driver-v1-0-15082160b019@tdk.com
> 
> ---
> Remi Buisson (9):
>       dt-bindings: iio: imu: Add inv_icm45600
>       iio: imu: inv_icm45600: add new inv_icm45600 driver
>       iio: imu: inv_icm45600: add buffer support in iio devices
>       iio: imu: inv_icm45600: add IMU IIO gyroscope device
>       iio: imu: inv_icm45600: add IMU IIO accelerometer device
>       iio: imu: inv_icm45600: add I2C driver for inv_icm45600 driver
>       iio: imu: inv_icm45600: add SPI driver for inv_icm45600 driver
>       iio: imu: inv_icm45600: add I3C driver for inv_icm45600 driver
>       MAINTAINERS: add entry for inv_icm45600 6-axis imu sensor
> 
>  .../bindings/iio/imu/invensense,icm45600.yaml      |  90 ++
>  MAINTAINERS                                        |   8 +
>  drivers/iio/imu/Kconfig                            |   1 +
>  drivers/iio/imu/Makefile                           |   1 +
>  drivers/iio/imu/inv_icm45600/Kconfig               |  70 ++
>  drivers/iio/imu/inv_icm45600/Makefile              |  16 +
>  drivers/iio/imu/inv_icm45600/inv_icm45600.h        | 385 ++++++++
>  drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c  | 782 ++++++++++++++++
>  drivers/iio/imu/inv_icm45600/inv_icm45600_buffer.c | 557 ++++++++++++
>  drivers/iio/imu/inv_icm45600/inv_icm45600_buffer.h | 101 +++
>  drivers/iio/imu/inv_icm45600/inv_icm45600_core.c   | 988 +++++++++++++++++++++
>  drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c   | 791 +++++++++++++++++
>  drivers/iio/imu/inv_icm45600/inv_icm45600_i2c.c    |  98 ++
>  drivers/iio/imu/inv_icm45600/inv_icm45600_i3c.c    |  78 ++
>  drivers/iio/imu/inv_icm45600/inv_icm45600_spi.c    | 108 +++
>  15 files changed, 4074 insertions(+)
> ---
> base-commit: 411e8b72c181e4f49352c12ced0fd8426eb683aa
> change-id: 20250411-add_newport_driver-529cf5b71ea8
> 
> Best regards,


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ