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