iio: magnetometer: add support to LIS2MDL
authorLorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Wed, 16 Aug 2017 17:02:52 +0000 (19:02 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 17 Aug 2017 14:51:39 +0000 (15:51 +0100)
add support to STMicroelectronics LIS2MDL magnetometer in
st_magn framework

http://www.st.com/resource/en/datasheet/lis2mdl.pdf
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
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 9daca46819222bedb73e166eda7d1607af6277c8..8fe51ce427bd64f3e98f06062767dd100209f024 100644 (file)
@@ -19,6 +19,7 @@
 #define LSM303DLM_MAGN_DEV_NAME                "lsm303dlm_magn"
 #define LIS3MDL_MAGN_DEV_NAME          "lis3mdl"
 #define LSM303AGR_MAGN_DEV_NAME                "lsm303agr_magn"
+#define LIS2MDL_MAGN_DEV_NAME          "lis2mdl"
 
 int st_magn_common_probe(struct iio_dev *indio_dev);
 void st_magn_common_remove(struct iio_dev *indio_dev);
index 3573636bad8e0ce3aa035c4b57e76a926f71ed20..703e7700865271e5578087a9cd26f414733d0756 100644 (file)
@@ -323,6 +323,7 @@ static const struct st_sensor_settings st_magn_sensors_settings[] = {
                .wai_addr = 0x4f,
                .sensors_supported = {
                        [0] = LSM303AGR_MAGN_DEV_NAME,
+                       [1] = LIS2MDL_MAGN_DEV_NAME,
                },
                .ch = (struct iio_chan_spec *)st_magn_3_16bit_channels,
                .odr = {
index 6a6c8121ac2c153a20e22340443b9e84ec5981ce..feaa28cf6a779fbe8c0cc1c80842c0afd7c615a5 100644 (file)
@@ -40,6 +40,10 @@ static const struct of_device_id st_magn_of_match[] = {
                .compatible = "st,lsm303agr-magn",
                .data = LSM303AGR_MAGN_DEV_NAME,
        },
+       {
+               .compatible = "st,lis2mdl",
+               .data = LIS2MDL_MAGN_DEV_NAME,
+       },
        {},
 };
 MODULE_DEVICE_TABLE(of, st_magn_of_match);
@@ -85,6 +89,7 @@ static const struct i2c_device_id st_magn_id_table[] = {
        { LSM303DLM_MAGN_DEV_NAME },
        { LIS3MDL_MAGN_DEV_NAME },
        { LSM303AGR_MAGN_DEV_NAME },
+       { LIS2MDL_MAGN_DEV_NAME },
        {},
 };
 MODULE_DEVICE_TABLE(i2c, st_magn_id_table);
index 1ea64dd318aa10128b6e42a163bb25b6a42d61c9..7b7cd08fcc32cf21de2a5c6a1e49d388daa3d14b 100644 (file)
@@ -33,6 +33,10 @@ static const struct of_device_id st_magn_of_match[] = {
                .compatible = "st,lsm303agr-magn",
                .data = LSM303AGR_MAGN_DEV_NAME,
        },
+       {
+               .compatible = "st,lis2mdl",
+               .data = LIS2MDL_MAGN_DEV_NAME,
+       },
        {}
 };
 MODULE_DEVICE_TABLE(of, st_magn_of_match);
@@ -74,6 +78,7 @@ static int st_magn_spi_remove(struct spi_device *spi)
 static const struct spi_device_id st_magn_id_table[] = {
        { LIS3MDL_MAGN_DEV_NAME },
        { LSM303AGR_MAGN_DEV_NAME },
+       { LIS2MDL_MAGN_DEV_NAME },
        {},
 };
 MODULE_DEVICE_TABLE(spi, st_magn_id_table);