iio: magnetometer: st_magn: Add LSM303C
authorStephan Gerhold <stephan@gerhold.net>
Fri, 6 Jan 2023 10:22:39 +0000 (11:22 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 8 Jan 2023 13:01:02 +0000 (13:01 +0000)
The magnetometer part of ST LSM303C is similar (perhaps even identical)
to the already supported standalone LIS3MDL magnetometer, so just
add the new st,lsm303c-magn compatible for the existing definitions.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20230106102239.9647-4-stephan@gerhold.net
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/magnetometer/Kconfig
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 4678193..38532d8 100644 (file)
@@ -119,7 +119,7 @@ config IIO_ST_MAGN_3AXIS
        select IIO_TRIGGERED_BUFFER if (IIO_BUFFER)
        help
          Say yes here to build support for STMicroelectronics magnetometers:
-         LSM303DLHC, LSM303DLM, LIS3MDL.
+         LSM303C, LSM303DLHC, LSM303DLM, LIS3MDL.
 
          Also need to enable at least one of I2C and SPI interface drivers
          below.
index 785b7f7..8994598 100644 (file)
@@ -22,6 +22,7 @@
 #define LIS2MDL_MAGN_DEV_NAME          "lis2mdl"
 #define LSM9DS1_MAGN_DEV_NAME          "lsm9ds1_magn"
 #define IIS2MDC_MAGN_DEV_NAME          "iis2mdc"
+#define LSM303C_MAGN_DEV_NAME          "lsm303c_magn"
 
 #ifdef CONFIG_IIO_BUFFER
 int st_magn_allocate_ring(struct iio_dev *indio_dev);
index e2fd233..8faa740 100644 (file)
@@ -305,6 +305,7 @@ static const struct st_sensor_settings st_magn_sensors_settings[] = {
                .sensors_supported = {
                        [0] = LIS3MDL_MAGN_DEV_NAME,
                        [1] = LSM9DS1_MAGN_DEV_NAME,
+                       [2] = LSM303C_MAGN_DEV_NAME,
                },
                .ch = (struct iio_chan_spec *)st_magn_2_16bit_channels,
                .odr = {
index b4098d3..cc0e0e9 100644 (file)
@@ -50,6 +50,10 @@ static const struct of_device_id st_magn_of_match[] = {
                .compatible = "st,iis2mdc",
                .data = IIS2MDC_MAGN_DEV_NAME,
        },
+       {
+               .compatible = "st,lsm303c-magn",
+               .data = LSM303C_MAGN_DEV_NAME,
+       },
        {},
 };
 MODULE_DEVICE_TABLE(of, st_magn_of_match);
@@ -97,6 +101,7 @@ static const struct i2c_device_id st_magn_id_table[] = {
        { LIS2MDL_MAGN_DEV_NAME },
        { LSM9DS1_MAGN_DEV_NAME },
        { IIS2MDC_MAGN_DEV_NAME },
+       { LSM303C_MAGN_DEV_NAME },
        {},
 };
 MODULE_DEVICE_TABLE(i2c, st_magn_id_table);
index 6ddc431..f203e1f 100644 (file)
@@ -45,6 +45,10 @@ static const struct of_device_id st_magn_of_match[] = {
                .compatible = "st,iis2mdc",
                .data = IIS2MDC_MAGN_DEV_NAME,
        },
+       {
+               .compatible = "st,lsm303c-magn",
+               .data = LSM303C_MAGN_DEV_NAME,
+       },
        {}
 };
 MODULE_DEVICE_TABLE(of, st_magn_of_match);
@@ -89,6 +93,7 @@ static const struct spi_device_id st_magn_id_table[] = {
        { LIS2MDL_MAGN_DEV_NAME },
        { LSM9DS1_MAGN_DEV_NAME },
        { IIS2MDC_MAGN_DEV_NAME },
+       { LSM303C_MAGN_DEV_NAME },
        {},
 };
 MODULE_DEVICE_TABLE(spi, st_magn_id_table);