[PATCH] iio: st_sensors: Add lsm303d support to the LSM9DS0 IMU driver

From: mail
Date: Wed Apr 12 2023 - 18:37:12 EST


From: Marius Hoch <mail@xxxxxxxxxxxxx>

The lsm303d is basically the lsm9ds0 without the gyroscope
(which the LSM9DS0 IMU driver doesn't handle), as far as I
can tell.

Signed-off-by: Marius Hoch <mail@xxxxxxxxxxxxx>
---
drivers/iio/imu/st_lsm9ds0/Kconfig | 3 ++-
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c | 5 +++++
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c | 5 +++++
3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/imu/st_lsm9ds0/Kconfig b/drivers/iio/imu/st_lsm9ds0/Kconfig
index d29558edee60..7aef714b6ecb 100644
--- a/drivers/iio/imu/st_lsm9ds0/Kconfig
+++ b/drivers/iio/imu/st_lsm9ds0/Kconfig
@@ -10,7 +10,8 @@ config IIO_ST_LSM9DS0

help
Say yes here to build support for STMicroelectronics LSM9DS0 IMU
- sensor. Supported devices: accelerometer/magnetometer of lsm9ds0.
+ sensor. Supported devices: accelerometer/magnetometer of lsm9ds0
+ and lsm303d.

To compile this driver as a module, choose M here: the module
will be called st_lsm9ds0.
diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
index a90138d8b06a..64fa77d302e2 100644
--- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
+++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
@@ -22,12 +22,17 @@ static const struct of_device_id st_lsm9ds0_of_match[] = {
.compatible = "st,lsm9ds0-imu",
.data = LSM9DS0_IMU_DEV_NAME,
},
+ {
+ .compatible = "st,lsm303d-imu",
+ .data = LSM303D_IMU_DEV_NAME,
+ },
{}
};
MODULE_DEVICE_TABLE(of, st_lsm9ds0_of_match);

static const struct i2c_device_id st_lsm9ds0_id_table[] = {
{ LSM9DS0_IMU_DEV_NAME },
+ { LSM303D_IMU_DEV_NAME },
{}
};
MODULE_DEVICE_TABLE(i2c, st_lsm9ds0_id_table);
diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
index b743bf3546a7..997b5ff792be 100644
--- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
+++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
@@ -22,12 +22,17 @@ static const struct of_device_id st_lsm9ds0_of_match[] = {
.compatible = "st,lsm9ds0-imu",
.data = LSM9DS0_IMU_DEV_NAME,
},
+ {
+ .compatible = "st,lsm303d-imu",
+ .data = LSM303D_IMU_DEV_NAME,
+ },
{}
};
MODULE_DEVICE_TABLE(of, st_lsm9ds0_of_match);

static const struct spi_device_id st_lsm9ds0_id_table[] = {
{ LSM9DS0_IMU_DEV_NAME },
+ { LSM303D_IMU_DEV_NAME },
{}
};
MODULE_DEVICE_TABLE(spi, st_lsm9ds0_id_table);
--
2.39.2