iio: accel: bmi088: Add support for bmi085 accel
authorLI Qingwu <Qing-wu.Li@leica-geosystems.com.cn>
Thu, 26 May 2022 13:33:57 +0000 (13:33 +0000)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 11 Jun 2022 13:35:28 +0000 (14:35 +0100)
Add supports for BMI085, an Inertial Measurement Unit,
with an accelerometer and gyroscope.
The commit adds the accelerometer driver for the SPI interface.
The gyroscope part is already supported by the BMG160 driver.
Unlike BMI088, the BMI085 accelerometer ranges are +/-2, 4, 6,
and 8g, the scales are calculated as 9.8/32768*pow(2,reg41+1).

Reviewed-by: Alexandru Ardelean <ardeleanalex@gmail.com>
Signed-off-by: LI Qingwu <Qing-wu.Li@leica-geosystems.com.cn>
Link: https://lore.kernel.org/r/20220526133359.2261928-5-Qing-wu.Li@leica-geosystems.com.cn
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/accel/bmi088-accel-core.c
drivers/iio/accel/bmi088-accel-spi.c
drivers/iio/accel/bmi088-accel.h

index 2b3f3459409911d74790d3ec0021cd1777c255f0..977e1653472d0ffe1743cc6306efb4db20d8b400 100644 (file)
@@ -465,6 +465,13 @@ static const struct iio_chan_spec bmi088_accel_channels[] = {
 };
 
 static const struct bmi088_accel_chip_info bmi088_accel_chip_info_tbl[] = {
+       [BOSCH_BMI085] = {
+               .name = "bmi085-accel",
+               .chip_id = 0x1F,
+               .channels = bmi088_accel_channels,
+               .num_channels = ARRAY_SIZE(bmi088_accel_channels),
+               .scale_table = {{0, 598}, {0, 1196}, {0, 2393}, {0, 4785}},
+       },
        [BOSCH_BMI088] = {
                .name = "bmi088-accel",
                .chip_id = 0x1E,
index 3831e2df860f123449971d176d296a2f59fda5ec..6a5d17ebcf6e079e7c8c846bb02fc5c3708c7d1d 100644 (file)
@@ -62,12 +62,14 @@ static void bmi088_accel_remove(struct spi_device *spi)
 }
 
 static const struct of_device_id bmi088_of_match[] = {
+       { .compatible = "bosch,bmi085-accel" },
        { .compatible = "bosch,bmi088-accel" },
        {}
 };
 MODULE_DEVICE_TABLE(of, bmi088_of_match);
 
 static const struct spi_device_id bmi088_accel_id[] = {
+       {"bmi085-accel",  BOSCH_BMI085},
        {"bmi088-accel",  BOSCH_BMI088},
        {}
 };
index 65338a1bf97d231946d58cedff6390321eb46793..044999eb4fd60d4fc714e01f77c345312db07827 100644 (file)
@@ -9,6 +9,7 @@
 struct device;
 
 enum bmi_device_type {
+       BOSCH_BMI085,
        BOSCH_BMI088,
        BOSCH_UNKNOWN,
 };