iio: st-accel: add support for lis3de
authorHeiko Stuebner <heiko.stuebner@bq.com>
Wed, 7 Nov 2018 15:45:21 +0000 (16:45 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Fri, 16 Nov 2018 18:32:30 +0000 (18:32 +0000)
This commit add support for STMicroelectronics lis3de accelerometer.
Datasheet for this device can be found here:

https://www.st.com/resource/en/datasheet/lis3de.pdf

Signed-off-by: Heiko Stuebner <heiko.stuebner@bq.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Documentation/devicetree/bindings/iio/st-sensors.txt
drivers/iio/accel/Kconfig
drivers/iio/accel/st_accel.h
drivers/iio/accel/st_accel_core.c
drivers/iio/accel/st_accel_i2c.c
drivers/iio/accel/st_accel_spi.c
include/linux/iio/common/st_sensors.h

index 07f1767c7ee6881ac9fb67cefd6df4a42a6a8033..ddcb95509599edc0d1122f257c62c89f5c7b59f2 100644 (file)
@@ -48,6 +48,7 @@ Accelerometers:
 - st,lis3l02dq
 - st,lis2dw12
 - st,lis3dhh
+- st,lis3de
 
 Gyroscopes:
 - st,l3g4200d-gyro
index 7993a67bd35156e3aed7586cd666d93eb9854b7b..898839ca164ad5f61c97f94218edc9eabdc8555d 100644 (file)
@@ -223,7 +223,7 @@ config IIO_ST_ACCEL_3AXIS
          Say yes here to build support for STMicroelectronics accelerometers:
          LSM303DLH, LSM303DLHC, LIS3DH, LSM330D, LSM330DL, LSM330DLC,
          LIS331DLH, LSM303DL, LSM303DLM, LSM330, LIS2DH12, H3LIS331DL,
-         LNG2DM
+         LNG2DM, LIS3DE
 
          This driver can also be built as a module. If so, these modules
          will be created:
index 2f931e4837e5ea2e3f28a55e2937fc42731bc19d..fd53258656cae5331ca991c73fb5bbfa1dc2cffa 100644 (file)
@@ -56,6 +56,7 @@ enum st_accel_type {
 #define LNG2DM_ACCEL_DEV_NAME          "lng2dm"
 #define LIS2DW12_ACCEL_DEV_NAME                "lis2dw12"
 #define LIS3DHH_ACCEL_DEV_NAME         "lis3dhh"
+#define LIS3DE_ACCEL_DEV_NAME          "lis3de"
 
 /**
 * struct st_sensors_platform_data - default accel platform data
index 3e6fd5a8ac5be13fba3a8bf1d14f75481eafd2a9..f7b47112150883a3c0b2557db1f26e30d3b41047 100644 (file)
@@ -103,6 +103,7 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = {
                        [4] = LSM330DLC_ACCEL_DEV_NAME,
                        [5] = LSM303AGR_ACCEL_DEV_NAME,
                        [6] = LIS2DH12_ACCEL_DEV_NAME,
+                       [7] = LIS3DE_ACCEL_DEV_NAME,
                },
                .ch = (struct iio_chan_spec *)st_accel_12bit_channels,
                .odr = {
index 2ca5d1f6ade07ab2dd5d9394f1844f0ed3dbd02b..de8ae4327094b26454181d511c44c3199718eabf 100644 (file)
@@ -98,6 +98,10 @@ static const struct of_device_id st_accel_of_match[] = {
                .compatible = "st,lis2dw12",
                .data = LIS2DW12_ACCEL_DEV_NAME,
        },
+       {
+               .compatible = "st,lis3de",
+               .data = LIS3DE_ACCEL_DEV_NAME,
+       },
        {},
 };
 MODULE_DEVICE_TABLE(of, st_accel_of_match);
@@ -135,6 +139,7 @@ static const struct i2c_device_id st_accel_id_table[] = {
        { LIS331DL_ACCEL_DEV_NAME },
        { LIS3LV02DL_ACCEL_DEV_NAME },
        { LIS2DW12_ACCEL_DEV_NAME },
+       { LIS3DE_ACCEL_DEV_NAME },
        {},
 };
 MODULE_DEVICE_TABLE(i2c, st_accel_id_table);
index dcc9bd243a52a1a552cfd4f1736b21a8cb992619..73bfb5d04e2b23af8e8436712ec1d861b7ee3ce1 100644 (file)
@@ -90,6 +90,10 @@ static const struct of_device_id st_accel_of_match[] = {
                .compatible = "st,lis3dhh",
                .data = LIS3DHH_ACCEL_DEV_NAME,
        },
+       {
+               .compatible = "st,lis3de",
+               .data = LIS3DE_ACCEL_DEV_NAME,
+       },
        {}
 };
 MODULE_DEVICE_TABLE(of, st_accel_of_match);
@@ -143,6 +147,7 @@ static const struct spi_device_id st_accel_id_table[] = {
        { LIS3LV02DL_ACCEL_DEV_NAME },
        { LIS2DW12_ACCEL_DEV_NAME },
        { LIS3DHH_ACCEL_DEV_NAME },
+       { LIS3DE_ACCEL_DEV_NAME },
        {},
 };
 MODULE_DEVICE_TABLE(spi, st_accel_id_table);
index f9bd6e8ab1381c565226f8d7291084d4e5de1e26..8092b8e7f37e013805a023f2bcf9e457351c2459 100644 (file)
@@ -40,7 +40,7 @@
 #define ST_SENSORS_DEFAULT_STAT_ADDR           0x27
 
 #define ST_SENSORS_MAX_NAME                    17
-#define ST_SENSORS_MAX_4WAI                    7
+#define ST_SENSORS_MAX_4WAI                    8
 
 #define ST_SENSORS_LSM_CHANNELS(device_type, mask, index, mod, \
                                        ch2, s, endian, rbits, sbits, addr) \