iio:magnetometer: Add Support for ST IIS2MDC
authorLI Qingwu <Qing-wu.Li@leica-geosystems.com.cn>
Wed, 17 Mar 2021 06:39:02 +0000 (06:39 +0000)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 25 Mar 2021 19:13:52 +0000 (19:13 +0000)
Add support for ST magnetometer IIS2MDC,
an I2C/SPI interface 3-axis magnetometer.
The patch was tested on the instrument with IIS2MDC via I2C interface.

Signed-off-by: LI Qingwu <Qing-wu.Li@leica-geosystems.com.cn>
Link: https://lore.kernel.org/r/20210317063902.19300-3-Qing-wu.Li@leica-geosystems.com.cn
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/magnetometer/st_magn.h
drivers/iio/magnetometer/st_magn_core.c
drivers/iio/magnetometer/st_magn_i2c.c
drivers/iio/magnetometer/st_magn_spi.c

index 204b285..7ba6a6b 100644 (file)
@@ -21,6 +21,7 @@
 #define LSM303AGR_MAGN_DEV_NAME                "lsm303agr_magn"
 #define LIS2MDL_MAGN_DEV_NAME          "lis2mdl"
 #define LSM9DS1_MAGN_DEV_NAME          "lsm9ds1_magn"
+#define IIS2MDC_MAGN_DEV_NAME          "iis2mdc"
 
 const struct st_sensor_settings *st_magn_get_settings(const char *name);
 int st_magn_common_probe(struct iio_dev *indio_dev);
index 79de721..71faebd 100644 (file)
@@ -337,6 +337,7 @@ static const struct st_sensor_settings st_magn_sensors_settings[] = {
                .sensors_supported = {
                        [0] = LSM303AGR_MAGN_DEV_NAME,
                        [1] = LIS2MDL_MAGN_DEV_NAME,
+                       [2] = IIS2MDC_MAGN_DEV_NAME,
                },
                .ch = (struct iio_chan_spec *)st_magn_3_16bit_channels,
                .odr = {
index c6bb4ce..36f4e7b 100644 (file)
@@ -46,6 +46,10 @@ static const struct of_device_id st_magn_of_match[] = {
                .compatible = "st,lsm9ds1-magn",
                .data = LSM9DS1_MAGN_DEV_NAME,
        },
+       {
+               .compatible = "st,iis2mdc",
+               .data = IIS2MDC_MAGN_DEV_NAME,
+       },
        {},
 };
 MODULE_DEVICE_TABLE(of, st_magn_of_match);
@@ -101,6 +105,7 @@ static const struct i2c_device_id st_magn_id_table[] = {
        { LSM303AGR_MAGN_DEV_NAME },
        { LIS2MDL_MAGN_DEV_NAME },
        { LSM9DS1_MAGN_DEV_NAME },
+       { IIS2MDC_MAGN_DEV_NAME },
        {},
 };
 MODULE_DEVICE_TABLE(i2c, st_magn_id_table);
index 3d08d74..0e2323d 100644 (file)
@@ -41,6 +41,10 @@ static const struct of_device_id st_magn_of_match[] = {
                .compatible = "st,lsm9ds1-magn",
                .data = LSM9DS1_MAGN_DEV_NAME,
        },
+       {
+               .compatible = "st,iis2mdc",
+               .data = IIS2MDC_MAGN_DEV_NAME,
+       },
        {}
 };
 MODULE_DEVICE_TABLE(of, st_magn_of_match);
@@ -92,6 +96,7 @@ static const struct spi_device_id st_magn_id_table[] = {
        { LSM303AGR_MAGN_DEV_NAME },
        { LIS2MDL_MAGN_DEV_NAME },
        { LSM9DS1_MAGN_DEV_NAME },
+       { IIS2MDC_MAGN_DEV_NAME },
        {},
 };
 MODULE_DEVICE_TABLE(spi, st_magn_id_table);