Re: [PATCH v4 0/4] Add i2c driver for Bosch BMI260 IMU
From: Jonathan Cameron
Date: Mon Oct 28 2024 - 16:18:35 EST
On Sun, 27 Oct 2024 10:20:21 -0700
Justin Weiss <justin@xxxxxxxxxxxxxxx> wrote:
> Add support for the Bosch BMI260 IMU to the BMI270 device driver.
>
> The BMI270 and BMI260 have nearly identical register maps, but have
> different chip IDs and firmware.
>
> The BMI260 is the IMU on a number of handheld PCs. Unfortunately,
> these devices often misidentify it in ACPI as a BMI160 ("BMI0160," for
> example), and it can only be correctly identified using the chip
> ID. To avoid conflicts with the bmi160 driver, this driver will not
> probe if it detects a BMI160 chip ID.
>
> Also add triggered buffer and scale / sampling frequency attributes,
> which the input tools commonly used on handheld PCs require to support
> IMUs.
>
> Like the BMI270, the BMI260 requires firmware to be provided.
> Signed-off-by: Justin Weiss <justin@xxxxxxxxxxxxxxx>
Applied with a few tweaks thanks to Andy's review.
I'll push this out as testing to let 0-day poke at it before it goes
into linux-next in a few days time.
Thanks,
Jonathan
> ---
>
> Changelog:
>
> V4
> - Move triggered buffer and attributes patches to the front of the set
> - Add more detailed commit message to DT documentation patch
> - Remove ACPI IDs from SPI driver
> - Remove 10EC5280 and BMI0260 ACPI IDs from I2C driver
> - Add DSDT excerpt for BMI0160 ACPI ID
>
> V3
> https://lore.kernel.org/lkml/20241020220011.212395-1-justin@xxxxxxxxxxxxxxx/
> - Fix: Remove SCALE and FREQUENCY attributes
> - Use separate configuration structures instead of an array
> - Add bmi260 as compatible ID in bmi270 dt binding doc
> - Check chip ID against value in configuration instead of constant
> - Update comment for DMA alignment
> - Remove unreachable return statement
>
> V2
> https://lore.kernel.org/all/20241018233723.28757-1-justin@xxxxxxxxxxxxxxx/
> - Fix commit titles
> - Fix: Change FREQUENCY to SAMP_FREQ
> - Split chip_info refactor into a separate commit from adding bmi260
> - Only fail probe when BMI160 is detected
> - Update chip_info based on detected chip ID
> - Add BMI260 to DT documentation
> - Add BMI260 to of_device_id
> - Add expected BMI260 ACPI ID to the SPI driver
> - Remove unused/unexpected BMI260 ACPI IDs
> - Remove trailing comma for null terminators
> - Use DMA_MINALIGN for channel buffer
> - Read channels in bulk
> - Improve for loops for detecting scale / odr attrs
> - Add missing masks
> - Use FIELD_GET
> - Use read_avail instead of custom attrs
> - Misc. formatting and line wrapping improvements
>
> V1
> https://lore.kernel.org/all/20241011153751.65152-1-justin@xxxxxxxxxxxxxxx/
>
> Justin Weiss (4):
> iio: imu: bmi270: Add triggered buffer for Bosch BMI270 IMU
> iio: imu: bmi270: Add scale and sampling frequency to BMI270 IMU
> dt-bindings: iio: imu: bmi270: Add Bosch BMI260
> iio: imu: bmi270: Add support for BMI260
>
> .../bindings/iio/imu/bosch,bmi270.yaml | 4 +-
> drivers/iio/imu/bmi270/Kconfig | 1 +
> drivers/iio/imu/bmi270/bmi270.h | 10 +
> drivers/iio/imu/bmi270/bmi270_core.c | 424 +++++++++++++++++-
> drivers/iio/imu/bmi270/bmi270_i2c.c | 9 +
> drivers/iio/imu/bmi270/bmi270_spi.c | 2 +
> 6 files changed, 448 insertions(+), 2 deletions(-)
>
>
> base-commit: 9090ececac9ff1e22fb7e042f3c886990a8fb090